CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
AlignmentPI::topolInfo Struct Reference

#include <AlignmentPayloadInspectorHelper.h>

Public Member Functions

void fillGeometryInfo (const DetId &detId, const TrackerTopology &tTopo, bool isPhase0)
 
AlignmentPI::regions filterThePartition ()
 
void init ()
 
void printAll ()
 
bool sanityCheck ()
 
virtual ~topolInfo ()
 

Private Attributes

bool m_isDoubleSide
 
bool m_isInternal
 
bool m_isRphi
 
int m_layer
 
uint32_t m_rawid
 
int m_ring
 
int m_side
 
int m_subdetid
 

Detailed Description

Definition at line 297 of file AlignmentPayloadInspectorHelper.h.

Constructor & Destructor Documentation

virtual AlignmentPI::topolInfo::~topolInfo ( )
inlinevirtual

Definition at line 314 of file AlignmentPayloadInspectorHelper.h.

314 {}

Member Function Documentation

void AlignmentPI::topolInfo::fillGeometryInfo ( const DetId detId,
const TrackerTopology tTopo,
bool  isPhase0 
)

Definition at line 351 of file AlignmentPayloadInspectorHelper.h.

References AlignmentPI::isBPixOuterLadder(), TrackerTopology::isRPhi(), m_isDoubleSide, m_isInternal, m_isRphi, m_layer, m_rawid, m_ring, m_side, m_subdetid, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), TrackerTopology::pxfSide(), DetId::rawId(), DetId::subdetId(), StripSubdetector::TEC, TrackerTopology::tecIsDoubleSide(), TrackerTopology::tecPetalInfo(), TrackerTopology::tecRing(), TrackerTopology::tecSide(), TrackerTopology::tecWheel(), StripSubdetector::TIB, TrackerTopology::tibIsDoubleSide(), TrackerTopology::tibIsInternalString(), TrackerTopology::tibLayer(), TrackerTopology::tibSide(), StripSubdetector::TID, TrackerTopology::tidIsDoubleSide(), TrackerTopology::tidModuleInfo(), TrackerTopology::tidRing(), TrackerTopology::tidSide(), TrackerTopology::tidWheel(), StripSubdetector::TOB, TrackerTopology::tobIsDoubleSide(), TrackerTopology::tobLayer(), TrackerTopology::tobModule(), and TrackerTopology::tobSide().

