CMS 3D CMS Logo

HcalSimHitsValidation.h
Go to the documentation of this file.
1 #ifndef HcalSimHitsValidation_H
2 #define HcalSimHitsValidation_H
3 
14 
16 
19 
23 
30 
33 
34 #include <algorithm>
35 #include <cmath>
36 #include <ostream>
37 #include <string>
38 #include <utility>
39 #include <vector>
40 
42 public:
44  ~HcalSimHitsValidation() override;
45 
46  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
47 
48  void analyze(edm::Event const &ev, edm::EventSetup const &c) override;
49  void endJob() override;
50 
51 private:
52  double dR(double eta1, double phi1, double eta2, double phi2);
53  double phi12(double phi1, double en1, double phi2, double en2);
54  double dPhiWsign(double phi1, double phi2);
55 
58 
63 
67 
69  bool auxPlots_;
70 
71  // Hits counters
72  std::vector<MonitorElement *> Nhb;
73  std::vector<MonitorElement *> Nhe;
75  std::vector<MonitorElement *> Nhf;
76 
77  // In ALL other cases : 2D ieta-iphi maps
78  // without and with cuts (a la "Scheme B") on energy
79  // - only in the cone around particle for single-part samples (mc = "yes")
80  // - for all calls in milti-particle samples (mc = "no")
81 
82  std::vector<MonitorElement *> emean_vs_ieta_HB;
83  std::vector<MonitorElement *> emean_vs_ieta_HE;
85  std::vector<MonitorElement *> emean_vs_ieta_HF;
86 
87  std::vector<MonitorElement *> occupancy_vs_ieta_HB;
88  std::vector<MonitorElement *> occupancy_vs_ieta_HE;
90  std::vector<MonitorElement *> occupancy_vs_ieta_HF;
91 
92  // for single monoenergetic particles - cone collection profile vs ieta.
96 
97  // energy of rechits
98  std::vector<MonitorElement *> meSimHitsEnergyHB;
99  std::vector<MonitorElement *> meSimHitsEnergyHE;
101  std::vector<MonitorElement *> meSimHitsEnergyHF;
102 
104 
105  // counter
106  int nevtot;
107 
108  // sampling factors
109  double hf1_;
110  double hf2_;
111 };
112 
113 #endif
MonitorElement * meEnConeEtaProfile
double dR(double eta1, double phi1, double eta2, double phi2)
std::vector< MonitorElement * > emean_vs_ieta_HF
double phi12(double phi1, double en1, double phi2, double en2)
std::vector< MonitorElement * > occupancy_vs_ieta_HF
void analyze(edm::Event const &ev, edm::EventSetup const &c) override
std::vector< MonitorElement * > Nhf
std::vector< MonitorElement * > meSimHitsEnergyHE
MonitorElement * meSimHitsEnergyHO
bool ev
edm::EDGetTokenT< edm::PCaloHitContainer > tok_ecalEB_
MonitorElement * meEnConeEtaProfile_E
std::vector< MonitorElement * > emean_vs_ieta_HB
std::vector< MonitorElement * > meSimHitsEnergyHB
edm::EDGetTokenT< edm::PCaloHitContainer > tok_ecalEE_
MonitorElement * emean_vs_ieta_HO
std::vector< MonitorElement * > emean_vs_ieta_HE
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hcal_
double dPhiWsign(double phi1, double phi2)
std::vector< MonitorElement * > occupancy_vs_ieta_HE
HcalSimHitsValidation(edm::ParameterSet const &conf)
const HcalDDDRecConstants * hcons
MonitorElement * meEnConeEtaProfile_EH
MonitorElement * occupancy_vs_ieta_HO
edm::ESHandle< CaloGeometry > geometry
std::vector< MonitorElement * > occupancy_vs_ieta_HB
edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::vector< MonitorElement * > Nhb
std::vector< MonitorElement * > Nhe
Definition: Run.h:45
std::vector< MonitorElement * > meSimHitsEnergyHF