56 :G4VSensitiveDetector(name)
60 collectionName.insert(
"DriftCellFrontCollection");
85 {
DC_ID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); }
118 G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
120 G4TouchableHistory* theTouchable = (G4TouchableHistory*)(preStepPoint->GetTouchable());
121 G4VPhysicalVolume* physVol = theTouchable->GetVolume();
130 if( physVol->GetName().compare(
"VDC_DriftCellFront_Physical")==0 )
158 if (preStepPoint->GetStepStatus() != fGeomBoundary)
171 G4double currentKineticEnergy = aStep->GetTrack()->GetKineticEnergy();
172 G4double currentTotalEnergy = aStep->GetTrack()->GetTotalEnergy();
173 G4ThreeVector currentMomentumDirection = aStep->GetTrack()->GetMomentumDirection();
182 G4ThreeVector originVertexPosition = aStep->GetTrack()->GetVertexPosition();
183 G4ThreeVector originVertexMomentumDirection = aStep->GetTrack()->GetVertexMomentumDirection();
184 G4double originVertexKineticEnergy = aStep->GetTrack()->GetVertexKineticEnergy();
199 G4int DriftCellReplicaNo = theTouchable->GetReplicaNumber();
206 G4ThreeVector worldPos = preStepPoint->GetPosition();
211 G4ThreeVector localPos = theTouchable->GetHistory()->GetTopTransform().TransformPoint(worldPos);
223 aHit->
StoreTime(preStepPoint->GetGlobalTime());
254 aHit->
StoreLogV(physVol->GetLogicalVolume());
255 G4AffineTransform aTrans = theTouchable->GetHistory()->GetTopTransform();
261 if( physVol->GetName().compare(
"VDC_DriftCellFront_Physical") == 0 ) { aHit->
StoreDriftCellPlaneID(0);}
262 if( physVol->GetName().compare(
"VDC_DriftCellBack_Physical") == 0 ) { aHit->
StoreDriftCellPlaneID(1);}
void StoreCellPos(G4ThreeVector xyz)
G4THitsCollection< QweakSimVDC_DriftCellHit > QweakSimVDC_DriftCellHitsCollection
QweakSimVDC_DriftCellFrontSD(G4String name)
static G4double DCVPlaneWireAngle
void StoreOriginVertexKineticEnergy(G4double ekin)
static G4double DCFullThickness
void StoreDCWidthOnFrame(G4double dcw)
void StoreDCUPlaneWireAngle(G4double dca)
void StoreDriftCellPlaneID(G4int dcplane_id)
static G4double DCUPlaneWireAngle
QweakSimVDC_DriftCellHitsCollection * DC_hitsCollection
Region 3 Vertical Drift Chamber Drift Cell Hit.
void StoreKineticEnergy(G4double ekin)
void StoreTime(G4double t)
void StoreMomentumDirection(G4ThreeVector pxyz)
void StoreDCVPlaneWireAngle(G4double dca)
void StoreLogV(G4LogicalVolume *val)
void StoreWorldPos(G4ThreeVector xyz)
void StoreOriginVertexPosition(G4ThreeVector xyz)
void StoreOriginVertexMomentumDirection(G4ThreeVector pxyz)
static G4int DCNumberPerPlane
void StoreLocalPos(G4ThreeVector xyz)
~QweakSimVDC_DriftCellFrontSD()
const G4LogicalVolume * GetLogV() const
void StoreTotalEnergy(G4double etot)
void EndOfEvent(G4HCofThisEvent *HCE)
static G4double DCWidthOnFrame
void StoreCellRot(G4RotationMatrix rmat)
G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist)
void StoreDCFullThickness(G4double dct)
void Initialize(G4HCofThisEvent *HCE)