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