]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RICH/AliRICH.h
Updated RICH constants.
[u/mrichter/AliRoot.git] / RICH / AliRICH.h
CommitLineData
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 26static const int NCH=7;
fe4da5cc 27
fe4da5cc 28
fe4da5cc 29
2e5f0f7b 30class AliRICHPadHit;
31class AliRICHRawCluster;
32class AliRICHRecHit;
33class AliRICHClusterFinder;
34class AliRICHDetect;
35class AliRICHChamber;
36class AliRICHCerenkov;
37class AliRICHSegmentation;
38class AliRICHResponse;
39class AliRICHEllipse;
ddae0931 40
41class 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