- // particle table usage
- virtual Int_t IdFromPDG(Int_t id) const
- {printf("IdFromPDG not yet implemented !\n"); return -1;}
- virtual Int_t PDGFromId(Int_t pdg) const
- {printf("PDGFromId not yet implemented !\n"); return -1;}
- virtual void DefineParticles()
- {printf("DefineParticles not yet implemented !\n");}
-
- //
- // methods for step management
- // ------------------------------------------------
- //
-
- // action methods
- virtual void StopTrack()
- {printf("StopTrack not yet implemented !\n");}
-
- virtual void StopEvent()
- {printf("StopEvent not yet implemented !\n");}
-
- // set methods
- virtual void SetMaxStep(Float_t)
- {printf("SetMaxStep not yet implemented !\n");}
- virtual void SetMaxNStep(Int_t)
- {printf("SetMaxNStep not yet implemented !\n");}
- virtual void SetUserDecay(Int_t)
- {printf("SetUserDecay not yet implemented !\n");}
-
- // get methods
- // tracking volume(s)
- virtual Int_t CurrentVolID(Int_t& copyNo) const
- {printf("CurrentVolID not yet implemented !\n"); return -1;}
- virtual Int_t CurrentVolOffID(Int_t off, Int_t& copyNo) const
- {printf("CurrentVolOffID not yet implemented !\n"); return -1;}
- virtual const char* CurrentVolName() const
- {printf("CurrentVolName not yet implemented !\n"); return "void";}
- virtual const char* CurrentVolOffName(Int_t off) const
- {printf("CurrentVolOffName not yet implemented !\n"); return "void";}
- virtual Int_t CurrentMaterial(Float_t &a, Float_t &z,
- Float_t &dens, Float_t &radl, Float_t &absl) const
- {printf("CurrentMaterial not yet implemented !\n"); return -1;}
- virtual Int_t CurrentEvent() const
- {printf("CurrentEvent not yet implemented !\n"); return -1;}
- virtual void Gmtod(Float_t* xm, Float_t* xd, Int_t iflag)
- {printf("Gmtod not yet implemented !\n");}
- virtual void Gdtom(Float_t* xd, Float_t* xm, Int_t iflag)
- {printf("Gdtom not yet implemented !\n");}
- virtual Float_t MaxStep() const
- {printf("MaxStep not yet implemented !\n"); return -1.;}
- virtual Int_t GetMaxNStep() const
- {printf("GetMaxNStep not yet implemented !\n"); return -1;}
- virtual Int_t GetMedium() const
- {printf("GetMedium not yet implemented !\n"); return -1;}
-
- // tracking particle
- // dynamic properties
- virtual void TrackPosition(TLorentzVector& position) const
- {printf("TrackPosition not yet implemented !\n");}
- virtual void TrackMomentum(TLorentzVector& momentum) const
- {printf("TrackMomentum not yet implemented !\n");}
- virtual Float_t TrackStep() const
- {printf("TrackStep not yet implemented !\n"); return -1.;}
- virtual Float_t TrackLength() const
- {printf("TrackLength not yet implemented !\n"); return -1.;}
- virtual Float_t TrackTime() const
- {printf("TrackTimenot yet implemented !\n"); return -1.;}
- virtual Float_t Edep() const
- {printf("Edep not yet implemented !\n"); return -1.;}
- // static properties
- virtual Int_t TrackPid() const
- {printf("TrackPid not yet implemented !\n"); return -1;}
- virtual Float_t TrackCharge() const
- {printf("TrackCharge not yet implemented !\n"); return -1.;}
- virtual Float_t TrackMass() const
- {printf("TrackMasd not yet implemented !\n"); return -1.;}
- virtual Float_t Etot() const
- {printf("Etot not yet implemented !\n"); return -1.;}
-
- // track status
- virtual Bool_t IsNewTrack() const
- {printf("IsNewTrack not yet implemented !\n"); return 0;}
- virtual Bool_t IsTrackInside() const
- {printf("IsTrackInside not yet implemented !\n"); return 0;}
- virtual Bool_t IsTrackEntering() const
- {printf("IsTrackEntering not yet implemented !\n"); return 0;}
- virtual Bool_t IsTrackExiting() const
- {printf("IsTrackExiting not yet implemented !\n"); return 0;}
- virtual Bool_t IsTrackOut() const
- {printf("IsTrackOut not yet implemented !\n"); return 0;}
- virtual Bool_t IsTrackDisappeared() const
- {printf("IsTrackDisappeared not yet implemented !\n"); return 0;}
- virtual Bool_t IsTrackStop() const
- {printf("IsTrackStop not yet implemented !\n"); return 0;}
- virtual Bool_t IsTrackAlive() const
- {printf("IsTrackAlive not yet implemented !\n"); return 0;}
-
- // secondaries
- virtual Int_t NSecondaries() const
- {printf("NSecondaries not yet implemented !\n"); return -1;}
- virtual void GetSecondary(Int_t isec, Int_t& particleId,
- TLorentzVector& position, TLorentzVector& momentum)
- {printf("GetSecondary not yet implemented !\n");}
- virtual AliMCProcess ProdProcess(Int_t isec) const
- {printf("ProdProcess not yet implemented !\n"); return kPNoProcess;}
- virtual Int_t StepProcesses(TArrayI &proc) const
- {printf("StepProcess not yet implemented !\n"); return -1;}
-
- //
- // other (then geometry/step/run management) methods
- // ----------------------------------------------
- //
- virtual AliMCGeomType GetAliMCGeomType() const
- {printf("AliMCGeomType not yet implemented !\n"); return 0;}
-
- //
- // Geant3 specific methods
- // !!! need to be transformed to common interface
- //
- virtual void Gdopt(const char*,const char*)
- {printf("Gdopt not yet implemented !\n");}
- virtual void SetClipBox(const char*,Float_t=-9999,Float_t= 0, Float_t=-9999,Float_t=0,Float_t=-9999,Float_t=0)
- {printf("SetClipBox not yet implemented !\n");}
- virtual void DefaultRange()
- {printf("DefaultRange not yet implemented !\n");}
- virtual void Gdhead(Int_t, const char*, Float_t=0)
- {printf("Gdhead not yet implemented !\n");}
- virtual void Gdman(Float_t, Float_t, const char*)
- {printf("Gdman not yet implemented !\n");}
- virtual void SetColors()
- {printf("SetColors not yet implemented !\n");}
- virtual void Gtreve()
- {printf("Gtreve not yet implemented !\n");}
- virtual void GtreveRoot()
- {printf("GtreveRoot not yet implemented !\n");}
- virtual void Gckmat(Int_t, char*)
- {printf("Gckmat not yet implemented !\n");}
- virtual void InitLego()
- {printf("InitLego not yet implemented !\n");}
- virtual void Gfpart(Int_t, char*, Int_t&, Float_t&, Float_t&, Float_t&)
- {printf("Gfpart not yet implemented !\n");}
- virtual void Gspart(Int_t, const char*, Int_t, Float_t, Float_t, Float_t)
- {printf("Gspart not yet implemented !\n");}
-
- // Control Methods
-
- virtual void Init()
- {printf("Init not yet implemented !\n");}
- virtual void FinishGeometry()
- {printf("FinishGeometry not yet implemented !\n");}
- virtual void BuildPhysics()
- {printf("BuildPhysics not yet implemented !\n");}
- // External Decayer
- virtual void SetExternalDecayer(AliDecayer* decayer)
- {printf("SetExternalDecayer not yet implemented !\n");}
- virtual AliDecayer* Decayer() const
- {printf("AliDecayer not yet implemented !\n"); return 0;}
-
- private:
- TFluka(const TFluka &) {;}
- TFluka & operator=(const TFluka &) {return (*this);}
-
- ClassDef(TFluka,1) //Fluka implementation of the Monte Carlo Interface
+ void PrintHeader();
+ void AddParticlesToPdgDataBase() const;
+ Int_t GetIonPdg(Int_t z, Int_t a, Int_t i = 0) 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
+ TString fInputFileName; //Name of the real input file
+ TString fCoreInputFileName; //Name of the input file
+
+ FlukaCallerCode_t fCaller; // Parameter to indicate who is the caller of the Fluka Draw
+ FlukaProcessCode_t fIcode; // Fluka Draw procedures formal parameter
+ Int_t fNewReg; // 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
+ Double_t fPint[4]; // 4-vector of particle after interaction
+ Bool_t fTrackIsEntering; // Flag for track entering
+ Bool_t fTrackIsExiting; // Flag for track exiting
+ Bool_t fTrackIsNew; // Flag for new track
+ Bool_t fFieldFlag; // Flag for magnetic field
+ Int_t fDummyBoundary; // Flag for crossing dummy boundaries
+ Bool_t fStopped; // Flag for stopping
+ Bool_t fStopEvent; // Flag for stopped event
+ Bool_t fStopRun; // Flag for stopped run
+ Int_t fPrimaryElectronIndex; // Primary electron Index
+
+ //
+ //Geometry through TGeo
+ //
+ Int_t* fMaterials; //!Array of indices
+ Int_t fNVolumes; //!Current number of volumes
+ Int_t fCurrentFlukaRegion; // Index of fluka region at each step
+ Int_t fNCerenkov; // Number of cerekov photons
+ TFlukaMCGeometry *fGeom; // TGeo-FLUKA interface
+ TGeoMCGeometry *fMCGeo; // Interface to TGeo builder
+
+ // SetProcess, SetCut and user Scoring dynamic storage
+ TObjArray* fUserConfig; // List of user physics configuration
+ TObjArray* fUserScore; // List of user scoring options
+
+
+ ClassDef(TFluka,1) //C++ interface to Fluka montecarlo
+
+
+ // Temporary implementation of new functions
+ // To be removed with the next release