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