Modification of IsFolder() proposed by R.Brun
[u/mrichter/AliRoot.git] / ALIFAST / AliFast.h
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
18 #include "AliRun.h"
19 //#ifndef ROOT_TTree
20 #include <TTree.h>
21 //#endif
22 //#ifndef AliFHistBrowser_H
23 #include "AliFHistBrowser.h"
24 //#endif
25 //#ifndef AliFBigBang_H
26 #include "AliFBigBang.h"
27 //#endif
28 //#ifndef AliFMaker_H
29 #include "AliFMaker.h"
30 //#endif
31 //#ifndef AliFDet_H
32 //#include "AliFDet.h"
33 //#endif
34
35 class TBrowser;
36 class TChain;
37 class AliFMCMaker;
38 class AliFTrackMaker;
39 class AliFDet;
40 class AliFVirtualDisplay;
41
42 class AliFast : public AliRun {
43
44 private:
45    Int_t               fVersion;           //AliFast version number
46    Int_t               fVersionDate;       //AliFast version date
47    Int_t               fMode;              //Run mode
48    Int_t               fTestTrack;         //Test mode for TrackMaker
49    TTree              *fTree;              //Pointer to the Root tree
50    TList              *fMakers;            //List of Makers
51 //    pointers to standard Makers
52    AliFMCMaker        *fMCMaker;           //Pointer to MCMaker
53    AliFTrackMaker     *fTrackMaker;        //Pointer to TrackMaker
54    AliFDet            *fDet;               //Pointer to Detector
55 //    flags and switches
56    Int_t               fLuminosity;        //Luminosity option (low=1, high=2)
57    Bool_t              fBfield;            //B-field (on=1,off=0)
58    Bool_t              fSmearing;          //Smearing on=1, off=0
59    Int_t               fSUSYcodeLSP;       //Code for SUSY LSP particle
60    Int_t               fTrackFinding;      //Track/finding on=1,off=0
61    AliFHistBrowser     fHistBrowser;       //Object to Browse Maker histograms
62    AliFBigBang         fBigBang;           //!Object to Browse generated particles
63    AliFVirtualDisplay *fDisplay;           //!Pointer to Event display object
64
65 public:
66                       AliFast();
67                       AliFast(const char *name, const char *title="The ALIAS fast MonteCarlo");
68    virtual           ~AliFast();
69    virtual void       Browse(TBrowser *b);
70    virtual void       Draw(Option_t *option="");  // *MENU*
71    Int_t              GetVersion() {return fVersion;}
72    Int_t              GetVersionDate() {return fVersionDate;}
73    virtual void       Clear(Option_t *option="");
74    AliFVirtualDisplay *Display() {return fDisplay;}
75    virtual void       FillClone();
76    virtual void       Finish();
77    virtual void       GetTreeEvent(Int_t event);  // *MENU*
78    virtual void       Init();
79    Bool_t             IsFolder() const {return kTRUE;}
80    virtual void       Make(Int_t i=0);
81    virtual void       Paint(Option_t *option="");
82    virtual void       PrintInfo();
83    virtual void       SetDefaultParameters();
84
85    TList             *Makers()    {return fMakers;}
86    AliFMaker         *Maker(const char *name) {return (AliFMaker*)fMakers->FindObject(name);}
87    AliFMCMaker       *MCMaker()       {return fMCMaker;}
88    AliFTrackMaker    *TrackMaker()    {return fTrackMaker;}
89    AliFDet           *Detector()    {return fDet;}
90    TTree             *Tree() {return fTree;}
91
92    Int_t             Run()   {return fRun;}
93    Int_t             Event() {return fEvent;}
94    Int_t             Mode()  {return fMode;}
95    Int_t             TestTrack()  {return fTestTrack;}
96
97 //    Getters for flags and switches
98    Int_t             Luminosity()   {return fLuminosity;}
99    Bool_t            Bfield()       {return fBfield;}
100    Bool_t            Smearing()     {return fSmearing;} 
101    Int_t             SUSYcodeLSP()  {return fSUSYcodeLSP;}
102    Bool_t            TrackFinding() {return fTrackFinding;}
103
104
105 //    Setter for Event Display
106    void           SetDisplay(AliFVirtualDisplay *display) {fDisplay=display;}
107 //    Setters for flags and switches
108    void           SetLuminosity(Int_t lumi=1)   {fLuminosity=lumi;}
109    void           SetBfield(Bool_t field=1)     {fBfield=field;}
110    void           SetSmearing(Bool_t val=1)     {fSmearing=val;} 
111    void           SetSUSYcodeLSP(Int_t val=66)  {fSUSYcodeLSP=val;}
112    void           SetTrackFinding(Bool_t val=0) {fTrackFinding=val;}
113
114    virtual void   SetRun(Int_t run=1)     {fRun=run;}
115    virtual void   SetEvent(Int_t event=1) {fEvent=event;}
116    virtual void   SetMode(Int_t mode=0)   {fMode=mode;}
117    virtual void   SetTestTrack(Int_t test=0)   {fTestTrack=test;}
118
119    void           FillTree();
120    void           InitChain(TChain *chain);
121    void           MakeTree(const char* name="T", const char*title="AliFast tree");
122
123    void           SortDown(Int_t n, Float_t *a, Int_t *index, Bool_t down=kTRUE);
124
125    ClassDef(AliFast, 1)   //AliFast control class
126 };
127
128 R__EXTERN AliFast *gAliFast;
129
130 #endif
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147