// //
//////////////////////////////////////////////////////////////////////////
-#include "AliRun.h"
-//#ifndef ROOT_TTree
-#include <TTree.h>
-//#endif
-//#ifndef AliFHistBrowser_H
-#include "AliFHistBrowser.h"
-//#endif
-//#ifndef AliFBigBang_H
#include "AliFBigBang.h"
-//#endif
-//#ifndef AliFMaker_H
-#include "AliFMaker.h"
-//#endif
-//#ifndef AliFDet_H
-//#include "AliFDet.h"
-//#endif
+#include "AliFHistBrowser.h"
+#include "AliRun.h"
class TBrowser;
class TChain;
+class TTree;
+
+class AliFDet;
class AliFMCMaker;
+class AliFMaker;
class AliFTrackMaker;
-class AliFDet;
class AliFVirtualDisplay;
class AliFast : public AliRun {
-private:
- Int_t fVersion; //AliFast version number
- Int_t fVersionDate; //AliFast version date
- Int_t fMode; //Run mode
- Int_t fTestTrack; //Test mode for TrackMaker
- TTree *fTree; //Pointer to the Root tree
- TList *fMakers; //List of Makers
-// pointers to standard Makers
- AliFMCMaker *fMCMaker; //Pointer to MCMaker
- AliFTrackMaker *fTrackMaker; //Pointer to TrackMaker
- AliFDet *fDet; //Pointer to Detector
-// flags and switches
- Int_t fLuminosity; //Luminosity option (low=1, high=2)
- Bool_t fBfield; //B-field (on=1,off=0)
- Bool_t fSmearing; //Smearing on=1, off=0
- Int_t fSUSYcodeLSP; //Code for SUSY LSP particle
- Int_t fTrackFinding; //Track/finding on=1,off=0
- AliFHistBrowser fHistBrowser; //Object to Browse Maker histograms
- AliFBigBang fBigBang; //!Object to Browse generated particles
- AliFVirtualDisplay *fDisplay; //!Pointer to Event display object
-
public:
AliFast();
+ AliFast(const AliFast &afast);
AliFast(const char *name, const char *title="The ALIAS fast MonteCarlo");
virtual ~AliFast();
+ AliFast& operator = (const AliFast &afast)
+ {afast.Copy(*this); return (*this);}
+
virtual void Browse(TBrowser *b);
- virtual void Draw(Option_t *option=""); // *MENU*
- Int_t GetVersion() {return fVersion;}
- Int_t GetVersionDate() {return fVersionDate;}
+ virtual void Draw(Option_t *option="") const; // *MENU*
+ Int_t GetVersion() const {return fVersion;}
+ Int_t GetVersionDate() const {return fVersionDate;}
virtual void Clear(Option_t *option="");
- AliFVirtualDisplay *Display() {return fDisplay;}
+ AliFVirtualDisplay *FDisplay() {return fFDisplay;}
virtual void FillClone();
virtual void Finish();
virtual void GetTreeEvent(Int_t event); // *MENU*
virtual void Init();
- Bool_t IsFolder() {return kTRUE;}
+ Bool_t IsFolder() const {return kTRUE;}
virtual void Make(Int_t i=0);
virtual void Paint(Option_t *option="");
virtual void PrintInfo();
virtual void SetDefaultParameters();
- TList *Makers() {return fMakers;}
- AliFMaker *Maker(const char *name) {return (AliFMaker*)fMakers->FindObject(name);}
- AliFMCMaker *MCMaker() {return fMCMaker;}
- AliFTrackMaker *TrackMaker() {return fTrackMaker;}
- AliFDet *Detector() {return fDet;}
- TTree *Tree() {return fTree;}
+ TList *Makers() const {return fMakers;}
+ AliFMaker *Maker(const char *name) const {return (AliFMaker*)fMakers->FindObject(name);}
+ AliFMCMaker *MCMaker() const {return fMCMaker;}
+ AliFTrackMaker *TrackMaker() const {return fTrackMaker;}
+ AliFDet *Detector() const {return fDet;}
+ TTree *Tree() const {return fTree;}
- Int_t Run() {return fRun;}
- Int_t Event() {return fEvent;}
- Int_t Mode() {return fMode;}
- Int_t TestTrack() {return fTestTrack;}
+ Int_t Run() const {return fRun;}
+ Int_t Event() const {return fEvent;}
+ Int_t Mode() const {return fMode;}
+ Int_t TestTrack() const {return fTestTrack;}
// Getters for flags and switches
- Int_t Luminosity() {return fLuminosity;}
- Bool_t Bfield() {return fBfield;}
- Bool_t Smearing() {return fSmearing;}
- Int_t SUSYcodeLSP() {return fSUSYcodeLSP;}
- Bool_t TrackFinding() {return fTrackFinding;}
+ Int_t Luminosity() const {return fLuminosity;}
+ Bool_t Bfield() const {return fBfield;}
+ Bool_t Smearing() const {return fSmearing;}
+ Int_t SUSYcodeLSP() const {return fSUSYcodeLSP;}
+ Bool_t TrackFinding() const {return fTrackFinding;}
// Setter for Event Display
- void SetDisplay(AliFVirtualDisplay *display) {fDisplay=display;}
+ void SetDisplay(AliFVirtualDisplay *display) {fFDisplay=display;}
// Setters for flags and switches
void SetLuminosity(Int_t lumi=1) {fLuminosity=lumi;}
void SetBfield(Bool_t field=1) {fBfield=field;}
void InitChain(TChain *chain);
void MakeTree(const char* name="T", const char*title="AliFast tree");
- void SortDown(Int_t n, Float_t *a, Int_t *index, Bool_t down=kTRUE);
+ void SortDown(Int_t n, Float_t *a, Int_t *index, Bool_t down=kTRUE) const;
+
+private:
+
+ void Copy(TObject &afast) const;
+
+ Int_t fVersion; //AliFast version number
+ Int_t fVersionDate; //AliFast version date
+ Int_t fMode; //Run mode
+ Int_t fTestTrack; //Test mode for TrackMaker
+ TTree *fTree; //!Pointer to the Root tree
+ TList *fMakers; //List of Makers
+// pointers to standard Makers
+ AliFMCMaker *fMCMaker; //!Pointer to MCMaker
+ AliFTrackMaker *fTrackMaker; //!Pointer to TrackMaker
+ AliFDet *fDet; //!Pointer to Detector
+// flags and switches
+ Int_t fLuminosity; //Luminosity option (low=1, high=2)
+ Bool_t fBfield; //B-field (on=1,off=0)
+ Bool_t fSmearing; //Smearing on=1, off=0
+ Int_t fSUSYcodeLSP; //Code for SUSY LSP particle
+ Int_t fTrackFinding; //Track/finding on=1,off=0
+ AliFHistBrowser fHistBrowser; //Object to Browse Maker histograms
+ AliFBigBang fBigBang; //!Object to Browse generated particles
+ AliFVirtualDisplay *fFDisplay; //!Pointer to Event display object
ClassDef(AliFast, 1) //AliFast control class
};