CMS 3D CMS Logo

EcalRingCalibrationTools.h
Go to the documentation of this file.
1 #ifndef EcalRingCalibrationTools_h
2 #define EcalRingCalibrationTools_h
3 
4 /****************************************
5  *
6  * 25/09/2007 P. Meridiani (CERN)
7  * Description:
8  * Tools to ease the hanling of indices
9  * for ECAL ring intercalibration
10  *
11  ***************************************/
12 
13 #include <vector>
14 #include <mutex>
15 #include <atomic>
19 
20 class DetId;
21 class CaloGeometry;
22 
24 {
25  public:
28 
30  static short getRingIndex(DetId aDetId);
31 
32  static short getModuleIndex(DetId aDetId);
33 
35  static std::vector<DetId> getDetIdsInRing(short aRingIndex);
36  static std::vector<DetId> getDetIdsInModule(short int);
37  static std::vector<DetId> getDetIdsInECAL();
38 
39  static constexpr short N_RING_TOTAL = 248;
40  static constexpr short N_RING_BARREL = 170;
41  static constexpr short N_RING_ENDCAP = 78;
42 
43  static constexpr short N_MODULES_BARREL = 144;
44 
45  static void setCaloGeometry(const CaloGeometry* geometry);
46 
47  private:
48  static void initializeFromGeometry(CaloGeometry const* geometry); // needed only for the endcap
49 
50  static std::atomic<bool> isInitializedFromGeometry_;
51 
52  CMS_THREAD_GUARD(isInitializedFromGeometry_)
53  static short endcapRingIndex_[EEDetId::IX_MAX][EEDetId::IY_MAX]; // array needed only for the endcaps
54 
55  static std::once_flag once_;
56 
57 };
58 #endif
static short endcapRingIndex_[EEDetId::IX_MAX][EEDetId::IY_MAX]
static short getModuleIndex(DetId aDetId)
static void setCaloGeometry(const CaloGeometry *geometry)
static std::atomic< bool > isInitializedFromGeometry_
static void initializeFromGeometry(CaloGeometry const *geometry)
static short getRingIndex(DetId aDetId)
Retrieve the phi-ring index corresponding to a DetId.
static std::vector< DetId > getDetIdsInRing(short aRingIndex)
Retrieve the DetIds in a phi-ring.
static constexpr short N_RING_ENDCAP
#define CMS_THREAD_GUARD(_var_)
static std::vector< DetId > getDetIdsInModule(short int)
Definition: DetId.h:18
static constexpr short N_RING_BARREL
static std::vector< DetId > getDetIdsInECAL()
static constexpr short N_RING_TOTAL
#define constexpr
static constexpr short N_MODULES_BARREL