2010 HI Dilepton Trigger Study with Tag and Probe Method

Basement of Study

  • General Tag and Probe Method : link
  • Muon Tag and Probe Method : link
  • Tag and Probe Software : link
  • Quarkonia Task Force T & P : link
  • Tutorial : link

Motivation

  • Compare to the Trigger Efficiency between using MC and Tag & Probe method for the November HI data

Selection Condition

  • HI Dilepton Muon Sellection for Global Muon reconstruction Efficiency (20101103 updated) Example for Z0
    • Definition of Tag muons : SinlgeMu3 (hltL1Mu3L1Filtered0)
         process.tagMuons = cms.EDFilter("PATMuonSelector",
                 src = cms.InputTag("patMuonsWithTrigger"),
                 cut = cms.string("isGlobalMuon && !triggerObjectMatchesByFilter('hltL1Mu3L1Filtered0').empty()"),
         )
    • Definition of Probe muons
         process.tkTracks  = cms.EDProducer("ConcreteChargedCandidateProducer", 
                 src  = cms.InputTag("hiGlobalPrimTracks"),     # L4 
                 particleType = cms.string("mu+"),
         ) 
         process.tkProbes = cms.EDFilter("CandViewRefSelector",
                 src = cms.InputTag("tkTracks"),
                 cut = cms.string("pt > 0 && abs(eta) < 2.4"),
         )
    • Passing probe condition : inside of mass cut region and triggered events
         process.tpPairs = cms.EDProducer("CandViewShallowCloneCombiner",
                 #cut = cms.string('2.6 < mass < 3.6'),
                 cut = cms.string(''),
                 decay = cms.string('tagMuons@+ probeMuons@-')
         )
         process.tkToGlbMatch = cms.EDProducer("MatcherUsingTracks",
                 src     = cms.InputTag("tkTracks"), # all tracks are available for matching
                 matched = cms.InputTag("glbMuons"), # to all global muons
                 algorithm = cms.string("byDirectComparison"), # check that they
                 srcTrack = cms.string("tracker"),             # have the same 
                 srcState = cms.string("atVertex"),            # tracker track
                 matchedTrack = cms.string("tracker"),         # can't check ref
                 matchedState = cms.string("atVertex"),        # because of the
                 maxDeltaR        = cms.double(0.01),          # embedding.
                 maxDeltaLocalPos = cms.double(0.01),
                 maxDeltaPtRel    = cms.double(0.01),
                 sortBy           = cms.string("deltaR"),
         )
         process.tkPassingGlb = cms.EDProducer("MatchedCandidateSelector",
                 src   = cms.InputTag("tkProbes"),
                 match = cms.InputTag("tkToGlbMatch"),
         )

  • HI Dilepton Muon Sellection for Trigger Efficiency (20101103 updated): Example for Z0
    • Definition of Tag muons : SinlgeMu3 (hltL1Mu3L1Filtered0), SingleMu5 (hltL1Mu5L1Filtered0) .. etc
         process.tagMuons = cms.EDFilter("PATMuonSelector",
                 src = cms.InputTag("patMuonsWithTrigger"),
                 cut = cms.string("isGlobalMuon && !triggerObjectMatchesByFilter('hltL1Mu3L1Filtered0').empty()"),
         )
    • Definition of Probe muons
         process.probeMuons = cms.EDFilter("PATMuonSelector",
                 src = cms.InputTag("patMuonsWithTrigger"),
                 cut = cms.string("isGlobalMuon"),
         )
    • Passing probe condition : inside of mass cut region and triggered events
         process.tpPairs = cms.EDProducer("CandViewShallowCloneCombiner",
                 #cut = cms.string('2.6 < mass < 3.6'),
                 cut = cms.string(''),
                 decay = cms.string('tagMuons@+ probeMuons@-')
         )

  • Default of QTF TnP :
    • Muon Collection : mergedCaloMuons
         # Merge calomuons into the collection of muons
         from RecoMuon.MuonIdentification.calomuons_cfi import calomuons; 
         process.mergedMuons = cms.EDProducer("CaloMuonMerger",
             muons     = cms.InputTag("muons"), 
             caloMuons = cms.InputTag("calomuons"),
             tracks    = cms.InputTag("hiSelectedTracks"),
             minCaloCompatibility = calomuons.minCaloCompatibility,
             muonsCut  = cms.string("track.isNonnull"),
             caloMuonsCut = cms.string(""),
             tracksCut    = cms.string("pt > 2 || (abs(eta) > 1 && p > 2)"),
         )
    • TagMuons : globalMuons
         process.tagMuons = cms.EDFilter("PATMuonSelector",
                 src = cms.InputTag("patMuonsWithTrigger"),
                 cut = cms.string("isGlobalMuon"),
         )
    • ProbeMuons : allMuons (all tracks among the mergedCaloMuons)
         process.probeMuons = cms.EDFilter("PATMuonSelector",
                 src = cms.InputTag("patMuonsWithTrigger"),
                 cut = cms.string("track.isNonnull"),
         )
  • Total Efficiency : e_trk * e_reco * e_trg
    • Definition of each of Efficiency = (Passing Probe)/(All of pairs)

