CMS 3D CMS Logo

HcalRecHitsValidation.h
Go to the documentation of this file.
1 #ifndef HcalRecHitsValidation_H
2 #define HcalRecHitsValidation_H
3 
13 
16 
20 
30 
33 
35 #include <algorithm>
36 #include <cmath>
37 #include <ostream>
38 #include <string>
39 #include <utility>
40 #include <vector>
41 
43 // channel status
46 
49 
50 // severity level assignment for HCAL
53 
54 // severity level assignment for ECAL
56 
58 public:
60  ~HcalRecHitsValidation() override = default;
61  void analyze(edm::Event const &ev, edm::EventSetup const &c) override;
62 
63  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
64 
65 private:
66  virtual void fillRecHitsTmp(int subdet_, edm::Event const &ev);
67  double dR(double eta1, double phi1, double eta2, double phi2);
68  double phi12(double phi1, double en1, double phi2, double en2);
69  double dPhiWsign(double phi1, double phi2);
70 
77  const bool testNumber_;
78 
79  // RecHit Collection input tags
89 
92 
93  // choice of subdetector in config : noise/HB/HE/HO/HF/ALL (0/1/2/3/4/5)
94  int subdet_;
95 
96  // single/multi-particle sample (1/2)
97  int iz;
98  int imc;
99 
100  // In ALL other cases : 2D ieta-iphi maps
101  // without and with cuts (a la "Scheme B") on energy
102  // - only in the cone around particle for single-part samples (mc = "yes")
103  // - for all calls in milti-particle samples (mc = "no")
104 
108 
109  // energy of rechits
114 
118 
121 
124 
127 
128  // Histo (2D plot) for sum of RecHits vs SimHits (hcal only)
135  // profile histo (2D plot) for sum of RecHits vs SimHits (hcal only)
142 
143  // 2D plot of sum of RecHits in HCAL as function of ECAL's one
146 
147  // Chi2
150 
153 
155 
156  // Filling vectors with essential RecHits data
157  std::vector<int> csub;
158  std::vector<int> cieta;
159  std::vector<int> ciphi;
160  std::vector<int> cdepth;
161  std::vector<double> cen;
162  std::vector<double> ceta;
163  std::vector<double> cphi;
164  std::vector<double> ctime;
165  std::vector<double> cz;
166  std::vector<uint32_t> cstwd;
167  std::vector<uint32_t> cauxstwd;
168  std::vector<double> cchi2;
169 
170  // counter
171  int nevtot;
172 };
173 
174 #endif
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > tok_HRNDC_
std::vector< double > cchi2
const edm::InputTag EBRecHitCollectionLabel_
const std::string ecalselector_
MonitorElement * meRecHitsM2Chi2HB
MonitorElement * meRecHitsEnergyHF
double phi12(double phi1, double en1, double phi2, double en2)
MonitorElement * meTEprofileHE_Low
std::vector< uint32_t > cstwd
const edm::InputTag EERecHitCollectionLabel_
MonitorElement * meLog10Chi2profileHB
const std::string topFolderName_
MonitorElement * meEnConeEtaProfile
double dPhiWsign(double phi1, double phi2)
MonitorElement * meRecHitSimHitProfileHF
MonitorElement * meRecHitSimHitProfileHFS
MonitorElement * meEnergyHcalVsEcalHE
MonitorElement * meRecHitsEnergyHB
std::vector< double > ceta
MonitorElement * meRecHitSimHitHF
MonitorElement * meRecHitsEnergyHE
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_hh_
MonitorElement * meRecHitSimHitProfileHE
MonitorElement * meEnConeEtaProfile_E
const CaloGeometry * geometry_
MonitorElement * meRecHitSimHitHB
MonitorElement * meRecHitSimHitHFS
const std::string hcalselector_
std::vector< double > cphi
MonitorElement * meEnergyHcalVsEcalHB
MonitorElement * meRecHitsM2Chi2HE
MonitorElement * meTEprofileHB
const std::string outputFile_
virtual void fillRecHitsTmp(int subdet_, edm::Event const &ev)
double dR(double eta1, double phi1, double eta2, double phi2)
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
MonitorElement * meLog10Chi2profileHE
~HcalRecHitsValidation() override=default
MonitorElement * meRecHitSimHitHO
MonitorElement * meRecHitSimHitProfileHB
MonitorElement * meTEprofileHF_Low
const edm::EDGetTokenT< EBRecHitCollection > tok_EB_
MonitorElement * meTEprofileHO_High
MonitorElement * meTEprofileHE
const edm::EDGetTokenT< EERecHitCollection > tok_EE_
MonitorElement * meTEprofileHF
MonitorElement * meRecHitSimHitProfileHO
void analyze(edm::Event const &ev, edm::EventSetup const &c) override
std::vector< double > ctime
MonitorElement * meEnConeEtaProfile_EH
MonitorElement * meRecHitSimHitProfileHFL
std::vector< double > cz
MonitorElement * meRecHitsEnergyHO
std::vector< uint32_t > cauxstwd
MonitorElement * meRecHitSimHitHFL
const edm::EDGetTokenT< edm::HepMCProduct > tok_evt_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * meTEprofileHO
const edm::EDGetTokenT< HORecHitCollection > tok_ho_
const edm::EDGetTokenT< HFRecHitCollection > tok_hf_
MonitorElement * meTEprofileHB_Low
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_Geom_
MonitorElement * meRecHitSimHitHE
HcalRecHitsValidation(edm::ParameterSet const &conf)
MonitorElement * meTEprofileHB_High
std::vector< double > cen
Definition: Run.h:45