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