CMS 3D CMS Logo

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