97 BuildDetectorResponse();
101 void ExN05EMShowerModel::Explode(
const G4FastTrack& fastTrack)
117 tmax = 1.0 * (std::log(y) + C);
132 yShower = zShower.
cross(xShower);
138 G4double deposit = Energy/double(nSpots);
145 for (
int i = 0; i < nSpots; i++)
157 if (xr < 0.9) r = xr/0.9*Rm;
158 else r = ((xr - 0.9)/0.1*2.5 + 1.0)*Rm;
164 r*std::cos(phi)*xShower + r*std::sin(phi)*yShower;
170 feSpotList.push_back(eSpot);
175 void ExN05EMShowerModel::BuildDetectorResponse()
178 for (
size_t i = 0; i < feSpotList.size(); i++)
181 feSpotList[i].Draw();
186 AssignSpotAndCallHit(feSpotList[i]);
191 void ExN05EMShowerModel::AssignSpotAndCallHit(
const ExN05EnergySpot &eSpot)
207 if( pCurrentVolume != 0 )
210 GetSensitiveDetector();
211 if( pSensitive != 0 )
213 pSensitive->
Hit(fFakeStep);
228 GetNavigatorForTracking()->GetWorldVolume());
230 LocateGlobalPointAndUpdateTouchableHandle(eSpot.
GetPosition(),
239 LocateGlobalPointAndUpdateTouchableHandle(eSpot.
GetPosition(),