TQAFMeltingPot

From T2B Wiki
Jump to navigation Jump to search


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')


Template:TracNotice