]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDInput.h
TPC ALTRO mapping class
[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;
26class TString;
27class TClonesArray;
28class TTree;
29class TGeoManager;
30class TParticle;
31
a1f80595 32
33//___________________________________________________________________
34class AliFMDInput : public TObject
35{
36public:
37 enum ETrees {
8f6ee336 38 kHits = 1, // Hits
39 kKinematics, // Kinematics (from sim)
40 kDigits, // Digits
41 kSDigits, // Summable digits
42 kHeader, // Header information
43 kRecPoints, // Reconstructed points
44 kGeometry // Not really a tree
a1f80595 45 };
46 AliFMDInput();
47 AliFMDInput(const char* gAliceFile);
48 virtual ~AliFMDInput() {}
49
50 virtual void AddLoad(ETrees tree) { SETBIT(fTreeMask, tree); }
51 virtual void RemoveLoad(ETrees tree) { CLRBIT(fTreeMask, tree); }
52 virtual Int_t NEvents() const;
53
54 virtual Bool_t Init();
55 virtual Bool_t Begin(Int_t event);
56 virtual Bool_t Event() = 0;
57 virtual Bool_t End();
58 virtual Bool_t Finish() { return kTRUE; }
59 virtual Bool_t Run();
60protected:
61 TString fGAliceFile; // File name of gAlice file
62 AliRunLoader* fLoader; // Loader of FMD data
63 AliRun* fRun; // Run information
64 AliStack* fStack; // Stack of particles
65 AliLoader* fFMDLoader; // Loader of FMD data
66 AliFMD* fFMD; // FMD object
67 TTree* fTreeE; // Header tree
68 TTree* fTreeH; // Hits tree
69 TTree* fTreeD; // Digit tree
70 TTree* fTreeS; // SDigit tree
71 TTree* fTreeR; // RecPoint tree
72 TClonesArray* fArrayE; // Event info array
73 TClonesArray* fArrayH; // Hit info array
74 TClonesArray* fArrayD; // Digit info array
75 TClonesArray* fArrayS; // SDigit info array
76 TClonesArray* fArrayN; // Mult (single) info array
77 TClonesArray* fArrayP; // Mult (region) info array
8f6ee336 78 TGeoManager* fGeoManager; // Geometry manager
a1f80595 79 Int_t fTreeMask; // Which tree's to load
80 Bool_t fIsInit;
81 ClassDef(AliFMDInput,0) //Hits for detector FMD
82};
83
84
85//____________________________________________________________________
86class AliFMDHit;
87class AliFMDInputHits : public AliFMDInput
88{
89public:
90 AliFMDInputHits(const char* file="galice.root")
91 : AliFMDInput(file) { AddLoad(kHits); }
92 virtual Bool_t Event();
93 virtual Bool_t ProcessHit(AliFMDHit* hit, TParticle* track) = 0;
94 ClassDef(AliFMDInputHits, 0);
95};
96
97//____________________________________________________________________
98class AliFMDDigit;
99class AliFMDInputDigits : public AliFMDInput
100{
101public:
102 AliFMDInputDigits(const char* file="galice.root")
103 : AliFMDInput(file) { AddLoad(kDigits); }
104 virtual Bool_t Event();
105 virtual Bool_t ProcessDigit(AliFMDDigit* digit) = 0;
106 ClassDef(AliFMDInputDigits, 0);
107};
108
109//____________________________________________________________________
110class AliFMDSDigit;
111class AliFMDInputSDigits : public AliFMDInput
112{
113public:
114 AliFMDInputSDigits(const char* file="galice.root")
115 : AliFMDInput(file) { AddLoad(kSDigits); }
116 virtual Bool_t Event();
117 virtual Bool_t ProcessSDigit(AliFMDSDigit* sdigit) = 0;
118 ClassDef(AliFMDInputSDigits, 0);
119};
120
121//____________________________________________________________________
122class AliFMDMultStrip;
123class AliFMDMultRegion;
124class AliFMDInputRecPoints : public AliFMDInput
125{
126public:
127 AliFMDInputRecPoints(const char* file="galice.root")
128 : AliFMDInput(file) { AddLoad(kRecPoints); }
129 virtual Bool_t Event();
130 virtual Bool_t ProcessStrip(AliFMDMultStrip* mult) = 0;
131 virtual Bool_t ProcessRegion(AliFMDMultRegion* mult) = 0;
132 ClassDef(AliFMDInputRecPoints, 0);
133};
134
135#endif
136//____________________________________________________________________
137//
138// Local Variables:
139// mode: C++
140// End:
141//
142// EOF
143//