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