]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RICH/AliRICHv1.cxx
Removed all functions responsible for multiple cathode handling.
[u/mrichter/AliRoot.git] / RICH / AliRICHv1.cxx
CommitLineData
c28632f0 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/*
17 $Log$
2fc6393f 18 Revision 1.10 2000/12/20 14:08:02 jbarbosa
19 Removed dependencies on TGeant3 (thanks to F. Carminati and I. Hrivnacova)
20
5cfcdf54 21 Revision 1.9 2000/12/18 17:44:40 jbarbosa
22 Took two lines out of output.
23
f2de8657 24 Revision 1.8 2000/11/01 15:39:00 jbarbosa
25 Updated default geometry.
26
2463d46d 27 Revision 1.7 2000/10/03 21:44:09 morsch
28 Use AliSegmentation and AliHit abstract base classes.
29
a2f7eaf6 30 Revision 1.6 2000/07/10 15:28:39 fca
31 Correction of the inheritance scheme
32
452a64c6 33 Revision 1.5 2000/06/30 16:38:51 dibari
34 Removed setters.
35
64e9b5aa 36 Revision 1.4 2000/06/13 13:13:40 jbarbosa
37 Correcting previous correction...
38
bef02574 39 Revision 1.3 2000/06/13 13:06:38 jbarbosa
40 Fixed compiling error for HP (multiple declaration)
41
7f36f6bc 42 Revision 1.2 2000/06/12 15:36:16 jbarbosa
43 Cleaned up version.
44
237c933d 45 Revision 1.1 2000/06/09 15:00:31 jbarbosa
46 New full version. All parameters configurable.
47
c28632f0 48 Revision 1.9 2000/05/31 08:19:38 jbarbosa
49 Fixed bug in StepManager
50
51 Revision 1.8 2000/05/26 17:30:08 jbarbosa
52 Cerenkov angle now stored within cerenkov data structure.
53
54 Revision 1.7 2000/05/18 10:31:36 jbarbosa
55 Fixed positioning of spacers inside freon.
56 Fixed positioning of proximity gap
57 inside methane.
58 Fixed cut on neutral particles in the StepManager.
59
60 Revision 1.6 2000/04/28 11:51:58 morsch
61 Dimensions of arrays hits and Ckov_data corrected.
62
63 Revision 1.5 2000/04/19 13:28:46 morsch
64 Major changes in geometry (parametrised), materials (updated) and
65 step manager (diagnostics) (JB, AM)
66
67*/
68
69
70
71//////////////////////////////////////////////////////////
72// Manager and hits classes for set: RICH full version //
73//////////////////////////////////////////////////////////
74
75#include <TTUBE.h>
76#include <TNode.h>
77#include <TRandom.h>
237c933d 78#include <TParticle.h>
c28632f0 79
80#include "AliRICHv1.h"
237c933d 81#include "AliRICHHit.h"
a2f7eaf6 82#include "AliSegmentation.h"
64e9b5aa 83#include "AliRICHResponse.h"
84#include "AliRICHSegmentationV0.h"
85#include "AliRICHResponseV0.h"
86#include "AliRICHGeometry.h"
c28632f0 87#include "AliRun.h"
88#include "AliMC.h"
89#include "iostream.h"
90#include "AliCallf77.h"
91#include "AliConst.h"
92#include "AliPDG.h"
c28632f0 93
94ClassImp(AliRICHv1)
95
96//___________________________________________
452a64c6 97AliRICHv1::AliRICHv1()
c28632f0 98{
237c933d 99
100// Default constructor fo AliRICHvv1 (full version)
101
c28632f0 102 //fChambers = 0;
103}
104
105//___________________________________________
106AliRICHv1::AliRICHv1(const char *name, const char *title)
452a64c6 107 : AliRICH(name,title)
c28632f0 108{
c28632f0 109
237c933d 110// Full version of RICH with hits and diagnostics
111
64e9b5aa 112 // Version 0
113// Default Segmentation, no hits
114 AliRICHSegmentationV0* segmentationV0 = new AliRICHSegmentationV0;
115//
116// Segmentation parameters
117 segmentationV0->SetPadSize(0.84,0.80);
118 segmentationV0->SetDAnod(0.84/2);
119//
120// Geometry parameters
121 AliRICHGeometry* geometry = new AliRICHGeometry;
122 geometry->SetGapThickness(8);
123 geometry->SetProximityGapThickness(.4);
2463d46d 124 geometry->SetQuartzLength(133);
125 geometry->SetQuartzWidth(127.9);
64e9b5aa 126 geometry->SetQuartzThickness(.5);
2463d46d 127 geometry->SetOuterFreonLength(133);
128 geometry->SetOuterFreonWidth(41.3);
129 geometry->SetInnerFreonLength(133);
130 geometry->SetInnerFreonWidth(41.3);
131 geometry->SetFreonThickness(1.5);
64e9b5aa 132//
133// Response parameters
134 AliRICHResponseV0* responseV0 = new AliRICHResponseV0;
135 responseV0->SetSigmaIntegration(5.);
2463d46d 136 responseV0->SetChargeSlope(27.);
64e9b5aa 137 responseV0->SetChargeSpread(0.18, 0.18);
2463d46d 138 responseV0->SetMaxAdc(4096);
139 responseV0->SetAlphaFeedback(0.036);
64e9b5aa 140 responseV0->SetEIonisation(26.e-9);
141 responseV0->SetSqrtKx3(0.77459667);
142 responseV0->SetKx2(0.962);
143 responseV0->SetKx4(0.379);
144 responseV0->SetSqrtKy3(0.77459667);
145 responseV0->SetKy2(0.962);
146 responseV0->SetKy4(0.379);
147 responseV0->SetPitch(0.25);
148//
149//
150// AliRICH *RICH = (AliRICH *) gAlice->GetDetector("RICH");
151
237c933d 152 fCkovNumber=0;
153 fFreonProd=0;
64e9b5aa 154 Int_t i=0;
c28632f0 155
64e9b5aa 156 fChambers = new TObjArray(kNCH);
157 for (i=0; i<kNCH; i++) {
158
159 (*fChambers)[i] = new AliRICHChamber();
160
c28632f0 161 }
64e9b5aa 162
163 for (i=0; i<kNCH; i++) {
164 SetGeometryModel(i,geometry);
165 SetSegmentationModel(i, segmentationV0);
166 SetResponseModel(i, responseV0);
64e9b5aa 167 SetDebugLevel(0);
168 }
169
170
c28632f0 171}
172
237c933d 173void AliRICHv1::Init()
174{
175
176 printf("*********************************** RICH_INIT ***********************************\n");
177 printf("* *\n");
64e9b5aa 178 printf("* AliRICHv1 Full version started *\n");
237c933d 179 printf("* *\n");
180
181
a2f7eaf6 182 AliSegmentation* segmentation;
237c933d 183 AliRICHGeometry* geometry;
184 AliRICHResponse* response;
185
186
187 //
188 // Initialize Tracking Chambers
189 //
2fc6393f 190 for (Int_t i=0; i<kNCH; i++) {
237c933d 191 //printf ("i:%d",i);
a2f7eaf6 192 ( (AliRICHChamber*) (*fChambers)[i])->Init(i);
237c933d 193 }
194
195 //
196 // Set the chamber (sensitive region) GEANT identifier
197
198 ((AliRICHChamber*)(*fChambers)[0])->SetGid(1);
199 ((AliRICHChamber*)(*fChambers)[1])->SetGid(2);
200 ((AliRICHChamber*)(*fChambers)[2])->SetGid(3);
201 ((AliRICHChamber*)(*fChambers)[3])->SetGid(4);
202 ((AliRICHChamber*)(*fChambers)[4])->SetGid(5);
203 ((AliRICHChamber*)(*fChambers)[5])->SetGid(6);
204 ((AliRICHChamber*)(*fChambers)[6])->SetGid(7);
205
206 Float_t pos1[3]={0,471.8999,165.2599};
207 Chamber(0).SetChamberTransform(pos1[0],pos1[1],pos1[2],new TRotMatrix("rot993","rot993",90,0,70.69,90,19.30999,-90));
208
209 Float_t pos2[3]={171,470,0};
210 Chamber(1).SetChamberTransform(pos2[0],pos2[1],pos2[2],new TRotMatrix("rot994","rot994",90,-20,90,70,0,0));
211
212 Float_t pos3[3]={0,500,0};
213 Chamber(2).SetChamberTransform(pos3[0],pos3[1],pos3[2],new TRotMatrix("rot995","rot995",90,0,90,90,0,0));
214
215 Float_t pos4[3]={-171,470,0};
216 Chamber(3).SetChamberTransform(pos4[0],pos4[1],pos4[2], new TRotMatrix("rot996","rot996",90,20,90,110,0,0));
217
218 Float_t pos5[3]={161.3999,443.3999,-165.3};
219 Chamber(4).SetChamberTransform(pos5[0],pos5[1],pos5[2],new TRotMatrix("rot997","rot997",90,340,108.1999,70,18.2,70));
220
221 Float_t pos6[3]={0., 471.9, -165.3,};
222 Chamber(5).SetChamberTransform(pos6[0],pos6[1],pos6[2],new TRotMatrix("rot998","rot998",90,0,109.3099,90,19.30999,90));
223
224 Float_t pos7[3]={-161.399,443.3999,-165.3};
225 Chamber(6).SetChamberTransform(pos7[0],pos7[1],pos7[2],new TRotMatrix("rot999","rot999",90,20,108.1999,110,18.2,110));
226
227 segmentation=Chamber(0).GetSegmentationModel(0);
228 geometry=Chamber(0).GetGeometryModel();
229 response=Chamber(0).GetResponseModel();
230
231
232 printf("* Pads : %3dx%3d *\n",segmentation->Npx(),segmentation->Npy());
233 printf("* Pad size : %5.2f x%5.2f mm2 *\n",segmentation->Dpx(),segmentation->Dpy());
64e9b5aa 234 printf("* Gap Thickness : %5.1f cm *\n",geometry->GetGapThickness());
235 printf("* Radiator Width : %5.1f cm *\n",geometry->GetQuartzWidth());
236 printf("* Radiator Length : %5.1f cm *\n",geometry->GetQuartzLength());
237 printf("* Freon Thickness : %5.1f cm *\n",geometry->GetFreonThickness());
237c933d 238 printf("* Charge Slope : %5.1f ADC *\n",response->ChargeSlope());
2fc6393f 239 printf("* Feedback Prob. : %5.2f %% *\n",response->AlphaFeedback()*100);
64e9b5aa 240 printf("* Debug Level : %3d *\n",GetDebugLevel());
237c933d 241 printf("* *\n");
237c933d 242 printf("*********************************************************************************\n");
243
244}
c28632f0 245
2463d46d 246
247
248
249
250
251
252