]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RICH/AliRICHv0.cxx
Added member data and getters for padplane dimensions
[u/mrichter/AliRoot.git] / RICH / AliRICHv0.cxx
CommitLineData
4c039060 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/*
6e36c0f2 17 $Log$
5cfcdf54 18 Revision 1.17 2000/12/18 17:44:29 jbarbosa
19 Took two lines out of output.
20
f2de8657 21 Revision 1.16 2000/10/03 21:44:09 morsch
22 Use AliSegmentation and AliHit abstract base classes.
23
a2f7eaf6 24 Revision 1.15 2000/10/02 15:54:55 jbarbosa
25 New default version (15 mm freon).
26
a2db5cde 27 Revision 1.14 2000/07/10 15:28:39 fca
28 Correction of the inheritance scheme
29
452a64c6 30 Revision 1.13 2000/06/30 16:38:15 dibari
31 Test on kDebugevel
32
8fa8fc03 33 Revision 1.12 2000/06/13 13:06:28 jbarbosa
34 Fixed compiling error for HP (multiple declaration)
35
7f36f6bc 36 Revision 1.11 2000/06/12 15:35:44 jbarbosa
37 Cleaned up version.
38
237c933d 39 Revision 1.10 2000/06/09 14:59:25 jbarbosa
40 New default version. No setters needed, no hits.
41
c71fc6da 42 Revision 1.9 2000/05/31 08:19:38 jbarbosa
43 Fixed bug in StepManager
44
27d40190 45 Revision 1.8 2000/05/26 17:30:08 jbarbosa
46 Cerenkov angle now stored within cerenkov data structure.
47
b15cdb56 48 Revision 1.7 2000/05/18 10:31:36 jbarbosa
49 Fixed positioning of spacers inside freon.
50 Fixed positioning of proximity gap
51 inside methane.
52 Fixed cut on neutral particles in the StepManager.
53
6d31e556 54 Revision 1.6 2000/04/28 11:51:58 morsch
55 Dimensions of arrays hits and Ckov_data corrected.
56
8140b37e 57 Revision 1.5 2000/04/19 13:28:46 morsch
58 Major changes in geometry (parametrised), materials (updated) and
59 step manager (diagnostics) (JB, AM)
60
4c039060 61*/
62
6e36c0f2 63
64
c71fc6da 65/////////////////////////////////////////////////////////////
66// Manager and hits classes for set: RICH default version //
67/////////////////////////////////////////////////////////////
ddae0931 68
69#include <TTUBE.h>
70#include <TNode.h>
71#include <TRandom.h>
72
73#include "AliRICHv0.h"
a2f7eaf6 74#include "AliSegmentation.h"
237c933d 75#include "AliRICHResponse.h"
76#include "AliRICHSegmentationV0.h"
77#include "AliRICHResponseV0.h"
78#include "AliRICHGeometry.h"
ddae0931 79#include "AliRun.h"
80#include "AliMC.h"
81#include "iostream.h"
82#include "AliCallf77.h"
83#include "AliConst.h"
6e36c0f2 84#include "AliPDG.h"
ddae0931 85
86ClassImp(AliRICHv0)
87
88//___________________________________________
89AliRICHv0::AliRICHv0() : AliRICH()
90{
237c933d 91
92// Default constructor
93
6e36c0f2 94 //fChambers = 0;
ddae0931 95}
96
97//___________________________________________
98AliRICHv0::AliRICHv0(const char *name, const char *title)
99 : AliRICH(name,title)
100{
c71fc6da 101 //
102// Version 0
237c933d 103// Default Segmentation, no hits
104 AliRICHSegmentationV0* segmentationV0 = new AliRICHSegmentationV0;
c71fc6da 105//
106// Segmentation parameters
237c933d 107 segmentationV0->SetPadSize(0.84,0.80);
108 segmentationV0->SetDAnod(0.84/2);
c71fc6da 109//
110// Geometry parameters
237c933d 111 AliRICHGeometry* geometry = new AliRICHGeometry;
112 geometry->SetGapThickness(8);
113 geometry->SetProximityGapThickness(.4);
114 geometry->SetQuartzLength(131);
115 geometry->SetQuartzWidth(126.2);
116 geometry->SetQuartzThickness(.5);
117 geometry->SetOuterFreonLength(131);
118 geometry->SetOuterFreonWidth(40.3);
119 geometry->SetInnerFreonLength(131);
120 geometry->SetInnerFreonWidth(40.3);
a2db5cde 121 geometry->SetFreonThickness(1.5);
c71fc6da 122//
123// Response parameters
237c933d 124 AliRICHResponseV0* responseV0 = new AliRICHResponseV0;
125 responseV0->SetSigmaIntegration(5.);
a2db5cde 126 responseV0->SetChargeSlope(27.);
237c933d 127 responseV0->SetChargeSpread(0.18, 0.18);
a2db5cde 128 responseV0->SetMaxAdc(4096);
129 responseV0->SetAlphaFeedback(0.036);
237c933d 130 responseV0->SetEIonisation(26.e-9);
131 responseV0->SetSqrtKx3(0.77459667);
132 responseV0->SetKx2(0.962);
133 responseV0->SetKx4(0.379);
134 responseV0->SetSqrtKy3(0.77459667);
135 responseV0->SetKy2(0.962);
136 responseV0->SetKy4(0.379);
137 responseV0->SetPitch(0.25);
c71fc6da 138//
139//
140// AliRICH *RICH = (AliRICH *) gAlice->GetDetector("RICH");
141
237c933d 142 fCkovNumber=0;
143 fFreonProd=0;
7f36f6bc 144 Int_t i=0;
c71fc6da 145
237c933d 146 fChambers = new TObjArray(kNCH);
7f36f6bc 147 for (i=0; i<kNCH; i++) {
c71fc6da 148
149 (*fChambers)[i] = new AliRICHChamber();
150
151 }
152
7f36f6bc 153 for (i=0; i<kNCH; i++) {
237c933d 154 SetGeometryModel(i,geometry);
155 SetSegmentationModel(i, segmentationV0);
156 SetResponseModel(i, responseV0);
c71fc6da 157 SetNsec(i,1);
8fa8fc03 158 SetDebugLevel(0);
6e36c0f2 159 }
ddae0931 160}
161
162
6e36c0f2 163
ddae0931 164//___________________________________________
165
166void AliRICHv0::Init()
167{
c71fc6da 168
169 printf("*********************************** RICH_INIT ***********************************\n");
170 printf("* *\n");
171 printf("* AliRICHv0 Default version started *\n");
172 printf("* *\n");
173
174
a2f7eaf6 175 AliSegmentation* segmentation;
c71fc6da 176 AliRICHGeometry* geometry;
177 AliRICHResponse* response;
178
179
ddae0931 180 //
181 // Initialize Tracking Chambers
182 //
237c933d 183 for (Int_t i=1; i<kNCH; i++) {
6e36c0f2 184 //printf ("i:%d",i);
a2f7eaf6 185 ( (AliRICHChamber*) (*fChambers)[i])->Init(i);
6e36c0f2 186 }
ddae0931 187
188 //
189 // Set the chamber (sensitive region) GEANT identifier
190
6e36c0f2 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));
ddae0931 219
c71fc6da 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());
8fa8fc03 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());
c71fc6da 231 printf("* Charge Slope : %5.1f ADC *\n",response->ChargeSlope());
8fa8fc03 232 printf("* Feedback Prob. : %5.2f %% *\n",response->AlphaFeedback()*100);
c71fc6da 233 printf("* *\n");
c71fc6da 234 printf("*********************************************************************************\n");
235
ddae0931 236}
237