CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiStripFolderOrganizer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiStripCommon
4 // Class : SiStripFolderOrganizer
5 //
6 // Implementation:
7 // <Notes on implementation>
8 //
9 // Original Author: dkcira
10 // Created: Thu Jan 26 23:52:43 CET 2006
11 
12 //
13 
14 #include <iostream>
15 #include <sstream>
16 
18 
22 
24 
26 
28 #define CONTROL_FOLDER_NAME "ControlView"
29 #define MECHANICAL_FOLDER_NAME "MechanicalView"
30 #define SEP "/"
31 
32 #include <cstring>
33 
35 {
36  TopFolderName="SiStrip";
37  // get a pointer to DQMStore
39 }
40 
41 
43 {
44 }
45 
48 }
49 
51  return TopFolderName;
52 }
53 
54 
57  return;
58 }
59 
60 
63  return lokal_folder;
64 }
65 
66 
69  dbe_->setCurrentFolder(lokal_folder);
70  return;
71 }
72 
73 
75  // unsigned short crate,
76  unsigned short slot,
77  unsigned short ring,
78  unsigned short addr,
79  unsigned short chan
80  // unsigned short i2c
81  ) {
82  std::stringstream lokal_folder;
83  lokal_folder << getSiStripTopControlFolder();
84  // if ( crate != all_ ) {// if ==all_ then remain in top control folder
85  // lokal_folder << SEP << "FecCrate" << crate;
86  if ( slot != all_ ) {
87  lokal_folder << SEP << "FecSlot" << slot;
88  if ( ring != all_ ) {
89  lokal_folder << SEP << "FecRing" << ring;
90  if ( addr != all_ ) {
91  lokal_folder << SEP << "CcuAddr" << addr;
92  if ( chan != all_ ) {
93  lokal_folder << SEP << "CcuChan" << chan;
94  // if ( i2c != all_ ) {
95  // lokal_folder << SEP << "I2cAddr" << i2c;
96  // }
97  }
98  }
99  }
100  }
101  // }
102  std::string folder_name = lokal_folder.str();
103  return folder_name;
104 }
105 
106 
108  // unsigned short crate,
109  unsigned short slot,
110  unsigned short ring,
111  unsigned short addr,
112  unsigned short chan
113  // unsigned short i2c
114  ) {
115  std::string lokal_folder = getSiStripControlFolder(slot, ring, addr, chan);
116  dbe_->setCurrentFolder(lokal_folder);
117  return;
118 }
119 
120 std::pair<std::string,int32_t> SiStripFolderOrganizer::GetSubDetAndLayer(const uint32_t& detid, const TrackerTopology* tTopo, bool ring_flag){
121  std::string cSubDet;
122  int32_t layer=0;
123  switch(StripSubdetector::SubDetector(StripSubdetector(detid).subdetId()))
124  {
126  cSubDet="TIB";
127  layer=tTopo->tibLayer(detid);
128  break;
130  cSubDet="TOB";
131  layer=tTopo->tobLayer(detid);
132  break;
134  cSubDet="TID";
135  if(ring_flag)
136  layer=tTopo->tidRing(detid) * ( tTopo->tidSide(detid)==1 ? -1 : +1);
137  else
138  layer=tTopo->tidWheel(detid) * ( tTopo->tidSide(detid)==1 ? -1 : +1);
139  break;
141  cSubDet="TEC";
142  if(ring_flag)
143  layer=tTopo->tecRing(detid) * ( tTopo->tecSide(detid)==1 ? -1 : +1);
144  else
145  layer=tTopo->tecWheel(detid) * ( tTopo->tecSide(detid)==1 ? -1 : +1);
146  break;
147  default:
148  edm::LogWarning("SiStripMonitorTrack") << "WARNING!!! this detid does not belong to tracker" << std::endl;
149  }
150  return std::make_pair(cSubDet,layer);
151 }
152 
153 std::pair<std::string,int32_t> SiStripFolderOrganizer::GetSubDetAndLayerThickness(const uint32_t& detid, const TrackerTopology* tTopo, std::string & cThickness){
154  std::string cSubDet;
155  int32_t layer=0;
156  int32_t ring=0;
157  switch(StripSubdetector::SubDetector(StripSubdetector(detid).subdetId())) {
159  cSubDet="TIB";
160  layer=tTopo->tibLayer(detid);
161  cThickness = "THIN";
162  break;
164  cSubDet="TOB";
165  layer=tTopo->tobLayer(detid);
166  cThickness = "THICK";
167  break;
169  cSubDet="TID";
170  layer=tTopo->tidWheel(detid) * ( tTopo->tidSide(detid)==1 ? -1 : +1);
171  cThickness = "THIN";
172  break;
174  cSubDet="TEC";
175  layer=tTopo->tecWheel(detid) * ( tTopo->tecSide(detid)==1 ? -1 : +1);
176  ring=tTopo->tecRing(detid) * ( tTopo->tecSide(detid)==1 ? -1 : +1);
177  if ( ring >= 1 && ring <= 4) cThickness = "THIN";
178  else cThickness = "THICK";
179  break;
180  default:
181  edm::LogWarning("SiStripMonitorTrack") << "WARNING!!! this detid does not belong to tracker" << std::endl;
182  }
183  return std::make_pair(cSubDet,layer);
184 }
185 
186 std::pair<std::string,int32_t> SiStripFolderOrganizer::GetSubDetAndRing(const uint32_t& detid, const TrackerTopology* tTopo){
187  std::string cSubDet;
188  int32_t ring=0;
189  switch(StripSubdetector::SubDetector(StripSubdetector(detid).subdetId()))
190  {
192  cSubDet="TIB";
193  break;
195  cSubDet="TOB";
196  break;
198  cSubDet="TID";
199  ring=tTopo->tidRing(detid) * ( tTopo->tidSide(detid)==1 ? -1 : +1);
200  break;
202  cSubDet="TEC";
203  ring=tTopo->tecRing(detid) * ( tTopo->tecSide(detid)==1 ? -1 : +1);
204  break;
205  default:
206  edm::LogWarning("SiStripMonitorTrack") << "WARNING!!! this detid does not belong to tracker" << std::endl;
207  }
208  return std::make_pair(cSubDet,ring);
209 }
210 
211 
212 void SiStripFolderOrganizer::setDetectorFolder(uint32_t rawdetid, const TrackerTopology* tTopo){
213  std::string folder_name;
214  getFolderName(rawdetid, tTopo, folder_name);
215  dbe_->setCurrentFolder(folder_name);
216 }
217 
218 void SiStripFolderOrganizer::getSubDetLayerFolderName(std::stringstream& ss, SiStripDetId::SubDetector subDet, uint32_t layer, uint32_t side){
219  // std::cout << "[SiStripFolderOrganizer::getSubDetLayerFolderName] TopFolderName: " << TopFolderName << std::endl;
221 
222  std::stringstream sside;
223  if (side == 1) {
224  sside << "MINUS";
225  } else if (side == 2) {
226  sside << "PLUS";
227  }
228 
229  if(subDet == SiStripDetId::TIB){
230  ss << SEP << "TIB" << SEP << "layer_" << layer << SEP;
231  } else if(subDet == SiStripDetId::TID){
232  ss << SEP << "TID" << SEP << sside.str() << SEP << "wheel_" << layer << SEP;
233  } else if( subDet == SiStripDetId::TOB){
234  ss << SEP << "TOB" << SEP << "layer_" << layer << SEP;
235  }else if(subDet == SiStripDetId::TEC){
236  ss << SEP << "TEC" << SEP << sside.str() << SEP << "wheel_" << layer << SEP;
237  }else{
238  // --------------------------- ??? --------------------------- //
239  edm::LogWarning("SiStripTkDQM|WrongInput")<<"no such SubDet :"<< subDet <<" no folder set!"<<std::endl;
240  }
241 }
242 
243 
244 void SiStripFolderOrganizer::getFolderName(int32_t rawdetid, const TrackerTopology* tTopo, std::string& lokal_folder){
245  lokal_folder = "";
246  if(rawdetid == 0 ){ // just top MechanicalFolder if rawdetid==0;
247  return;
248  }
249  std::stringstream rest;
250  SiStripDetId stripdet = SiStripDetId(rawdetid);
251 
252  if (stripdet.subDetector() == SiStripDetId::TIB){
253  // --------------------------- TIB --------------------------- //
254 
255  getSubDetLayerFolderName(rest,stripdet.subDetector(),tTopo->tibLayer(rawdetid));
256 
257  if (tTopo->tibIsZMinusSide(rawdetid)) rest << "backward_strings" << SEP;
258  else rest << "forward_strings" << SEP;
259  if (tTopo->tibIsExternalString(rawdetid)) rest << "external_strings" << SEP;
260  else rest << "internal_strings" << SEP;
261  rest << "string_" << tTopo->tibString(rawdetid) << SEP << "module_" << rawdetid;
262  } else if(stripdet.subDetector() == SiStripDetId::TID){
263  // --------------------------- TID --------------------------- //
264 
265  getSubDetLayerFolderName(rest,stripdet.subDetector(),tTopo->tidWheel(rawdetid),tTopo->tidSide(rawdetid));
266  rest<< "ring_" << tTopo->tidRing(rawdetid) << SEP;
267 
268  if (tTopo->tidIsStereo(rawdetid)) rest << "stereo_modules" << SEP;
269  else rest << "mono_modules" << SEP;
270  rest << "module_" << rawdetid;
271  } else if( stripdet.subDetector() == SiStripDetId::TOB){
272  // --------------------------- TOB --------------------------- //
273 
274  getSubDetLayerFolderName(rest,stripdet.subDetector(),tTopo->tobLayer(rawdetid));
275  if (tTopo->tobIsZMinusSide(rawdetid)) rest << "backward_rods" << SEP;
276  else rest << "forward_rods" << SEP;
277  rest << "rod_" << tTopo->tobRod(rawdetid) << SEP<< "module_" << rawdetid;
278  }else if(stripdet.subDetector() == SiStripDetId::TEC){
279  // --------------------------- TEC --------------------------- //
280 
281  getSubDetLayerFolderName(rest,stripdet.subDetector(),tTopo->tecWheel(rawdetid),tTopo->tecSide(rawdetid));
282  if (tTopo->tecIsBackPetal(rawdetid)) rest << "backward_petals" << SEP;
283  else rest << "forward_petals" << SEP;
284 
285  rest << "petal_" << tTopo->tecPetalNumber(rawdetid) << SEP
286  << "ring_"<< tTopo->tecRing(rawdetid) << SEP;
287 
288  if (tTopo->tecIsStereo(rawdetid)) rest << "stereo_modules" << SEP;
289  else rest << "mono_modules" << SEP;
290 
291  rest << "module_" << rawdetid;
292  }else{
293  // --------------------------- ??? --------------------------- //
294  edm::LogWarning("SiStripTkDQM|WrongInput")<<"no such subdetector type :"<<stripdet.subDetector() <<" no folder set!"<<std::endl;
295  return;
296  }
297  lokal_folder += rest.str();
298 
299 }
300 
301 void SiStripFolderOrganizer::setLayerFolder(uint32_t rawdetid, const TrackerTopology* tTopo, int32_t layer, bool ring_flag){
303  if(rawdetid == 0 ){ // just top MechanicalFolder if rawdetid==0;
304  dbe_->setCurrentFolder(lokal_folder);
305  return;
306  }
307 
308  std::ostringstream rest;
309  SiStripDetId stripdet = SiStripDetId(rawdetid);
310  if(stripdet.subDetector() == SiStripDetId::TIB ){
311  // --------------------------- TIB --------------------------- //
312 
313  int tib_layer = tTopo->tibLayer(rawdetid);
314  if (abs(layer) != tib_layer) {
315  edm::LogWarning("SiStripTkDQM|Layer mismatch!!!")<< " expect "<< abs(layer) << " but getting " << tTopo->tibLayer(rawdetid) <<std::endl;
316  return;
317  }
318  rest<<SEP<<"TIB"<<SEP<<"layer_"<<tTopo->tibLayer(rawdetid);
319  }else if(stripdet.subDetector() == SiStripDetId::TID){
320  // --------------------------- TID --------------------------- //
321 
322  int tid_ring = tTopo->tidRing(rawdetid);
323 
324  // side
325  uint32_t side = tTopo->tidSide(rawdetid);
326  std::stringstream sside;
327  if (side == 1) {
328  sside << "MINUS";
329  } else if (side == 2) {
330  sside << "PLUS";
331  }
332 
333  if(ring_flag){
334  if(abs(layer) != tid_ring) {
335  edm::LogWarning("SiStripTkDQM|Layer mismatch!!!")<< " expect "<< abs(layer) << " but getting " << tTopo->tidRing(rawdetid) <<std::endl;
336  return;
337  }
338  rest<<SEP<<"TID"<<SEP<<sside.str()<<SEP<<"ring_"<<tTopo->tidRing(rawdetid);
339  }else{
340  int tid_wheel = tTopo->tidWheel(rawdetid);
341  if (abs(layer) != tid_wheel) {
342  edm::LogWarning("SiStripTkDQM|Layer mismatch!!!")<< " expect "<< abs(layer) << " but getting " << tTopo->tidWheel(rawdetid) <<std::endl;
343  return;
344  }
345  rest<<SEP<<"TID"<<SEP<<sside.str()<<SEP<<"wheel_"<<tTopo->tidWheel(rawdetid);
346  }
347  }else if(stripdet.subDetector() == SiStripDetId::TOB){
348  // --------------------------- TOB --------------------------- //
349 
350  int tob_layer = tTopo->tobLayer(rawdetid);
351  if (abs(layer) != tob_layer) {
352  edm::LogWarning("SiStripTkDQM|Layer mismatch!!!")<< " expect "<< abs(layer) << " but getting " << tTopo->tobLayer(rawdetid) <<std::endl;
353  return;
354  }
355  rest<<SEP<<"TOB"<<SEP<<"layer_"<<tTopo->tobLayer(rawdetid);
356  }else if( stripdet.subDetector() == SiStripDetId::TEC){
357  // --------------------------- TEC --------------------------- //
358 
359  // side
360  uint32_t side = tTopo->tecSide(rawdetid);
361  std::stringstream sside;
362  if (side == 1) {
363  sside << "MINUS";
364  } else if (side == 2) {
365  sside << "PLUS";
366  }
367 
368  if(ring_flag){
369  int tec_ring = tTopo->tecRing(rawdetid);
370  if (abs(layer) != tec_ring) {
371  edm::LogWarning("SiStripTkDQM|Layer mismatch!!!")<< " expect "<< abs(layer) << " but getting " << tTopo->tecRing(rawdetid) <<std::endl;
372  return;
373  }
374  rest<<SEP<<"TEC"<<SEP<<sside.str()<<SEP<<"ring_"<<tTopo->tecRing(rawdetid);
375  }else{
376  int tec_wheel = tTopo->tecWheel(rawdetid);
377  if (abs(layer) != tec_wheel) {
378  edm::LogWarning("SiStripTkDQM|Layer mismatch!!!")<< " expect "<< abs(layer) << " but getting " << tTopo->tecWheel(rawdetid) <<std::endl;
379  return;
380  }
381  rest<<SEP<<"TEC"<<SEP<<sside.str()<<SEP<<"wheel_"<<tTopo->tecWheel(rawdetid);
382  }
383  }else{
384  // --------------------------- ??? --------------------------- //
385  edm::LogWarning("SiStripTkDQM|WrongInput")<<"no such subdetector type :"<<stripdet.subDetector()<<" no folder set!"<<std::endl;
386  return;
387  }
388 
389  lokal_folder += rest.str();
390  dbe_->setCurrentFolder(lokal_folder);
391 }
392 
393 void SiStripFolderOrganizer::getSubDetFolder(const uint32_t& detid, const TrackerTopology* tTopo, std::string& folder_name){
394 
395  std::pair<std::string, std::string> subdet_and_tag = getSubDetFolderAndTag(detid, tTopo);
396  folder_name = subdet_and_tag.first;
397 }
398 //
399 // -- Get the name of Subdetector Layer folder
400 //
401 void SiStripFolderOrganizer::getLayerFolderName(std::stringstream& ss, uint32_t rawdetid, const TrackerTopology* tTopo, bool ring_flag){
403  if(rawdetid == 0 ){ // just top MechanicalFolder if rawdetid==0;
404  return;
405  }
406 
407  SiStripDetId stripdet = SiStripDetId(rawdetid);
408  if(stripdet.subDetector() == SiStripDetId::TIB ){
409  // --------------------------- TIB --------------------------- //
410 
411  ss<<SEP<<"TIB"<<SEP<<"layer_"<<tTopo->tibLayer(rawdetid);
412  }else if(stripdet.subDetector() == SiStripDetId::TID){
413  // --------------------------- TID --------------------------- //
414 
415  uint32_t side = tTopo->tidSide(rawdetid);
416  std::stringstream sside;
417  if (side == 1) {
418  sside << "MINUS";
419  } else if (side == 2) {
420  sside << "PLUS";
421  }
422 
423  if(ring_flag){
424  ss<<SEP<<"TID"<<SEP<<sside.str()<<SEP<<"ring_"<<tTopo->tidRing(rawdetid);
425  }else{
426  ss<<SEP<<"TID"<<SEP<<sside.str()<<SEP<<"wheel_"<<tTopo->tidWheel(rawdetid);
427  }
428  }else if(stripdet.subDetector() == SiStripDetId::TOB){
429  // --------------------------- TOB --------------------------- //
430 
431  ss<<SEP<<"TOB"<<SEP<<"layer_"<<tTopo->tobLayer(rawdetid);
432  }else if( stripdet.subDetector() == SiStripDetId::TEC){
433  // --------------------------- TEC --------------------------- //
434 
435  uint32_t side = tTopo->tecSide(rawdetid);
436  std::stringstream sside;
437  if (side == 1) {
438  sside << "MINUS";
439  } else if (side == 2) {
440  sside << "PLUS";
441  }
442 
443  if(ring_flag){
444  ss<<SEP<<"TEC"<<SEP<<sside.str()<<SEP<<"ring_"<<tTopo->tecRing(rawdetid);
445  }else{
446  ss<<SEP<<"TEC"<<SEP<<sside.str()<<SEP<<"wheel_"<<tTopo->tecWheel(rawdetid);
447  }
448  }else{
449  // --------------------------- ??? --------------------------- //
450  edm::LogWarning("SiStripTkDQM|WrongInput")<<"no such subdetector type :"<<stripdet.subDetector()<<" no folder set!"<<std::endl;
451  return;
452  }
453 }
454 //
455 // -- Get Subdetector Folder name and the Tag
456 //
457 std::pair<const std::string, const char *> SiStripFolderOrganizer::getSubDetFolderAndTag(const uint32_t& detid, const TrackerTopology* tTopo) {
458 
459  const char *subdet_folder = "";
460  const char *tag = "";
461  switch(StripSubdetector::SubDetector(StripSubdetector(detid).subdetId()))
462  {
464  subdet_folder = "TIB";
465  tag = subdet_folder;
466  break;
468  subdet_folder = "TOB";
469  tag = subdet_folder;
470  break;
472  if (tTopo->tidSide(detid) == 2) {
473  subdet_folder = "TID/PLUS";
474  tag = "TID__PLUS";
475  } else if (tTopo->tidSide(detid) == 1) {
476  subdet_folder = "TID/MINUS";
477  tag = "TID__MINUS";
478  }
479  break;
481  if (tTopo->tecSide(detid) == 2) {
482  subdet_folder = "TEC/PLUS";
483  tag = "TEC__PLUS";
484  } else if (tTopo->tecSide(detid) == 1) {
485  subdet_folder = "TEC/MINUS";
486  tag = "TEC__MINUS";
487  }
488  break;
489  default:
490  {
491  edm::LogWarning("SiStripCommon") << "WARNING!!! this detid does not belong to tracker" << std::endl;
492  subdet_folder = "";
493  }
494  }
495 
496  std::string folder;
497  folder.reserve(TopFolderName.size() + strlen(SEP MECHANICAL_FOLDER_NAME SEP) + strlen(subdet_folder) + 1);
498  folder = TopFolderName + SEP MECHANICAL_FOLDER_NAME SEP + subdet_folder;
499 
500  return std::pair<const std::string, const char *>(folder, tag);
501 }
502 
503 
504 // This is the deprecated version, still needed for now.
509 
510 void SiStripFolderOrganizer::getFolderName(int32_t rawdetid, std::string& lokal_folder){
511  lokal_folder = "";
512  if(rawdetid == 0 ){ // just top MechanicalFolder if rawdetid==0;
513  return;
514  }
515  std::stringstream rest;
516  SiStripDetId stripdet = SiStripDetId(rawdetid);
517 
518  if (stripdet.subDetector() == SiStripDetId::TIB){
519  // --------------------------- TIB --------------------------- //
520  TIBDetId tib = TIBDetId(rawdetid);
521  getSubDetLayerFolderName(rest,stripdet.subDetector(),tib.layerNumber());
522  if (tib.isZMinusSide()) rest << "backward_strings" << SEP;
523  else rest << "forward_strings" << SEP;
524  if (tib.isExternalString()) rest << "external_strings" << SEP;
525  else rest << "internal_strings" << SEP;
526  rest << "string_" << tib.stringNumber() << SEP << "module_" << rawdetid;
527  } else if(stripdet.subDetector() == SiStripDetId::TID){
528  // --------------------------- TID --------------------------- //
529  TIDDetId tid = TIDDetId(rawdetid);
530  getSubDetLayerFolderName(rest,stripdet.subDetector(),tid.wheel(),tid.side());
531  rest<< "ring_" << tid.ring() << SEP;
532 
533  if (tid.isStereo()) rest << "stereo_modules" << SEP;
534  else rest << "mono_modules" << SEP;
535  rest << "module_" << rawdetid;
536  } else if( stripdet.subDetector() == SiStripDetId::TOB){
537  // --------------------------- TOB --------------------------- //
538  TOBDetId tob = TOBDetId(rawdetid);
539  getSubDetLayerFolderName(rest,stripdet.subDetector(),tob.layerNumber());
540  if (tob.isZMinusSide()) rest << "backward_rods" << SEP;
541  else rest << "forward_rods" << SEP;
542  rest << "rod_" << tob.rodNumber() << SEP<< "module_" << rawdetid;
543  }else if(stripdet.subDetector() == SiStripDetId::TEC){
544  // --------------------------- TEC --------------------------- //
545  TECDetId tec = TECDetId(rawdetid);
546  getSubDetLayerFolderName(rest,stripdet.subDetector(),tec.wheel(),tec.side());
547  if (tec.isBackPetal()) rest << "backward_petals" << SEP;
548  else rest << "forward_petals" << SEP;
549 
550  rest << "petal_" << tec.petalNumber() << SEP
551  << "ring_"<< tec.ringNumber() << SEP;
552 
553  if (tec.isStereo()) rest << "stereo_modules" << SEP;
554  else rest << "mono_modules" << SEP;
555 
556  rest << "module_" << rawdetid;
557  }else{
558  // --------------------------- ??? --------------------------- //
559  edm::LogWarning("SiStripTkDQM|WrongInput")<<"no such subdetector type :"<<stripdet.subDetector() <<" no folder set!"<<std::endl;
560  return;
561  }
562  lokal_folder += rest.str();
563 }
void setSiStripControlFolder(unsigned short slot=all_, unsigned short ring=all_, unsigned short addr=all_, unsigned short chan=all_)
bool isZMinusSide() const
Definition: TIBDetId.h:79
unsigned int rodNumber() const
Definition: TOBDetId.h:77
unsigned int petalNumber() const
Definition: TECDetId.h:94
unsigned int stringNumber() const
Definition: TIBDetId.h:87
void setSiStripFolderName(std::string name)
unsigned int tibLayer(const DetId &id) const
unsigned int tibString(const DetId &id) const
void getSubDetFolder(const uint32_t &detid, const TrackerTopology *tTopo, std::string &folder_name)
unsigned int tidRing(const DetId &id) const
std::pair< const std::string, const char * > getSubDetFolderAndTag(const uint32_t &detid, const TrackerTopology *tTopo)
std::string getSiStripTopControlFolder()
bool isStereo()
Definition: TIDDetId.h:109
#define CONTROL_FOLDER_NAME
unsigned int tecRing(const DetId &id) const
ring id
void getLayerFolderName(std::stringstream &ss, uint32_t rawdetid, const TrackerTopology *tTopo, bool ring_flag=0)
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=0)
unsigned int tidWheel(const DetId &id) const
std::pair< std::string, int32_t > GetSubDetAndRing(const uint32_t &detid, const TrackerTopology *tTopo)
unsigned int side() const
positive or negative id
Definition: TECDetId.h:47
bool tidIsStereo(const DetId &id) const
unsigned int layerNumber() const
Definition: TIBDetId.h:83
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
void getSubDetLayerFolderName(std::stringstream &ss, SiStripDetId::SubDetector subDet, uint32_t layer, uint32_t side=0)
std::string getSiStripControlFolder(unsigned short slot=all_, unsigned short ring=all_, unsigned short addr=all_, unsigned short chan=all_)
bool isExternalString() const
Definition: TIBDetId.h:99
bool tecIsStereo(const DetId &id) const
bool isZMinusSide() const
Definition: TOBDetId.h:69
bool tibIsExternalString(const DetId &id) const
unsigned int tidSide(const DetId &id) const
unsigned int layerNumber() const
Definition: TOBDetId.h:73
bool tibIsZMinusSide(const DetId &id) const
bool isStereo()
Definition: TECDetId.h:118
bool tobIsZMinusSide(const DetId &id) const
unsigned int ring() const
ring id
Definition: TIDDetId.h:55
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static unsigned short const all_
std::pair< std::string, int32_t > GetSubDetAndLayerThickness(const uint32_t &detid, const TrackerTopology *tTopo, std::string &cThickness)
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
SubDetector subDetector() const
Definition: SiStripDetId.h:114
bool tecIsBackPetal(const DetId &id) const
#define SEP
void setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=0)
bool isBackPetal() const
Definition: TECDetId.h:106
unsigned int side() const
positive or negative id
Definition: TIDDetId.h:45
unsigned int wheel() const
wheel id
Definition: TECDetId.h:52
unsigned int ringNumber() const
Definition: TECDetId.h:98
void getFolderName(int32_t rawdetid, const TrackerTopology *tTopo, std::string &lokal_folder)
unsigned int tecPetalNumber(const DetId &id) const
unsigned int tobRod(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:719
unsigned int tobLayer(const DetId &id) const
#define MECHANICAL_FOLDER_NAME
unsigned int tecSide(const DetId &id) const
unsigned int wheel() const
wheel id
Definition: TIDDetId.h:50