Recipe with HI MC

  • Option changed accroding to HI Dilepton group selection (2010/10/22)
  • Only making PAT Muons : hiPatMuonsProducer_cfg.py
  • Setup update (2010/10/15)
  • How to use
    • QTF method
      • tp_hi_mc.py : modified from QTF method to produce Fit Tree (input RecoSamples)
      • hiFitTrigger.py : modified from QTF method to analyze Tree information of output file of tp_hi_mc.py
    • General TnP
      • tp_hi_Prod_mc.py : modified from testTagAndProbeFitTreeProducer_JpsiMuMu.py to produce Fit Tree (input RecoSamples)
      • tp_hi_Ana_mc.py : modified from testTagAndProbeFitTreeProducer_JpsiMuMu.py to analyze Tree information of output file of tp_hi_Prod_mc.py

  • Setup at 390pre4 and pre5 (2010/10/11)
     addpkg PhysicsTools/TagAndProbe V02-06-11 (or later)
     addpkg MuonAnalysis/MuonAssociators V01-10-00
     addpkg MuonAnalysis/TagAndProbe V07-01-00

     addpkg PhysicsTools/PatAlgos
     cvs update -rV08-01-02 PhysicsTools/PatAlgos/python/tools/helpers.py

  • 1. Following QTF Method : MuonAnalysis/TagAndProbe/ (390pre4)
    • remove MuonAnalysis/TagAndProbe/plugin/MuonSelectorJPsi.cc, MuonSelectorJPsiPlusMu.cc, MuonSelectorWmunu.cc (not build at 390pre4, but don't need for HI PAT)
    • in the /afs/cern.ch/user/d/dmoon/public/html/TagAndProb
    • tp_hi_mc.py : modified from tp_from_aod_simple_MC.py - process order : recoMuFilter >> Make PAT Muons with Trigger Match >> TagAndProbeTreeProducer
    • hiFitTirgger.py : modified from fitTrigger.py - TagAndProbeTreeAnalyzer

  • 3. Changing 2nd method with PAT muons (ongoing)

Result

L1DoubleMuOpen Trigger Efficiency for Z0 (20101103 updated)

Global Muon Reconstruction Efficiency for Z0 (20101103 updated)

L1DoubleMuOpen Trigger Efficiency

  • Samples : 3000 J/psis Embedded on MB Hydjet, /castor/cern.ch/user/d/dmoon/cms390pre5/Hydjet_MinBias_2.76TeV_Jpsi_Flat_Emb_HLT_Reco/
  • flag setup in FitTreeProducer : tp_hi_Prod_mc.py
      flags = cms.PSet(
            Glb = cms.string("isGlobalMuon"),
            TM = cms.string("isTrackerMuon"),
            L1DoubleMuOpen = cms.string("!triggerObjectMatchesByFilter('hltDoubleMuLevel1PathL1OpenFiltered').empty()"),
      ),
  • eta and pt bin size modified and L1DoubleMuOpen Trigger added in FitTreeAnalyzer : tp_hi_Ana_mc.py
        L1DoubleMuOpen_pt_eta = cms.PSet(
            EfficiencyCategoryAndState = cms.vstring("L1DoubleMuOpen","true"),
            UnbinnedVariables = cms.vstring("mass"),
            BinnedVariables = cms.PSet(
                #pt = cms.vdouble(3.0, 6.0, 20.0),
                #pt = cms.vdouble(0.0, 3.0, 6.0, 9.0, 12.0, 15.0, 18.0, 20.0),
                pt = cms.vdouble(0.0, 2.0, 4.0, 6.0, 8.0, 10.0),
                #abseta = cms.vdouble(0.0, 1.2, 2.4),
                #abseta = cms.vdouble(0.0, 0.6, 1.2, 1.6, 2.4),
                eta = cms.vdouble(-2.4, -1.2, 0.0, 1.2, 2.4),
            ),  
            BinToPDFmap = cms.vstring("gaussPlusLinear", "*pt_bin0*", "gaussPlusQuadratic")
        ),

  • Trigger Efficiency pt and eta depending on each pt and eta bins
eta eff pt_bin0 eta eff pt_bin1 eta eff pt_bin2 eta eff pt_bin3 eta eff pt_bin4

pt eff eta_bin0 pt eff eta_bin1 pt eff eta_bin2 pt eff eta_bin3

  • One of Example for Mass distribution and fitting as the passing/failing/all probes
Mass distribution Passing/Failing/All probes Mass fitting Passing/Failing/All probes

  • L1DoubleMuOpen? Trigger Efficiency pt vs eta
Trigger Efficiency L1DoubleMuOpen pt vs eta

Bug report

  • 2010/10/15 : Error message from Making PAT Muons
      %MSG
      %MSG-e DataNotAvailable:  PATMuonProducer:patMuonsWithoutTrigger  15-Oct-2010 12:53:13 CEST Run: 1 Event: 3
      No primary vertex available from EventSetup, not adding high level selection     
    • it came from that patMuons dosen't match Heavy Ion collections, it should be changed as below
    • fixed version of hiPatMuonsWithTrigger_cff.py
      beamLineSrc = cms.InputTag("hltOfflineBeamSpot"), # Heavy Ion BeamSpot
      pvSrc = cms.InputTag("hiSelectedVertex") # Heavy Ion vertex collection
  • Trigger info problem
      %MSG
      %MSG-e errorTriggerResultsValid:  PATTriggerProducer:patTrigger  15-Oct-2010 12:53:12 CEST Run: 1 Event: 2
      TriggerResults product with InputTag TriggerResults::HLT not in event  
      No HLT information produced. 
    • This is coming from that can't get trigger result correctly due to different process name
    • solved, to add 2 lines in the configuration file as below
      from MuonAnalysis.MuonAssociators.hiPatMuonsWithTrigger_cff import changeTriggerProcessName
      changeTriggerProcessName(process, "HISIGNAL")   # Custom re-run HLT

Todo list

  • tuning the environmental setup of Analyzer
  • bug fixing trigger info and vertex problem in making PATMuons

-- DongHoMoon - 11 Oct 2010

Edit | Attach | Watch | Print version | History: r17 < r16 < r15 < r14 < r13 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r17 - 2010-11-04 - DongHoMoon
 
KOREA-CMS
This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding KoreaCmsWiki? Send feedback