4 // See the class description in the header file.
6 #include "AliSensitiveDetector.h"
11 #include "TG4G3Units.h"
13 AliSensitiveDetector::AliSensitiveDetector(G4String sdName, AliModule* module)
14 : TG4VSensitiveDetector(sdName),
22 AliSensitiveDetector::AliSensitiveDetector(G4String sdName, AliModule* module,
24 : TG4VSensitiveDetector(sdName, id),
32 AliSensitiveDetector::AliSensitiveDetector(const AliSensitiveDetector& right)
33 : TG4VSensitiveDetector(right)
40 AliSensitiveDetector::AliSensitiveDetector(){
44 AliSensitiveDetector::~AliSensitiveDetector() {
51 AliSensitiveDetector::operator=(const AliSensitiveDetector& right)
53 // check assignement to self
54 if (this == &right) return *this;
56 // base class assignement
57 TG4VSensitiveDetector::operator=(right);
59 fModule = right.fModule;
66 void AliSensitiveDetector::Initialize(G4HCofThisEvent*HCE)
68 // This method is called by G4 kernel at the beginning of event action
69 // before user defined BeginOfEventAction() method.
72 fModuleID = gAlice->GetModuleID(fModule->GetName());
73 fMCQA = gAlice->GetMCQA();
77 void AliSensitiveDetector::UserProcessHits(const G4Track* track,
80 // Calls StepManager of associated AliModule.
83 // add energy deposit of the current step
86 gAlice->AddEnergyDeposit(
87 fID, step->GetTotalEnergyDeposit()/TG4G3Units::Energy());
89 fMCQA->StepManager(fModuleID);
91 // let AliModule process the step
92 fModule->StepManager();