89 G4double chg=aStep->GetTrack()->GetDefinition()->GetPDGCharge();
90 G4double edep = aStep->GetTotalEnergyDeposit();
91 G4double stepL=aStep->GetStepLength();
92 G4double deltaT=aStep->GetDeltaTime();
93 G4StepPoint* preStep = aStep->GetPreStepPoint();
94 G4ThreeVector pDirection=preStep->GetMomentumDirection();
95 G4String particleName = aStep->GetTrack()->GetDefinition()->GetParticleName();
96 G4Material* scinMaterial = aStep->GetTrack()->GetMaterial();
97 G4double
charge = aStep->GetTrack()->GetDefinition()->GetPDGCharge();
98 G4int pdgcode = aStep->GetTrack()->GetDefinition()->GetPDGEncoding();
100 if( chg==0 && edep==0 && stepL==0 ) {
return false; }
103 G4int trackId = aStep->GetTrack()->GetTrackID();
107 newHit->
SetG4Index(aStep->GetTrack()->GetTrackID());
111 newHit->
SetTrackL(aStep->GetTrack()->GetTrackLength());
112 G4ThreeVector pos=preStep->GetPosition();
114 G4double globalTime=preStep->GetGlobalTime();
124 G4ThreeVector locPos(0,0,0);
125 G4TouchableHistory* theTouchable = (G4TouchableHistory*)( preStep->GetTouchable() );
136 name = theTouchable->GetVolume(0)->GetName();
138 G4int partId=-1, scinNb=-1, gapNb=-1, number=-1;
140 gapNb = theTouchable->GetReplicaNumber(0);
141 number = theTouchable->GetReplicaNumber(2);
144 if(name.contains(
"physical_gasLayer"))
146 locPos = theTouchable->GetHistory()->GetTopTransform().TransformPoint(pos);
147 number = theTouchable->GetReplicaNumber(3);
150 G4String name1 = theTouchable->GetVolume(4)->GetName();
151 if(name1 ==
"physicalEcTofEast") partId=3;
152 else if(name1 ==
"physicalEcTofWest") partId=4;
156 else if(name==
"logical_gasLayer")
158 locPos = theTouchable->GetHistory()->GetTopTransform().TransformPoint(pos);
159 number = theTouchable->GetReplicaNumber(3);
162 G4String name1 = theTouchable->GetVolume(4)->GetName();
163 if(name1 ==
"logicalEcTofEast") partId=3;
164 else if(name1 ==
"logicalEcTofWest") partId=4;
170 else if( name==
"physicalScinBr1" ) {
175 else if( name==
"physicalScinBr2" ) {
180 else if( name==
"physicalScinEcWest" ) {
185 else if( name==
"physicalScinEcEast" ) {
193 else if( name==
"logicalScinBr1" || name==
"logicalScinBr2" ) {
195 scinNb = (527-number)/3;
198 else if( name==
"logicalScinEcEast" ) {
200 scinNb = (95-number)/2;
202 else if( name==
"logicalScinEcWest" ) {
204 scinNb = (95-number)/2;
206 else {
return false; }
209 if(name.contains(
"physical_gasLayer") || name.contains(
"logical_gasLayer"))
211 G4double zz = locPos.z()-0.5*mm+(24+3)*mm*6;
216 else if(zz>0 && zz<12*27*mm)
218 for(G4int i=0; i<12; i++)
220 if(zz>i*27*mm && zz<=(i+1)*27*mm)
233 if(strip>11) strip=11;
247 G4int trackIndex, g4TrackId;
252 m_besTofCollection->insert( newHit );
257 G4int trackIndex, g4TrackId;
260 if( m_trackIndex != trackIndex ) {
261 m_trackIndex = trackIndex;
272 G4int pdg =
abs(aStep->GetTrack()->GetDefinition()->GetPDGEncoding());
273 if( pdg==12 || pdg==14 || pdg==16 ) {
flag=0; }
274 if(
flag && aStep->GetTrack()->GetTrackID()==g4TrackId ) {
275 m_trackIndexes.push_back(trackIndex);
278 m_besTofList->insert(truHit);
282 if( edep<=0 ) {
delete newHit; }