Making possible to run AZ cluster finder and / or Kalamn filter without recompiling...
[u/mrichter/AliRoot.git] / FMD / AliFMD.h
CommitLineData
d28dcc0d 1#ifndef ALIFMD_H
2#define ALIFMD_H
4347b38f 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4 * reserved.
5 *
6 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
7 *
8 * See cxx source for full Copyright notice
9 */
3da30618 10
37c4363a 11//____________________________________________________________________
12//
13// Manager class for the FMD - Base class.
14//
4347b38f 15#ifndef ALIDETECTOR_H
16# include <AliDetector.h>
17#endif
4347b38f 18#ifndef ROOT_TBranch
19# include <TBranch.h>
20#endif
1a1fdef7 21class TBranch;
22class TClonesArray;
23class TBrowser;
24class AliDigitizer;
25class AliFMDSimulator;
4347b38f 26
27//____________________________________________________________________
28class AliFMD : public AliDetector
29{
fe4da5cc 30public:
31 AliFMD();
1a1fdef7 32 AliFMD(const char *name, const char *title);
56b1929b 33 AliFMD(const AliFMD& other);
4347b38f 34 virtual ~AliFMD();
56b1929b 35 AliFMD& operator=(const AliFMD& other);
4347b38f 36
37 // GEometry ANd Tracking (GEANT :-)
38 virtual void CreateGeometry();
39 virtual void CreateMaterials();
fe4da5cc 40 virtual void Init();
4347b38f 41 virtual void StepManager() = 0;
58d6a713 42
4347b38f 43 // Graphics and event display
44 virtual void BuildGeometry();
45 virtual void DrawDetector();
17323043 46 virtual Int_t DistanceToPrimitive(Int_t px, Int_t py);
3d44ce66 47
4347b38f 48 // Hit and digit management
49 virtual void MakeBranch(Option_t *opt=" ");
50 virtual void SetHitsAddressBranch(TBranch *b);
51 virtual void SetTreeAddress();
52 virtual TClonesArray* SDigits() { return fSDigits; }
53 virtual void ResetSDigits();
54 virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits);
69b696b9 55 virtual void AddHitByFields(Int_t track,
56 UShort_t detector,
57 Char_t ring,
58 UShort_t sector,
59 UShort_t strip,
60 Float_t x=0,
61 Float_t y=0,
62 Float_t z=0,
63 Float_t px=0,
64 Float_t py=0,
65 Float_t pz=0,
66 Float_t edep=0,
67 Int_t pdg=0,
68 Float_t t=0);
69 virtual void AddDigit(Int_t *digits, Int_t* notused=0);
70 virtual void AddDigitByFields(UShort_t detector=0,
71 Char_t ring='\0',
72 UShort_t sector=0,
73 UShort_t strip=0,
74 UShort_t count1=0,
75 Short_t count2=-1,
76 Short_t count3=-1);
4347b38f 77 virtual void AddSDigit(Int_t *digits);
69b696b9 78 virtual void AddSDigitByFields(UShort_t detector=0,
79 Char_t ring='\0',
80 UShort_t sector=0,
81 UShort_t strip=0,
82 Float_t edep=0,
83 UShort_t count1=0,
84 Short_t count2=-1,
85 Short_t count3=-1);
4347b38f 86
87 // Digitisation
c92eb8ad 88 virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
4347b38f 89 virtual void Hits2Digits();
90 virtual void Hits2SDigits();
91
92 // Raw data
93 virtual void Digits2Raw();
94
4347b38f 95 // Utility
96 void Browse(TBrowser* b);
4347b38f 97protected:
56b1929b 98 TClonesArray* HitsArray();
99 TClonesArray* DigitsArray();
100 TClonesArray* SDigitsArray();
101
56b1929b 102 TClonesArray* fSDigits; // Summable digits
103 Int_t fNsdigits; // Number of digits
1a1fdef7 104 Bool_t fDetailed; // Use detailed geometry
105
106 AliFMDSimulator* fSimulator; // Simulator task
107
108 ClassDef(AliFMD,10) // Base class FMD entry point
fe4da5cc 109};
dc8af42e 110
4347b38f 111#endif
112//____________________________________________________________________
113//
0d0e6995 114// Local Variables:
115// mode: C++
116// End:
117//
4347b38f 118// EOF
119//