9 : G4VSensitiveDetector(name),
10 CerenkovRadiatorHitsCollection(0),
11 CerenkovRadiatorCollectionID(-1)
13 collectionName.insert(
"CerenkovRadiatorCollection");
35 G4double charge = aStep->GetTrack()->GetDefinition()->GetPDGCharge();
36 if(charge==0. && aStep->GetTrack()->GetTotalEnergy()/MeV < 0.1) {
42 if( aStep->GetTrack()->GetDefinition()->GetParticleName() ==
"opticalphoton") {
48 G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
50 G4TouchableHistory* theTouchable = (G4TouchableHistory*)(preStepPoint->GetTouchable());
51 G4VPhysicalVolume* physVol = theTouchable->GetVolume();
54 if(strcmp(physVol->GetName(),
"Radiator_Physical")) {
58 G4ThreeVector worldPos = preStepPoint->GetPosition();
59 G4ThreeVector localPos = theTouchable->GetHistory()->GetTopTransform().TransformPoint(worldPos);
82 if (preStepPoint->GetStepStatus() != fGeomBoundary) {
91 G4ThreeVector worldMomentum = preStepPoint->GetMomentum();
92 G4ThreeVector localMomentum = theTouchable->GetHistory()->GetTopTransform().TransformPoint(worldMomentum);
95 G4ThreeVector originVertexPosition = aStep->GetTrack()->GetVertexPosition();
96 G4ThreeVector originVertexMomentumDirection = aStep->GetTrack()->GetVertexMomentumDirection();
97 G4double originVertexKineticEnergy = aStep->GetTrack()->GetVertexKineticEnergy();
99 G4double currentKineticEnergy = aStep->GetTrack()->GetKineticEnergy();
100 G4double currentTotalEnergy = aStep->GetTrack()->GetTotalEnergy();
101 G4ThreeVector currentMomentumDirection = aStep->GetTrack()->GetMomentumDirection();
102 G4ThreeVector currentPolarization = aStep->GetTrack()->GetPolarization();
104 G4int trackID = aStep->GetTrack()->GetTrackID();
105 G4int parentID = aStep->GetTrack()->GetParentID();
107 G4String processName = aStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName();
109 G4ParticleDefinition* fpParticleDefinition = aStep->GetTrack()->GetDefinition();
110 G4String ParticleName = fpParticleDefinition->GetParticleName();
112 G4int PDGEncoding = fpParticleDefinition->GetPDGEncoding();
113 G4double particlemass = fpParticleDefinition->GetPDGMass()/MeV;
115 G4int MotherCopyNo = theTouchable->GetVolume(1)->GetCopyNo();
175 G4AffineTransform aTrans = theTouchable->GetHistory()->GetTopTransform();
void StoreOriginVertexKineticEnergy(G4double oekin)
void StoreWorldMomentum(G4ThreeVector gpxyz)
void StoreGlobalTime(G4double t)
void StoreParticleName(G4String pn)
void StoreOriginVertexTotalEnergy(G4double oetot)
void StoreTotalEnergy(G4double etot)
virtual ~QweakSimCerenkov_RadiatorSD()
G4THitsCollection< QweakSimCerenkov_RadiatorHit > QweakSimCerenkovRadiatorHitsCollection
void StoreLocalPosition(G4ThreeVector xyz)
void StoreCellRotation(G4RotationMatrix rmat)
void StoreCreatorProcessName(G4String name)
QweakSimCerenkovRadiatorHitsCollection * CerenkovRadiatorHitsCollection
void StoreCellPosition(G4ThreeVector xyz)
Handling of a hit in the Cerenkov radiator.
void EndOfEvent(G4HCofThisEvent *HCE)
G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist)
void StoreLocalMomentum(G4ThreeVector lpxyz)
void StoreParticleType(G4int pt)
void StoreWorldPosition(G4ThreeVector xyz)
G4int CerenkovRadiatorCollectionID
void StoreDetectorID(G4int detector_ID)
void StoreTrackID(G4int tid)
QweakSimCerenkov_RadiatorSD(G4String name)
void Initialize(G4HCofThisEvent *HCE)
void StoreLogVolume(G4LogicalVolume *val)
void StoreKineticEnergy(G4double ekin)
void StoreOriginVertexMomentumDirection(G4ThreeVector opxyz)
void StorePolarization(G4ThreeVector p)
void StoreParentID(G4int tid)
const G4LogicalVolume * GetLogVolume() const
void StoreMomentumDirection(G4ThreeVector pxyz)
void StoreOriginVertexPosition(G4ThreeVector oxyz)