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) 101 if (mask.
hv == a.
mask.
hv && mask.
hv ==
true && hv != a.
hv)
return false;
133 std::ostringstream oss;
136 oss <<
"_Side" << (side == 1 ?
"Plus" :
"Minus");
138 oss <<
"_Station" << std::setfill(
'0') << std::setw(2) <<
station;
140 oss <<
"_Ring" << std::setfill(
'0') << std::setw(2) <<
ring;
142 oss <<
"_Chamber" << std::setfill(
'0') << std::setw(2) <<
chamber;
144 oss <<
"_Layer" << std::setfill(
'0') << std::setw(2) <<
layer;
146 oss <<
"_CFEB" << std::setfill(
'0') << std::setw(2) <<
cfeb;
148 oss <<
"_HV" << std::setfill(
'0') << std::setw(2) <<
hv;
174 typedef std::map<const unsigned int, std::vector<unsigned int> >
PartitionMap;
187 Detector(
const unsigned int p_partitions_x = 0,
const unsigned int p_partitions_y = 0);
190 const bool NextAddressBox(
unsigned int& i,
const AddressBox*& box,
const Address& mask)
const;
192 const bool NextAddressBoxByPartition (
unsigned int& i,
const unsigned int px,
const unsigned int py,
AddressBox*& box);
194 const float Area(
const unsigned int station)
const;
195 const float Area(
const Address& adr)
const;
197 void PrintAddress(
const Address& adr)
const;
200 const unsigned int NumberOfRings(
const unsigned int station)
const;
201 const unsigned int NumberOfChambers(
const unsigned int station,
const unsigned int ring)
const;
202 const unsigned int NumberOfChamberCFEBs(
const unsigned int station,
const unsigned int ring)
const;
203 const unsigned int NumberOfChamberHVs(
const unsigned int station,
const unsigned int ring)
const;
204 unsigned int GlobalChamberIndex(
unsigned int side,
unsigned int station,
unsigned int ring,
unsigned int chamber)
const;
208 const float Eta(
const float r,
const float z)
const;
209 const float EtaToX(
const float eta)
const;
210 const float PhiToY(
const float phi)
const;
211 const float Z(
const int station,
const int ring)
const;
212 const float RMinHV(
const int station,
const int ring,
const int n_hv)
const;
213 const float RMaxHV(
const int station,
const int ring,
const int n_hv)
const;
214 const float PhiMinCFEB(
const int station,
const int ring,
const int chamber,
const int cfeb)
const;
215 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.
bool operator==(const QGLikelihoodParameters &lhs, const QGLikelihoodCategory &rhs)
Test if parameters are compatible with category.
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...