CMS 3D CMS Logo

Classes | Functions
APVGain Namespace Reference

Classes

struct  APVGainHistograms
 
struct  APVmon
 

Functions

std::vector< unsigned int > FetchIndices (std::map< unsigned int, APVloc >, uint32_t, const TrackerTopology *topo=0)
 
std::vector< MonitorElement * > FetchMonitor (std::vector< APVmon >, uint32_t, const TrackerTopology *topo=0)
 
std::vector< std::pair< std::string, std::string > > monHnames (std::vector< std::string >, bool, const char *tag)
 
int subdetectorId (uint32_t)
 
int subdetectorId (const std::string &)
 
int subdetectorPlane (uint32_t, const TrackerTopology *)
 
int subdetectorPlane (const std::string &)
 
int subdetectorSide (uint32_t, const TrackerTopology *)
 
int subdetectorSide (const std::string &)
 

Function Documentation

std::vector< unsigned int > APVGain::FetchIndices ( std::map< unsigned int, APVloc theMap,
uint32_t  det_id,
const TrackerTopology topo = 0 
)

Brief Fetch the Monitor Element index corresponding to a DetId.

Definition at line 137 of file APVGainHelpers.cc.

References match(), subdetectorId(), subdetectorPlane(), and subdetectorSide().

Referenced by SiStripGainsPCLWorker::dqmAnalyze().

137  {
138 
139  std::vector<unsigned int> found_indices = std::vector<unsigned int>();
140 
141  int sId = APVGain::subdetectorId(det_id);
142  int sPlane = APVGain::subdetectorPlane(det_id, topo);
143  int sSide = APVGain::subdetectorSide(det_id, topo);
144 
145  for(auto &element : theMap){
146 
147  int subdetectorId = element.second.m_subdetectorId;
148  int subdetectorSide = element.second.m_subdetectorSide;
149  int subdetectorPlane = element.second.m_subdetectorPlane;
150 
151  bool match = (subdetectorId==0 || subdetectorId==sId) && (subdetectorPlane==0 || subdetectorPlane==sPlane) && (subdetectorSide==0 || subdetectorSide==sSide);
152 
153  if (match ){
154  found_indices.push_back(element.first);
155  }
156  }
157  return found_indices;
158 }
int subdetectorPlane(uint32_t, const TrackerTopology *)
int subdetectorSide(uint32_t, const TrackerTopology *)
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
int subdetectorId(uint32_t)
std::vector< MonitorElement * > APVGain::FetchMonitor ( std::vector< APVmon histos,
uint32_t  det_id,
const TrackerTopology topo = 0 
)

Brief Fetch the Monitor Element corresponding to a DetId.

Definition at line 106 of file APVGainHelpers.cc.

References runEdmFileComparison::found, LogDebug, match(), AlCaHLTBitMon_QueryRunRegistry::string, subdetectorId(), subdetectorPlane(), subdetectorSide(), and GlobalPosition_Frontier_DevDB_cff::tag.

Referenced by SiStripGainsPCLHarvester::gainQualityMonitor(), SiStripGainFromCalibTree::processEvent(), and SiStripGainFromCalibTree::qualityMonitor().

107  {
108 
109  std::vector<MonitorElement*> found = std::vector<MonitorElement*>();
110  int sId = APVGain::subdetectorId(det_id);
111  int sPlane = APVGain::subdetectorPlane(det_id, topo);
112  int sSide = APVGain::subdetectorSide(det_id, topo);
113  auto it = histos.begin();
114 
115  LogDebug("APVGainHelpers")<<"sId: "<<sId<<" sPlane: "<<sPlane<<" sSide: "<<sSide<<std::endl;
116 
117  while (it!=histos.end()) {
118  std::string tag = (*it).getMonitor()->getName();
119  int subdetectorId = (*it).getSubdetectorId();
120  int subdetectorSide = (*it).getSubdetectorSide();
121  int subdetectorPlane = (*it).getSubdetectorPlane();
122 
123  bool match = (subdetectorId==0 || subdetectorId==sId) && (subdetectorPlane==0 || subdetectorPlane==sPlane) && (subdetectorSide==0 || subdetectorSide==sSide);
124 
125  if (match) {
126  found.emplace_back((*it).getMonitor());
127  LogDebug("APVGainHelpers")<<det_id<<" found: "<< tag << std::endl;
128  (*it).printAll();
129  }
130  it++;
131  }
132  return found;
133 }
#define LogDebug(id)
int subdetectorPlane(uint32_t, const TrackerTopology *)
int subdetectorSide(uint32_t, const TrackerTopology *)
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
int subdetectorId(uint32_t)
std::vector< std::pair< std::string, std::string > > APVGain::monHnames ( std::vector< std::string >  VH,
bool  allPlanes,
const char *  tag 
)

