55 :G4VSensitiveDetector(name)
59 collectionName.insert(
"DriftCellBackCollection");
84 {
DC_ID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); }
117 G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
119 G4TouchableHistory* theTouchable = (G4TouchableHistory*)(preStepPoint->GetTouchable());
120 G4VPhysicalVolume* physVol = theTouchable->GetVolume();
128 if( physVol->GetName().compare(
"VDC_DriftCellBack_Physical") == 0 )
156 if (preStepPoint->GetStepStatus() != fGeomBoundary) {
169 G4double currentKineticEnergy = aStep->GetTrack()->GetKineticEnergy();
170 G4double currentTotalEnergy = aStep->GetTrack()->GetTotalEnergy();
171 G4ThreeVector currentMomentumDirection = aStep->GetTrack()->GetMomentumDirection();
181 G4ThreeVector originVertexPosition = aStep->GetTrack()->GetVertexPosition();
182 G4ThreeVector originVertexMomentumDirection = aStep->GetTrack()->GetVertexMomentumDirection();
183 G4double originVertexKineticEnergy = aStep->GetTrack()->GetVertexKineticEnergy();
198 G4int DriftCellReplicaNo = theTouchable->GetReplicaNumber();
205 G4ThreeVector worldPos = preStepPoint->GetPosition();
210 G4ThreeVector localPos = theTouchable->GetHistory()->GetTopTransform().TransformPoint(worldPos);
222 aHit->
StoreTime(preStepPoint->GetGlobalTime());
253 aHit->
StoreLogV(physVol->GetLogicalVolume());
254 G4AffineTransform aTrans = theTouchable->GetHistory()->GetTopTransform();
260 if( physVol->GetName().compare(
"VDC_DriftCellFront_Physical") == 0 ) { aHit->
StoreDriftCellPlaneID(0);}
261 if( physVol->GetName().compare(
"VDC_DriftCellBack_Physical") == 0 ) { aHit->
StoreDriftCellPlaneID(1);}
void StoreCellPos(G4ThreeVector xyz)
G4THitsCollection< QweakSimVDC_DriftCellHit > QweakSimVDC_DriftCellHitsCollection
void StoreOriginVertexKineticEnergy(G4double ekin)
void StoreDCWidthOnFrame(G4double dcw)
void StoreDCUPlaneWireAngle(G4double dca)
void StoreDriftCellPlaneID(G4int dcplane_id)
Region 3 Vertical Drift Chamber Drift Cell Hit.
void StoreKineticEnergy(G4double ekin)
G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist)
static G4double DCUPlaneWireAngle
void StoreTime(G4double t)
void StoreMomentumDirection(G4ThreeVector pxyz)
void StoreDCVPlaneWireAngle(G4double dca)
void StoreLogV(G4LogicalVolume *val)
void StoreWorldPos(G4ThreeVector xyz)
~QweakSimVDC_DriftCellBackSD()
void StoreOriginVertexPosition(G4ThreeVector xyz)
void StoreOriginVertexMomentumDirection(G4ThreeVector pxyz)
static G4double DCVPlaneWireAngle
static G4double DCFullThickness
void StoreLocalPos(G4ThreeVector xyz)
QweakSimVDC_DriftCellHitsCollection * DC_hitsCollection
const G4LogicalVolume * GetLogV() const
void StoreTotalEnergy(G4double etot)
static G4int DCNumberPerPlane
QweakSimVDC_DriftCellBackSD(G4String name)
static G4double DCWidthOnFrame
void StoreCellRot(G4RotationMatrix rmat)
void EndOfEvent(G4HCofThisEvent *HCE)
void StoreDCFullThickness(G4double dct)
void Initialize(G4HCofThisEvent *HCE)