///////////////////////////////////////////////////////////////////////////////
// //
// //
-// FLUKA implementation of the AliMC Interface //
+// FLUKA implementation of the VirtualMC Interface //
// //
// //
///////////////////////////////////////////////////////////////////////////////
class TG4GeometryManager;
class TG4DetConstruction;
class TClonesArray;
+class TGeoMaterial;
class TFluka : public TVirtualMC {
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
// ------------------------------------------------
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): 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 fCaller; //Parameter to indicate who is the caller of the Fluka Draw
- Int_t fIcode; //Fluka Draw procedures formal parameter
+ 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
};