TQAFMeltingPot
TQAF Melting Pot Info Page
The TQAF Melting Pot is a directory /UserCode/TopBrussels/TQAFMeltingPot that contains all the files that are embedded in the TQAF but are not (yet) part of the official TQAF. Currently following code is there:
- TtSemiMuEventSelection: EDFilter to select a certain amount of jets and muons above a threshold. This can be used as an event selection in your analysis
- TtSemiMuJetSelection : EDProducer to produce new jet collections containing, most likely, the four jets originating from the top quark decays (both hadronic and leptonic).
There is a script "fileputter.sh" to copy all the files from the melting pot to the correct location in the TQAF. Don't forget to change the permissions of the file. Make sure you have set the CMSSW environment correctly with cmsenv.
chmod u+x fileputter.sh ./fileputter.sh
TtSemiMuSelection
This filter can be used to perform an event selection based on the semileptonic muon decay topology
Related files
/UserCode/TopBrussels/TQAFMeltingPot/TtSemiMuEventSelection.cc /UserCode/TopBrussels/TQAFMeltingPot/ttSemiMuEventSelection_cfi.py /UserCode/TopBrussels/TQAFMeltingPot/BuildFile
Description
In the config file ttSemiMuEventSelection_cfi.py you can define the cuts you want to apply on the jets and the muon
muons = cms.InputTag("selectedLayer1Muons"), jets = cms.InputTag("selectedLayer1Jets"), mets = cms.InputTag("selectedLayer1METs"), nMuons = cms.uint32(1), #### require at least 1 muon, muonEta = cms.double(2.1), # within |eta|<2.1 muonPt = cms.double(30), # with pt>30 muonRelIso = cms.double(0.95), # relative isolation > 0.95 muonVetoEM = cms.double(4), # EM energy in veto cone < 4 muonVetoHad = cms.double(6), #### Had energy in veto conde < 6 nLeadingJets = cms.uint32(4), #### require at least 4 jets leadingJetsEta = cms.double(2.4), # within |eta| < 2.4 leadingJetsPt = cms.double(40), #### with pt > 40
Include in your cfg file
process.load('TopQuarkAnalysis.TopEventSelection.ttSemiMuEventSelection_cfi')
TopJetSelection
This producer creates new collections of four jets which are most probably the jets coming the semi-muonic top quark decays. For the time being, three collections are produced based on three different matching algorithms :
- MC Truth based matching : the selected jets are the ones that match the partons.
- Sequential matching : first loop over all jets in order to find the two jets which produce an invariant mass as close as possible to the W boson mass. And then loop over the remaining jets to find the jet that produces with the two previously selected jets an invariant mass as close as possible to the top quark mass. The last jet is selected among the remaining jet as the one which produces with the selected muon an invariant mass as close as possible to the expected value (to be defined in the cff file).
- ChiSquare based matching (recommended as the most powerful for the moment) : this method selects the jets that minimize a chisquare that assignes the jets coming from the W boson, the hadronic top quark and the b-jet coming from the leptonic top quark. For more info, see http://indico.cern.ch/getFile.py/access?contribId=1&resId=0&materialId=slides&confId=45143
Related files
/UserCode/TopBrussels/TQAFMeltingPot/TtSemiMuJetSelection/src/TtSemiMuJetSelection.cc /UserCode/TopBrussels/TQAFMeltingPot/TtSemiMuJetSelection/python/ttSemiMuJetSelection_cfi.py /UserCode/TopBrussels/TQAFMeltingPot/TtSemiMuJetSelection/test/ttSemiMuJetSelection_cfg.py
Description
In the config file ttSemiMuJetSelection_cfi.py you can define several settings :
matchedLayer1Jets = cms.EDProducer('TtSemiMuJetSelection', electronTag = cms.InputTag("selectedLayer1Electrons"), muonTag = cms.InputTag("selectedLayer1Muons"), jetTag = cms.InputTag("selectedLayer1Jets"), #jetTag = cms.InputTag("selectedLayer1Jets","","SKIMsemilep"), metTag = cms.InputTag("selectedLayer1METs"), TopMass = cms.double(172.4), # Top quark mass (GeV/c²), world average, July 2008 WMass = cms.double(80.4), # W boson mass (GeV/c²) blMass = cms.double(91.1), # bl invariant mass (GeV/c²) LepTopMassResol = cms.double(15.6), # resolution of the leptonic top quark mass LepblMassResol = cms.double(36.0), # resolution of the bl invariant mass HadTopMassResol = cms.double(12.5), # resolution of the hadronic top quark mass HadWMassResol = cms.double(7.6), # resolution of the hadronic W boson mass NjetsForComb = cms.uint32(7), # max number of jets considered for the matching procedure JetPtThreshold = cms.double(30), # only jets with pt>JetPtThreshold are considered in this module JetEtaThreshold = cms.double(2.4), # only jets with eta>JetEtaThreshold are considered in this module verboselevel = cms.int32(1) # Debug verbosity level (up to 5): 0 = no output )
If the module is run successfully, the following new branches are available in the output ROOT file :
patJets_matchedLayer1Jets_GenMatch_TtSemiMuJetSel patJets_matchedLayer1Jets_SeqMatch_TtSemiMuJetSel patJets_matchedLayer1Jets_ChiSqMatch_TtSemiMuJetSel
They can now be used as input for your own analysis module.
Include in your cfg file
process.load('TopQuarkAnalysis.TtSemiMuJetSelection.ttSemiMuJetSelection_cfi')