CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CaloGenericDetId.cc
Go to the documentation of this file.
2 #include <iostream>
3 
5  int iSub ,
6  uint32_t iDin ) : DetId( iDet, iSub )
7 {
8  id_ = ( isEB() ? EBDetId::detIdFromDenseIndex( iDin ).rawId() :
9  ( isEE() ? EEDetId::detIdFromDenseIndex( iDin ).rawId() :
10  ( isES() ? ESDetId::detIdFromDenseIndex( iDin ).rawId() :
14  ( isCaloTower() ? CaloTowerDetId::detIdFromDenseIndex( iDin ).rawId() : 0 ) ) ) ) ) ) ) ;
15 }
16 
17 uint32_t
19 {
20  return ( isEB() ? EBDetId( rawId() ).denseIndex() :
21  ( isEE() ? EEDetId( rawId() ).denseIndex() :
22  ( isES() ? ESDetId( rawId() ).denseIndex() :
23  ( isHcal() ? HcalDetId( rawId() ).denseIndex() :
24  ( isZDC() ? HcalZDCDetId( rawId() ).denseIndex() :
26  ( isCaloTower() ? CaloTowerDetId( rawId() ).denseIndex() : ~0 ) ) ) ) ) ) ) ;
27 }
28 
29 uint32_t
31 {
38  ( isCaloTower() ? CaloTowerDetId::kSizeForDenseIndexing : 0 ) ) ) ) ) ) ) ;
39 }
40 
41 bool
43 {
44  bool returnValue ( false ) ;
45  if( isEB() )
46  {
47  const EBDetId ebid ( rawId() ) ;
48  returnValue = EBDetId::validDetId( ebid.ieta(),
49  ebid.iphi() ) ;
50  }
51  else
52  {
53  if( isEE() )
54  {
55  const EEDetId eeid ( rawId() ) ;
56  returnValue = EEDetId::validDetId( eeid.ix(),
57  eeid.iy(),
58  eeid.zside() ) ;
59  }
60  else
61  {
62  if( isES() )
63  {
64  const ESDetId esid ( rawId() ) ;
65  returnValue = ESDetId::validDetId( esid.strip(),
66  esid.six(),
67  esid.siy(),
68  esid.plane(),
69  esid.zside() ) ;
70  }
71  else
72  {
73  if( isHcal() )
74  {
75  const HcalDetId hcid ( rawId() ) ;
76  returnValue = HcalDetId::validDetId( hcid.subdet(),
77  hcid.ieta() ,
78  hcid.iphi() ,
79  hcid.depth() ) ;
80  }
81  else
82  {
83  if( isZDC() )
84  {
85  const HcalZDCDetId zdid ( rawId() ) ;
86  returnValue = HcalZDCDetId::validDetId( zdid.section(),
87  zdid.channel() ) ;
88  }
89  else
90  {
91  if( isCastor() )
92  {
93  const HcalCastorDetId zdid ( rawId() ) ;
94  returnValue = HcalCastorDetId::validDetId( zdid.section(),
95  zdid.zside()>0,
96  zdid.sector(),
97  zdid.module() ) ;
98  }
99  else
100  {
101  if( isCaloTower() )
102  {
103  const CaloTowerDetId ctid ( rawId() ) ;
104  returnValue = CaloTowerDetId::validDetId( ctid.ieta(),
105  ctid.iphi() ) ;
106  }
107  }
108  }
109  }
110  }
111  }
112  }
113  return returnValue ;
114 }
115 
116 std::ostream& operator<<(std::ostream& s, const CaloGenericDetId& id)
117 {
118  return ( id.isEB() ? s<<EBDetId( id ) :
119  ( id.isEE() ? s<<EEDetId( id ) :
120  ( id.isES() ? s<<ESDetId( id ) :
121  ( id.isCaloTower() ? s<<CaloTowerDetId( id ) :
122  ( id.isHcal() ? s<<HcalDetId( id ) :
123  ( id.isZDC() ? s<<HcalZDCDetId( id ) :
124  s<<"UnknownId="<<std::hex<<id.rawId()<<std::dec ) ) ) ) ) ) ;
125 }
static EEDetId detIdFromDenseIndex(uint32_t din)
Definition: EEDetId.h:215
static bool validDetId(int i, int j)
check if a valid index combination
Definition: EBDetId.cc:59
static bool validDetId(Section iSection, bool posEta, int iSector, int iMod)
static bool validDetId(int ie, int ip)
int strip() const
Definition: ESDetId.h:41
int ix() const
Definition: EEDetId.h:71
static bool validDetId(Section se, int dp)
Definition: HcalZDCDetId.cc:61
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:32
int sector() const
get the sector (1-16)
bool isCaloTower() const
bool validDetId() const
bool isCastor() const
int module() const
get the module (1-2 for EM, 1-12 for HAD)
int six() const
Definition: ESDetId.h:37
uint32_t sizeForDenseIndexing() const
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
Section section() const
get the section
static bool validDetId(HcalSubdetector subdet, int tower_ieta, int tower_iphi, int depth)
Definition: HcalDetId.cc:70
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
Definition: EEDetId.cc:562
static CaloTowerDetId detIdFromDenseIndex(uint32_t din)
int iphi() const
get the crystal iphi
Definition: EBDetId.h:46
static EBDetId detIdFromDenseIndex(uint32_t di)
Definition: EBDetId.h:98
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
int depth() const
get the tower depth
Definition: HcalDetId.h:42
bool isEB() const
int siy() const
Definition: ESDetId.h:39
static HcalCastorDetId detIdFromDenseIndex(uint32_t di)
static HcalDetId detIdFromDenseIndex(uint32_t di)
Definition: HcalDetId.cc:155
int ieta() const
get the cell ieta
Definition: HcalDetId.h:38
int zside() const
Definition: EEDetId.h:65
int iphi() const
get the tower iphi
int zside() const
get the z-side of the cell (1/-1)
int iy() const
Definition: EEDetId.h:77
int ieta() const
get the crystal ieta
Definition: EBDetId.h:44
CaloGenericDetId(uint32_t rawid)
int zside() const
Definition: ESDetId.h:33
bool isHcal() const
Section section() const
get the section
Definition: HcalZDCDetId.h:38
static HcalZDCDetId detIdFromDenseIndex(uint32_t di)
Definition: HcalZDCDetId.cc:42
uint32_t denseIndex() const
bool isES() const
static ESDetId detIdFromDenseIndex(uint32_t din)
Definition: ESDetId.h:49
int iphi() const
get the cell iphi
Definition: HcalDetId.h:40
Definition: DetId.h:20
Detector
Definition: DetId.h:26
uint32_t id_
Definition: DetId.h:57
static bool validDetId(int istrip, int ixs, int iys, int iplane, int iz)
check if a valid index combination
Definition: ESDetId.cc:50
bool isEE() const
int channel() const
get the channel
Definition: HcalZDCDetId.h:42
int plane() const
Definition: ESDetId.h:35
int ieta() const
get the tower ieta
bool isZDC() const