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