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