115 BuildDetectorResponse();
120 void Par01PionShowerModel::Explode(
const G4FastTrack& fastTrack)
137 TransformPoint(showerCenter);
143 yShower = zShower.
cross(xShower);
148 G4double deposit = Energy/double(nSpot);
157 for (
int i = 0; i < nSpot; i++)
162 ePoint = showerCenter +
164 r*std::cos(phi)*xShower + r*std::sin(phi)*yShower;
166 feSpotList.push_back(eSpot);
172 void Par01PionShowerModel::BuildDetectorResponse()
175 for (
size_t i = 0; i < feSpotList.size(); i++)
184 AssignSpotAndCallHit(feSpotList[i]);
190 void Par01PionShowerModel::AssignSpotAndCallHit(
const Par01EnergySpot &eSpot)
206 if( pCurrentVolume != 0 )
209 GetSensitiveDetector();
210 if( pSensitive != 0 )
212 pSensitive->
Hit(fFakeStep);
228 GetNavigatorForTracking()->GetWorldVolume());
230 LocateGlobalPointAndUpdateTouchableHandle(eSpot.
GetPosition(),
239 LocateGlobalPointAndUpdateTouchableHandle(eSpot.
GetPosition(),
void SetPosition(const G4ThreeVector &point)
G4ThreeVector GetPrimaryTrackLocalPosition() const
ThreeVector shoot(const G4int Ap, const G4int Af)
G4double GetEnergy() const
const G4Track * GetPrimaryTrack() const
G4ThreeVector GetPrimaryTrackLocalDirection() const
CLHEP::Hep3Vector G4ThreeVector
Definition of the Par01PionShowerModel class.
const G4AffineTransform * GetInverseAffineTransformation() const
Par01PionShowerModel(G4String, G4Region *)
static constexpr double twopi
G4StepPoint * GetPreStepPoint() const
virtual void DoIt(const G4FastTrack &, G4FastStep &)
G4double GetKineticEnergy() const
G4VPhysicalVolume * GetPhysicalVolume() const
static G4PionMinus * PionMinusDefinition()
void ProposePrimaryTrackPathLength(G4double)
static constexpr double cm
static G4PionPlus * PionPlusDefinition()
G4bool Hit(G4Step *aStep)
G4ThreeVector GetPosition() const
G4VSolid * GetEnvelopeSolid() const
static G4TransportationManager * GetTransportationManager()
const G4ThreeVector & GetMomentumDirection() const
G4LogicalVolume * GetLogicalVolume() const
virtual G4bool ModelTrigger(const G4FastTrack &)
G4StepPoint * GetPostStepPoint() const
Hep3Vector orthogonal() const
void SetEnergy(const G4double &E)
Definition of the Par01EnergySpot class.
void ProposeTotalEnergyDeposited(G4double anEnergyPart)
void SetTotalEnergyDeposit(G4double value)
Hep3Vector cross(const Hep3Vector &) const
virtual G4bool IsApplicable(const G4ParticleDefinition &)
void SetTouchableHandle(const G4TouchableHandle &apValue)