20 :G4VSensitiveDetector(name)
22 collectionName.insert(
"LeadGlassCollection");
54 G4TouchableHandle theTouchable = aStep->GetPreStepPoint()->GetTouchableHandle();
55 G4int motherCopyNo = theTouchable->GetVolume(1)->GetCopyNo();
58 G4double trackID = aStep->GetTrack()->GetTrackID();
60 G4ParticleDefinition* fpParticleDefinition = aStep->GetTrack()->GetDefinition();
61 G4String particleName = fpParticleDefinition->GetParticleName();
63 G4int pdgEncoding = fpParticleDefinition->GetPDGEncoding();
66 G4double globalTime = aStep->GetPreStepPoint()->GetGlobalTime();
68 G4ThreeVector worldPos = aStep->GetPreStepPoint()->GetPosition();
69 G4ThreeVector localPos = theTouchable->GetHistory()->GetTopTransform().TransformPoint(worldPos);
71 G4ThreeVector originVertexPosition = aStep->GetTrack()->GetVertexPosition();
73 G4ThreeVector worldMomentum = aStep->GetPreStepPoint()->GetMomentum();
74 G4ThreeVector localMomentum = theTouchable->GetHistory()->GetTopTransform().TransformPoint(worldMomentum);
75 G4ThreeVector currentMomentumDirection = aStep->GetTrack()->GetMomentumDirection();
76 G4ThreeVector originVertexMomentumDirection = aStep->GetTrack()->GetVertexMomentumDirection();
82 G4double originVertexKineticEnergy = aStep->GetTrack()->GetVertexKineticEnergy();
83 G4double originVertexTotalEnergy = aStep->GetTrack()->GetVertexKineticEnergy();
85 G4double currentKineticEnergy = aStep->GetTrack()->GetKineticEnergy();
86 G4double currentTotalEnergy = aStep->GetTrack()->GetTotalEnergy();
101 G4double depositedEnergy = aStep->GetTotalEnergyDeposit();
108 aHit -> StoreTrackID(trackID);
110 aHit -> StoreParticleName(particleName);
111 aHit -> StoreParticleType(pdgEncoding);
113 aHit -> StoreGlobalTime(globalTime);
119 aHit -> StoreWorldPosition(worldPos);
120 aHit -> StoreLocalPosition(localPos);
122 aHit -> StoreOriginVertexPosition(originVertexPosition);
124 aHit -> StoreWorldMomentum(worldMomentum);
125 aHit -> StoreLocalMomentum(localMomentum);
126 aHit -> StoreMomentumDirection(currentMomentumDirection);
127 aHit -> StoreOriginVertexMomentumDirection(originVertexMomentumDirection);
132 aHit -> StoreOriginVertexKineticEnergy(originVertexKineticEnergy);
133 aHit -> StoreOriginVertexTotalEnergy(originVertexTotalEnergy);
135 aHit -> StoreKineticEnergy(currentKineticEnergy);
136 aHit -> StoreTotalEnergy(currentTotalEnergy);
146 aHit -> StoreHitDepositedEnergy(depositedEnergy);
152 if ( !(aHit -> GetLogVolume()) )
156 aHit -> StoreLogVolume(theTouchable->GetVolume()->GetLogicalVolume());
157 G4AffineTransform aTrans = theTouchable->GetHistory()->GetTopTransform();
159 aHit -> StoreCellRotation(aTrans.NetRotation());
160 aHit -> StoreCellPosition(aTrans.NetTranslation());
G4int LeadGlass_CollectionID
QweakSimLeadGlass_DetectorSD(G4String name)
G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist)
void EndOfEvent(G4HCofThisEvent *HCE)
G4THitsCollection< QweakSimLeadGlass_DetectorHit > QweakSimLeadGlass_DetectorHitsCollection
void Initialize(G4HCofThisEvent *HCE)
QweakSimLeadGlass_DetectorHitsCollection * LeadGlass_DetectorHitsCollection
~QweakSimLeadGlass_DetectorSD()