3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
6 * See cxx source for full Copyright notice
8 //___________________________________________________________________
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.
17 # include <AliLoader.h>
19 #ifndef ALIRUNLOADER_H
20 # include <AliRunLoader.h>
26 # include <AliStack.h>
34 #ifndef ROOT_TParticle
35 # include <TParticle.h>
41 //___________________________________________________________________
42 class AliFMDInput : public TObject
54 AliFMDInput(const char* gAliceFile);
55 virtual ~AliFMDInput() {}
57 virtual void AddLoad(ETrees tree) { SETBIT(fTreeMask, tree); }
58 virtual void RemoveLoad(ETrees tree) { CLRBIT(fTreeMask, tree); }
59 virtual Int_t NEvents() const;
61 virtual Bool_t Init();
62 virtual Bool_t Begin(Int_t event);
63 virtual Bool_t Event() = 0;
65 virtual Bool_t Finish() { return kTRUE; }
68 TString fGAliceFile; // File name of gAlice file
69 AliRunLoader* fLoader; // Loader of FMD data
70 AliRun* fRun; // Run information
71 AliStack* fStack; // Stack of particles
72 AliLoader* fFMDLoader; // Loader of FMD data
73 AliFMD* fFMD; // FMD object
74 TTree* fTreeE; // Header tree
75 TTree* fTreeH; // Hits tree
76 TTree* fTreeD; // Digit tree
77 TTree* fTreeS; // SDigit tree
78 TTree* fTreeR; // RecPoint tree
79 TClonesArray* fArrayE; // Event info array
80 TClonesArray* fArrayH; // Hit info array
81 TClonesArray* fArrayD; // Digit info array
82 TClonesArray* fArrayS; // SDigit info array
83 TClonesArray* fArrayN; // Mult (single) info array
84 TClonesArray* fArrayP; // Mult (region) info array
85 Int_t fTreeMask; // Which tree's to load
87 ClassDef(AliFMDInput,0) //Hits for detector FMD
91 //____________________________________________________________________
93 class AliFMDInputHits : public AliFMDInput
96 AliFMDInputHits(const char* file="galice.root")
97 : AliFMDInput(file) { AddLoad(kHits); }
98 virtual Bool_t Event();
99 virtual Bool_t ProcessHit(AliFMDHit* hit, TParticle* track) = 0;
100 ClassDef(AliFMDInputHits, 0);
103 //____________________________________________________________________
105 class AliFMDInputDigits : public AliFMDInput
108 AliFMDInputDigits(const char* file="galice.root")
109 : AliFMDInput(file) { AddLoad(kDigits); }
110 virtual Bool_t Event();
111 virtual Bool_t ProcessDigit(AliFMDDigit* digit) = 0;
112 ClassDef(AliFMDInputDigits, 0);
115 //____________________________________________________________________
117 class AliFMDInputSDigits : public AliFMDInput
120 AliFMDInputSDigits(const char* file="galice.root")
121 : AliFMDInput(file) { AddLoad(kSDigits); }
122 virtual Bool_t Event();
123 virtual Bool_t ProcessSDigit(AliFMDSDigit* sdigit) = 0;
124 ClassDef(AliFMDInputSDigits, 0);
127 //____________________________________________________________________
128 class AliFMDMultStrip;
129 class AliFMDMultRegion;
130 class AliFMDInputRecPoints : public AliFMDInput
133 AliFMDInputRecPoints(const char* file="galice.root")
134 : AliFMDInput(file) { AddLoad(kRecPoints); }
135 virtual Bool_t Event();
136 virtual Bool_t ProcessStrip(AliFMDMultStrip* mult) = 0;
137 virtual Bool_t ProcessRegion(AliFMDMultRegion* mult) = 0;
138 ClassDef(AliFMDInputRecPoints, 0);
142 //____________________________________________________________________