]>
Commit | Line | Data |
---|---|---|
a1f80595 | 1 | #ifndef AliFMDInput_H |
2 | #define AliFMDInput_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights | |
4 | * reserved. | |
5 | * | |
6 | * See cxx source for full Copyright notice | |
7 | */ | |
8 | //___________________________________________________________________ | |
9 | // | |
10 | // The classes defined here, are utility classes for reading in data | |
11 | // for the FMD. They are put in a seperate library to not polute the | |
12 | // normal libraries. The classes are intended to be used as base | |
13 | // classes for customized class that do some sort of analysis on the | |
14 | // various types of data produced by the FMD. | |
15 | // | |
8f6ee336 | 16 | #include <TObject.h> |
a1f80595 | 17 | #ifndef ROOT_TString |
18 | # include <TString.h> | |
19 | #endif | |
8f6ee336 | 20 | class AliRunLoader; |
21 | class AliLoader; | |
22 | class AliStack; | |
23 | class AliRun; | |
24 | class AliFMD; | |
25 | class AliFMDHit; | |
bf000c32 | 26 | class AliFMDDigit; |
27 | class AliFMDSDigit; | |
28 | class AliFMDRecPoint; | |
29 | class AliESD; | |
30 | class AliESDFMD; | |
8f6ee336 | 31 | class TString; |
32 | class TClonesArray; | |
33 | class TTree; | |
34 | class TGeoManager; | |
35 | class TParticle; | |
bf000c32 | 36 | class TChain; |
a1f80595 | 37 | |
38 | //___________________________________________________________________ | |
39 | class AliFMDInput : public TObject | |
40 | { | |
41 | public: | |
42 | enum ETrees { | |
8f6ee336 | 43 | kHits = 1, // Hits |
44 | kKinematics, // Kinematics (from sim) | |
45 | kDigits, // Digits | |
46 | kSDigits, // Summable digits | |
47 | kHeader, // Header information | |
48 | kRecPoints, // Reconstructed points | |
bf000c32 | 49 | kESD, // Load ESD's |
8f6ee336 | 50 | kGeometry // Not really a tree |
a1f80595 | 51 | }; |
52 | AliFMDInput(); | |
53 | AliFMDInput(const char* gAliceFile); | |
54 | virtual ~AliFMDInput() {} | |
55 | ||
56 | virtual void AddLoad(ETrees tree) { SETBIT(fTreeMask, tree); } | |
57 | virtual void RemoveLoad(ETrees tree) { CLRBIT(fTreeMask, tree); } | |
58 | virtual Int_t NEvents() const; | |
59 | ||
60 | virtual Bool_t Init(); | |
61 | virtual Bool_t Begin(Int_t event); | |
bf000c32 | 62 | virtual Bool_t Event(); |
a1f80595 | 63 | virtual Bool_t End(); |
64 | virtual Bool_t Finish() { return kTRUE; } | |
65 | virtual Bool_t Run(); | |
bf000c32 | 66 | |
67 | virtual Bool_t ProcessHits(); | |
68 | virtual Bool_t ProcessDigits(); | |
69 | virtual Bool_t ProcessSDigits(); | |
70 | virtual Bool_t ProcessRecPoints(); | |
71 | ||
72 | virtual Bool_t ProcessHit(AliFMDHit*, TParticle*) { return kTRUE; } | |
73 | virtual Bool_t ProcessDigit(AliFMDDigit*) { return kTRUE; } | |
74 | virtual Bool_t ProcessSDigit(AliFMDSDigit*) { return kTRUE; } | |
75 | virtual Bool_t ProcessRecPoint(AliFMDRecPoint*) { return kTRUE; } | |
76 | virtual Bool_t ProcessESD(AliESDFMD*) { return kTRUE; } | |
77 | ||
a1f80595 | 78 | protected: |
79 | TString fGAliceFile; // File name of gAlice file | |
80 | AliRunLoader* fLoader; // Loader of FMD data | |
81 | AliRun* fRun; // Run information | |
82 | AliStack* fStack; // Stack of particles | |
83 | AliLoader* fFMDLoader; // Loader of FMD data | |
84 | AliFMD* fFMD; // FMD object | |
bf000c32 | 85 | AliESD* fMainESD; // ESD Object |
86 | AliESDFMD* fESD; // FMD ESD data | |
a1f80595 | 87 | TTree* fTreeE; // Header tree |
88 | TTree* fTreeH; // Hits tree | |
89 | TTree* fTreeD; // Digit tree | |
90 | TTree* fTreeS; // SDigit tree | |
91 | TTree* fTreeR; // RecPoint tree | |
bf000c32 | 92 | TChain* fChainE; // Chain of ESD's |
a1f80595 | 93 | TClonesArray* fArrayE; // Event info array |
94 | TClonesArray* fArrayH; // Hit info array | |
95 | TClonesArray* fArrayD; // Digit info array | |
96 | TClonesArray* fArrayS; // SDigit info array | |
bf000c32 | 97 | TClonesArray* fArrayR; // Mult (single) info array |
8f6ee336 | 98 | TGeoManager* fGeoManager; // Geometry manager |
a1f80595 | 99 | Int_t fTreeMask; // Which tree's to load |
100 | Bool_t fIsInit; | |
101 | ClassDef(AliFMDInput,0) //Hits for detector FMD | |
102 | }; | |
103 | ||
104 | ||
105 | //____________________________________________________________________ | |
106 | class AliFMDHit; | |
107 | class AliFMDInputHits : public AliFMDInput | |
108 | { | |
109 | public: | |
110 | AliFMDInputHits(const char* file="galice.root") | |
111 | : AliFMDInput(file) { AddLoad(kHits); } | |
a1f80595 | 112 | ClassDef(AliFMDInputHits, 0); |
113 | }; | |
114 | ||
115 | //____________________________________________________________________ | |
116 | class AliFMDDigit; | |
117 | class AliFMDInputDigits : public AliFMDInput | |
118 | { | |
119 | public: | |
120 | AliFMDInputDigits(const char* file="galice.root") | |
121 | : AliFMDInput(file) { AddLoad(kDigits); } | |
a1f80595 | 122 | ClassDef(AliFMDInputDigits, 0); |
123 | }; | |
124 | ||
125 | //____________________________________________________________________ | |
126 | class AliFMDSDigit; | |
127 | class AliFMDInputSDigits : public AliFMDInput | |
128 | { | |
129 | public: | |
130 | AliFMDInputSDigits(const char* file="galice.root") | |
131 | : AliFMDInput(file) { AddLoad(kSDigits); } | |
a1f80595 | 132 | ClassDef(AliFMDInputSDigits, 0); |
133 | }; | |
134 | ||
135 | //____________________________________________________________________ | |
bf000c32 | 136 | class AliFMDRecPoint; |
a1f80595 | 137 | class AliFMDInputRecPoints : public AliFMDInput |
138 | { | |
139 | public: | |
140 | AliFMDInputRecPoints(const char* file="galice.root") | |
141 | : AliFMDInput(file) { AddLoad(kRecPoints); } | |
a1f80595 | 142 | ClassDef(AliFMDInputRecPoints, 0); |
143 | }; | |
144 | ||
145 | #endif | |
146 | //____________________________________________________________________ | |
147 | // | |
148 | // Local Variables: | |
149 | // mode: C++ | |
150 | // End: | |
151 | // | |
152 | // EOF | |
153 | // |