Definition at line 161 of file APVGainHelpers.cc.

References constexpr, mps_fire::i, MillePedeFileConverter_cfg::out, python.rootplot.root2matplotlib::replace(), AlCaHLTBitMon_QueryRunRegistry::string, and GlobalPosition_Frontier_DevDB_cff::tag.

Referenced by SiStripGainFromCalibTree::algoEndRun(), SiStripGainFromCalibTree::bookDQMHistos(), SiStripGainsPCLWorker::bookHistograms(), SiStripGainsPCLHarvester::gainQualityMonitor(), and SiStripGainsPCLWorker::SiStripGainsPCLWorker().

161  {
162 
163  std::vector<std::pair<std::string,std::string>> out;
164 
165  // total number of measurement layers/wheels in the Strips Tracker
166  // 4(TIB) + 6(TOB) + 3(TID+) + 3(TID-) + 9(TEC+) + 9(TEC-)
167  constexpr int countOfPlanes = 34;
168 
169  int re = (allPlanes)? countOfPlanes + VH.size() : VH.size();
170  out.reserve( re );
171 
172  std::string Tag = tag;
173  if (Tag.length()) Tag = "__" + Tag;
174 
175  std::string h_tag = "";
176  std::string h_tit = "";
177 
178  if (allPlanes) {
179  // Names of monitoring histogram for TIB layers
180  constexpr int TIBlayers = 4; //number of TIB layers.
181  for(int i=1; i<=TIBlayers; i++) {
182  h_tag = "TIB_layer_" + std::to_string(i) + Tag;
183  h_tit = h_tag; std::replace(h_tit.begin(),h_tit.end(),'_',' ');
184  out.push_back(std::pair<std::string,std::string>(h_tag,h_tit));
185  }
186  // Names of monitoring histogram for TOB layers
187  constexpr int TOBlayers = 6; //number of TOB layers
188  for(int i=1; i<=TOBlayers; i++) {
189  h_tag = "TOB_layer_" + std::to_string(i) + Tag;
190  h_tit = h_tag; std::replace(h_tit.begin(),h_tit.end(),'_',' ');
191  out.push_back(std::pair<std::string,std::string>(h_tag,h_tit));
192  }
193  // Names of monitoring histogram for TID wheels
194  constexpr int TIDwheels = 3; //number of TID wheels
195  for(int i=-TIDwheels; i<=TIDwheels; i++) {
196  if (i==0) continue;
197  if (i<0) h_tag = "TIDminus_wheel_" + std::to_string(i) + Tag;
198  else h_tag = "TIDplus_wheel_" + std::to_string(i) + Tag;
199  h_tit = h_tag; std::replace(h_tit.begin(),h_tit.end(),'_',' ');
200  out.push_back(std::pair<std::string,std::string>(h_tag,h_tit));
201  }
202  // Names of monitoring histogram for TEC wheels
203  constexpr int TECwheels = 9; //number of TEC wheels
204  for(int i=-TECwheels; i<=TECwheels; i++) {
205  if (i==0) continue;
206  if (i<0) h_tag = "TECminus_wheel_" + std::to_string(i) + Tag;
207  else h_tag = "TECplus_wheel_" + std::to_string(i) + Tag;
208  h_tit = h_tag; std::replace(h_tit.begin(),h_tit.end(),'_',' ');
209  out.push_back(std::pair<std::string,std::string>(h_tag,h_tit));
210  }
211  }
212 
213  for(unsigned int i=0; i<VH.size();i++) {
214  h_tag = VH[i] + Tag;
215  h_tit = h_tag; std::replace(h_tit.begin(),h_tit.end(),'_',' ');
216  out.push_back(std::pair<std::string,std::string>(h_tag,h_tit));
217  }
218 
219  return out;
220 }
def replace(string, replacements)
#define constexpr
int APVGain::subdetectorId ( uint32_t  det_id)

Brief Extract from the DetId the subdetector type. Return an integer which is associated to the subdetector type. The integer coding for phase0/phase1 geometry follows:

3 - TIB 4 - TID 5 - TOB 6 - TEC

Definition at line 15 of file APVGainHelpers.cc.

References DetId::subdetId().

Referenced by SiStripGainFromCalibTree::bookDQMHistos(), FetchIndices(), FetchMonitor(), SiStripGainsPCLHarvester::gainQualityMonitor(), SiStripGainsPCLWorker::SiStripGainsPCLWorker(), and subdetectorPlane().

15  {
16  return DetId(det_id).subdetId();
17 };
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:38
Definition: DetId.h:18
int APVGain::subdetectorId ( const std::string &  tag)

Brief Extract from a char * the subdetector type. Return an integer whioch is associated to the subdetector type. The integer coding follows:

