]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOF.h
online T0-fill: use max bin value
[u/mrichter/AliRoot.git] / TOF / AliTOF.h
1 #ifndef ALITOF_H
2 #define ALITOF_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ////////////////////////////////////////////////
9 //                                            //
10 //  Manager class for TOF                     //
11 //  Interface :                               //
12 //  AliTOF                                    //
13 //  Associations between TOF related objects  //
14 //  are defined here                          //
15 // -- Authors: Pierella, Seganti, Vicinanza   //
16 //    (Bologna and Salerno University)        //
17 //                                            //
18 ////////////////////////////////////////////////
19
20 #include "AliDetector.h"
21
22 #include "AliTOFTrigger.h"
23 #include "AliTOFDDLRawData.h"
24
25 class TDirectory;
26 class TFile;
27 class TFolder ;
28 class TString ;  
29 class TTask ;
30
31 class AliTOFGeometry;
32
33 class AliTOF : public AliDetector {
34 public:
35   AliTOF(); 
36   AliTOF(const char *name, const char *title, Option_t *option="noTimeZero");
37
38   virtual ~AliTOF() ;
39 // getters for AliTOF object status
40   //Float_t GetTimeRes() const {return fTimeRes;};
41   //Float_t GetChrgRes() const {return fChrgRes;};
42
43   virtual void    SetTreeAddress();
44   virtual void    AddHit(Int_t track, Int_t* vol, Float_t* hits);
45   virtual void    AddT0Hit(Int_t track, Int_t* vol, Float_t* hits);
46   virtual void    AddDigit(Int_t* /*tracks*/, Int_t* /*vol*/) {};
47   virtual void    AddDigit(Int_t* tracks, Int_t* vol, Int_t* digits);
48   virtual void    AddSDigit(Int_t tracknum, Int_t* vol, Int_t* digits);
49   virtual void    CreateGeometry();
50   virtual void    CreateMaterials(){};
51   virtual void    Init();
52   //virtual void    MakeBranch(Option_t* option, const char *file=0);
53   virtual void    MakeBranch(Option_t *opt=" ");
54   virtual void    Makehits(Bool_t hits=1);
55   virtual void    FinishEvent();
56   virtual Int_t   IsVersion() const =0;
57   virtual void    StepManager()=0;
58   virtual void    TOFpc(Float_t /*xtof*/, Float_t /*ytof*/, Float_t /*zlenC*/,
59                         Float_t /*zlenB*/, Float_t /*zlenA*/, Float_t /*ztof0*/){};
60   virtual void    TOFpc(Float_t /*xtof*/,  Float_t /*ytof*/, Float_t /*zlenA*/,
61                         Float_t /*zlenB*/){};
62   virtual void    TOFpc(Float_t /*xtof*/,  Float_t /*ytof*/, Float_t /*zlenA*/){};
63           void    CreateTOFFolders();
64   Bool_t    CheckOverlap(const Int_t * const vol, Int_t* digit, Int_t Track);
65   //virtual void    Hits2Digits();   
66   virtual void    Hits2SDigits();
67   virtual void    Hits2SDigits(Int_t evNumber1, Int_t evNumber2);
68   virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const; 
69   virtual void    Digits2Reco () {};
70           void    Digits2Raw  ();
71           void    Raw2Digits  () {};
72           void    Raw2Digits  (AliRawReader* rawReader);
73           Bool_t  Raw2SDigits (AliRawReader* rawReader);
74   virtual void    ResetHits   ();
75   virtual void    ResetDigits ();
76   virtual void    ResetSDigits();
77   TClonesArray *SDigits() const {return fSDigits;}
78   TClonesArray *ReconParticles() const {return fReconParticles;}
79   void RecreateSDigitsArray();
80   void CreateSDigitsArray();
81   virtual void   SetTOFSectors(Int_t * const sectors);
82   virtual void   GetTOFSectors(Int_t *sectors) const;
83   virtual void   SetTOFHoles(Bool_t holes) { fTOFHoles = holes; };
84   virtual Bool_t GetTOFHoles() const { return fTOFHoles; };
85   AliTOFGeometry *GetGeometry() const { return fTOFGeometry; }; 
86
87   // Trigger
88   virtual AliTriggerDetector* CreateTriggerDetector() const
89         {return new AliTOFTrigger();}
90
91 protected:
92   TFolder* fFGeom ;       //  Folder that holds the Geometry definition
93   TTask*   fDTask ;       //  TOF Digitizer container
94   TTask*   fReTask;       //  TOF Reconstructioner container
95   TClonesArray* fSDigits; //! List of summable digits
96   Int_t   fNSDigits;      //! Number of sdigits
97   TClonesArray* fReconParticles; // List of reconstructed particles
98
99   //Float_t fGapA;     //  Gap beetween tilted strip in A-type plate
100   //Float_t fGapB;     //  Gap beetween tilted strip in B-type plate
101
102   //Float_t fTimeRes;  //  Time resolution of the TOF
103   //Float_t fChrgRes;  //  Charge resolution of ADC
104
105   Int_t   fIdSens;     // The unique identifier for sensitive volume FPAD 
106
107   Bool_t  fTZero;      // Flag indicating if T0 is used
108   Int_t fTOFSectors[18]; // Selecting TOF Sectors to be simulated
109   Bool_t fTOFHoles; // Selecting geometry with and w/o holes
110   AliTOFGeometry *fTOFGeometry; //The TOF Geometry parameters
111
112   AliTOFDDLRawData fTOFRawWriter; // AliTOFDDLRawData variable
113  
114 private:
115   AliTOF(const AliTOF &source); // copy constructor
116   AliTOF& operator=(const AliTOF &source); // ass. op.
117
118   ClassDef(AliTOF,11)  // Time Of Flight base class
119 };
120  
121 #endif /* ALITOF_H */