CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/SimCalorimetry/HcalSimAlgos/interface/HcalShapes.h

Go to the documentation of this file.
00001 #ifndef HcalSimAlgos_HcalShapes_h
00002 #define HcalSimAlgos_HcalShapes_h
00003 
00008 #include "FWCore/Framework/interface/Frameworkfwd.h"
00009 #include "SimCalorimetry/CaloSimAlgos/interface/CaloShapes.h"
00010 #include "SimCalorimetry/HcalSimAlgos/interface/HcalShape.h"
00011 #include "SimCalorimetry/HcalSimAlgos/interface/HFShape.h"
00012 #include "SimCalorimetry/HcalSimAlgos/interface/ZDCShape.h"
00013 #include "SimCalorimetry/HcalSimAlgos/interface/HcalSiPMShape.h"
00014 #include <map>
00015 class CaloVShape;
00016 class DetId;
00017 class HcalMCParams;
00018 class HcalTopology;
00019 
00020 class HcalShapes : public CaloShapes
00021 {
00022 public:
00023   enum {HPD=101, LONG=102, ZECOTEK=201, HAMAMATSU=202, HF=301, ZDC=401};
00024   HcalShapes();
00025   ~HcalShapes();
00026 
00027   void beginRun(edm::EventSetup const & es);
00028   void endRun();
00029 
00030   virtual const CaloVShape * shape(const DetId & detId) const;
00031 
00032 private:
00033   // hardcoded, if we can't figure it out form the DB
00034   const CaloVShape * defaultShape(const DetId & detId) const;
00035   const HcalMCParams * theMCParams;
00036   const HcalTopology * theTopology;
00037   typedef std::map<int, const CaloVShape *> ShapeMap;
00038   ShapeMap theShapes;
00039   // HcalShape theHcalShape;
00040   // HFShape theHFShape;
00041   ZDCShape theZDCShape;
00042   // HcalSiPMShape theSiPMShape;
00043   //   list of vShapes.
00044   HcalShape theHcalShape101;
00045   HcalShape theHcalShape102;
00046   HcalShape theHcalShape103;
00047   HcalShape theHcalShape104;
00048   HcalShape theHcalShape105;
00049   HcalShape theHcalShape123;
00050   HcalShape theHcalShape124;
00051   HcalShape theHcalShape125;
00052   HcalShape theHcalShape201;
00053   HcalShape theHcalShape202;
00054   HcalShape theHcalShape301;
00055   HcalShape theHcalShape401;
00056 
00057 };
00058 
00059 #endif
00060