]>
Commit | Line | Data |
---|---|---|
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 | ||
30 | class AliTOFGeometry; | |
31 | ||
32 | class AliTOF : public AliDetector { | |
33 | public: | |
34 | AliTOF(); | |
35 | AliTOF(const char *name, const char *title, Option_t *option="noTimeZero"); | |
36 | ||
37 | virtual ~AliTOF() ; | |
38 | // getters for AliTOF object status | |
39 | //Float_t GetTimeRes() const {return fTimeRes;}; | |
40 | //Float_t GetChrgRes() const {return fChrgRes;}; | |
41 | ||
42 | virtual void SetTreeAddress(); | |
43 | virtual void AddHit(Int_t track, Int_t* vol, Float_t* hits); | |
44 | virtual void AddT0Hit(Int_t track, Int_t* vol, Float_t* hits); | |
45 | virtual void AddDigit(Int_t* /*tracks*/, Int_t* /*vol*/) {}; | |
46 | virtual void AddDigit(Int_t* tracks, Int_t* vol, Int_t* digits); | |
47 | virtual void AddSDigit(Int_t tracknum, Int_t* vol, Int_t* digits); | |
48 | virtual void CreateGeometry(); | |
49 | virtual void CreateMaterials(){}; | |
50 | virtual void Init(); | |
51 | //virtual void MakeBranch(Option_t* option, const char *file=0); | |
52 | virtual void MakeBranch(Option_t *opt=" "); | |
53 | virtual void Makehits(Bool_t hits=1); | |
54 | virtual void FinishEvent(); | |
55 | virtual Int_t IsVersion() const =0; | |
56 | virtual void StepManager()=0; | |
57 | virtual void TOFpc(Float_t /*xtof*/, Float_t /*ytof*/, Float_t /*zlenC*/, | |
58 | Float_t /*zlenB*/, Float_t /*zlenA*/, Float_t /*ztof0*/){}; | |
59 | virtual void TOFpc(Float_t /*xtof*/, Float_t /*ytof*/, Float_t /*zlenA*/, | |
60 | Float_t /*zlenB*/){}; | |
61 | virtual void TOFpc(Float_t /*xtof*/, Float_t /*ytof*/, Float_t /*zlenA*/){}; | |
62 | void CreateTOFFolders(); | |
63 | Bool_t CheckOverlap(const Int_t * const vol, Int_t* digit, Int_t Track); | |
64 | //virtual void Hits2Digits(); | |
65 | virtual void Hits2SDigits(); | |
66 | virtual void Hits2SDigits(Int_t evNumber1, Int_t evNumber2); | |
67 | virtual AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const; | |
68 | virtual void Digits2Reco () {}; | |
69 | void Digits2Raw (); | |
70 | void Raw2Digits () {}; | |
71 | void Raw2Digits (AliRawReader* rawReader); | |
72 | Bool_t Raw2SDigits (AliRawReader* rawReader); | |
73 | virtual void ResetHits (); | |
74 | virtual void ResetDigits (); | |
75 | virtual void ResetSDigits(); | |
76 | TClonesArray *SDigits() const {return fSDigits;} | |
77 | TClonesArray *ReconParticles() const {return fReconParticles;} | |
78 | void RecreateSDigitsArray(); | |
79 | void CreateSDigitsArray(); | |
80 | virtual void SetTOFSectors(Int_t * const sectors); | |
81 | virtual void GetTOFSectors(Int_t *sectors) const; | |
82 | virtual void SetTOFHoles(Bool_t holes) { fTOFHoles = holes; }; | |
83 | virtual Bool_t GetTOFHoles() const { return fTOFHoles; }; | |
84 | AliTOFGeometry *GetGeometry() const { return fTOFGeometry; }; | |
85 | ||
86 | // Trigger | |
87 | virtual AliTriggerDetector* CreateTriggerDetector() const | |
88 | {return new AliTOFTrigger();} | |
89 | ||
90 | protected: | |
91 | TFolder* fFGeom ; // Folder that holds the Geometry definition | |
92 | TClonesArray* fSDigits; //! List of summable digits | |
93 | Int_t fNSDigits; //! Number of sdigits | |
94 | TClonesArray* fReconParticles; // List of reconstructed particles | |
95 | ||
96 | //Float_t fGapA; // Gap beetween tilted strip in A-type plate | |
97 | //Float_t fGapB; // Gap beetween tilted strip in B-type plate | |
98 | ||
99 | //Float_t fTimeRes; // Time resolution of the TOF | |
100 | //Float_t fChrgRes; // Charge resolution of ADC | |
101 | ||
102 | Int_t fIdSens; // The unique identifier for sensitive volume FPAD | |
103 | ||
104 | Bool_t fTZero; // Flag indicating if T0 is used | |
105 | Int_t fTOFSectors[18]; // Selecting TOF Sectors to be simulated | |
106 | Bool_t fTOFHoles; // Selecting geometry with and w/o holes | |
107 | AliTOFGeometry *fTOFGeometry; //The TOF Geometry parameters | |
108 | ||
109 | AliTOFDDLRawData fTOFRawWriter; // AliTOFDDLRawData variable | |
110 | ||
111 | private: | |
112 | AliTOF(const AliTOF &source); // copy constructor | |
113 | AliTOF& operator=(const AliTOF &source); // ass. op. | |
114 | ||
115 | ClassDef(AliTOF,12) // Time Of Flight base class | |
116 | }; | |
117 | ||
118 | #endif /* ALITOF_H */ |