New version of FMD code (A.Maevskaia)
[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 "AliDetector.h"
11 #include "TString.h"
12 #include "AliFMDMerger.h" 
13 #include "AliFMDSDigitizer.h" 
14  class TFile;
15  class TTree;
16  class AliFMDMerger;
17  class AliFMD : public AliDetector {
18  
19 public:
20   AliFMD();
21   AliFMD(const char *name, const char *title);
22   virtual       ~AliFMD(); 
23   virtual void   AddHit(Int_t, Int_t*, Float_t*);
24   virtual void   AddDigit(Int_t*);
25   virtual void   AddSDigit(Int_t*);
26   virtual void   BuildGeometry();
27   virtual void   CreateGeometry() {}
28   virtual void   CreateMaterials()=0; 
29   virtual Int_t  DistanceToPrimitive(Int_t px, Int_t py);
30   virtual Int_t  IsVersion() const =0;
31   virtual void   Init();
32   virtual void   MakeBranch(Option_t *opt=" ",const char *file=0);
33   virtual void   SetTreeAddress();
34   virtual void   ResetHits();
35   virtual void   ResetDigits();
36   virtual void   DrawDetector()=0;
37   virtual void   StepManager() {}
38   // Granularity
39   virtual void SetRingsSi1(Int_t ringsSi1);
40   virtual void SetSectorsSi1(Int_t sectorsSi1);
41   virtual void SetRingsSi2(Int_t ringsSi2);
42   virtual void SetSectorsSi2(Int_t sectorsSi2);
43    
44   void  Eta2Radius(Float_t, Float_t, Float_t*);
45   void Hits2SDigits();//
46   void Digits2Reco(); 
47
48    // Digitisation
49   TClonesArray *SDigits() const {return fSDigits;}
50 //  virtual void   SDigits2Digits();
51   virtual void   SDigits2Digits();
52   virtual void   SetMerger(AliFMDMerger* merger);
53   virtual AliFMDMerger* Merger();
54   TClonesArray *ReconParticles() const {return fReconParticles;}   
55   Int_t   fNevents ;        // Number of events to digitize
56
57  protected:
58   Int_t fIdSens1;     //Si sensetive volume
59   Int_t fIdSens2;     //Si sensetive volume
60   Int_t fIdSens3;     //Si sensetive volume
61   Int_t fIdSens4;     //Si sensetive volume
62   Int_t fIdSens5;     //Si sensetive volume
63  //Granularity
64   Int_t fRingsSi1;       // Number of rings
65   Int_t fSectorsSi1;    // Number of sectors
66   Int_t fRingsSi2;       // Number of rings
67   Int_t fSectorsSi2;    // Number of sectors
68
69
70   AliFMDMerger *fMerger;   // ! pointer to merger
71   TClonesArray *fSDigits      ; // List of summable digits
72   TClonesArray *fReconParticles;
73
74  ClassDef(AliFMD,3)  //Class for the FMD detector
75 };
76 #endif // AliFMD_H
77
78