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.
38 //___________________________________________________________________
39 class AliFMDInput : public TObject
44 kKinematics, // Kinematics (from sim)
46 kSDigits, // Summable digits
47 kHeader, // Header information
48 kRecPoints, // Reconstructed points
50 kGeometry // Not really a tree
53 AliFMDInput(const char* gAliceFile);
54 virtual ~AliFMDInput() {}
56 virtual void AddLoad(ETrees tree) { SETBIT(fTreeMask, tree); }
57 virtual void RemoveLoad(ETrees tree) { CLRBIT(fTreeMask, tree); }
58 virtual Int_t NEvents() const;
60 virtual Bool_t Init();
61 virtual Bool_t Begin(Int_t event);
62 virtual Bool_t Event();
64 virtual Bool_t Finish() { return kTRUE; }
67 virtual Bool_t ProcessHits();
68 virtual Bool_t ProcessDigits();
69 virtual Bool_t ProcessSDigits();
70 virtual Bool_t ProcessRecPoints();
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; }
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
85 AliESD* fMainESD; // ESD Object
86 AliESDFMD* fESD; // FMD ESD data
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
92 TChain* fChainE; // Chain of ESD's
93 TClonesArray* fArrayE; // Event info array
94 TClonesArray* fArrayH; // Hit info array
95 TClonesArray* fArrayD; // Digit info array
96 TClonesArray* fArrayS; // SDigit info array
97 TClonesArray* fArrayR; // Mult (single) info array
98 TGeoManager* fGeoManager; // Geometry manager
99 Int_t fTreeMask; // Which tree's to load
101 ClassDef(AliFMDInput,0) //Hits for detector FMD
105 //____________________________________________________________________
107 class AliFMDInputHits : public AliFMDInput
110 AliFMDInputHits(const char* file="galice.root")
111 : AliFMDInput(file) { AddLoad(kHits); }
112 ClassDef(AliFMDInputHits, 0);
115 //____________________________________________________________________
117 class AliFMDInputDigits : public AliFMDInput
120 AliFMDInputDigits(const char* file="galice.root")
121 : AliFMDInput(file) { AddLoad(kDigits); }
122 ClassDef(AliFMDInputDigits, 0);
125 //____________________________________________________________________
127 class AliFMDInputSDigits : public AliFMDInput
130 AliFMDInputSDigits(const char* file="galice.root")
131 : AliFMDInput(file) { AddLoad(kSDigits); }
132 ClassDef(AliFMDInputSDigits, 0);
135 //____________________________________________________________________
136 class AliFMDRecPoint;
137 class AliFMDInputRecPoints : public AliFMDInput
140 AliFMDInputRecPoints(const char* file="galice.root")
141 : AliFMDInput(file) { AddLoad(kRecPoints); }
142 ClassDef(AliFMDInputRecPoints, 0);
146 //____________________________________________________________________