44 CurrentHit(0), theTrack(0), CurrentPV(0), PreviousPV(0), UnitID(0),
45 PreviousUnitID(0), PreStepPoint(0), PostStepPoint(0),
46 theDescription(numberingScheme) {
50 G4cout <<
"*******************************************************" <<
G4endl;
52 G4cout <<
"* Constructing a CCaloSD with name " << name <<
G4endl;
54 G4cout <<
"*******************************************************" <<
G4endl;
88 if (aStep == NULL)
return true;
109 const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
116 if (particleType ==
"e-" ||
117 particleType ==
"e+" ||
118 particleType ==
"gamma" ){
119 EdepositEM = weight*(aStep->GetTotalEnergyDeposit());
128 if ( TSlice > 1.0E9 )
TSliceID = 999999999;
143 <<
" Maybe detector name changed" 194 G4cout <<
"CCaloSD: hit to be stored is NULL !!" <<
G4endl;
205 G4int currentCopyNo = -999;
206 G4int motherCopyNo = -999;
209 if ( theTouchable ) {
215 G4cout <<
"CCaloSD createNewHit for" 217 <<
" PVid = " << currentCopyNo
218 <<
" MVid = " << motherCopyNo
222 <<
" For Track " <<
theTrack->GetTrackID()
223 <<
" which is a " <<
theTrack->GetDefinition()->GetParticleName();
231 G4cout <<
" and created by " ;
232 if (
theTrack->GetCreatorProcess()!=NULL)
317 G4double dapd = 0.5 * crlength - localPoint.
z();
318 if (dapd >= -0.1 || dapd <= crlength+0.1) {
320 weight = 1.05 - dapd * 0.0005;
322 G4cout <<
"CCaloSD, light coll curve : wrong distance to APD " << dapd
323 <<
" crlength = " << crlength
324 <<
" z of localPoint = " << localPoint.
z()
325 <<
" take weight = " << weight <<
G4endl;
328 G4cout <<
"CCaloSD, light coll curve : " << dapd
329 <<
" crlength = " << crlength
330 <<
" z of localPoint = " << localPoint.
z()
331 <<
" take weight = " << weight <<
G4endl;
CCalVOrganization * theDescription
G4double curve_LY(G4StepPoint *stepPoint)
void getStepInfo(G4Step *aStep)
G4int GetCollectionID(G4String colName)
int getTimeSliceID() const
CCalG4HitCollection * theHC
G4THitsCollection< CCalG4Hit > CCalG4HitCollection
G4StepPoint * PreStepPoint
static CCalSDList * getInstance()
void setIncidentEnergy(double e)
virtual void PrintAllHits()
void SetOrganization(CCalVOrganization *org)
void StoreHit(CCalG4Hit *ahit)
G4ThreeVector SetToLocal(G4ThreeVector globalPoint)
void setEntry(CLHEP::Hep3Vector xyz)
G4VPhysicalVolume * CurrentPV
CCaloSD(G4String aSDname, CCalVOrganization *numberingScheme)
void EndOfEvent(G4HCofThisEvent *HCE)
G4GLOB_DLL std::ostream G4cout
void insert(G4String str)
G4int GetHistoryDepth() const
G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist)
void addCalo(nameType name)
void ResetForNewPrimary()
G4int GetReplicaNumber(G4int depth=0) const
virtual const G4NavigationHistory * GetHistory() const
unsigned int getUnitID() const
virtual unsigned int GetUnitID(const G4Step *aStep) const =0
void setTimeSlice(double d)
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
void AddHitsCollection(G4int HCID, G4VHitsCollection *aHC)
const G4String & GetName() const
G4StepPoint * PostStepPoint
static const double nanosecond
G4ThreeVector EntrancePoint
unsigned int PreviousUnitID
static G4SDManager * GetSDMpointer()
const G4AffineTransform & GetTopTransform() const
void setUnitID(unsigned int i)
void addEnergyDeposit(const CCalG4Hit &aHit)
G4CollectionNameVector collectionName
G4VPhysicalVolume * PreviousPV
void Initialize(G4HCofThisEvent *HCE)
G4GLOB_DLL std::ostream G4cerr