8a8366d0e9034fdca9a3e47ff40402b4737ae81e
[u/mrichter/AliRoot.git] / FMD / AliFMD.h
1 #ifndef ALIFMD_H
2 #define ALIFMD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ////////////////////////////////////////////////
7 //  Manager and hits classes for set:Si-FMD     //
8 ////////////////////////////////////////////////
9  
10 #include "TBranch.h"
11 #include "AliDetector.h"
12
13 class TClonesArray;
14 class AliFMD : public AliDetector {
15  
16 public:
17   AliFMD();
18   AliFMD(const char *name, const char *title);
19   virtual       ~AliFMD(); 
20   virtual void   AddHit(Int_t track, Int_t * vol, Float_t * hits);
21   virtual void   AddDigit(Int_t* digits);
22   virtual void   BuildGeometry();
23   virtual void   CreateGeometry() {}
24   virtual void   CreateMaterials()=0; 
25   virtual Int_t  DistanceToPrimitive(Int_t px, Int_t py);
26   virtual Int_t  IsVersion() const =0;
27   virtual void   Init();
28   virtual void   MakeBranch(Option_t *opt=" ",const char *file=0);
29   virtual void   MakeBranchInTreeD(TTree *treeD, const char *file=0);
30   virtual void   SetTreeAddress();
31   virtual void   ResetHits();
32   virtual void   ResetDigits();
33   virtual void   DrawDetector()=0;
34   virtual void   StepManager() {}
35    // Granularity
36   virtual void SetRingsSi1(Int_t ringsSi1=256);
37   virtual void SetSectorsSi1(Int_t sectorsSi1=20);
38   virtual void SetRingsSi2(Int_t ringsSi2=128);
39   virtual void SetSectorsSi2(Int_t sectorsSi2=40);
40    
41   void SetEventNumber(Int_t i)     {fEvNrSig = i;}
42   void  Eta2Radius(Float_t eta, Float_t zDisk, Float_t * radius);
43   void Digits2Reco(); 
44   virtual void SetHitsAddressBranch(TBranch *b){b->SetAddress(&fHits);}
45   
46    // Digitisation
47   TClonesArray *ReconParticles() const {return fReconParticles;}   
48
49  protected:
50   Int_t fIdSens1;     //Si sensetive volume
51   Int_t fIdSens2;     //Si sensetive volume
52   Int_t fIdSens3;     //Si sensetive volume
53   Int_t fIdSens4;     //Si sensetive volume
54   Int_t fIdSens5;     //Si sensetive volume
55  //Granularity
56   Int_t fRingsSi1;       // Number of rings
57   Int_t fSectorsSi1;    // Number of sectors
58   Int_t fRingsSi2;       // Number of rings
59   Int_t fSectorsSi2;    // Number of sectors
60
61   Int_t   fNevents ;        // Number of events to digitize
62   Int_t fEvNrSig;                 // signal     event number
63
64   TClonesArray *fReconParticles; // list of reconstructed particles
65
66  ClassDef(AliFMD,4)  //Class for the FMD detector
67 };
68 #endif // AliFMD_H
69
70