Leave the loop when primaries are filled (I.Hrivnacova)
[u/mrichter/AliRoot.git] / ALIFAST / AliFast.h
CommitLineData
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
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
35class TBrowser;
36class TChain;
37class AliFMCMaker;
38class AliFTrackMaker;
39class AliFDet;
40class AliFVirtualDisplay;
41
42class AliFast : public AliRun {
43
44private:
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
65public:
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();
b21a3d1a 79 Bool_t IsFolder() const {return kTRUE;}
65a39007 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
128R__EXTERN AliFast *gAliFast;
129
130#endif
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147