CMS 3D CMS Logo

ECalSD.h

Go to the documentation of this file.
00001 #ifndef SimG4CMS_ECalSD_h
00002 #define SimG4CMS_ECalSD_h
00004 // File: ECalSD.h
00005 // Description: Stores hits of Electromagnetic calorimeters in appropriate
00006 //              container
00007 // Use in your sensitive detector builder:
00008 //    ECalSD* ecalSD = new ECalSD(SDname, new CaloNumberingScheme());
00010 
00011 #include "SimG4CMS/Calo/interface/CaloSD.h"
00012 #include "Geometry/EcalCommonData/interface/EcalNumberingScheme.h"
00013 
00014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00015 
00016 #include "G4String.hh"
00017 #include <map>
00018 
00019 class EcalBaseNumber;
00020 class G4LogicalVolume;
00021 
00022 class ECalSD : public CaloSD {
00023 
00024 public:    
00025 
00026   ECalSD(G4String, const DDCompactView &, SensitiveDetectorCatalog &, 
00027          edm::ParameterSet const &, const SimTrackManager*);
00028   virtual ~ECalSD();
00029   virtual double                    getEnergyDeposit(G4Step*);
00030   virtual int                       getRadiationLenght(G4Step *);
00031   virtual uint32_t                  setDetUnitId(G4Step*);
00032   void                              setNumberingScheme(EcalNumberingScheme*);
00033 
00034 private:    
00035 
00036   void                              initMap(G4String, const DDCompactView &);
00037   double                            curve_LY(G4Step*); 
00038   double                            crystalLength(G4LogicalVolume*);
00039   void                              getBaseNumber(const G4Step*); 
00040   double                            getBirkL3(G4Step*);
00041 
00042   EcalNumberingScheme *             numberingScheme;
00043   bool                              useWeight;
00044   bool                              useBirk, useBirkL3;
00045   double                            birk1, birk2, birk3, birkSlope, birkCut;
00046   double                            slopeLY;
00047   std::map<G4LogicalVolume*,double> xtalLMap;
00048   EcalBaseNumber                    theBaseNumber;
00049 };
00050 
00051 #endif // ECalSD_h

Generated on Tue Jun 9 17:46:48 2009 for CMSSW by  doxygen 1.5.4