60 physicsManager( physicsManager ), targetVolume( NULL ),
62 outputParticleDecayProductCopyNumber( 0 ), incidentParticle( NULL ),
63 outputParticle( NULL ), nucleusOutputParticle( NULL )
67 if ( ! productionModel )
78 const CexmcSetup * setup( static_cast< const CexmcSetup * >(
87 track->GetUserInformation() ) );
92 G4Track * theTrack( const_cast< G4Track * >( track ) );
96 if ( track->GetParentID() == 0 )
102 theTrack->SetUserInformation( trackInfo );
112 if ( track->GetCreatorProcess()->GetProcessName() ==
145 theTrack->SetUserInformation( trackInfo );
154 if ( ! track->GetUserInformation() )
155 theTrack->SetUserInformation( trackInfo );
160 const G4Track *
track )
163 static_cast< CexmcIncidentParticleTrackInfo * >(
164 track->GetUserInformation() ) );
171 if ( volume && volume->GetLogicalVolume() ==
targetVolume )
G4ParticleDefinition * nucleusOutputParticle
G4int outputParticleDecayProductCopyNumber
G4ParticleDefinition * incidentParticle
const G4int CexmcInvalidTrackId(-1)
CexmcTrackingAction(CexmcPhysicsManager *physicsManager)
const G4LogicalVolume * GetVolume(SpecialVolumeType volume) const
const G4LogicalVolume * targetVolume
void SetupIncidentParticleTrackInfo(const G4Track *track)
G4ParticleDefinition * outputParticle
void PreUserTrackingAction(const G4Track *track)
static G4RunManager * GetRunManager()
virtual void ResampleTrackLengthInTarget(const G4Track *track, const G4StepPoint *stepPoint=NULL)=0
G4int outputParticleTrackId
CexmcPhysicsManager * physicsManager
virtual CexmcProductionModel * GetProductionModel(void)=0
const G4VUserDetectorConstruction * GetUserDetectorConstruction() const
void ActivateStudiedProcess(G4bool on=true)
G4bool OnlyBeamParticleCanTriggerStudiedProcess(void) const
const G4String CexmcStudiedProcessFullName(CexmcStudiedProcessFirstName+CexmcStudiedProcessLastName)