CMS 3D CMS Logo

L1TEGammaOffline.h
Go to the documentation of this file.
1 #ifndef L1TEGammaOffline_H
2 #define L1TEGammaOffline_H
3 
4 //Framework
8 
9 //event
13 
14 //DQM
18 
19 //Candidate handling
21 
22 // Electron & photon collections
25 
26 // Vertex utilities
29 
30 // Trigger
34 
35 // stage2 collections:
37 
39 public:
41  ~L1TEGammaOffline() override;
42 
44 
45  static const std::map<std::string, unsigned int> PlotConfigNames;
46 
47 protected:
48  void dqmBeginRun(edm::Run const&, edm::EventSetup const&) override;
49  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
50  void analyze(edm::Event const& e, edm::EventSetup const& eSetup) override;
51  void dqmEndRun(edm::Run const& run, edm::EventSetup const& eSetup) override;
52  void endJob() override;
53 
54 private:
55  bool passesLooseEleId(reco::GsfElectron const& electron) const;
56  bool passesMediumEleId(reco::GsfElectron const& electron) const;
59 
60  //other functions
61  double Distance(const reco::Candidate& c1, const reco::Candidate& c2);
62  double DistancePhi(const reco::Candidate& c1, const reco::Candidate& c2);
63  double calcDeltaPhi(double phi1, double phi2);
64 
65  void fillElectrons(edm::Event const& e, const unsigned int nVertex);
66  void fillPhotons(edm::Event const& e, const unsigned int nVertex);
68  bool matchesAnHLTObject(double eta, double phi) const;
69 
71 
73 
74  //variables from config file
82  std::vector<std::string> triggerNames_;
85 
87 
88  std::vector<double> electronEfficiencyThresholds_;
89  std::vector<double> electronEfficiencyBins_;
91  std::vector<double> deepInspectionElectronThresholds_;
92 
93  std::vector<double> photonEfficiencyThresholds_;
94  std::vector<double> photonEfficiencyBins_;
95 
99 
103 
105  std::vector<unsigned int> triggerIndices_;
109 
110  // TODO: add turn-on cuts (vectors of doubles)
111  // Histograms
114 
115  // electron reco vs L1
119 
123 
125 
126  // electron resolutions
130 
134 
136 
137  // electron turn-ons
138  std::map<double, MonitorElement*> h_efficiencyElectronET_EB_pass_;
139  std::map<double, MonitorElement*> h_efficiencyElectronET_EE_pass_;
140  std::map<double, MonitorElement*> h_efficiencyElectronET_EB_EE_pass_;
141  std::map<double, MonitorElement*> h_efficiencyElectronPhi_vs_Eta_pass_;
142  // for deep inspection only
143  std::map<double, MonitorElement*> h_efficiencyElectronEta_pass_;
144  std::map<double, MonitorElement*> h_efficiencyElectronPhi_pass_;
145  std::map<double, MonitorElement*> h_efficiencyElectronNVertex_pass_;
146 
147  // we could drop the map here, but L1TEfficiency_Harvesting expects
148  // identical names except for the suffix
149  std::map<double, MonitorElement*> h_efficiencyElectronET_EB_total_;
150  std::map<double, MonitorElement*> h_efficiencyElectronET_EE_total_;
151  std::map<double, MonitorElement*> h_efficiencyElectronET_EB_EE_total_;
152  std::map<double, MonitorElement*> h_efficiencyElectronPhi_vs_Eta_total_;
153  // for deep inspection only
154  std::map<double, MonitorElement*> h_efficiencyElectronEta_total_;
155  std::map<double, MonitorElement*> h_efficiencyElectronPhi_total_;
156  std::map<double, MonitorElement*> h_efficiencyElectronNVertex_total_;
157 
158  // photons
162 
166 
168 
169  // electron resolutions
173 
177 
179 
180  // photon turn-ons
181  std::map<double, MonitorElement*> h_efficiencyPhotonET_EB_pass_;
182  std::map<double, MonitorElement*> h_efficiencyPhotonET_EE_pass_;
183  std::map<double, MonitorElement*> h_efficiencyPhotonET_EB_EE_pass_;
184 
185  // we could drop the map here, but L1TEfficiency_Harvesting expects
186  // identical names except for the suffix
187  std::map<double, MonitorElement*> h_efficiencyPhotonET_EB_total_;
188  std::map<double, MonitorElement*> h_efficiencyPhotonET_EE_total_;
189  std::map<double, MonitorElement*> h_efficiencyPhotonET_EB_EE_total_;
190 };
191 
192 #endif
void bookElectronHistos(DQMStore::IBooker &)
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_pass_
void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override
void fillPhotons(edm::Event const &e, const unsigned int nVertex)
std::vector< double > electronEfficiencyBins_
MonitorElement * h_resolutionElectronPhi_EB_EE_
MonitorElement * h_L1EGammaPhivsElectronPhi_EE_
edm::EDGetTokenT< reco::GsfElectronCollection > theGsfElectronCollection_
math::XYZPoint PVPoint_
MonitorElement * h_tagAndProbeMass_
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_total_
MonitorElement * h_L1EGammaETvsElectronET_EB_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_pass_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_
double maxDeltaRForL1Matching_
double calcDeltaPhi(double phi1, double phi2)
bool passesMediumEleId(reco::GsfElectron const &electron) const
MonitorElement * h_L1EGammaETvsPhotonET_EB_
std::vector< HistDefinition > HistDefinitions
edm::EDGetTokenT< std::vector< reco::Photon > > thePhotonCollection_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_pass_
std::string histFolder_
MonitorElement * h_L1EGammaETvsPhotonET_EE_
void fillElectrons(edm::Event const &e, const unsigned int nVertex)
std::map< double, MonitorElement * > h_efficiencyElectronPhi_pass_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_total_
MonitorElement * h_resolutionPhotonET_EE_
MonitorElement * h_resolutionElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_total_
dqmoffline::l1t::HistDefinitions histDefinitions_
bool passesLooseEleId(reco::GsfElectron const &electron) const
void bookPhotonHistos(DQMStore::IBooker &)
~L1TEGammaOffline() override
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_total_
L1TEGammaOffline(const edm::ParameterSet &ps)
MonitorElement * h_L1EGammaETvsElectronET_EB_
std::map< double, MonitorElement * > h_efficiencyElectronPhi_vs_Eta_pass_
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_EE_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_EE_pass_
MonitorElement * h_resolutionElectronET_EE_
edm::EDGetTokenT< trigger::TriggerEvent > triggerInputTag_
void dqmEndRun(edm::Run const &run, edm::EventSetup const &eSetup) override
void normalise2DHistogramsToBinArea()
void endJob() override
double maxDeltaRForHLTMatching_
std::vector< double > electronEfficiencyThresholds_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EB_EE_
double tagAndProbleInvariantMass_
std::map< double, MonitorElement * > h_efficiencyElectronEta_pass_
std::map< double, MonitorElement * > h_efficiencyElectronNVertex_total_
MonitorElement * h_L1EGammaEtavsElectronEta_
std::string triggerProcess_
MonitorElement * h_resolutionPhotonET_EB_
edm::EDGetTokenT< l1t::EGammaBxCollection > stage2CaloLayer2EGammaToken_
MonitorElement * h_resolutionElectronEta_
reco::GsfElectron tagElectron_
void analyze(edm::Event const &e, edm::EventSetup const &eSetup) override
MonitorElement * h_resolutionPhotonEta_
MonitorElement * h_L1EGammaPhivsPhotonPhi_EE_
edm::EDGetTokenT< edm::TriggerResults > triggerResultsInputTag_
static const std::map< std::string, unsigned int > PlotConfigNames
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_total_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
HLTConfigProvider hltConfig_
bool findTagAndProbePair(edm::Handle< reco::GsfElectronCollection > const &electrons)
std::map< double, MonitorElement * > h_efficiencyPhotonET_EB_total_
std::string efficiencyFolder_
std::map< double, MonitorElement * > h_efficiencyElectronET_EE_pass_
std::vector< double > deepInspectionElectronThresholds_
reco::GsfElectron probeElectron_
bool matchesAnHLTObject(double eta, double phi) const
MonitorElement * h_resolutionPhotonPhi_EB_EE_
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::map< double, MonitorElement * > h_efficiencyElectronPhi_total_
MonitorElement * h_resolutionElectronET_EB_EE_
std::map< double, MonitorElement * > h_efficiencyElectronEta_total_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_EE_total_
std::vector< std::string > triggerNames_
MonitorElement * h_resolutionElectronPhi_EB_
edm::TriggerResults triggerResults_
MonitorElement * h_nVertex_
MonitorElement * h_resolutionPhotonPhi_EB_
std::vector< double > photonEfficiencyBins_
MonitorElement * h_L1EGammaETvsPhotonET_EB_EE_
MonitorElement * h_L1EGammaETvsElectronET_EE_
edm::EDGetTokenT< reco::BeamSpot > theBSCollection_
MonitorElement * h_resolutionElectronPhi_EE_
MonitorElement * h_L1EGammaEtavsPhotonEta_
MonitorElement * h_resolutionPhotonPhi_EE_
double DistancePhi(const reco::Candidate &c1, const reco::Candidate &c2)
edm::EDGetTokenT< reco::VertexCollection > thePVCollection_
double Distance(const reco::Candidate &c1, const reco::Candidate &c2)
std::vector< unsigned int > triggerIndices_
std::vector< double > photonEfficiencyThresholds_
std::map< double, MonitorElement * > h_efficiencyElectronET_EB_pass_
MonitorElement * h_L1EGammaPhivsElectronPhi_EB_
std::map< double, MonitorElement * > h_efficiencyPhotonET_EE_pass_
MonitorElement * h_resolutionPhotonET_EB_EE_
double recoToL1TThresholdFactor_
trigger::TriggerEvent triggerEvent_
Definition: Run.h:45