]>
Commit | Line | Data |
---|---|---|
65a39007 | 1 | #ifndef AliFast_H |
2 | #define AliFast_H | |
3 | ||
4 | ////////////////////////////////////////////////////////////////////////// | |
5 | // // | |
6 | // AliFast // | |
7 | // // | |
8 | // Main class to control the AliFast program. // | |
9 | // // | |
10 | // This class : // | |
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 // | |
15 | // // | |
16 | ////////////////////////////////////////////////////////////////////////// | |
17 | ||
65a39007 | 18 | #include "AliFBigBang.h" |
4c155701 | 19 | #include "AliFHistBrowser.h" |
20 | #include "AliRun.h" | |
65a39007 | 21 | |
22 | class TBrowser; | |
23 | class TChain; | |
4c155701 | 24 | class TTree; |
25 | ||
26 | class AliFDet; | |
65a39007 | 27 | class AliFMCMaker; |
4c155701 | 28 | class AliFMaker; |
65a39007 | 29 | class AliFTrackMaker; |
65a39007 | 30 | class AliFVirtualDisplay; |
31 | ||
32 | class AliFast : public AliRun { | |
33 | ||
65a39007 | 34 | public: |
35 | AliFast(); | |
4c155701 | 36 | AliFast(const AliFast &afast); |
65a39007 | 37 | AliFast(const char *name, const char *title="The ALIAS fast MonteCarlo"); |
38 | virtual ~AliFast(); | |
4c155701 | 39 | AliFast& operator = (const AliFast &afast) |
40 | {afast.Copy(*this); return (*this);} | |
41 | ||
65a39007 | 42 | virtual void Browse(TBrowser *b); |
4c155701 | 43 | virtual void Draw(Option_t *option="") const; // *MENU* |
44 | Int_t GetVersion() const {return fVersion;} | |
45 | Int_t GetVersionDate() const {return fVersionDate;} | |
65a39007 | 46 | virtual void Clear(Option_t *option=""); |
4c155701 | 47 | AliFVirtualDisplay *FDisplay() {return fFDisplay;} |
65a39007 | 48 | virtual void FillClone(); |
49 | virtual void Finish(); | |
50 | virtual void GetTreeEvent(Int_t event); // *MENU* | |
51 | virtual void Init(); | |
b21a3d1a | 52 | Bool_t IsFolder() const {return kTRUE;} |
65a39007 | 53 | virtual void Make(Int_t i=0); |
54 | virtual void Paint(Option_t *option=""); | |
55 | virtual void PrintInfo(); | |
56 | virtual void SetDefaultParameters(); | |
57 | ||
4c155701 | 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;} | |
65a39007 | 64 | |
4c155701 | 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;} | |
65a39007 | 69 | |
70 | // Getters for flags and switches | |
4c155701 | 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;} | |
65a39007 | 76 | |
77 | ||
78 | // Setter for Event Display | |
4c155701 | 79 | void SetDisplay(AliFVirtualDisplay *display) {fFDisplay=display;} |
65a39007 | 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;} | |
86 | ||
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;} | |
91 | ||
92 | void FillTree(); | |
93 | void InitChain(TChain *chain); | |
94 | void MakeTree(const char* name="T", const char*title="AliFast tree"); | |
95 | ||
4c155701 | 96 | void SortDown(Int_t n, Float_t *a, Int_t *index, Bool_t down=kTRUE) const; |
97 | ||
98 | private: | |
99 | ||
100 | void Copy(TObject &afast) const; | |
101 | ||
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 | |
65a39007 | 121 | |
122 | ClassDef(AliFast, 1) //AliFast control class | |
123 | }; | |
124 | ||
125 | R__EXTERN AliFast *gAliFast; | |
126 | ||
127 | #endif | |
128 | ||
129 | ||
130 | ||
131 | ||
132 | ||
133 | ||
134 | ||
135 | ||
136 | ||
137 | ||
138 | ||
139 | ||
140 | ||
141 | ||
142 | ||
143 | ||
144 |