1 #ifndef SimG4CMS_CaloSD_h
2 #define SimG4CMS_CaloSD_h
28 #include "G4VPhysicalVolume.hh"
30 #include "G4VGFlashSensitiveDetector.hh"
38 class G4HCofThisEvent;
43 public G4VGFlashSensitiveDetector,
45 public Observer<const BeginOfEvent *>,
46 public Observer<const BeginOfTrack *>,
48 public Observer<const EndOfEvent *> {
55 int tSlice=1,
bool ignoreTkID=
false);
58 virtual bool ProcessHits(G4GFlashSpot*aSpot,G4TouchableHistory*);
62 virtual void Initialize(G4HCofThisEvent * HCE);
63 virtual void EndOfEvent(G4HCofThisEvent * eventHC);
73 G4ThreeVector
setToLocal(G4ThreeVector,
const G4VTouchable*);
74 G4ThreeVector
setToGlobal(G4ThreeVector,
const G4VTouchable*);
87 virtual void update(const ::EndOfEvent *);
148 std::map<int,TrackWithHistory*>
tkMap;
160 #endif // SimG4CMS_CaloSD_h
G4ThreeVector setToLocal(G4ThreeVector, const G4VTouchable *)
G4ThreeVector setToGlobal(G4ThreeVector, const G4VTouchable *)
virtual uint32_t setDetUnitId(G4Step *step)=0
std::vector< PCaloHit > PCaloHitContainer
void updateHit(CaloG4Hit *)
virtual void Initialize(G4HCofThisEvent *HCE)
virtual void EndOfEvent(G4HCofThisEvent *eventHC)
virtual int getTrackID(G4Track *)
void fillHits(edm::PCaloHitContainer &, std::string n)
type of data representation of DDCompactView
std::vector< CaloG4Hit * > reusehit
void cleanHitCollection()
CaloSD(G4String aSDname, const DDCompactView &cpv, SensitiveDetectorCatalog &clg, edm::ParameterSet const &p, const SimTrackManager *, int tSlice=1, bool ignoreTkID=false)
virtual void update(const BeginOfRun *)
This routine will be called when the appropriate signal arrives.
std::vector< CaloG4Hit * > hitvec
double getAttenuation(G4Step *aStep, double birk1, double birk2, double birk3)
std::vector< unsigned int > selIndex
CaloMeanResponse * meanResponse
void storeHit(CaloG4Hit *)
virtual bool filterHit(CaloG4Hit *, double)
virtual G4bool getStepInfo(G4Step *aStep)
G4StepPoint * preStepPoint
virtual bool ProcessHits(G4Step *step, G4TouchableHistory *tHistory)
std::map< CaloHitID, CaloG4Hit * > hitMap
CaloG4HitCollection * theHC
double getResponseWt(G4Track *)
G4THitsCollection< CaloG4Hit > CaloG4HitCollection
std::map< int, TrackWithHistory * > tkMap
void resetForNewPrimary(G4ThreeVector, double)
const SimTrackManager * m_trackManager
bool saveHit(CaloG4Hit *)
CaloG4Hit * createNewHit()
virtual uint16_t getDepth(G4Step *)
G4ThreeVector entrancePoint
G4ThreeVector entranceLocal
virtual double getEnergyDeposit(G4Step *step)