Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-04 06:48:51

0001 import FWCore.ParameterSet.Config as cms
0002 ### HLT filter
0003 import copy
0004 from HLTrigger.HLTfilters.hltHighLevel_cfi import *
0005 from PhysicsTools.PatAlgos.producersLayer1.genericParticleProducer_cfi import patGenericParticles
0006 
0007 
0008 PbPbZMuHLTFilter = copy.deepcopy(hltHighLevel)
0009 PbPbZMuHLTFilter.throw = cms.bool(False)
0010 PbPbZMuHLTFilter.HLTPaths = ["HLT_HIL2SingleMu*","HLT_HIL3SingleMu*"]
0011 
0012 # selection of valid vertex
0013 primaryVertexFilterForPbPbZMuSkim = cms.EDFilter("VertexSelector",
0014     src = cms.InputTag("offlinePrimaryVertices"),
0015     cut = cms.string("!isFake && abs(z) <= 25 && position.Rho <= 2"), 
0016     filter = cms.bool(True),
0017     )
0018 
0019 ### Z -> MuMu candidates
0020 # Get muons of needed quality for Zs
0021 
0022 ###create a track collection with generic kinematic cuts
0023 looseMuonsForPbPbZMuSkim = cms.EDFilter("TrackSelector",
0024                              src = cms.InputTag("generalTracks"),
0025                              cut = cms.string('pt > 10 && abs(eta)<2.4 && (charge!=0)'),
0026                              filter = cms.bool(True)                                
0027                              )
0028 
0029 
0030 
0031 ###cloning the previous collection into a collection of candidates
0032 concreteLooseMuonsForPbPbZMuSkim = cms.EDProducer("ConcreteChargedCandidateProducer",
0033                                               src = cms.InputTag("looseMuonsForPbPbZMuSkim"),
0034                                               particleType = cms.string("mu+") # the sign is dummy
0035                                               )
0036 
0037 
0038 
0039 ###create iso deposits
0040 tkIsoDepositTkForPbPbZMuSkim = cms.EDProducer("CandIsoDepositProducer",
0041                                 src = cms.InputTag("ConcretelooseMuonsForPbPbZMuSkim"),
0042                                 MultipleDepositsFlag = cms.bool(False),
0043                                 trackType = cms.string('track'),
0044                                 ExtractorPSet = cms.PSet(
0045         #MIsoTrackExtractorBlock
0046         Diff_z = cms.double(0.2),
0047         inputTrackCollection = cms.InputTag("generalTracks"),
0048         BeamSpotLabel = cms.InputTag("offlineBeamSpot"),
0049         ComponentName = cms.string('TrackExtractor'),
0050         DR_Max = cms.double(0.5),
0051         Diff_r = cms.double(0.1),
0052         Chi2Prob_Min = cms.double(-1.0),
0053         DR_Veto = cms.double(0.01),
0054         NHits_Min = cms.uint32(0),
0055         Chi2Ndof_Max = cms.double(1e+64),
0056         Pt_Min = cms.double(-1.0),
0057         DepositLabel = cms.untracked.string('tracker'),
0058         BeamlineOption = cms.string('BeamSpotFromEvent')
0059         )
0060                                 )
0061 
0062 ###adding isodeposits to candidate collection
0063 allPatTracksForPbPbZMuSkim = patGenericParticles.clone(
0064     src = cms.InputTag("ConcretelooseMuonsForPbPbZMuSkim"),
0065     # isolation configurables
0066     userIsolation = cms.PSet(
0067       tracker = cms.PSet(
0068         veto = cms.double(0.015),
0069         src = cms.InputTag("tkIsoDepositTkForPbPbZMuSkim"),
0070         deltaR = cms.double(0.3),
0071         #threshold = cms.double(1.5)
0072       ),
0073       ),
0074     isoDeposits = cms.PSet(
0075         tracker = cms.InputTag("tkIsoDepositTkForPbPbZMuSkim"),
0076         ),
0077     )
0078 
0079 
0080 
0081 
0082 ###create the "probe collection" of isolated tracks 
0083 looseIsoMuonsForPbPbZMuSkim = cms.EDFilter("PATGenericParticleSelector",  
0084                              src = cms.InputTag("allPatTracksForPbPbZMuSkim"), 
0085                              cut = cms.string("(userIsolation('pat::TrackIso')/pt)<0.4"),
0086                              filter = cms.bool(True)
0087                              )
0088 
0089 
0090 
0091 ###create the "tag collection" of muon candidate, no dB cut applied 
0092 
0093 
0094 tightMuonsForPbPbZMuSkim = cms.EDFilter("MuonSelector",
0095     src = cms.InputTag("muons"),
0096     cut = cms.string("(isGlobalMuon) && pt > 15. && (abs(eta)<2.4) && (isPFMuon>0) && (globalTrack().normalizedChi2() < 10) && (globalTrack().hitPattern().numberOfValidMuonHits()>0) && (numberOfMatchedStations() > 1) && (innerTrack().hitPattern().numberOfValidPixelHits() > 0) && (innerTrack().hitPattern().trackerLayersWithMeasurement() > 5)"),
0097     filter = cms.bool(True)
0098     )
0099 
0100 
0101 
0102 
0103 # build Z-> MuMu candidates
0104 dimuonsForPbPbZMuSkim = cms.EDProducer("CandViewShallowCloneCombiner",
0105                          checkCharge = cms.bool(False),
0106                          cut = cms.string('(mass > 60)'),       
0107                          decay = cms.string("tightMuonsForPbPbZMuSkim concreteLooseMuonsForPbPbZMuSkim")
0108                          )                                    
0109 
0110 
0111 # Z filter
0112 dimuonsFilterForPbPbZMuSkim = cms.EDFilter("CandViewCountFilter",
0113                              src = cms.InputTag("dimuonsForPbPbZMuSkim"),
0114                              minNumber = cms.uint32(1)
0115                              )
0116 
0117 
0118 
0119 diMuonSelSeqForPbPbZMuSkim = cms.Sequence(
0120                             PbPbZMuHLTFilter *
0121                             primaryVertexFilterForPbPbZMuSkim *
0122                             looseMuonsForPbPbZMuSkim *
0123                             concreteLooseMuonsForPbPbZMuSkim *
0124                             #tkIsoDepositTkForPbPbZMuSkim *
0125                             #allPatTracksForPbPbZMuSkim *
0126                             #looseIsoMuonsForPbPbZMuSkim * 
0127                             tightMuonsForPbPbZMuSkim *
0128                             dimuonsForPbPbZMuSkim *
0129                             dimuonsFilterForPbPbZMuSkim 
0130 )
0131 
0132 
0133 
0134 
0135 
0136