Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:32:09

0001 #ifndef Validation_EventGenerator_CaloCellManager
0002 #define Validation_EventGenerator_CaloCellManager
0003 
0004 /* class CaloCellManager
0005  *
0006  * Simple eta-phi cell structure manager, mimic calorimetric tower structure
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   // approximated CMS eta-phi calorimetri tower grid
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