00001 #ifndef AliFMDInput_H
00002 #define AliFMDInput_H
00003
00004
00005
00006
00007
00008
00017 #include <TObject.h>
00018 #ifndef ROOT_TString
00019 # include <TString.h>
00020 #endif
00021 class AliRunLoader;
00022 class AliLoader;
00023 class AliStack;
00024 class AliRun;
00025 class AliRawReader;
00026 class AliFMD;
00027 class AliFMDHit;
00028 class AliFMDDigit;
00029 class AliFMDSDigit;
00030 class AliFMDRecPoint;
00031 class AliESD;
00032 class AliESDFMD;
00033 class TString;
00034 class TClonesArray;
00035 class TTree;
00036 class TGeoManager;
00037 class TParticle;
00038 class TChain;
00039
00040
00085 class AliFMDInput : public TObject
00086 {
00087 public:
00089 enum ETrees {
00090 kHits = 1,
00091 kKinematics,
00092 kDigits,
00093 kSDigits,
00094 kHeader,
00095 kRecPoints,
00096 kESD,
00097 kRaw,
00098 kGeometry
00099 };
00101 AliFMDInput();
00104 AliFMDInput(const char* gAliceFile);
00106 virtual ~AliFMDInput() {}
00107
00110 virtual void AddLoad(ETrees tree) { SETBIT(fTreeMask, tree); }
00113 virtual void RemoveLoad(ETrees tree) { CLRBIT(fTreeMask, tree); }
00115 virtual Int_t NEvents() const;
00116
00120 virtual Bool_t Init();
00126 virtual Bool_t Begin(Int_t event);
00131 virtual Bool_t Event();
00134 virtual Bool_t End();
00137 virtual Bool_t Finish() { return kTRUE; }
00140 virtual Bool_t Run();
00141
00145 virtual Bool_t ProcessHits();
00148 virtual Bool_t ProcessDigits();
00152 virtual Bool_t ProcessSDigits();
00156 virtual Bool_t ProcessRawDigits();
00160 virtual Bool_t ProcessRecPoints();
00161
00165 virtual Bool_t ProcessHit(AliFMDHit*, TParticle*) { return kTRUE; }
00168 virtual Bool_t ProcessDigit(AliFMDDigit*) { return kTRUE; }
00172 virtual Bool_t ProcessSDigit(AliFMDSDigit*) { return kTRUE; }
00176 virtual Bool_t ProcessRawDigit(AliFMDDigit*) { return kTRUE; }
00180 virtual Bool_t ProcessRecPoint(AliFMDRecPoint*) { return kTRUE; }
00184 virtual Bool_t ProcessESD(AliESDFMD*) { return kTRUE; }
00185
00186 protected:
00187 TString fGAliceFile;
00188 AliRunLoader* fLoader;
00189 AliRun* fRun;
00190 AliStack* fStack;
00191 AliLoader* fFMDLoader;
00192 AliRawReader* fReader;
00193 AliFMD* fFMD;
00194 AliESD* fMainESD;
00195 AliESDFMD* fESD;
00196 TTree* fTreeE;
00197 TTree* fTreeH;
00198 TTree* fTreeD;
00199 TTree* fTreeS;
00200 TTree* fTreeR;
00201 TTree* fTreeA;
00202 TChain* fChainE;
00203 TClonesArray* fArrayE;
00204 TClonesArray* fArrayH;
00205 TClonesArray* fArrayD;
00206 TClonesArray* fArrayS;
00207 TClonesArray* fArrayR;
00208 TClonesArray* fArrayA;
00209 TGeoManager* fGeoManager;
00210 Int_t fTreeMask;
00211 Bool_t fIsInit;
00212 ClassDef(AliFMDInput,0)
00213 };
00214
00215
00216
00217 class AliFMDHit;
00218 class AliFMDInputHits : public AliFMDInput
00219 {
00220 public:
00221 AliFMDInputHits(const char* file="galice.root")
00222 : AliFMDInput(file) { AddLoad(kHits); }
00223 ClassDef(AliFMDInputHits, 0);
00224 };
00225
00226
00227 class AliFMDDigit;
00228 class AliFMDInputDigits : public AliFMDInput
00229 {
00230 public:
00231 AliFMDInputDigits(const char* file="galice.root")
00232 : AliFMDInput(file) { AddLoad(kDigits); }
00233 ClassDef(AliFMDInputDigits, 0);
00234 };
00235
00236
00237 class AliFMDSDigit;
00238 class AliFMDInputSDigits : public AliFMDInput
00239 {
00240 public:
00241 AliFMDInputSDigits(const char* file="galice.root")
00242 : AliFMDInput(file) { AddLoad(kSDigits); }
00243 ClassDef(AliFMDInputSDigits, 0);
00244 };
00245
00246
00247 class AliFMDInputRaw : public AliFMDInput
00248 {
00249 public:
00250 AliFMDInputRaw(const char* file="galice.root")
00251 : AliFMDInput(file) { AddLoad(kRaw); }
00252 ClassDef(AliFMDInputRaw, 0);
00253 };
00254
00255
00256 class AliFMDRecPoint;
00257 class AliFMDInputRecPoints : public AliFMDInput
00258 {
00259 public:
00260 AliFMDInputRecPoints(const char* file="galice.root")
00261 : AliFMDInput(file) { AddLoad(kRecPoints); }
00262 ClassDef(AliFMDInputRecPoints, 0);
00263 };
00264
00265 #endif
00266
00267
00268
00269
00270
00271
00272
00273