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 //////////////////////////////////////////////////////////////////////////
22 //#ifndef AliFHistBrowser_H
23 #include "AliFHistBrowser.h"
25 //#ifndef AliFBigBang_H
26 #include "AliFBigBang.h"
29 #include "AliFMaker.h"
32 //#include "AliFDet.h"
40 class AliFVirtualDisplay;
42 class AliFast : public AliRun {
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
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
67 AliFast(const char *name, const char *title="The ALIAS fast MonteCarlo");
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*
79 Bool_t IsFolder() {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();
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;}
92 Int_t Run() {return fRun;}
93 Int_t Event() {return fEvent;}
94 Int_t Mode() {return fMode;}
95 Int_t TestTrack() {return fTestTrack;}
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;}
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;}
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;}
120 void InitChain(TChain *chain);
121 void MakeTree(const char* name="T", const char*title="AliFast tree");
123 void SortDown(Int_t n, Float_t *a, Int_t *index, Bool_t down=kTRUE);
125 ClassDef(AliFast, 1) //AliFast control class
128 R__EXTERN AliFast *gAliFast;