CMS 3D CMS Logo

APVGainHelpers.h
Go to the documentation of this file.
1 #ifndef CALIBTRACKER_SISTRIPCHANNELGAIN_APVGAINHELPERS_H
2 #define CALIBTRACKER_SISTRIPCHANNELGAIN_APVGAINHELPERS_H
3 
8 
9 #include <string>
10 #include <vector>
11 #include <utility>
12 #include <cstdint>
13 #include <unordered_map>
14 
15 namespace APVGain {
16 
18 
19  int subdetectorId(uint32_t);
20  int subdetectorId(const std::string&);
21  int subdetectorSide(uint32_t, const TrackerTopology*);
22  int subdetectorSide(const std::string&);
23  int subdetectorPlane(uint32_t, const TrackerTopology*);
24  int subdetectorPlane(const std::string&);
25 
26  std::vector<std::pair<std::string, std::string>> monHnames(std::vector<std::string>, bool, const char* tag);
27 
28  struct APVmon {
29  public:
30  APVmon(int v1, int v2, int v3, MonitorElement* v4)
32 
34 
36 
38 
39  MonitorElement* getMonitor() { return m_monitor; }
40 
41  void printAll() {
42  LogDebug("APVGainHelpers") << "subDetectorID:" << m_subdetectorId << std::endl;
43  LogDebug("APVGainHelpers") << "subDetectorSide:" << m_subdetectorSide << std::endl;
44  LogDebug("APVGainHelpers") << "subDetectorPlane:" << m_subdetectorPlane << std::endl;
45  LogDebug("APVGainHelpers") << "histoName:" << m_monitor->getName() << std::endl;
46  return;
47  }
48 
49  private:
53  MonitorElement* m_monitor;
54  };
55 
57  public:
59  : Charge_Vs_Index(7),
60  Charge_1(),
61  Charge_2(),
62  Charge_3(),
63  Charge_4(),
64  Charge_Vs_PathlengthTIB(7),
65  Charge_Vs_PathlengthTOB(7),
66  Charge_Vs_PathlengthTIDP(7),
67  Charge_Vs_PathlengthTIDM(7),
68  Charge_Vs_PathlengthTECP1(7),
69  Charge_Vs_PathlengthTECP2(7),
70  Charge_Vs_PathlengthTECM1(7),
71  Charge_Vs_PathlengthTECM2(7),
72  NStripAPVs(0),
73  NPixelDets(0),
74  APVsCollOrdered(),
75  APVsColl() {}
76 
77  std::vector<dqm::reco::MonitorElement*> Charge_Vs_Index;
78  std::array<std::vector<dqm::reco::MonitorElement*>, 7> Charge_1;
79  std::array<std::vector<dqm::reco::MonitorElement*>, 7> Charge_2;
80  std::array<std::vector<dqm::reco::MonitorElement*>, 7> Charge_3;
81  std::array<std::vector<dqm::reco::MonitorElement*>, 7>
84  std::vector<dqm::reco::MonitorElement*> Charge_Vs_PathlengthTIB;
85  std::vector<dqm::reco::MonitorElement*> Charge_Vs_PathlengthTOB;
86  std::vector<dqm::reco::MonitorElement*> Charge_Vs_PathlengthTIDP;
87  std::vector<dqm::reco::MonitorElement*> Charge_Vs_PathlengthTIDM;
88  std::vector<dqm::reco::MonitorElement*> Charge_Vs_PathlengthTECP1;
89  std::vector<dqm::reco::MonitorElement*> Charge_Vs_PathlengthTECP2;
90  std::vector<dqm::reco::MonitorElement*> Charge_Vs_PathlengthTECM1;
91  std::vector<dqm::reco::MonitorElement*> Charge_Vs_PathlengthTECM2;
92  mutable std::atomic<unsigned int> NStripAPVs;
93  mutable std::atomic<unsigned int> NPixelDets;
94  std::vector<std::shared_ptr<stAPVGain>> APVsCollOrdered;
95  std::unordered_map<unsigned int, std::shared_ptr<stAPVGain>> APVsColl;
96  };
97 
98  std::vector<MonitorElement*> FetchMonitor(std::vector<APVmon>, uint32_t, const TrackerTopology* topo = nullptr);
99  std::vector<unsigned int> FetchIndices(std::map<unsigned int, APVloc>,
100  uint32_t,
101  const TrackerTopology* topo = nullptr);
102 
103 }; // namespace APVGain
104 
105 #endif
#define LogDebug(id)
std::array< std::vector< dqm::reco::MonitorElement * >, 7 > Charge_4
std::vector< dqm::reco::MonitorElement * > Charge_Vs_Index
std::vector< MonitorElement * > FetchMonitor(std::vector< APVmon >, uint32_t, const TrackerTopology *topo=0)
std::vector< dqm::reco::MonitorElement * > Charge_Vs_PathlengthTOB
MonitorElement * m_monitor
int subdetectorPlane(uint32_t, const TrackerTopology *)
const std::string & getName() const
get name of ME
std::vector< dqm::reco::MonitorElement * > Charge_Vs_PathlengthTIDP
APVmon(int v1, int v2, int v3, MonitorElement *v4)
std::vector< dqm::reco::MonitorElement * > Charge_Vs_PathlengthTIDM
int getSubdetectorSide()
std::vector< dqm::reco::MonitorElement * > Charge_Vs_PathlengthTECP2
dqm::legacy::MonitorElement MonitorElement
std::atomic< unsigned int > NPixelDets
std::array< std::vector< dqm::reco::MonitorElement * >, 7 > Charge_3
std::atomic< unsigned int > NStripAPVs
std::vector< unsigned int > FetchIndices(std::map< unsigned int, APVloc >, uint32_t, const TrackerTopology *topo=0)
std::vector< std::shared_ptr< stAPVGain > > APVsCollOrdered
int subdetectorSide(uint32_t, const TrackerTopology *)
std::unordered_map< unsigned int, std::shared_ptr< stAPVGain > > APVsColl
std::array< std::vector< dqm::reco::MonitorElement * >, 7 > Charge_1
std::vector< dqm::reco::MonitorElement * > Charge_Vs_PathlengthTECM2
int getSubdetectorPlane()
MonitorElement * getMonitor()
std::array< std::vector< dqm::reco::MonitorElement * >, 7 > Charge_2
std::vector< dqm::reco::MonitorElement * > Charge_Vs_PathlengthTECM1
std::vector< std::pair< std::string, std::string > > monHnames(std::vector< std::string >, bool, const char *tag)
std::vector< dqm::reco::MonitorElement * > Charge_Vs_PathlengthTIB
int subdetectorId(uint32_t)
std::vector< dqm::reco::MonitorElement * > Charge_Vs_PathlengthTECP1