virtual void SetModelParameter(const char* parName, Double_t parValue, Int_t imed);
virtual TObjArray* GetListOfUserConfigs() {return fUserConfig;}
virtual Double_t Xsec(char*, Double_t, Int_t, Int_t);
-
-
+ virtual void SetLowEnergyNeutronTransport(Bool_t flag) {fLowEnergyNeutronTransport = flag;}
+ virtual Bool_t LowEnergyNeutronTransport() {return fLowEnergyNeutronTransport;}
// Particle table usage
virtual Int_t IdFromPDG(Int_t id) const;
virtual Int_t PDGFromId(Int_t pdg) const;
// Particle Properties
// -------------------
//
- virtual Bool_t DefineParticle(int, const char*, TMCParticleType, double, double, double) {return kFALSE;}
+ virtual Bool_t DefineParticle(Int_t, const char*, TMCParticleType, Double_t, Double_t, Double_t) {return kFALSE;}
+ virtual Bool_t DefineParticle(Int_t, const char*, TMCParticleType, Double_t, Double_t, Double_t,
+ const TString&, Double_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Int_t,
+ Bool_t, Bool_t = kFALSE, const TString& = "", Int_t = 0, Double_t = 0.0, Double_t = 0.0) {return kFALSE;}
virtual Bool_t DefineIon(const char*, int, int, int, double, double) {return kFALSE;}
virtual TString ParticleName(int pdg) const;
virtual Double_t ParticleMass(int pdg) const;
void GetPrimaryElectronPosition(Int_t i, Double_t& x, Double_t& y, Double_t& z, Double_t& t) const;
void SetCurrentPrimaryElectronIndex(Int_t i) {fPrimaryElectronIndex = i;}
void PrimaryIonisationStepping(Int_t nprim);
-
+ void CalcPrimaryIonisationTime();
void AddIon(Int_t a, Int_t z) const;
Int_t GetIonPdg(Int_t z, Int_t a, Int_t i = 0) const;
private:
Double_t fYsco; // Fluka Draw procedures formal parameter
Double_t fZsco; // Fluka Draw procedures formal parameter
Double_t fPint[4]; // 4-vector of particle after interaction
+ Double_t* fPItime; // Time distribution of primary ionisations
+ Double_t* fPIlength; // Track length distribution of primary ionisations
+ Int_t fNPI; // Number of primary ionisation steps
Bool_t fTrackIsEntering; // Flag for track entering
Bool_t fTrackIsExiting; // Flag for track exiting
Bool_t fTrackIsNew; // Flag for new track
Bool_t fStopEvent; // Flag for stopped event
Bool_t fStopRun; // Flag for stopped run
Int_t fPrimaryElectronIndex; // Primary electron Index
+ Bool_t fLowEnergyNeutronTransport; // Flag to force low energy neutron transport
//
//Geometry through TGeo