19 #ifndef CSCDQM_Detector_H 20 #define CSCDQM_Detector_H 30 #ifdef CSC_RENDER_PLUGIN 54 #define N_ELEMENTS 9540 61 #define PARTITION_INDEX(x, y) (x * partitions_y + y) 62 #define PARTITION_STEP_X (5.0 / partitions_x) 63 #define PARTITION_STEP_Y ((2.0 * 3.14159) / partitions_y) 106 if (mask.
hv == a.
mask.
hv && mask.
hv ==
true && hv != a.
hv)
121 std::ostringstream oss;
124 oss <<
"_Side" << (side == 1 ?
"Plus" :
"Minus");
126 oss <<
"_Station" << std::setfill(
'0') << std::setw(2) <<
station;
128 oss <<
"_Ring" << std::setfill(
'0') << std::setw(2) <<
ring;
130 oss <<
"_Chamber" << std::setfill(
'0') << std::setw(2) <<
chamber;
132 oss <<
"_Layer" << std::setfill(
'0') << std::setw(2) <<
layer;
134 oss <<
"_CFEB" << std::setfill(
'0') << std::setw(2) <<
cfeb;
136 oss <<
"_HV" << std::setfill(
'0') << std::setw(2) <<
hv;
160 typedef std::map<const unsigned int, std::vector<unsigned int> >
PartitionMap;
171 Detector(
const unsigned int p_partitions_x = 0,
const unsigned int p_partitions_y = 0);
173 const bool NextAddress(
unsigned int&
i,
const Address*& adr,
const Address& mask)
const;
174 const bool NextAddressBox(
unsigned int& i,
const AddressBox*& box,
const Address& mask)
const;
176 const bool NextAddressBoxByPartition(
unsigned int& i,
177 const unsigned int px,
178 const unsigned int py,
181 const float Area(
const unsigned int station)
const;
182 const float Area(
const Address& adr)
const;
184 void PrintAddress(
const Address& adr)
const;
187 const unsigned int NumberOfRings(
const unsigned int station)
const;
188 const unsigned int NumberOfChambers(
const unsigned int station,
const unsigned int ring)
const;
189 const unsigned int NumberOfChamberCFEBs(
const unsigned int station,
const unsigned int ring)
const;
190 const unsigned int NumberOfChamberHVs(
const unsigned int station,
const unsigned int ring)
const;
191 unsigned int GlobalChamberIndex(
unsigned int side,
192 unsigned int station,
197 const float Eta(
const float r,
const float z)
const;
198 const float EtaToX(
const float eta)
const;
199 const float PhiToY(
const float phi)
const;
200 const float Z(
const int station,
const int ring)
const;
201 const float RMinHV(
const int station,
const int ring,
const int n_hv)
const;
202 const float RMaxHV(
const int station,
const int ring,
const int n_hv)
const;
203 const float PhiMinCFEB(
const int station,
const int ring,
const int chamber,
const int cfeb)
const;
204 const float PhiMaxCFEB(
const int station,
const int ring,
const int chamber,
const int cfeb)
const;
Detector geometry and addressing related imformation and routines.
unsigned int partitions_y
PartitionMap::iterator PartitionMapIterator
friend std::ostream & operator<<(std::ostream &out, const Address &adr)
unsigned int partitions_x
Area covered by Address in eta/phy space.
std::map< const unsigned int, std::vector< unsigned int > > PartitionMap
Mask of the address which is used to switch on and off appropriate Address fields.
const bool operator==(const Address &a) const
const std::string name() const
Get the full name of the address prefixed with CSC_. It is being used by summaryReportContent variabl...
Structure to store detector addresses of any granularity: from whole detector to the single HV elemen...