100 BuildDetectorResponse();
103 void ExN05PionShowerModel::Explode(
const G4FastTrack& fastTrack)
120 TransformPoint(showerCenter);
126 yShower = zShower.
cross(xShower);
131 G4double deposit = Energy/double(nSpot);
140 for (
int i = 0; i < nSpot; i++)
142 z = G4RandGauss::shoot(0,20*
cm);
143 r = G4RandGauss::shoot(0,10*
cm);
145 ePoint = showerCenter +
147 r*std::cos(phi)*xShower + r*std::sin(phi)*yShower;
149 feSpotList.push_back(eSpot);
154 void ExN05PionShowerModel::BuildDetectorResponse()
157 for (
size_t i = 0; i < feSpotList.size(); i++)
161 feSpotList[i].Draw(&
red);
166 AssignSpotAndCallHit(feSpotList[i]);
171 void ExN05PionShowerModel::AssignSpotAndCallHit(
const ExN05EnergySpot &eSpot)
187 if( pCurrentVolume != 0 )
190 GetSensitiveDetector();
191 if( pSensitive != 0 )
193 pSensitive->
Hit(fFakeStep);
208 GetNavigatorForTracking()->GetWorldVolume());
210 LocateGlobalPointAndUpdateTouchableHandle(eSpot.
GetPosition(),
219 LocateGlobalPointAndUpdateTouchableHandle(eSpot.
GetPosition(),