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;
// Info about primary ionization electrons
Int_t GetNPrimaryElectrons();
Double_t GetPrimaryElectronKineticEnergy(Int_t i) const;
- void GetPrimaryElectronPosition(Int_t i, Double_t& x, Double_t& y, Double_t& z) 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 PrimaryIonisationStepping(Int_t nprim);
+
+ void AddIon(Int_t a, Int_t z) const;
+ Int_t GetIonPdg(Int_t z, Int_t a, Int_t i = 0) const;
private:
// Copy constructor and operator= declared but not implemented (-Weff++ flag)
void PrintHeader();
void AddParticlesToPdgDataBase() const;
- Int_t GetIonPdg(Int_t z, Int_t a, Int_t i = 0) const;
+ Int_t GetSpecialPdg(Int_t number) const;
+
+ Float_t* CreateFloatArray(Double_t* array, Int_t size) const;
+
//
Int_t fVerbosityLevel; //Verbosity level (0 lowest - 3 highest)
Int_t fNEvent; //Current event number
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