CMS 3D CMS Logo

hltExoticaValidator_cfi.py
Go to the documentation of this file.
1 
13 
14 import FWCore.ParameterSet.Config as cms
15 
16 # Validation categories (sub-analyses)
17 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtTrimuon_cff import LowPtTrimuonPSet
18 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtDimuon_cff import HighPtDimuonPSet
19 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtDielectron_cff import HighPtDielectronPSet
20 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtDimuon_cff import LowPtDimuonPSet
21 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtDielectron_cff import LowPtDielectronPSet
22 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtElectron_cff import HighPtElectronPSet
23 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtElectron_cff import LowPtElectronPSet
24 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtPhoton_cff import HighPtPhotonPSet
25 from HLTriggerOffline.Exotica.analyses.hltExoticaDiPhoton_cff import DiPhotonPSet
26 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedDiPhoton_cff import DisplacedDiPhotonPSet
27 from HLTriggerOffline.Exotica.analyses.hltExoticaPFHT_cff import PFHTPSet
28 from HLTriggerOffline.Exotica.analyses.hltExoticaCaloHT_cff import CaloHTPSet
29 from HLTriggerOffline.Exotica.analyses.hltExoticaJetNoBptx_cff import JetNoBptxPSet
30 from HLTriggerOffline.Exotica.analyses.hltExoticaMuonNoBptx_cff import MuonNoBptxPSet
31 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedMuEG_cff import DisplacedMuEGPSet
32 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedDimuon_cff import DisplacedDimuonPSet
33 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedL2Dimuon_cff import DisplacedL2DimuonPSet
34 from HLTriggerOffline.Exotica.analyses.hltExoticaPureMET_cff import PureMETPSet
35 from HLTriggerOffline.Exotica.analyses.hltExoticaMETplusTrack_cff import METplusTrackPSet
36 from HLTriggerOffline.Exotica.analyses.hltExoticaMonojet_cff import MonojetPSet
37 from HLTriggerOffline.Exotica.analyses.hltExoticaMonojetBackup_cff import MonojetBackupPSet
38 from HLTriggerOffline.Exotica.analyses.hltExoticaEleMu_cff import EleMuPSet
39 from HLTriggerOffline.Exotica.analyses.hltExoticaHTDisplacedJets_cff import HTDisplacedJetsPSet
40 from HLTriggerOffline.Exotica.analyses.hltExoticaPhotonMET_cff import PhotonMETPSet
41 from HLTriggerOffline.Exotica.analyses.hltExoticaSingleMuon_cff import SingleMuonPSet
42 from HLTriggerOffline.Exotica.analyses.hltExoticaDSTJets_cff import DSTJetsPSet
43 from HLTriggerOffline.Exotica.analyses.hltExoticaDSTMuons_cff import DSTMuonsPSet
44 from HLTriggerOffline.Exotica.analyses.hltExoticaTracklessJets_cff import TracklessJetsPSet
45 
46 from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
47 hltExoticaValidator = DQMEDAnalyzer(
48 
49  "HLTExoticaValidator",
50 
51  hltProcessName = cms.string("HLT"),
52 
53  # -- The name of the analysis. This is the name that
54  # appears in Run summary/Exotica/ANALYSIS_NAME
55 
56  analyses = cms.vstring(
57  "LowPtTrimuon",
58  "HighPtDimuon",
59  "HighPtDielectron",
60  "LowPtDimuon",
61  "LowPtDielectron",
62  "HighPtElectron",
63  "LowPtElectron",
64  "HighPtPhoton",
65  "DiPhoton",
66  "DisplacedDiPhoton",
67  "SingleMuon",
68  "JetNoBptx",
69  "MuonNoBptx",
70  "PFHT",
71  "CaloHT",
72  "DisplacedMuEG",
73  "DisplacedDimuon",
74  "DisplacedL2Dimuon",
75  "PureMET",
76  "METplusTrack",
77  "Monojet",
78  "MonojetBackup",
79  "EleMu",
80  "PhotonMET",
81  "HTDisplacedJets",
82  "DSTJets",
83  "DSTMuons",
84  "TracklessJets"
85  ),
86 
87  # -- The instance name of the reco::GenParticles collection
88  genParticleLabel = cms.string("genParticles"),
89 
90  # -- The instance name of the reco::BeamSpot collection
91  beamSpotLabel = cms.string("offlineBeamSpot"),
92 
93  # -- The binning of the Pt efficiency plots
94  # NOTICE: these DEFINITELY should be tuned for the different analyses.
95  # What we have there is a generic, 0-100 GeV uniform binning.
96  parametersTurnOn = cms.vdouble( 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20,
97  22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
98  42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
99  62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
100  82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
101  ),
102 
103  # TurnOn for SumEt
104  parametersTurnOnSumEt = cms.vdouble( 0, 100, 200, 300, 400, 500, 600, 700, 800, 900,
105  1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900,
106  2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900,
107  3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800, 3900,
108  4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900,
109  5000, 5100, 5200, 5300, 5400, 5500, 5600, 5700, 5800, 5900,
110  6000, 6100, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6900,
111  7000
112  ),
113 
114  # -- (NBins, minVal, maxValue) for the Eta and Phi efficiency plots
115  parametersEta = cms.vdouble(48, -2.400, 2.400),
116  parametersPhi = cms.vdouble(50, -3.142, 3.142),
117  parametersDxy = cms.vdouble(50, -0.015, 0.015),
118 
119  # Definition of generic cuts on generated and reconstructed objects (note that
120  # these cuts can be overloaded inside a particular analysis)
121  # Objects recognized: Mu Ele Photon PFTau Jet MET => recognized by the method EVTColContainer::getTypeString
122  # Syntax in the strings: valid syntax of the StringCutObjectSelector class
123 
124  # --- Muons
125  Mu_genCut = cms.string("pt > 10 && abs(eta) < 2.4 && abs(pdgId) == 13 && (isPromptFinalState || isDirectPromptTauDecayProductFinalState)"),
126  Mu_recCut = cms.string("pt > 10 && abs(eta) < 2.4 && isPFMuon && (isTrackerMuon || isGlobalMuon)"), # Loose Muon
127 
128  # --- MuonTracks
129  #refittedStandAloneMuons_genCut = cms.string("pt > 10 && abs(eta) < 2.4 && abs(pdgId) == 13 && status == 1"),
130  refittedStandAloneMuons_genCut = cms.string("pt > 10 && abs(eta) < 2.4"),
131  #refittedStandAloneMuons_recCut = cms.string("pt > 10 && abs(eta) < 2.4 && isPFMuon && (isTrackerMuon || isGlobalMuon)"), # Loose Muon
132  refittedStandAloneMuons_recCut = cms.string("pt > 10 && abs(eta) < 2.4"),
133 
134  # --- Electrons
135  Ele_genCut = cms.string("pt > 10 && (abs(eta)<1.444 || abs(eta)>1.566) && abs(eta)<2.5 && abs(pdgId) == 11 && (isPromptFinalState||isDirectPromptTauDecayProductFinalState)"),
136  Ele_recCut = cms.string(
137  "pt > 10 && (abs(eta)<1.444 || abs(eta)>1.566) && abs(eta)< 2.5 "+
138  " && hadronicOverEm < 0.05 "+ #&& eSuperClusterOverP > 0.5 && eSuperClusterOverP < 1.5 "+
139  " && abs(deltaEtaSuperClusterTrackAtVtx)<0.007 && abs(deltaPhiSuperClusterTrackAtVtx)<0.06 "+
140  " && sigmaIetaIeta<0.03 "+
141  " && (pfIsolationVariables.sumChargedParticlePt + pfIsolationVariables.sumNeutralHadronEtHighThreshold + pfIsolationVariables.sumPhotonEtHighThreshold )/pt < 0.10 "+
142  " && abs(1/energy - 1/p)<0.05"),
143  #" && abs(trackPositionAtVtx.z-vertexPosition.z)<"),
144  #" && "), # Loose-like electron
145 
146  # --- Photons
147  Photon_genCut = cms.string("pt > 20 && abs(eta) < 2.4 && abs(pdgId) == 22 && isPromptFinalState"),
148  Photon_recCut = cms.string("pt > 20 && abs(eta) < 2.4"), # STILL MISSING THIS INFO
149  Photon_genCut_leading = cms.string("pt > 150 "),
150  Photon_recCut_leading = cms.string("pt > 150 "),
151 
152  # --- Taus:
153  PFTau_genCut = cms.string("pt > 20 && abs(eta) < 2.4 && abs(pdgId) == 15 && isPromptDecayed"),
154  PFTau_recCut = cms.string("pt > 20 && abs(eta) < 2.4"), # STILL MISSING THIS INFO
155 
156  # --- Jets:
157  PFJet_genCut = cms.string("pt > 30 && abs(eta) < 2.4"),
158  PFJet_recCut = cms.string("pt > 30 && abs(eta) < 2.4 &&"+
159  "(neutralHadronEnergy + HFHadronEnergy)/energy < 0.99 &&"+
160  "neutralEmEnergyFraction < 0.99 &&"+
161  "numberOfDaughters > 1 &&"+
162  "chargedHadronEnergyFraction > 0 &&"+
163  "chargedMultiplicity > 0 && "+
164  "chargedEmEnergyFraction < 0.99"), # Loose PFJet
165 
166  CaloJet_genCut = cms.string("pt > 30 && abs(eta) < 2.4"),
167  CaloJet_recCut = cms.string("pt > 30 && abs(eta) < 2.4"), # find realistic cuts
168 
169  # --- MET
170  MET_genCut = cms.string("pt > 75"),
171  MET_recCut = cms.string("pt > 75"),
172 
173  PFMET_genCut = cms.string("pt > 75"),
174  PFMET_recCut = cms.string("pt > 75"),
175 
176  PFMHT_genCut = cms.string("pt > 75"),
177  PFMHT_recCut = cms.string("pt > 75"),
178 
179  GenMET_genCut = cms.string("pt > 75"),
180  GenMET_recCut = cms.string("pt > 75"),
181 
182  Track_genCut = cms.string("pt > 50"),
183  Track_recCut = cms.string("pt > 50"),
184 
185  CaloMET_genCut = cms.string("pt > 75"),
186  CaloMET_recCut = cms.string("pt > 75"),
187 
188  CaloMHT_genCut = cms.string("pt > 75"),
189  CaloMHT_recCut = cms.string("pt > 75"),
190 
191  hltMET_genCut = cms.string("pt > 75"),
192  hltMET_recCut = cms.string("pt > 75"),
193 
194  # The specific parameters per analysis: the name of the parameter set has to be
195  # the same as the defined ones in the 'analysis' datamember. Each analysis is a PSet
196  # with the mandatory attributes:
197  # - hltPathsToCheck (cms.vstring) : a list of all the trigger pats to be checked
198  # in this analysis. Up to the version number _v, but not including
199  # the number in order to avoid this version dependence. Example: HLT_Mu18_v
200  # - recVarLabel (cms.string): where Var is Mu, Ele, Photon, MET, Jet, PFTau, MET. This
201  # attribute is the name of the INSTANCE LABEL for each RECO collection to
202  # be considered in the analysis. Note that the trigger paths rely on some
203  # objects which need to be defined here, otherwise the code will complain.
204  # - minCandidates (cms.uint32): the minimum number of GEN/RECO objects in the event
205  # Besides the mandatory attributes, you can redefine the generation and reconstruction cuts
206  # for any object you want.
207  # * Var_genCut, Var_recCut (cms.string): where Var=Mu, Ele, Photon, Jet, PFTau, MET (see above)
208 
209  LowPtTrimuon = LowPtTrimuonPSet,
210  HighPtDimuon = HighPtDimuonPSet,
211  HighPtDielectron = HighPtDielectronPSet,
212  LowPtDimuon = LowPtDimuonPSet,
213  LowPtDielectron = LowPtDielectronPSet,
214  HighPtElectron = HighPtElectronPSet,
215  LowPtElectron = LowPtElectronPSet,
216  HighPtPhoton = HighPtPhotonPSet,
217  DiPhoton = DiPhotonPSet,
218  DisplacedDiPhoton = DisplacedDiPhotonPSet,
219  SingleMuon = SingleMuonPSet,
220  JetNoBptx = JetNoBptxPSet,
221  MuonNoBptx = MuonNoBptxPSet,
222  DisplacedMuEG = DisplacedMuEGPSet,
223  DisplacedDimuon = DisplacedDimuonPSet,
224  DisplacedL2Dimuon = DisplacedL2DimuonPSet,
225  PureMET = PureMETPSet,
226  METplusTrack = METplusTrackPSet,
227  Monojet = MonojetPSet,
228  MonojetBackup = MonojetBackupPSet,
229  PFHT = PFHTPSet,
230  CaloHT = CaloHTPSet,
231  EleMu = EleMuPSet,
232  PhotonMET = PhotonMETPSet,
233  HTDisplacedJets = HTDisplacedJetsPSet,
234  DSTJets = DSTJetsPSet,
235  DSTMuons = DSTMuonsPSet,
236  TracklessJets = TracklessJetsPSet
237 )