]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMD.h
Compiler warnings fixes.
[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;
54e415a8 25#ifdef USE_PRE_MOVE
1a1fdef7 26class AliFMDSimulator;
54e415a8 27#endif
54240c8d 28class AliFMDHit;
4347b38f 29
30//____________________________________________________________________
31class AliFMD : public AliDetector
32{
fe4da5cc 33public:
34 AliFMD();
1a1fdef7 35 AliFMD(const char *name, const char *title);
56b1929b 36 AliFMD(const AliFMD& other);
4347b38f 37 virtual ~AliFMD();
56b1929b 38 AliFMD& operator=(const AliFMD& other);
4ac75127 39 // Use old implementation
40 void UseOld(Bool_t use=kTRUE) { fUseOld = use; }
4ac75127 41 void UseAssembly(Bool_t use=kTRUE) { fUseAssembly = use; }
54240c8d 42 void UseDetailed(Bool_t use=kTRUE) { fDetailed = use; }
4ac75127 43
4347b38f 44 // GEometry ANd Tracking (GEANT :-)
45 virtual void CreateGeometry();
46 virtual void CreateMaterials();
fe4da5cc 47 virtual void Init();
4347b38f 48 virtual void StepManager() = 0;
54240c8d 49 virtual void FinishEvent();
50
4347b38f 51 // Graphics and event display
52 virtual void BuildGeometry();
53 virtual void DrawDetector();
17323043 54 virtual Int_t DistanceToPrimitive(Int_t px, Int_t py);
3d44ce66 55
4347b38f 56 // Hit and digit management
57 virtual void MakeBranch(Option_t *opt=" ");
58 virtual void SetHitsAddressBranch(TBranch *b);
59 virtual void SetTreeAddress();
60 virtual TClonesArray* SDigits() { return fSDigits; }
61 virtual void ResetSDigits();
62 virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits);
54240c8d 63 virtual AliFMDHit* AddHitByFields(Int_t track,
69b696b9 64 UShort_t detector,
65 Char_t ring,
66 UShort_t sector,
67 UShort_t strip,
68 Float_t x=0,
69 Float_t y=0,
70 Float_t z=0,
71 Float_t px=0,
72 Float_t py=0,
73 Float_t pz=0,
74 Float_t edep=0,
75 Int_t pdg=0,
76 Float_t t=0);
77 virtual void AddDigit(Int_t *digits, Int_t* notused=0);
78 virtual void AddDigitByFields(UShort_t detector=0,
79 Char_t ring='\0',
80 UShort_t sector=0,
81 UShort_t strip=0,
82 UShort_t count1=0,
83 Short_t count2=-1,
84 Short_t count3=-1);
4347b38f 85 virtual void AddSDigit(Int_t *digits);
69b696b9 86 virtual void AddSDigitByFields(UShort_t detector=0,
87 Char_t ring='\0',
88 UShort_t sector=0,
89 UShort_t strip=0,
90 Float_t edep=0,
91 UShort_t count1=0,
92 Short_t count2=-1,
93 Short_t count3=-1);
4347b38f 94
95 // Digitisation
c92eb8ad 96 virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
4347b38f 97 virtual void Hits2Digits();
98 virtual void Hits2SDigits();
99
100 // Raw data
101 virtual void Digits2Raw();
102
4347b38f 103 // Utility
104 void Browse(TBrowser* b);
4347b38f 105protected:
56b1929b 106 TClonesArray* HitsArray();
107 TClonesArray* DigitsArray();
108 TClonesArray* SDigitsArray();
109
56b1929b 110 TClonesArray* fSDigits; // Summable digits
111 Int_t fNsdigits; // Number of digits
1a1fdef7 112 Bool_t fDetailed; // Use detailed geometry
4ac75127 113 Bool_t fUseOld; // Use old approx geometry
4ac75127 114 Bool_t fUseAssembly; // Use divided volumes
1a1fdef7 115
54e415a8 116 enum {
117 kSiId, // ID index of Si medium
118 kAirId, // ID index of Air medium
119 kPlasticId, // ID index of Plastic medium
120 kPcbId, // ID index of PCB medium
121 kSiChipId, // ID index of Si Chip medium
122 kAlId, // ID index of Al medium
123 kCarbonId, // ID index of Carbon medium
124 kCopperId, // ID index of Copper Medium
125 kKaptonId // ID index of Kapton Medium
126 };
127
128#ifdef USE_PRE_MOVE
1a1fdef7 129 AliFMDSimulator* fSimulator; // Simulator task
54e415a8 130#endif
131 TObjArray* fBad; //! debugging - bad hits
1a1fdef7 132
133 ClassDef(AliFMD,10) // Base class FMD entry point
fe4da5cc 134};
dc8af42e 135
4347b38f 136#endif
137//____________________________________________________________________
138//
0d0e6995 139// Local Variables:
140// mode: C++
141// End:
142//
4347b38f 143// EOF
144//