3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
6 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
8 * See cxx source for full Copyright notice
11 //____________________________________________________________________
13 // Manager class for the FMD - Base class.
16 # include <AliDetector.h>
25 class AliFMDSimulator;
28 //____________________________________________________________________
29 class AliFMD : public AliDetector
33 AliFMD(const char *name, const char *title);
34 AliFMD(const AliFMD& other);
36 AliFMD& operator=(const AliFMD& other);
37 // Use old implementation
38 void UseOld(Bool_t use=kTRUE) { fUseOld = use; }
39 void UseDivided(Bool_t use=kTRUE) { fUseDivided = use; }
40 void UseAssembly(Bool_t use=kTRUE) { fUseAssembly = use; }
41 void UseGeo(Bool_t use=kTRUE) { fUseGeo = use; }
42 void UseDetailed(Bool_t use=kTRUE) { fDetailed = use; }
44 // GEometry ANd Tracking (GEANT :-)
45 virtual void CreateGeometry();
46 virtual void CreateMaterials();
48 virtual void StepManager() = 0;
49 virtual void FinishEvent();
51 // Graphics and event display
52 virtual void BuildGeometry();
53 virtual void DrawDetector();
54 virtual Int_t DistanceToPrimitive(Int_t px, Int_t py);
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);
63 virtual AliFMDHit* AddHitByFields(Int_t track,
77 virtual void AddDigit(Int_t *digits, Int_t* notused=0);
78 virtual void AddDigitByFields(UShort_t detector=0,
85 virtual void AddSDigit(Int_t *digits);
86 virtual void AddSDigitByFields(UShort_t detector=0,
96 virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
97 virtual void Hits2Digits();
98 virtual void Hits2SDigits();
101 virtual void Digits2Raw();
104 void Browse(TBrowser* b);
106 TClonesArray* HitsArray();
107 TClonesArray* DigitsArray();
108 TClonesArray* SDigitsArray();
110 TClonesArray* fSDigits; // Summable digits
111 Int_t fNsdigits; // Number of digits
112 Bool_t fDetailed; // Use detailed geometry
113 Bool_t fUseOld; // Use old approx geometry
114 Bool_t fUseDivided; // Use divided volumes
115 Bool_t fUseAssembly; // Use divided volumes
116 Bool_t fUseGeo; // Allow use of TGeo impl.
118 AliFMDSimulator* fSimulator; // Simulator task
120 ClassDef(AliFMD,10) // Base class FMD entry point
124 //____________________________________________________________________