fix in Gain
[u/mrichter/AliRoot.git] / FMD / AliFMDInput.h
CommitLineData
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 20class AliRunLoader;
21class AliLoader;
22class AliStack;
23class AliRun;
24class AliFMD;
25class AliFMDHit;
bf000c32 26class AliFMDDigit;
27class AliFMDSDigit;
28class AliFMDRecPoint;
29class AliESD;
30class AliESDFMD;
8f6ee336 31class TString;
32class TClonesArray;
33class TTree;
34class TGeoManager;
35class TParticle;
bf000c32 36class TChain;
a1f80595 37
38//___________________________________________________________________
39class AliFMDInput : public TObject
40{
41public:
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 78protected:
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//____________________________________________________________________
106class AliFMDHit;
107class AliFMDInputHits : public AliFMDInput
108{
109public:
110 AliFMDInputHits(const char* file="galice.root")
111 : AliFMDInput(file) { AddLoad(kHits); }
a1f80595 112 ClassDef(AliFMDInputHits, 0);
113};
114
115//____________________________________________________________________
116class AliFMDDigit;
117class AliFMDInputDigits : public AliFMDInput
118{
119public:
120 AliFMDInputDigits(const char* file="galice.root")
121 : AliFMDInput(file) { AddLoad(kDigits); }
a1f80595 122 ClassDef(AliFMDInputDigits, 0);
123};
124
125//____________________________________________________________________
126class AliFMDSDigit;
127class AliFMDInputSDigits : public AliFMDInput
128{
129public:
130 AliFMDInputSDigits(const char* file="galice.root")
131 : AliFMDInput(file) { AddLoad(kSDigits); }
a1f80595 132 ClassDef(AliFMDInputSDigits, 0);
133};
134
135//____________________________________________________________________
bf000c32 136class AliFMDRecPoint;
a1f80595 137class AliFMDInputRecPoints : public AliFMDInput
138{
139public:
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//