]>
Commit | Line | Data |
---|---|---|
237c933d | 1 | #ifndef ALIRICH_H |
2 | #define ALIRICH_H | |
2e5f0f7b | 3 | |
3da30618 | 4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id$ */ | |
8 | ||
2e5f0f7b | 9 | |
fe4da5cc | 10 | //////////////////////////////////////////////// |
11 | // Manager and hits classes for set:RICH // | |
12 | //////////////////////////////////////////////// | |
fe4da5cc | 13 | #include "AliDetector.h" |
ddae0931 | 14 | #include "AliRICHConst.h" |
2e5f0f7b | 15 | #include "AliRICHChamber.h" |
237c933d | 16 | static const int kNCH=7; |
fe4da5cc | 17 | |
fe4da5cc | 18 | |
237c933d | 19 | class AliRICHHit; |
2e5f0f7b | 20 | class AliRICHPadHit; |
21 | class AliRICHRawCluster; | |
22 | class AliRICHRecHit; | |
23 | class AliRICHClusterFinder; | |
24 | class AliRICHDetect; | |
25 | class AliRICHChamber; | |
26 | class AliRICHCerenkov; | |
27 | class AliRICHSegmentation; | |
28 | class AliRICHResponse; | |
29 | class AliRICHEllipse; | |
237c933d | 30 | class AliRICHGeometry; |
ddae0931 | 31 | |
32 | class AliRICH : public AliDetector { | |
33 | public: | |
34 | AliRICH(); | |
35 | AliRICH(const char *name, const char *title); | |
237c933d | 36 | AliRICH(const AliRICH& RICH); |
ddae0931 | 37 | virtual ~AliRICH(); |
237c933d | 38 | virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits); |
39 | virtual void AddCerenkov(Int_t track, Int_t *vol, Float_t *cerenkovs); | |
40 | virtual void AddPadHit(Int_t *clhits); | |
41 | virtual void AddDigits(Int_t id, Int_t *tracks, Int_t *charges, Int_t *digits); | |
42 | virtual void AddRawCluster(Int_t id, const AliRICHRawCluster& cluster); | |
6fb24c3c | 43 | virtual void AddRecHit(Int_t id, Float_t* rechit, Float_t* photons, Int_t* padsx, Int_t* padsy); |
2e5f0f7b | 44 | |
45 | ||
ddae0931 | 46 | virtual void BuildGeometry(); |
47 | virtual void CreateGeometry() {} | |
48 | virtual void CreateMaterials() {} | |
49 | virtual void StepManager(); | |
50 | Int_t DistancetoPrimitive(Int_t px, Int_t py); | |
51 | virtual Int_t IsVersion() const =0; | |
52 | // | |
2e5f0f7b | 53 | TClonesArray *PadHits() {return fPadHits;} |
54 | TClonesArray *Cerenkovs() {return fCerenkovs;} | |
ddae0931 | 55 | virtual void MakeBranch(Option_t *opt=" "); |
56 | void SetTreeAddress(); | |
57 | virtual void ResetHits(); | |
58 | virtual void ResetDigits(); | |
2e5f0f7b | 59 | virtual void ResetRawClusters(); |
60 | virtual void ResetRecHits(); | |
237c933d | 61 | virtual void FindClusters(Int_t nev,Int_t lastEntry); |
d28b5fc2 | 62 | virtual void Digitise(Int_t nev,Int_t flag,Option_t *opt=" ",Text_t *name=" "); |
ddae0931 | 63 | // |
64 | // Configuration Methods (per station id) | |
65 | // | |
66 | // Set Chamber Segmentation Parameters | |
67 | // id refers to the station and isec to the cathode plane | |
ddae0931 | 68 | // Set Segmentation and Response Model |
2e5f0f7b | 69 | virtual void SetGeometryModel(Int_t id, AliRICHGeometry *geometry); |
70 | virtual void SetSegmentationModel(Int_t id, AliRICHSegmentation *segmentation); | |
71 | virtual void SetResponseModel(Int_t id, AliRICHResponse *response); | |
ddae0931 | 72 | virtual void SetNsec(Int_t id, Int_t nsec); |
2e5f0f7b | 73 | // Set Reconstruction Model |
74 | virtual void SetReconstructionModel(Int_t id, AliRICHClusterFinder *reconstruction); | |
6fb24c3c | 75 | // Set source debugging level |
76 | void SetDebugLevel(Int_t level) {fDebugLevel=level;} | |
77 | // Get source debugging level | |
78 | Int_t GetDebugLevel() {return fDebugLevel;} | |
ddae0931 | 79 | // Response Simulation |
237c933d | 80 | virtual Int_t MakePadHits(Float_t xhit,Float_t yhit,Float_t eloss,Int_t id, ResponseType res); |
ddae0931 | 81 | // Return reference to Chamber #id |
2e5f0f7b | 82 | virtual AliRICHChamber& Chamber(Int_t id) {return *((AliRICHChamber *) (*fChambers)[id]);} |
ddae0931 | 83 | // Retrieve pad hits for a given Hit |
237c933d | 84 | virtual AliRICHPadHit* FirstPad(AliRICHHit *hit, TClonesArray *clusters); |
85 | virtual AliRICHPadHit* NextPad(TClonesArray *clusters); | |
ddae0931 | 86 | // Return pointers to digits |
87 | TObjArray *Dchambers() {return fDchambers;} | |
88 | Int_t *Ndch() {return fNdch;} | |
89 | virtual TClonesArray *DigitsAddress(Int_t id) {return ((TClonesArray *) (*fDchambers)[id]);} | |
2e5f0f7b | 90 | // Return pointers to rec. hits |
91 | TObjArray *RecHits() {return fRecHits;} | |
92 | Int_t *Nrechits() {return fNrechits;} | |
93 | virtual TClonesArray *RecHitsAddress(Int_t id) {return ((TClonesArray *) (*fRecHits)[id]);} | |
ddae0931 | 94 | // Return pointers to reconstructed clusters |
2e5f0f7b | 95 | virtual TClonesArray *RawClustAddress(Int_t id) {return ((TClonesArray *) (*fRawClusters)[id]);} |
237c933d | 96 | // Assignment operator |
97 | AliRICH& operator=(const AliRICH& rhs); | |
ddae0931 | 98 | |
99 | ||
100 | protected: | |
101 | TObjArray *fChambers; // List of Tracking Chambers | |
2e5f0f7b | 102 | Int_t fNPadHits; // Number of clusters |
103 | Int_t fNcerenkovs; // Number of cerenkovs | |
104 | TClonesArray *fPadHits; // List of clusters | |
ddae0931 | 105 | TObjArray *fDchambers; // List of digits |
ddae0931 | 106 | TClonesArray *fCerenkovs; // List of cerenkovs |
107 | Int_t *fNdch; // Number of digits | |
108 | Text_t *fFileName; // Filename for event mixing | |
2e5f0f7b | 109 | TObjArray *fRawClusters; // List of raw clusters |
110 | TObjArray *fRecHits; // List of rec. hits | |
111 | Int_t *fNrawch; // Number of raw clusters | |
378f6387 | 112 | Int_t *fNrechits; // Number of rec hits |
6fb24c3c | 113 | Int_t fDebugLevel; // Source debugging level |
378f6387 | 114 | |
ddae0931 | 115 | protected: |
116 | ||
117 | ClassDef(AliRICH,1) //Hits manager for set:RICH | |
2e5f0f7b | 118 | }; |
fe4da5cc | 119 | #endif |
120 | ||
121 | ||
122 | ||
ddae0931 | 123 | |
124 | ||
125 | ||
126 | ||
127 | ||
128 | ||
129 | ||
130 | ||
131 | ||
132 | ||
133 | ||
134 |