File indexing completed on 2023-03-17 11:27:16
0001 #ifndef Validation_EventGenerator_CaloCellManager
0002 #define Validation_EventGenerator_CaloCellManager
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "Validation/EventGenerator/interface/CaloCellId.h"
0012
0013 #include <vector>
0014
0015 class CaloCellManager {
0016 public:
0017 typedef std::vector<CaloCellId*> CaloCellCollection;
0018
0019 CaloCellManager(unsigned int theVerbosity);
0020 virtual ~CaloCellManager();
0021
0022 unsigned int getCellIndexFromAngle(double eta, double phi);
0023 CaloCellId* getCellFromIndex(unsigned int id);
0024 std::vector<double> getEtaRanges();
0025
0026
0027
0028 static const unsigned int nBarrelEta = 16;
0029 static const unsigned int nEndcapEta = 12;
0030 static const unsigned int nForwardEta = 12;
0031
0032 static const unsigned int nBarrelPhi = 72;
0033 static const unsigned int nEndcapPhi = 36;
0034 static const unsigned int nForwardPhi = 36;
0035
0036 static const unsigned int nBarrelCell = 2 * nBarrelEta * nBarrelPhi;
0037 static const unsigned int nEndcapCell = 2 * nEndcapEta * nEndcapPhi;
0038 static const unsigned int nForwardCell = 2 * nForwardEta * nForwardPhi;
0039
0040 static const unsigned int nCaloCell = nBarrelCell + nEndcapCell + nForwardCell;
0041
0042 private:
0043 void init();
0044 void builder();
0045
0046 unsigned int verbosity;
0047
0048 std::vector<double> etaLim;
0049 std::vector<double> phiLimBar;
0050 std::vector<double> phiLimEnd;
0051 std::vector<double> phiLimFor;
0052
0053 CaloCellCollection theCellCollection;
0054 };
0055
0056 #endif