///////////////////////////////////////////////////////////////////////////////
// //
// //
-// FLUKA implementation of the AliMC Interface //
+// FLUKA implementation of the VirtualMC Interface //
// //
// //
///////////////////////////////////////////////////////////////////////////////
class TG4GeometryManager;
class TG4DetConstruction;
class TClonesArray;
+class TGeoMaterial;
class TFluka : public TVirtualMC {
// functions for drawing
- virtual void DrawOneSpec(const char* name)
+ virtual void DrawOneSpec(const char* /*name*/)
{printf("WARNING: DrawOneSpec not yet implemented !\n");}
- virtual void Gsatt(const char* name, const char* att, Int_t val)
+ virtual void Gsatt(const char* /*name*/, const char* /*att*/, Int_t /*val*/)
{printf("WARNING: Gsatt not yet implemented !\n");}
- virtual void Gdraw(const char*,Double_t theta = 30, Double_t phi = 30,
- Double_t psi = 0, Double_t u0 = 10, Double_t v0 = 10,
- Double_t ul = 0.01, Double_t vl = 0.01)
+ virtual void Gdraw(const char*,Double_t /*theta = 30*/, Double_t /*phi = 30*/,
+ Double_t /*psi = 0*/, Double_t /*u0 = 10*/, Double_t /*v0 = 10*/,
+ Double_t /*ul = 0.01*/, Double_t /*vl = 0.01*/)
{printf("WARNING: Gdraw not yet implemented !\n");}
// Euclid
virtual Int_t NSecondaries() const ;
virtual void GetSecondary(Int_t isec, Int_t& particleId,
TLorentzVector& position, TLorentzVector& momentum);
- virtual TMCProcess ProdProcess(Int_t isec) const ;
- virtual Int_t StepProcesses(TArrayI &proc) const
+ virtual TMCProcess ProdProcess(Int_t iproc) const ;
+ virtual Int_t StepProcesses(TArrayI &/*proc*/) const
{printf("WARNING: StepProcesses not yet implemented !\n"); return -1;}
virtual void Gspart(Int_t, const char*, Int_t, Double_t, Double_t, Double_t)
{printf("WARNING: Gspart not yet implemented !\n");}
+ // Dummy methods
+ virtual void DefineParticle(int, const char*, TMCParticleType, double, double, double){;}
+ virtual void DefineIon(const char*, int, int, int, double, double){;}
+ virtual TString ParticleName(int) const {return "";}
+ virtual Double_t ParticleMass(int) const {return 0.;}
+ virtual Double_t ParticleCharge(int) const {return 0.;}
+ virtual Double_t ParticleLifeTime(int) const {return 0.;}
+ virtual TMCParticleType ParticleMCType(int) const {return (TMCParticleType) 0;}
+ void SetDummyBoundary(Int_t mode) {fDummyBoundary = mode;}
+ Int_t GetDummyBoundary() const {return fDummyBoundary;}
//
// control methods
// ------------------------------------------------
// mgdraw = 4
// sodraw = 5
// usdraw = 6
- Int_t GetCaller() const {return iCaller;}
- void SetCaller(Int_t l) {iCaller = l;}
+ Int_t GetCaller() const {return fCaller;}
+ void SetCaller(Int_t l) {fCaller = l;}
// - Fluka Draw procedures formal parameters
- Int_t GetIcode() const {return iIcode;}
- void SetIcode(Int_t l) {iIcode = l;}
- // in the case of sodraw iIcode=0
+ Int_t GetIcode() const {return fIcode;}
+ void SetIcode(Int_t l) {fIcode = l;}
+ // in the case of sodraw fIcode=0
Int_t GetMreg() const {return fCurrentFlukaRegion;}
void SetMreg(Int_t l) {fCurrentFlukaRegion = l;}
Int_t GetCurrentFlukaRegion() const {return fCurrentFlukaRegion;}
void SetTrackIsEntering(){fTrackIsEntering = kTRUE; fTrackIsExiting = kFALSE;}
- void SetTrackIsExiting() {fTrackIsExiting = kTRUE;}
+ void SetTrackIsExiting() {fTrackIsExiting = kTRUE; fTrackIsEntering = kFALSE;}
void SetTrackIsInside() {fTrackIsExiting = kFALSE; fTrackIsEntering = kFALSE;}
-
- //
- // test
- // ------------------------------------------------
- //
- virtual void FutoTest() ;
+ void SetTrackIsNew(Bool_t flag=kTRUE) {fTrackIsNew = flag;}
private:
- TFluka(const TFluka &mc){}
+ TFluka(const TFluka &mc): TVirtualMC(mc) {;}
TFluka & operator=(const TFluka &) {return (*this);}
-
+
protected:
Int_t fVerbosityLevel; //Verbosity level (0 lowest - 3 highest)
-
+
TString sInputFileName; //Name of the real input file (e.g. alice.inp)
TString sCoreInputFileName; //Name of the input file (e.g. corealice.inp)
-
- Int_t iCaller; //Parameter to indicate who is the caller of the Fluka Draw
- Int_t iIcode; //Fluka Draw procedures formal parameter
+
+ Int_t fCaller; //Parameter to indicate who is the caller of the Fluka Draw
+ Int_t fIcode; //Fluka Draw procedures formal parameter
Int_t iNewreg; //Fluka Draw procedures formal parameter
Double_t fRull; //Fluka Draw procedures formal parameter
Double_t fXsco; //Fluka Draw procedures formal parameter
Double_t fYsco; //Fluka Draw procedures formal parameter
Double_t fZsco; //Fluka Draw procedures formal parameter
Bool_t fTrackIsEntering; // Flag for track entering
- Bool_t fTrackIsExiting; // Flag for track exiting
-
+ Bool_t fTrackIsExiting; // Flag for track exiting
+ Bool_t fTrackIsNew; // Flag for new track
+
//variables for SetProcess and SetCut
Int_t iNbOfProc;
Int_t iProcessValue[100];
Int_t iNbOfCut;
Double_t fCutValue[100];
Char_t sCutFlag[100][7];
-
-
+ Int_t fDummyBoundary;
+
//Geometry through Geant4 for the time being!!!
TG4GeometryManager* fGeometryManager; //Geometry manager
TG4DetConstruction* fDetector; //Detector
-
+
TClonesArray* fVolumeMediaMap; //!Transient list of volumes
+
Int_t fNVolumes; //!Current number of volumes
Int_t* fMediaByRegion; //!Media by Fluka region
-
-
- Int_t fCurrentFlukaRegion; //Index of fluka region at each step
+ Int_t fCurrentFlukaRegion; //Index of fluka region at each step
ClassDef(TFluka,1) //C++ interface to Fluka montecarlo
};