120 TransformPoint(showerCenter);
126 yShower = zShower.
cross(xShower);
131 G4double deposit = Energy/double(nSpot);
140 for (
int i = 0; i < nSpot; i++)
145 ePoint = showerCenter +
147 r*std::cos(phi)*xShower + r*std::sin(phi)*yShower;
157 for (
size_t i = 0; i <
feSpotList.size(); i++)
184 fFakeStep->GetPreStepPoint()->GetPhysicalVolume();
187 if( pCurrentVolume != 0 )
190 GetSensitiveDetector();
191 if( pSensitive != 0 )
208 GetNavigatorForTracking()->GetWorldVolume());
210 LocateGlobalPointAndUpdateTouchableHandle(eSpot.
GetPosition(),
219 LocateGlobalPointAndUpdateTouchableHandle(eSpot.
GetPosition(),
void SetPosition(const G4ThreeVector &point)
G4StepPoint * fFakePreStepPoint
void BuildDetectorResponse()
ThreeVector shoot(const G4int Ap, const G4int Af)
G4TouchableHandle fTouchableHandle
std::vector< Par01EnergySpot > feSpotList
const G4AffineTransform * GetInverseAffineTransformation() const
G4VSolid * GetEnvelopeSolid() const
CLHEP::Hep3Vector G4ThreeVector
Par01PionShowerModel(G4String, G4Region *)
virtual void DoIt(const G4FastTrack &, G4FastStep &)
Hep3Vector cross(const Hep3Vector &) const
void Explode(const G4FastTrack &)
G4ThreeVector GetPrimaryTrackLocalDirection() const
static G4PionMinus * PionMinusDefinition()
void ProposePrimaryTrackPathLength(G4double)
static const double twopi
void FillFakeStep(const Par01EnergySpot &eSpot)
static G4PionPlus * PionPlusDefinition()
G4bool Hit(G4Step *aStep)
G4Navigator * fpNavigator
Hep3Vector orthogonal() const
static G4TransportationManager * GetTransportationManager()
void AssignSpotAndCallHit(const Par01EnergySpot &eSpot)
virtual G4bool ModelTrigger(const G4FastTrack &)
void SetEnergy(const G4double &E)
void ProposeTotalEnergyDeposited(G4double anEnergyPart)
G4StepPoint * fFakePostStepPoint
G4ThreeVector GetPrimaryTrackLocalPosition() const
G4ThreeVector GetPosition() const
virtual G4bool IsApplicable(const G4ParticleDefinition &)
const G4Track * GetPrimaryTrack() const
G4LogicalVolume * GetLogicalVolume() const
G4double GetEnergy() const