4 //////////////////////////////////////////////////////////////////////////
8 // Main class to control the AliFast program. //
11 // - Initialises the run default parameters //
12 // - Provides API to Set/Get run parameters //
13 // - Creates the support lists (TClonesArrays) for the Event structure//
14 // - Creates the physics objects makers //
16 //////////////////////////////////////////////////////////////////////////
18 #include "AliFBigBang.h"
19 #include "AliFHistBrowser.h"
30 class AliFVirtualDisplay;
32 class AliFast : public AliRun {
36 AliFast(const AliFast &afast);
37 AliFast(const char *name, const char *title="The ALIAS fast MonteCarlo");
39 AliFast& operator = (const AliFast &afast)
40 {afast.Copy(*this); return (*this);}
42 virtual void Browse(TBrowser *b);
43 virtual void Draw(Option_t *option="") const; // *MENU*
44 Int_t GetVersion() const {return fVersion;}
45 Int_t GetVersionDate() const {return fVersionDate;}
46 virtual void Clear(Option_t *option="");
47 AliFVirtualDisplay *FDisplay() {return fFDisplay;}
48 virtual void FillClone();
49 virtual void Finish();
50 virtual void GetTreeEvent(Int_t event); // *MENU*
52 Bool_t IsFolder() const {return kTRUE;}
53 virtual void Make(Int_t i=0);
54 virtual void Paint(Option_t *option="");
55 virtual void PrintInfo();
56 virtual void SetDefaultParameters();
58 TList *Makers() const {return fMakers;}
59 AliFMaker *Maker(const char *name) const {return (AliFMaker*)fMakers->FindObject(name);}
60 AliFMCMaker *MCMaker() const {return fMCMaker;}
61 AliFTrackMaker *TrackMaker() const {return fTrackMaker;}
62 AliFDet *Detector() const {return fDet;}
63 TTree *Tree() const {return fTree;}
65 Int_t Run() const {return fRun;}
66 Int_t Event() const {return fEvent;}
67 Int_t Mode() const {return fMode;}
68 Int_t TestTrack() const {return fTestTrack;}
70 // Getters for flags and switches
71 Int_t Luminosity() const {return fLuminosity;}
72 Bool_t Bfield() const {return fBfield;}
73 Bool_t Smearing() const {return fSmearing;}
74 Int_t SUSYcodeLSP() const {return fSUSYcodeLSP;}
75 Bool_t TrackFinding() const {return fTrackFinding;}
78 // Setter for Event Display
79 void SetDisplay(AliFVirtualDisplay *display) {fFDisplay=display;}
80 // Setters for flags and switches
81 void SetLuminosity(Int_t lumi=1) {fLuminosity=lumi;}
82 void SetBfield(Bool_t field=1) {fBfield=field;}
83 void SetSmearing(Bool_t val=1) {fSmearing=val;}
84 void SetSUSYcodeLSP(Int_t val=66) {fSUSYcodeLSP=val;}
85 void SetTrackFinding(Bool_t val=0) {fTrackFinding=val;}
87 virtual void SetRun(Int_t run=1) {fRun=run;}
88 virtual void SetEvent(Int_t event=1) {fEvent=event;}
89 virtual void SetMode(Int_t mode=0) {fMode=mode;}
90 virtual void SetTestTrack(Int_t test=0) {fTestTrack=test;}
93 void InitChain(TChain *chain);
94 void MakeTree(const char* name="T", const char*title="AliFast tree");
96 void SortDown(Int_t n, Float_t *a, Int_t *index, Bool_t down=kTRUE) const;
100 void Copy(TObject &afast) const;
102 Int_t fVersion; //AliFast version number
103 Int_t fVersionDate; //AliFast version date
104 Int_t fMode; //Run mode
105 Int_t fTestTrack; //Test mode for TrackMaker
106 TTree *fTree; //!Pointer to the Root tree
107 TList *fMakers; //List of Makers
108 // pointers to standard Makers
109 AliFMCMaker *fMCMaker; //!Pointer to MCMaker
110 AliFTrackMaker *fTrackMaker; //!Pointer to TrackMaker
111 AliFDet *fDet; //!Pointer to Detector
112 // flags and switches
113 Int_t fLuminosity; //Luminosity option (low=1, high=2)
114 Bool_t fBfield; //B-field (on=1,off=0)
115 Bool_t fSmearing; //Smearing on=1, off=0
116 Int_t fSUSYcodeLSP; //Code for SUSY LSP particle
117 Int_t fTrackFinding; //Track/finding on=1,off=0
118 AliFHistBrowser fHistBrowser; //Object to Browse Maker histograms
119 AliFBigBang fBigBang; //!Object to Browse generated particles
120 AliFVirtualDisplay *fFDisplay; //!Pointer to Event display object
122 ClassDef(AliFast, 1) //AliFast control class
125 R__EXTERN AliFast *gAliFast;