CMS 3D CMS Logo

SimHitsValidationHcal.h
Go to the documentation of this file.
1 #ifndef ValidationSimHitsValidationHcal_H
2 #define ValidationSimHitsValidationHcal_H
3 
6 
11 
14 
17 
22 
23 #include <iostream>
24 #include <fstream>
25 #include <vector>
26 #include <map>
27 #include <string>
28 
30 public:
31 
33  ~SimHitsValidationHcal() override;
34  static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
35 
36 protected:
37 
38  void analyze (const edm::Event& e, const edm::EventSetup& c) override;
39  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
40 
41  void analyzeHits (std::vector<PCaloHit> &);
42 
43 private:
44  struct energysum {
45  double e25, e50, e100, e250;
46  energysum() {e25=e50=e100=e250=0.0;}
47  };
48 
49  struct idType {
50  idType() {subdet=HcalEmpty; z=depth1=depth2=0;}
51  idType(HcalSubdetector det, int iz, int d1, int d2) {subdet=det; z=iz; depth1=d1; depth2=d2;}
53  int z, depth1, depth2;
54  };
55 
56  struct etaRange {
57  etaRange() {bins=0; low=high=0;}
58  etaRange(int bin, double min, double max) {bins=bin; low=min; high=max;}
59  int bins;
60  double low, high;
61  };
62 
63  std::vector<std::pair<std::string,std::string> > getHistogramTypes();
65  std::pair<int,int> histId(int subdet, int eta, int depth, unsigned int dep);
66 
71  std::vector<idType> types;
75 
76  std::vector<MonitorElement*> meHcalHitEta_, meHcalHitTimeEta_;
77  std::vector<MonitorElement*> meHcalEnergyl25_, meHcalEnergyl50_;
78  std::vector<MonitorElement*> meHcalEnergyl100_, meHcalEnergyl250_;
83 };
84 
85 #endif
SimHitsValidationHcal(const edm::ParameterSet &ps)
MonitorElement * meEnergy_HF
std::vector< MonitorElement * > meHcalHitEta_
const HcalDDDRecConstants * hcons
MonitorElement * metime_enweighted_HO
std::vector< MonitorElement * > meHcalEnergyl25_
idType(HcalSubdetector det, int iz, int d1, int d2)
void analyze(const edm::Event &e, const edm::EventSetup &c) override
MonitorElement * metime_enweighted_HB
MonitorElement * meEnergy_HB
std::vector< MonitorElement * > meHcalEnergyl250_
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< idType > types
T min(T a, T b)
Definition: MathUtil.h:58
MonitorElement * metime_enweighted_HF
std::vector< MonitorElement * > meHcalEnergyl100_
std::vector< MonitorElement * > meHcalEnergyl50_
MonitorElement * metime_enweighted_HE
bin
set the eta bin as selection string.
MonitorElement * meEnergy_HE
etaRange(int bin, double min, double max)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< MonitorElement * > meHcalHitTimeEta_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::pair< int, int > histId(int subdet, int eta, int depth, unsigned int dep)
MonitorElement * meEnergy_HO
edm::EDGetTokenT< edm::PCaloHitContainer > tok_hits_
Definition: Run.h:44
std::vector< std::pair< std::string, std::string > > getHistogramTypes()
void analyzeHits(std::vector< PCaloHit > &)