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