CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/SimG4CMS/Forward/interface/CastorSD.h

Go to the documentation of this file.
00001 #ifndef Forward_CastorSD_h
00002 #define Forward_CastorSD_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Forward
00006 // Class  :     CastorSD
00007 //
00016 //
00017 // Original Author: 
00018 //         Created:  Tue May 16 10:14:34 CEST 2006
00019  
00020 // system include files
00021 
00022 // user include files
00023 
00024 #include "SimG4CMS/Calo/interface/CaloSD.h"
00025 #include "SimG4CMS/Forward/interface/CastorShowerLibrary.h"
00026 #include "SimG4CMS/Forward/interface/CastorNumberingScheme.h"
00027 #include "SimDataFormats/CaloHit/interface/CastorShowerEvent.h"
00028 #include "G4LogicalVolume.hh"
00029 
00030 class CastorSD : public CaloSD {
00031 
00032 public:    
00033 
00034   CastorSD(G4String, const DDCompactView &, SensitiveDetectorCatalog & clg, 
00035            edm::ParameterSet const &, const SimTrackManager*);
00036   virtual ~CastorSD();
00037   virtual double   getEnergyDeposit(G4Step* );
00038   virtual uint32_t setDetUnitId(G4Step* step);
00039   void             setNumberingScheme(CastorNumberingScheme* scheme);
00040 
00041 private:
00042 
00043   void                    getFromLibrary(G4Step*);
00044   int                     setTrackID(G4Step*);
00045   uint32_t                rotateUnitID(uint32_t, G4Track*, CastorShowerEvent);
00046   CastorNumberingScheme * numberingScheme;
00047   CastorShowerLibrary *   showerLibrary;
00048   G4LogicalVolume         *lvC3EF, *lvC3HF, *lvC4EF, *lvC4HF;
00049   G4LogicalVolume         *lvCAST;               // Pointer for CAST sensitive volume  (SL trigger)
00050   
00051   bool                    useShowerLibrary;
00052   double                  energyThresholdSL; 
00053 
00054 protected:
00055 
00056   virtual void            initRun();
00057 
00058 };
00059 
00060 #endif // CastorSD_h