3 - TIB 4 - TID 5 - TOB 6 - TEC

The char * string is expected to have a 3 char descriptor of the subdetector type in front.

Definition at line 32 of file APVGainHelpers.cc.

References edmIntegrityCheck::d, and AlCaHLTBitMon_QueryRunRegistry::string.

32  {
33  std::string d = tag.substr(0,3);
34  if ( d=="TIB" ) return 3;
35  if ( d=="TID" ) return 4;
36  if ( d=="TOB" ) return 5;
37  if ( d=="TEC" ) return 6;
38  return 0;
39 };
int APVGain::subdetectorPlane ( uint32_t  det_id,
const TrackerTopology topo 
)

Brief Extract the detector plane position from a DetId. Return an integer that represent the detector plane where the module sits. For the barrel detectors (TIB and TOB) the detector plane is the layer, e.g. ranging from 1 to 4 in the TIB and from 1 to 6 in the TOB. For the endcap detectors the detector plane is the wheel number with a sign in front to tell in which side the wheel is sitting.

Definition at line 77 of file APVGainHelpers.cc.

References subdetectorId(), StripSubdetector::TEC, TrackerTopology::tecSide(), TrackerTopology::tecWheel(), StripSubdetector::TIB, TrackerTopology::tibLayer(), StripSubdetector::TID, TrackerTopology::tidSide(), TrackerTopology::tidWheel(), StripSubdetector::TOB, and TrackerTopology::tobLayer().

Referenced by SiStripGainFromCalibTree::bookDQMHistos(), FetchIndices(), FetchMonitor(), SiStripGainsPCLHarvester::gainQualityMonitor(), and SiStripGainsPCLWorker::SiStripGainsPCLWorker().

77  {
78  if( topo ) {
79  if( APVGain::subdetectorId(det_id)==StripSubdetector::TIB ) return topo->tibLayer(det_id);
80  else if( APVGain::subdetectorId(det_id)==StripSubdetector::TID ) return (2*topo->tidSide(det_id)-3)*topo->tidWheel(det_id);
81  else if( APVGain::subdetectorId(det_id)==StripSubdetector::TOB ) return topo->tobLayer(det_id);
82  else if( APVGain::subdetectorId(det_id)==StripSubdetector::TEC ) return (2*topo->tecSide(det_id)-3)*topo->tecWheel(det_id);
83  }
84  return 0;
85 };
unsigned int tibLayer(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
unsigned int tidSide(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
int subdetectorId(uint32_t)
unsigned int tobLayer(const DetId &id) const
unsigned int tecSide(const DetId &id) const
int APVGain::subdetectorPlane ( const std::string &  tag)

Brief Extract from a char * the subdetector type. Return an integer whioch is the detector plane where the module sits. The char * string is expected to have the subdetector plane put at its end after an "_" char.

Definition at line 92 of file APVGainHelpers.cc.

References AlCaHLTBitMon_ParallelJobs::p, and AlCaHLTBitMon_QueryRunRegistry::string.

92  {
93  std::size_t p = (tag.find("layer")!=std::string::npos)? tag.find("layer") : tag.find("wheel");
94  if (p!=std::string::npos) {
95  std::size_t start = tag.find("_",p+1) + 1;
96  std::size_t stop = tag.find('_',start);
97  std::string plane = tag.substr(start,stop-start);
98  return atoi( plane.c_str());
99  }
100  return 0;
101 };
Definition: start.py:1
int APVGain::subdetectorSide ( uint32_t  det_id,
const TrackerTopology topo 
)

Brief Extract the subdetector side from the Det Id Return and integer whose coding is 0 - no side description can be applied 1 - for negative side 2 - for positive side

Definition at line 47 of file APVGainHelpers.cc.

References TrackerTopology::side().

Referenced by SiStripGainFromCalibTree::bookDQMHistos(), FetchIndices(), FetchMonitor(), SiStripGainsPCLHarvester::gainQualityMonitor(), and SiStripGainsPCLWorker::SiStripGainsPCLWorker().

47  {
48  return topo->side( det_id );
49 }
unsigned int side(const DetId &id) const
int APVGain::subdetectorSide ( const std::string &  tag)

Brief Extract the subdetector side from a char * descriptor Return and integer whose coding is 0 - no side description can be applied 1 - for negative side 2 - for positive side

The char * descriptor is expected to have either "minus" or "plus" string to specify the sign. If no sign spec is found 0 is returned.

Definition at line 61 of file APVGainHelpers.cc.

References funct::m, and AlCaHLTBitMon_ParallelJobs::p.

61  {
62  std::size_t m = tag.find("minus");
63  std::size_t p = tag.find("plus");
64  if (m!=std::string::npos) return 1;
65  if (p!=std::string::npos) return 2;
66  return 0;
67 }