CMS 3D CMS Logo

HcalSimHitsValidation.h
Go to the documentation of this file.
1 #ifndef HcalSimHitsValidation_H
2 #define HcalSimHitsValidation_H
3 
13 
15 
18 
22 
31 
34 
35 #include <algorithm>
36 #include <cmath>
37 #include <ostream>
38 #include <string>
39 #include <utility>
40 #include <vector>
41 
43 public:
45  ~HcalSimHitsValidation() override = default;
46 
47  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
48 
49  void analyze(edm::Event const &ev, edm::EventSetup const &c) override;
50  void endJob() override;
51 
52 private:
53  double dR(double eta1, double phi1, double eta2, double phi2);
54  double phi12(double phi1, double en1, double phi2, double en2);
55  double dPhiWsign(double phi1, double phi2);
56 
58 
59  // sampling factors
60  const double hf1_;
61  const double hf2_;
62 
64  const bool testNumber_;
65  const bool auxPlots_;
66 
73 
78 
79  // Hits counters
80  std::vector<MonitorElement *> Nhb;
81  std::vector<MonitorElement *> Nhe;
83  std::vector<MonitorElement *> Nhf;
84 
85  // In ALL other cases : 2D ieta-iphi maps
86  // without and with cuts (a la "Scheme B") on energy
87  // - only in the cone around particle for single-part samples (mc = "yes")
88  // - for all calls in milti-particle samples (mc = "no")
89 
90  std::vector<MonitorElement *> emean_vs_ieta_HB;
91  std::vector<MonitorElement *> emean_vs_ieta_HE;
93  std::vector<MonitorElement *> emean_vs_ieta_HF;
94 
95  std::vector<MonitorElement *> occupancy_vs_ieta_HB;
96  std::vector<MonitorElement *> occupancy_vs_ieta_HE;
98  std::vector<MonitorElement *> occupancy_vs_ieta_HF;
99 
100  // for single monoenergetic particles - cone collection profile vs ieta.
104 
105  // energy of rechits
106  std::vector<MonitorElement *> meSimHitsEnergyHB;
107  std::vector<MonitorElement *> meSimHitsEnergyHE;
109  std::vector<MonitorElement *> meSimHitsEnergyHF;
110 
111  // counter
112  int nevtot;
113 };
114 
115 #endif
MonitorElement * meEnConeEtaProfile
double dR(double eta1, double phi1, double eta2, double phi2)
~HcalSimHitsValidation() override=default
std::vector< MonitorElement * > emean_vs_ieta_HF
double phi12(double phi1, double en1, double phi2, double en2)
const edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_ecalEB_
std::vector< MonitorElement * > occupancy_vs_ieta_HF
void analyze(edm::Event const &ev, edm::EventSetup const &c) override
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
const CaloGeometry * geometry_
std::vector< MonitorElement * > Nhf
std::vector< MonitorElement * > meSimHitsEnergyHE
const std::string outputFile_
MonitorElement * meSimHitsEnergyHO
const std::string g4Label_
MonitorElement * meEnConeEtaProfile_E
std::vector< MonitorElement * > emean_vs_ieta_HB
std::vector< MonitorElement * > meSimHitsEnergyHB
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_HRNDC_
MonitorElement * emean_vs_ieta_HO
const std::string hcalHits_
std::vector< MonitorElement * > emean_vs_ieta_HE
double dPhiWsign(double phi1, double phi2)
std::vector< MonitorElement * > occupancy_vs_ieta_HE
HcalSimHitsValidation(edm::ParameterSet const &conf)
const HcalDDDRecConstants * hcons_
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_ecalEE_
MonitorElement * meEnConeEtaProfile_EH
MonitorElement * occupancy_vs_ieta_HO
std::vector< MonitorElement * > occupancy_vs_ieta_HB
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_hcal_
std::vector< MonitorElement * > Nhb
std::vector< MonitorElement * > Nhe
Definition: Run.h:45
std::vector< MonitorElement * > meSimHitsEnergyHF