Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:18:52

0001 ### Configuration Fragment Include for HLTExoticaValidator module.
0002 ### In this file we instantiate the HLTExoticaValidator, with
0003 ### some default configurations. The specific analyses are loaded
0004 ### as cms.PSets, which are then added to this module with
0005 ### specific names. The canonical example is 
0006 #
0007 # from HLTriggerOffline.Exotica.hltExoticaHighPtDimuon_cff import HighPtDimuonPSet
0008 #
0009 # which is then made known to the module by the line
0010 #
0011 # analysis       = cms.vstring("HighPtDimuon"),
0012 #
0013 
0014 import FWCore.ParameterSet.Config as cms
0015 
0016 # Validation categories (sub-analyses)
0017 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtTrimuon_cff      import LowPtTrimuonPSet
0018 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtDimuon_cff      import HighPtDimuonPSet
0019 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtDielectron_cff  import HighPtDielectronPSet
0020 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtDimuon_cff       import LowPtDimuonPSet
0021 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtDielectron_cff   import LowPtDielectronPSet
0022 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtElectron_cff    import HighPtElectronPSet
0023 from HLTriggerOffline.Exotica.analyses.hltExoticaLowPtElectron_cff     import LowPtElectronPSet
0024 from HLTriggerOffline.Exotica.analyses.hltExoticaHighPtPhoton_cff      import HighPtPhotonPSet
0025 from HLTriggerOffline.Exotica.analyses.hltExoticaDiPhoton_cff          import DiPhotonPSet
0026 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedDiPhoton_cff import DisplacedDiPhotonPSet
0027 from HLTriggerOffline.Exotica.analyses.hltExoticaPFHT_cff              import PFHTPSet
0028 from HLTriggerOffline.Exotica.analyses.hltExoticaCaloHT_cff            import CaloHTPSet
0029 from HLTriggerOffline.Exotica.analyses.hltExoticaJetNoBptx_cff         import JetNoBptxPSet
0030 from HLTriggerOffline.Exotica.analyses.hltExoticaMuonNoBptx_cff        import MuonNoBptxPSet
0031 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedMuEG_cff     import DisplacedMuEGPSet
0032 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedDimuon_cff   import DisplacedDimuonPSet
0033 from HLTriggerOffline.Exotica.analyses.hltExoticaDisplacedL2Dimuon_cff import DisplacedL2DimuonPSet
0034 from HLTriggerOffline.Exotica.analyses.hltExoticaPureMET_cff           import PureMETPSet
0035 from HLTriggerOffline.Exotica.analyses.hltExoticaMETplusTrack_cff      import METplusTrackPSet
0036 from HLTriggerOffline.Exotica.analyses.hltExoticaMonojet_cff           import MonojetPSet
0037 from HLTriggerOffline.Exotica.analyses.hltExoticaMonojetBackup_cff     import MonojetBackupPSet
0038 from HLTriggerOffline.Exotica.analyses.hltExoticaEleMu_cff             import EleMuPSet
0039 from HLTriggerOffline.Exotica.analyses.hltExoticaHTDisplacedJets_cff   import HTDisplacedJetsPSet
0040 from HLTriggerOffline.Exotica.analyses.hltExoticaPhotonMET_cff         import PhotonMETPSet
0041 from HLTriggerOffline.Exotica.analyses.hltExoticaSingleMuon_cff        import SingleMuonPSet
0042 from HLTriggerOffline.Exotica.analyses.hltExoticaDSTJets_cff           import DSTJetsPSet
0043 from HLTriggerOffline.Exotica.analyses.hltExoticaDSTMuons_cff          import DSTMuonsPSet
0044 from HLTriggerOffline.Exotica.analyses.hltExoticaTracklessJets_cff     import TracklessJetsPSet
0045 
0046 from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
0047 hltExoticaValidator = DQMEDAnalyzer(
0048 
0049     "HLTExoticaValidator",
0050         
0051     hltProcessName = cms.string("HLT"),
0052     
0053     # -- The name of the analysis. This is the name that
0054     # appears in Run summary/Exotica/ANALYSIS_NAME
0055 
0056     analyses       = cms.vstring(
0057         "LowPtTrimuon",
0058         "HighPtDimuon",
0059         "HighPtDielectron",
0060         "LowPtDimuon",
0061         "LowPtDielectron",
0062         "HighPtElectron",
0063         "LowPtElectron",
0064         "HighPtPhoton",
0065         "DiPhoton",
0066         "DisplacedDiPhoton",
0067         "SingleMuon",
0068         "JetNoBptx",
0069         "MuonNoBptx",
0070         "PFHT",
0071         "CaloHT",
0072         "DisplacedMuEG",
0073         "DisplacedDimuon",
0074         "DisplacedL2Dimuon",
0075         "PureMET",
0076         "METplusTrack",
0077         "Monojet",
0078         "MonojetBackup",
0079         "EleMu",
0080         "PhotonMET",
0081         "HTDisplacedJets",
0082         "DSTJets",
0083         "DSTMuons",
0084         "TracklessJets"
0085         ),
0086     
0087     # -- The instance name of the reco::GenParticles collection
0088     genParticleLabel = cms.string("genParticles"),
0089 
0090     # -- The instance name of the reco::BeamSpot collection
0091     beamSpotLabel = cms.string("offlineBeamSpot"),
0092 
0093     # -- The binning of the Pt efficiency plots
0094     # NOTICE: these DEFINITELY should be tuned for the different analyses.
0095     # What we have there is a generic, 0-100 GeV uniform binning.
0096     parametersTurnOn = cms.vdouble( 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20,
0097                                    22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
0098                                    42, 44, 46, 48, 50, 52, 54, 56, 58, 60,
0099                                    62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
0100                                    82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
0101                                    ),
0102 
0103     # TurnOn for SumEt
0104     parametersTurnOnSumEt = cms.vdouble(    0,  100,  200,  300,  400,  500,  600,  700,  800,  900,
0105                                          1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900,  
0106                                          2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900,  
0107                                          3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800, 3900,  
0108                                          4000, 4100, 4200, 4300, 4400, 4500, 4600, 4700, 4800, 4900,  
0109                                          5000, 5100, 5200, 5300, 5400, 5500, 5600, 5700, 5800, 5900,  
0110                                          6000, 6100, 6200, 6300, 6400, 6500, 6600, 6700, 6800, 6900,  
0111                                          7000
0112                                        ),
0113 
0114     # -- (NBins, minVal, maxValue) for the Eta and Phi efficiency plots
0115     parametersEta      = cms.vdouble(48, -2.400, 2.400),
0116     parametersPhi      = cms.vdouble(50, -3.142, 3.142),
0117     parametersDxy      = cms.vdouble(50, -0.015, 0.015),
0118 
0119     # Definition of generic cuts on generated and reconstructed objects (note that
0120     # these cuts can be overloaded inside a particular analysis)
0121     # Objects recognized: Mu Ele Photon PFTau Jet MET => recognized by the method EVTColContainer::getTypeString
0122     # Syntax in the strings: valid syntax of the StringCutObjectSelector class
0123 
0124     # --- Muons
0125     Mu_genCut     = cms.string("pt > 10 && abs(eta) < 2.4 && abs(pdgId) == 13 && (isPromptFinalState || isDirectPromptTauDecayProductFinalState)"),
0126     Mu_recCut     = cms.string("pt > 10 && abs(eta) < 2.4 && isPFMuon && (isTrackerMuon || isGlobalMuon)"), # Loose Muon
0127     
0128     # --- MuonTracks
0129     #refittedStandAloneMuons_genCut  = cms.string("pt > 10 && abs(eta) < 2.4 && abs(pdgId) == 13 && status == 1"),
0130     refittedStandAloneMuons_genCut  = cms.string("pt > 10 && abs(eta) < 2.4"),
0131     #refittedStandAloneMuons_recCut  = cms.string("pt > 10 && abs(eta) < 2.4 && isPFMuon && (isTrackerMuon || isGlobalMuon)"), # Loose Muon
0132     refittedStandAloneMuons_recCut  = cms.string("pt > 10 && abs(eta) < 2.4"), 
0133 
0134     # --- Electrons
0135     Ele_genCut      = cms.string("pt > 10 && (abs(eta)<1.444 || abs(eta)>1.566) && abs(eta)<2.5 && abs(pdgId) == 11 && (isPromptFinalState||isDirectPromptTauDecayProductFinalState)"),
0136     Ele_recCut      = cms.string(
0137         "pt > 10 && (abs(eta)<1.444 || abs(eta)>1.566) && abs(eta)< 2.5 "+
0138         " && hadronicOverEm < 0.05 "+ #&& eSuperClusterOverP > 0.5 && eSuperClusterOverP < 1.5 "+
0139         " && abs(deltaEtaSuperClusterTrackAtVtx)<0.007 &&  abs(deltaPhiSuperClusterTrackAtVtx)<0.06 "+
0140         " && sigmaIetaIeta<0.03 "+
0141         " && (pfIsolationVariables.sumChargedParticlePt + pfIsolationVariables.sumNeutralHadronEtHighThreshold + pfIsolationVariables.sumPhotonEtHighThreshold )/pt < 0.10 "+
0142         " && abs(1/energy - 1/p)<0.05"),
0143         #" && abs(trackPositionAtVtx.z-vertexPosition.z)<"),
0144     #" && "), # Loose-like electron
0145 
0146     # --- Photons
0147     Photon_genCut     = cms.string("pt > 20 && abs(eta) < 2.4 && abs(pdgId) == 22 && isPromptFinalState"),
0148     Photon_recCut     = cms.string("pt > 20 && abs(eta) < 2.4"), # STILL MISSING THIS INFO
0149     Photon_genCut_leading  = cms.string("pt > 150 "),
0150     Photon_recCut_leading  = cms.string("pt > 150 "),
0151    
0152     # --- Taus: 
0153     PFTau_genCut      = cms.string("pt > 20 && abs(eta) < 2.4 && abs(pdgId) == 15 && isPromptDecayed"),
0154     PFTau_recCut      = cms.string("pt > 20 && abs(eta) < 2.4"),  # STILL MISSING THIS INFO
0155    
0156     # --- Jets: 
0157     PFJet_genCut      = cms.string("pt > 30 && abs(eta) < 2.4"),
0158     PFJet_recCut      = cms.string("pt > 30 && abs(eta) < 2.4 &&"+
0159                                      "(neutralHadronEnergy + HFHadronEnergy)/energy < 0.99 &&"+
0160                                      "neutralEmEnergyFraction < 0.99 &&"+
0161                                      "numberOfDaughters > 1 &&"+
0162                                      "chargedHadronEnergyFraction > 0 &&"+
0163                                      "chargedMultiplicity > 0 && "+
0164                                      "chargedEmEnergyFraction < 0.99"),  # Loose PFJet
0165 
0166     CaloJet_genCut      = cms.string("pt > 30 && abs(eta) < 2.4"),
0167     CaloJet_recCut      = cms.string("pt > 30 && abs(eta) < 2.4"), # find realistic cuts
0168    
0169     # --- MET 
0170     MET_genCut      = cms.string("pt > 75"),
0171     MET_recCut      = cms.string("pt > 75"),  
0172    
0173     PFMET_genCut    = cms.string("pt > 75"),
0174     PFMET_recCut    = cms.string("pt > 75"),  
0175 
0176     PFMHT_genCut    = cms.string("pt > 75"),
0177     PFMHT_recCut    = cms.string("pt > 75"),  
0178    
0179     GenMET_genCut   = cms.string("pt > 75"),
0180     GenMET_recCut   = cms.string("pt > 75"),  
0181    
0182     Track_genCut      = cms.string("pt > 50"),
0183     Track_recCut      = cms.string("pt > 50"),
0184     
0185     CaloMET_genCut  = cms.string("pt > 75"),
0186     CaloMET_recCut  = cms.string("pt > 75"),
0187 
0188     CaloMHT_genCut  = cms.string("pt > 75"),
0189     CaloMHT_recCut  = cms.string("pt > 75"),  
0190    
0191     hltMET_genCut   = cms.string("pt > 75"),
0192     hltMET_recCut   = cms.string("pt > 75"),  
0193    
0194     # The specific parameters per analysis: the name of the parameter set has to be 
0195     # the same as the defined ones in the 'analysis' datamember. Each analysis is a PSet
0196     # with the mandatory attributes:
0197     #    - hltPathsToCheck (cms.vstring) : a list of all the trigger pats to be checked 
0198     #                 in this analysis. Up to the version number _v, but not including 
0199     #                 the number in order to avoid this version dependence. Example: HLT_Mu18_v
0200     #    - recVarLabel (cms.string): where Var is Mu, Ele, Photon, MET, Jet, PFTau, MET. This
0201     #                 attribute is the name of the INSTANCE LABEL for each RECO collection to 
0202     #                 be considered in the analysis. Note that the trigger paths rely on some 
0203     #                 objects which need to be defined here, otherwise the code will complain. 
0204     #    - minCandidates (cms.uint32): the minimum number of GEN/RECO objects in the event
0205     # Besides the mandatory attributes, you can redefine the generation and reconstruction cuts
0206     # for any object you want.
0207     #    * Var_genCut, Var_recCut (cms.string): where Var=Mu, Ele, Photon, Jet, PFTau, MET (see above)
0208 
0209     LowPtTrimuon     = LowPtTrimuonPSet,
0210     HighPtDimuon     = HighPtDimuonPSet,
0211     HighPtDielectron = HighPtDielectronPSet,
0212     LowPtDimuon      = LowPtDimuonPSet,
0213     LowPtDielectron  = LowPtDielectronPSet,
0214     HighPtElectron   = HighPtElectronPSet,
0215     LowPtElectron    = LowPtElectronPSet,
0216     HighPtPhoton     = HighPtPhotonPSet,                                 
0217     DiPhoton         = DiPhotonPSet,                                 
0218     DisplacedDiPhoton = DisplacedDiPhotonPSet,
0219     SingleMuon       = SingleMuonPSet,
0220     JetNoBptx        = JetNoBptxPSet,
0221     MuonNoBptx       = MuonNoBptxPSet,
0222     DisplacedMuEG    = DisplacedMuEGPSet,
0223     DisplacedDimuon  = DisplacedDimuonPSet,
0224     DisplacedL2Dimuon = DisplacedL2DimuonPSet,
0225     PureMET          = PureMETPSet,                                 
0226     METplusTrack     = METplusTrackPSet,                                 
0227     Monojet          = MonojetPSet,
0228     MonojetBackup    = MonojetBackupPSet,
0229     PFHT             = PFHTPSet,
0230     CaloHT           = CaloHTPSet,
0231     EleMu            = EleMuPSet,
0232     PhotonMET        = PhotonMETPSet,
0233     HTDisplacedJets  = HTDisplacedJetsPSet, 
0234     DSTJets          = DSTJetsPSet, 
0235     DSTMuons         = DSTMuonsPSet,
0236     TracklessJets    = TracklessJetsPSet
0237 )