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.hltExoticaHighPtDimuon_cff import HighPtDimuonPSet
18 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtDielectron_cff import HighPtDielectronPSet
19 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtDimuon_cff import LowPtDimuonPSet
20 #from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtDielectron_cff import LowPtDielectronPSet
21 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtElectron_cff import HighPtElectronPSet
22 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtElectron_cff import LowPtElectronPSet
23 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtPhoton_cff import HighPtPhotonPSet
24 from HLTriggerOffline.Exotica.analyses.hltExoticaDiPhoton_cff import DiPhotonPSet
25 from HLTriggerOffline.Exotica.analyses.hltExoticaHT_cff import HTPSet
26 from HLTriggerOffline.Exotica.analyses.hltExoticaJetNoBptx_cff import JetNoBptxPSet
27 from HLTriggerOffline.Exotica.analyses.hltExoticaMuonNoBptx_cff import MuonNoBptxPSet
28 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedEleMu_cff import DisplacedEleMuPSet
29 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedDimuon_cff import DisplacedDimuonPSet
30 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedL2Dimuon_cff import DisplacedL2DimuonPSet
31 from HLTriggerOffline.Exotica.analyses.hltExoticaPureMET_cff import PureMETPSet
32 from HLTriggerOffline.Exotica.analyses.hltExoticaMonojet_cff import MonojetPSet
33 
34 hltExoticaValidator = cms.EDAnalyzer(
35 
36  "HLTExoticaValidator",
37 
38  hltProcessName = cms.string("HLT"),
39 
40  # -- The name of the analysis. This is the name that
41  # appears in Run summary/Exotica/ANALYSIS_NAME
42 
43  analysis = cms.vstring("HighPtDimuon",
44  "HighPtDielectron",
45  "LowPtDimuon",
46  #"LowPtDielectron",
47  "HighPtElectron",
48  "LowPtElectron",
49  "HighPtPhoton",
50  "DiPhoton",
51  "JetNoBptx",
52  "MuonNoBptx",
53  "HT",
54  "DisplacedEleMu",
55  "DisplacedDimuon",
56  "DisplacedL2Dimuon",
57  "PureMET",
58  "Monojet"
59  ),
60 
61  # -- The instance name of the reco::GenParticles collection
62  genParticleLabel = cms.string("genParticles"),
63 
64  # -- The binning of the Pt efficiency plots
65  # NOTICE: these DEFINITELY should be tuned for the different analyses.
66  # What we have there is a generic, 0-100 GeV uniform binning.
67  parametersTurnOn = cms.vdouble( 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20,
68  22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
69  42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
70  62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
71  82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
72  ),
73 
74  # -- (NBins, minVal, maxValue) for the Eta and Phi efficiency plots
75  parametersEta = cms.vdouble(48, -2.400, 2.400),
76  parametersPhi = cms.vdouble(50, -3.142, 3.142),
77 
78  # Definition of generic cuts on generated and reconstructed objects (note that
79  # these cuts can be overloaded inside a particular analysis)
80  # Objects recognized: Mu Ele Photon PFTau Jet MET => recognized by the method EVTColContainer::getTypeString
81  # Syntax in the strings: valid syntax of the StringCutObjectSelector class
82 
83  # --- Muons
84  Mu_genCut = cms.string("pt > 10 && abs(eta) < 2.4 && abs(pdgId) == 13 && status == 1"),
85  Mu_recCut = cms.string("pt > 10 && abs(eta) < 2.4 && isPFMuon && (isTrackerMuon || isGlobalMuon)"), # Loose Muon
86 
87  # --- MuonTracks
88  #refittedStandAloneMuons_genCut = cms.string("pt > 10 && abs(eta) < 2.4 && abs(pdgId) == 13 && status == 1"),
89  refittedStandAloneMuons_genCut = cms.string("pt > 10 && abs(eta) < 2.4"),
90  #refittedStandAloneMuons_recCut = cms.string("pt > 10 && abs(eta) < 2.4 && isPFMuon && (isTrackerMuon || isGlobalMuon)"), # Loose Muon
91  refittedStandAloneMuons_recCut = cms.string("pt > 10 && abs(eta) < 2.4"),
92 
93  # --- Electrons
94  Ele_genCut = cms.string("pt > 10 && (abs(eta)<1.444 || abs(eta)>1.566) && abs(eta)<2.5 && abs(pdgId) == 11 && status==3 "),
95  Ele_recCut = cms.string(
96  "pt > 10 && (abs(eta)<1.444 || abs(eta)>1.566) && abs(eta)< 2.5 "+
97  " && hadronicOverEm < 0.05 "+ #&& eSuperClusterOverP > 0.5 && eSuperClusterOverP < 1.5 "+
98  " && abs(deltaEtaSuperClusterTrackAtVtx)<0.007 && abs(deltaPhiSuperClusterTrackAtVtx)<0.06 "+
99  " && sigmaIetaIeta<0.03 "+
100  " && (pfIsolationVariables.sumChargedParticlePt + pfIsolationVariables.sumNeutralHadronEtHighThreshold + pfIsolationVariables.sumPhotonEtHighThreshold )/pt < 0.10 "+
101  " && abs(1/energy - 1/p)<0.05"),
102  #" && abs(trackPositionAtVtx.z-vertexPosition.z)<"),
103  #" && "), # Loose-like electron
104 
105  # --- Photons
106  Photon_genCut = cms.string("pt > 20 && abs(eta) < 2.4 && abs(pdgId) == 22 && status == 1"),
107  Photon_recCut = cms.string("pt > 20 && abs(eta) < 2.4"), # STILL MISSING THIS INFO
108  Photon_genCut_leading = cms.string("pt > 150 "),
109  Photon_recCut_leading = cms.string("pt > 150 "),
110 
111  # --- Taus:
112  PFTau_genCut = cms.string("pt > 20 && abs(eta) < 2.4 && abs(pdgId) == 15 && status == 3"),
113  PFTau_recCut = cms.string("pt > 20 && abs(eta) < 2.4"), # STILL MISSING THIS INFO
114 
115  # --- Jets:
116  PFJet_genCut = cms.string("pt > 30 && abs(eta) < 2.4"),
117  PFJet_recCut = cms.string("pt > 30 && abs(eta) < 2.4 &&"+
118  "(neutralHadronEnergy + HFHadronEnergy)/energy < 0.99 &&"+
119  "neutralEmEnergyFraction < 0.99 &&"+
120  "numberOfDaughters > 1 &&"+
121  "chargedHadronEnergyFraction > 0 &&"+
122  "chargedMultiplicity > 0 && "+
123  "chargedEmEnergyFraction < 0.99"), # Loose PFJet
124 
125  CaloJet_genCut = cms.string("pt > 30 && abs(eta) < 2.4"),
126  CaloJet_recCut = cms.string("pt > 30 && abs(eta) < 2.4"), # find realistic cuts
127 
128  # --- MET (PF)
129  PFMET_genCut = cms.string("pt > 75"),
130  PFMET_recCut = cms.string("pt > 75"),
131 
132  # The specific parameters per analysis: the name of the parameter set has to be
133  # the same as the defined ones in the 'analysis' datamember. Each analysis is a PSet
134  # with the mandatory attributes:
135  # - hltPathsToCheck (cms.vstring) : a list of all the trigger pats to be checked
136  # in this analysis. Up to the version number _v, but not including
137  # the number in order to avoid this version dependence. Example: HLT_Mu18_v
138  # - recVarLabel (cms.string): where Var is Mu, Ele, Photon, MET, Jet, PFTau, MET. This
139  # attribute is the name of the INSTANCE LABEL for each RECO collection to
140  # be considered in the analysis. Note that the trigger paths rely on some
141  # objects which need to be defined here, otherwise the code will complain.
142  # - minCandidates (cms.uint32): the minimum number of GEN/RECO objects in the event
143  # Besides the mandatory attributes, you can redefine the generation and reconstruction cuts
144  # for any object you want.
145  # * Var_genCut, Var_recCut (cms.string): where Var=Mu, Ele, Photon, Jet, PFTau, MET (see above)
146 
147  HighPtDimuon = HighPtDimuonPSet,
148  HighPtDielectron = HighPtDielectronPSet,
149  LowPtDimuon = LowPtDimuonPSet,
150  #LowPtDielectron = LowPtDielectronPSet,
151  HighPtElectron = HighPtElectronPSet,
152  LowPtElectron = LowPtElectronPSet,
153  HighPtPhoton = HighPtPhotonPSet,
154  DiPhoton = DiPhotonPSet,
155  JetNoBptx = JetNoBptxPSet,
156  MuonNoBptx = MuonNoBptxPSet,
157  DisplacedEleMu = DisplacedEleMuPSet,
158  DisplacedDimuon = DisplacedDimuonPSet,
159  DisplacedL2Dimuon = DisplacedL2DimuonPSet,
160  PureMET = PureMETPSet,
161  Monojet = MonojetPSet,
162  HT = HTPSet
163 )