353  {
354  unsigned int subdetId = static_cast<unsigned int>(detId.subdetId());
355 
356  m_rawid = detId.rawId();
357  m_subdetid = subdetId;
358 
359  if (subdetId == StripSubdetector::TIB) {
360  m_layer = tTopo.tibLayer(detId.rawId());
361  m_side = tTopo.tibSide(detId.rawId());
362  m_isRphi = tTopo.isRPhi(detId.rawId());
363  m_isDoubleSide = tTopo.tibIsDoubleSide(detId.rawId());
364  m_isInternal = tTopo.tibIsInternalString(detId.rawId());
365  } else if (subdetId == StripSubdetector::TOB) {
366  m_layer = tTopo.tobLayer(detId.rawId());
367  m_side = tTopo.tobSide(detId.rawId());
368  m_isRphi = tTopo.isRPhi(detId.rawId());
369  m_isDoubleSide = tTopo.tobIsDoubleSide(detId.rawId());
370  m_isInternal = tTopo.tobModule(detId.rawId()) % 2;
371  } else if (subdetId == StripSubdetector::TID) {
372  m_layer = tTopo.tidWheel(detId.rawId());
373  m_side = tTopo.tidSide(detId.rawId());
374  m_isRphi = tTopo.isRPhi(detId.rawId());
375  m_ring = tTopo.tidRing(detId.rawId());
376  m_isDoubleSide = tTopo.tidIsDoubleSide(detId.rawId());
377  m_isInternal = tTopo.tidModuleInfo(detId.rawId())[0];
378  } else if (subdetId == StripSubdetector::TEC) {
379  m_layer = tTopo.tecWheel(detId.rawId());
380  m_side = tTopo.tecSide(detId.rawId());
381  m_isRphi = tTopo.isRPhi(detId.rawId());
382  m_ring = tTopo.tecRing(detId.rawId());
383  m_isDoubleSide = tTopo.tecIsDoubleSide(detId.rawId());
384  m_isInternal = tTopo.tecPetalInfo(detId.rawId())[0];
385  } else if (subdetId == PixelSubdetector::PixelBarrel) {
386  m_layer = tTopo.pxbLayer(detId.rawId());
387  m_isInternal = !AlignmentPI::isBPixOuterLadder(detId, tTopo, isPhase0);
388  } else if (subdetId == PixelSubdetector::PixelEndcap) {
389  m_layer = tTopo.pxfDisk(detId.rawId());
390  m_side = tTopo.pxfSide(detId.rawId());
391  } else
392  edm::LogWarning("LogicError") << "Unknown subdetid: " << subdetId;
393  }
static constexpr auto TEC
bool tecIsDoubleSide(const DetId &id) const
bool tobIsDoubleSide(const DetId &id) const
bool tibIsDoubleSide(const DetId &id) const
unsigned int tibLayer(const DetId &id) const
unsigned int tidRing(const DetId &id) const
std::vector< unsigned int > tidModuleInfo(const DetId &id) const
unsigned int pxfDisk(const DetId &id) const
unsigned int tecRing(const DetId &id) const
ring id
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
unsigned int tidWheel(const DetId &id) const
bool isBPixOuterLadder(const DetId &detid, const TrackerTopology &tTopo, bool isPhase0)
unsigned int tibSide(const DetId &id) const
std::vector< unsigned int > tecPetalInfo(const DetId &id) const
unsigned int tidSide(const DetId &id) const
unsigned int tobSide(const DetId &id) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
static constexpr auto TOB
unsigned int pxbLayer(const DetId &id) const
static constexpr auto TIB
bool tidIsDoubleSide(const DetId &id) const
unsigned int tobModule(const DetId &id) const
unsigned int pxfSide(const DetId &id) const
bool isRPhi(const DetId &id) const
bool tibIsInternalString(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
static constexpr auto TID
unsigned int tobLayer(const DetId &id) const
unsigned int tecSide(const DetId &id) const
AlignmentPI::regions AlignmentPI::topolInfo::filterThePartition ( )

Definition at line 398 of file AlignmentPayloadInspectorHelper.h.

References AlignmentPI::BPixL1i, AlignmentPI::BPixL1o, AlignmentPI::BPixL2i, AlignmentPI::BPixL2o, AlignmentPI::BPixL3i, AlignmentPI::BPixL3o, AlignmentPI::BPixL4i, AlignmentPI::BPixL4o, AlignmentPI::FPixmL1, AlignmentPI::FPixmL2, AlignmentPI::FPixmL3, AlignmentPI::FPixpL1, AlignmentPI::FPixpL2, AlignmentPI::FPixpL3, m_isDoubleSide, m_isInternal, m_isRphi, m_layer, m_ring, m_side, m_subdetid, AlignmentPI::NUM_OF_REGIONS, runTheMatrix::ret, AlignmentPI::StripDoubleSide, AlignmentPI::TECmR1R, AlignmentPI::TECmR1S, AlignmentPI::TECmR2R, AlignmentPI::TECmR2S, AlignmentPI::TECmR3, AlignmentPI::TECmR4, AlignmentPI::TECmR5, AlignmentPI::TECmR6, AlignmentPI::TECmR7, AlignmentPI::TECpR1R, AlignmentPI::TECpR1S, AlignmentPI::TECpR2R, AlignmentPI::TECpR2S, AlignmentPI::TECpR3, AlignmentPI::TECpR4, AlignmentPI::TECpR5, AlignmentPI::TECpR6, AlignmentPI::TECpR7, AlignmentPI::TIBL1Ri, AlignmentPI::TIBL1Ro, AlignmentPI::TIBL1Si, AlignmentPI::TIBL1So, AlignmentPI::TIBL2Ri, AlignmentPI::TIBL2Ro, AlignmentPI::TIBL2Si, AlignmentPI::TIBL2So, AlignmentPI::TIBL3i, AlignmentPI::TIBL3o, AlignmentPI::TIBL4i, AlignmentPI::TIBL4o, AlignmentPI::TIDmR1R, AlignmentPI::TIDmR1S, AlignmentPI::TIDmR2R, AlignmentPI::TIDmR2S, AlignmentPI::TIDmR3, AlignmentPI::TIDpR1R, AlignmentPI::TIDpR1S, AlignmentPI::TIDpR2R, AlignmentPI::TIDpR2S, AlignmentPI::TIDpR3, AlignmentPI::TOBL1Ri, AlignmentPI::TOBL1Ro, AlignmentPI::TOBL1Si, AlignmentPI::TOBL1So, AlignmentPI::TOBL2Ri, AlignmentPI::TOBL2Ro, AlignmentPI::TOBL2Si, AlignmentPI::TOBL2So, AlignmentPI::TOBL3i, AlignmentPI::TOBL3o, AlignmentPI::TOBL4i, AlignmentPI::TOBL4o, AlignmentPI::TOBL5i, AlignmentPI::TOBL5o, AlignmentPI::TOBL6i, and AlignmentPI::TOBL6o.

400  {
402 
403  if (m_isDoubleSide) {
405  }
406 
407  // BPix
408  if (m_subdetid == 1) {
409  switch (m_layer) {
410  case 1:
412  break;
413  case 2:
415  break;
416  case 3:
418  break;
419  case 4:
421  break;
422  default:
423  edm::LogWarning("LogicError") << "Unknow BPix layer: " << m_layer;
424  break;
425  }
426  // FPix
427  } else if (m_subdetid == 2) {
428  switch (m_layer) {
429  case 1:
431  break;
432  case 2:
434  break;
435  case 3:
437  break;
438  default:
439  edm::LogWarning("LogicError") << "Unknow FPix disk: " << m_layer;
440  break;
441  }
442  // TIB
443  } else if (m_subdetid == 3) {
444  switch (m_layer) {
445  case 1:
446  if (m_isRphi) {
448  } else {
450  }
451  break;
452  case 2:
453  if (m_isRphi) {
455  } else {
457  }
458  break;
459  case 3:
461  break;
462  case 4:
464  break;
465  default:
466  edm::LogWarning("LogicError") << "Unknow TIB layer: " << m_layer;
467  break;
468  }
469  // TID
470  } else if (m_subdetid == 4) {
471  switch (m_ring) {
472  case 1:
473  if (m_isRphi) {
475  } else {
477  }
478  break;
479  case 2:
480  if (m_isRphi) {
482  } else {
484  }
485  break;
486  case 3:
487  m_side > 1 ? ret = AlignmentPI::TIDpR3 : ret = AlignmentPI::TIDmR3;
488  break;
489  default:
490  edm::LogWarning("LogicError") << "Unknow TID wheel: " << m_layer;
491  break;
492  }
493  // TOB
494  } else if (m_subdetid == 5) {
495  switch (m_layer) {
496  case 1:
497  if (m_isRphi) {
499  } else {
501  }
502  break;
503  case 2:
504  if (m_isRphi) {
506  } else {
508  }
509  break;
510  case 3:
512  break;
513  case 4:
515  break;
516  case 5:
518  break;
519  case 6:
521  break;
522  default:
523  edm::LogWarning("LogicError") << "Unknow TOB layer: " << m_layer;
524  break;
525  }
526  // TEC
527  } else if (m_subdetid == 6) {
528  switch (m_ring) {
529  case 1:
530  if (m_isRphi) {
532  } else {
534  }
535  break;
536  case 2:
537  if (m_isRphi) {
539  } else {
541  }
542  break;
543  case 3:
544  m_side > 1 ? ret = AlignmentPI::TECpR3 : ret = AlignmentPI::TECmR3;
545  break;
546  case 4:
547  m_side > 1 ? ret = AlignmentPI::TECpR4 : ret = AlignmentPI::TECmR4;
548  break;
549  case 5:
550  m_side > 1 ? ret = AlignmentPI::TECpR5 : ret = AlignmentPI::TECmR5;
551  break;
552  case 6:
553  m_side > 1 ? ret = AlignmentPI::TECpR6 : ret = AlignmentPI::TECmR6;
554  break;
555  case 7:
556  m_side > 1 ? ret = AlignmentPI::TECpR7 : ret = AlignmentPI::TECmR7;
557  break;
558  default:
559  edm::LogWarning("LogicError") << "Unknow TEC ring: " << m_ring;
560  break;
561  }
562  }
563 
564  return ret;
565  }
ret
prodAgent to be discontinued
void AlignmentPI::topolInfo::init ( void  )
void AlignmentPI::topolInfo::printAll ( )
bool AlignmentPI::topolInfo::sanityCheck ( )

Definition at line 341 of file AlignmentPayloadInspectorHelper.h.

References m_layer, and m_subdetid.

343  {
344  if (m_layer == 0 || (m_subdetid == 1 && m_layer > 4) || (m_subdetid == 2 && m_layer > 3)) {
345  return false;
346  } else {
347  return true;
348  }
349  }

Member Data Documentation

bool AlignmentPI::topolInfo::m_isDoubleSide
private
bool AlignmentPI::topolInfo::m_isInternal
private
bool AlignmentPI::topolInfo::m_isRphi
private
int AlignmentPI::topolInfo::m_layer
private
uint32_t AlignmentPI::topolInfo::m_rawid
private

Definition at line 299 of file AlignmentPayloadInspectorHelper.h.

Referenced by fillGeometryInfo(), init(), and printAll().

int AlignmentPI::topolInfo::m_ring
private
int AlignmentPI::topolInfo::m_side
private
int AlignmentPI::topolInfo::m_subdetid
private