]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | #ifndef RICH_H |
2 | #define RICH_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 "AliRICHSegRes.h" |
16 | #include "DataStructures.h" | |
17 | #include "AliRICHChamber.h" | |
18 | #include "AliRICHSegRes.h" | |
ddae0931 | 19 | #include <TVector.h> |
2e5f0f7b | 20 | #include <TArrayF.h> |
ddae0931 | 21 | #include <TObjArray.h> |
22 | #include <TFile.h> | |
23 | #include <TTree.h> | |
2e5f0f7b | 24 | #include <TParticle.h> |
fe4da5cc | 25 | |
ddae0931 | 26 | static const int NCH=7; |
fe4da5cc | 27 | |
fe4da5cc | 28 | |
fe4da5cc | 29 | |
2e5f0f7b | 30 | class AliRICHPadHit; |
31 | class AliRICHRawCluster; | |
32 | class AliRICHRecHit; | |
33 | class AliRICHClusterFinder; | |
34 | class AliRICHDetect; | |
35 | class AliRICHChamber; | |
36 | class AliRICHCerenkov; | |
37 | class AliRICHSegmentation; | |
38 | class AliRICHResponse; | |
39 | class AliRICHEllipse; | |
ddae0931 | 40 | |
41 | class AliRICH : public AliDetector { | |
42 | public: | |
43 | AliRICH(); | |
44 | AliRICH(const char *name, const char *title); | |
45 | virtual ~AliRICH(); | |
46 | virtual void AddHit(Int_t, Int_t*, Float_t*); | |
47 | virtual void AddCerenkov(Int_t, Int_t*, Float_t*); | |
2e5f0f7b | 48 | virtual void AddPadHit(Int_t*); |
ddae0931 | 49 | virtual void AddDigits(Int_t, Int_t*, Int_t*, Int_t*); |
2e5f0f7b | 50 | virtual void AddRawCluster(Int_t, const AliRICHRawCluster&); |
51 | virtual void AddRecHit(Int_t, Float_t*); | |
52 | ||
53 | ||
ddae0931 | 54 | virtual void BuildGeometry(); |
55 | virtual void CreateGeometry() {} | |
56 | virtual void CreateMaterials() {} | |
57 | virtual void StepManager(); | |
58 | Int_t DistancetoPrimitive(Int_t px, Int_t py); | |
59 | virtual Int_t IsVersion() const =0; | |
60 | // | |
2e5f0f7b | 61 | TClonesArray *PadHits() {return fPadHits;} |
62 | TClonesArray *Cerenkovs() {return fCerenkovs;} | |
ddae0931 | 63 | virtual void MakeBranch(Option_t *opt=" "); |
64 | void SetTreeAddress(); | |
65 | virtual void ResetHits(); | |
66 | virtual void ResetDigits(); | |
2e5f0f7b | 67 | virtual void ResetRawClusters(); |
68 | virtual void ResetRecHits(); | |
69 | virtual void FindClusters(Int_t,Int_t); | |
ddae0931 | 70 | virtual void Digitise(Int_t,Option_t *opt=" ",Text_t *name=" "); |
71 | // | |
72 | // Configuration Methods (per station id) | |
73 | // | |
74 | // Set Chamber Segmentation Parameters | |
75 | // id refers to the station and isec to the cathode plane | |
ddae0931 | 76 | // Set Segmentation and Response Model |
2e5f0f7b | 77 | virtual void SetGeometryModel(Int_t id, AliRICHGeometry *geometry); |
78 | virtual void SetSegmentationModel(Int_t id, AliRICHSegmentation *segmentation); | |
79 | virtual void SetResponseModel(Int_t id, AliRICHResponse *response); | |
ddae0931 | 80 | virtual void SetNsec(Int_t id, Int_t nsec); |
2e5f0f7b | 81 | // Set Reconstruction Model |
82 | virtual void SetReconstructionModel(Int_t id, AliRICHClusterFinder *reconstruction); | |
ddae0931 | 83 | // Response Simulation |
84 | virtual void MakePadHits(Float_t xhit,Float_t yhit,Float_t eloss,Int_t id,Response_t res); | |
85 | // Return reference to Chamber #id | |
2e5f0f7b | 86 | virtual AliRICHChamber& Chamber(Int_t id) {return *((AliRICHChamber *) (*fChambers)[id]);} |
ddae0931 | 87 | // Retrieve pad hits for a given Hit |
2e5f0f7b | 88 | virtual AliRICHPadHit* FirstPad(AliRICHHit *, TClonesArray *); |
89 | virtual AliRICHPadHit* NextPad(TClonesArray *); | |
ddae0931 | 90 | // Return pointers to digits |
91 | TObjArray *Dchambers() {return fDchambers;} | |
92 | Int_t *Ndch() {return fNdch;} | |
93 | virtual TClonesArray *DigitsAddress(Int_t id) {return ((TClonesArray *) (*fDchambers)[id]);} | |
2e5f0f7b | 94 | // Return pointers to rec. hits |
95 | TObjArray *RecHits() {return fRecHits;} | |
96 | Int_t *Nrechits() {return fNrechits;} | |
97 | virtual TClonesArray *RecHitsAddress(Int_t id) {return ((TClonesArray *) (*fRecHits)[id]);} | |
ddae0931 | 98 | // Return pointers to reconstructed clusters |
2e5f0f7b | 99 | virtual TClonesArray *RawClustAddress(Int_t id) {return ((TClonesArray *) (*fRawClusters)[id]);} |
ddae0931 | 100 | |
101 | ||
102 | protected: | |
103 | TObjArray *fChambers; // List of Tracking Chambers | |
2e5f0f7b | 104 | Int_t fNPadHits; // Number of clusters |
105 | Int_t fNcerenkovs; // Number of cerenkovs | |
106 | TClonesArray *fPadHits; // List of clusters | |
ddae0931 | 107 | TObjArray *fDchambers; // List of digits |
ddae0931 | 108 | TClonesArray *fCerenkovs; // List of cerenkovs |
109 | Int_t *fNdch; // Number of digits | |
110 | Text_t *fFileName; // Filename for event mixing | |
2e5f0f7b | 111 | TObjArray *fRawClusters; // List of raw clusters |
112 | TObjArray *fRecHits; // List of rec. hits | |
113 | Int_t *fNrawch; // Number of raw clusters | |
114 | Int_t *fNrechits; // Number of rec hits | |
ddae0931 | 115 | // |
ddae0931 | 116 | protected: |
117 | ||
118 | ClassDef(AliRICH,1) //Hits manager for set:RICH | |
2e5f0f7b | 119 | }; |
fe4da5cc | 120 | #endif |
121 | ||
122 | ||
123 | ||
ddae0931 | 124 | |
125 | ||
126 | ||
127 | ||
128 | ||
129 | ||
130 | ||
131 | ||
132 | ||
133 | ||
134 | ||
135 |