]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RICH/AliRICHv2.cxx
Added several more functions (memory management mainly).
[u/mrichter/AliRoot.git] / RICH / AliRICHv2.cxx
CommitLineData
0fad2f8d 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$
2fc6393f 18 Revision 1.5 2000/12/20 14:08:14 jbarbosa
19 Removed dependencies on TGeant3 (thanks to F. Carminati and I. Hrivnacova)
20
5cfcdf54 21 Revision 1.4 2000/12/18 17:44:49 jbarbosa
22 Took two lines out of output.
23
f2de8657 24 Revision 1.3 2000/10/03 21:44:09 morsch
25 Use AliSegmentation and AliHit abstract base classes.
26
a2f7eaf6 27 Revision 1.2 2000/07/10 15:28:39 fca
28 Correction of the inheritance scheme
29
452a64c6 30 Revision 1.1 2000/06/30 16:40:03 dibari
31 New configurale version.
32
0fad2f8d 33 Revision 1.4 2000/06/13 13:13:40 jbarbosa
34 Correcting previous correction...
35
36 Revision 1.3 2000/06/13 13:06:38 jbarbosa
37 Fixed compiling error for HP (multiple declaration)
38
39 Revision 1.2 2000/06/12 15:36:16 jbarbosa
40 Cleaned up version.
41
42 Revision 1.1 2000/06/09 15:00:31 jbarbosa
43 New full version. All parameters configurable.
44
45 Revision 1.9 2000/05/31 08:19:38 jbarbosa
46 Fixed bug in StepManager
47
48 Revision 1.8 2000/05/26 17:30:08 jbarbosa
49 Cerenkov angle now stored within cerenkov data structure.
50
51 Revision 1.7 2000/05/18 10:31:36 jbarbosa
52 Fixed positioning of spacers inside freon.
53 Fixed positioning of proximity gap
54 inside methane.
55 Fixed cut on neutral particles in the StepManager.
56
57 Revision 1.6 2000/04/28 11:51:58 morsch
58 Dimensions of arrays hits and Ckov_data corrected.
59
60 Revision 1.5 2000/04/19 13:28:46 morsch
61 Major changes in geometry (parametrised), materials (updated) and
62 step manager (diagnostics) (JB, AM)
63
64*/
65
66
67
68//////////////////////////////////////////////////////////
69// Manager and hits classes for set: RICH full version //
70//////////////////////////////////////////////////////////
71
72#include <TTUBE.h>
73#include <TNode.h>
74#include <TRandom.h>
75#include <TParticle.h>
76
77#include "AliRICHv2.h"
78#include "AliRICHHit.h"
79#include "AliRun.h"
80#include "AliMC.h"
81#include "iostream.h"
82#include "AliCallf77.h"
83#include "AliConst.h"
84#include "AliPDG.h"
0fad2f8d 85
86ClassImp(AliRICHv2)
87
88//___________________________________________
452a64c6 89AliRICHv2::AliRICHv2()
0fad2f8d 90{
91
92// Default constructor fo AliRICHvv2 (full version)
93
94 //fChambers = 0;
95}
96
97//___________________________________________
98AliRICHv2::AliRICHv2(const char *name, const char *title)
452a64c6 99 : AliRICH(name,title)
0fad2f8d 100{
101
102// Full version of RICH with hits and diagnostics, CONFIURABLE
103
104 fCkovNumber=0;
105 fFreonProd=0;
106
107 fChambers = new TObjArray(kNCH);
108 for (Int_t i=0; i<kNCH; i++) {
109
110 (*fChambers)[i] = new AliRICHChamber();
111
112 }
113}
114
115void AliRICHv2::Init()
116{
117
118 printf("*********************************** RICH_INIT ***********************************\n");
119 printf("* *\n");
120 printf("* AliRICHv2 Configurable version started *\n");
121 printf("* *\n");
122
123
a2f7eaf6 124 AliSegmentation* segmentation;
0fad2f8d 125 AliRICHGeometry* geometry;
126 AliRICHResponse* response;
127
128
129 //
130 // Initialize Tracking Chambers
131 //
2fc6393f 132 for (Int_t i=0; i<kNCH; i++) {
0fad2f8d 133 //printf ("i:%d",i);
a2f7eaf6 134 ( (AliRICHChamber*) (*fChambers)[i])->Init(i);
0fad2f8d 135 }
136
137 //
138 // Set the chamber (sensitive region) GEANT identifier
139
140 ((AliRICHChamber*)(*fChambers)[0])->SetGid(1);
141 ((AliRICHChamber*)(*fChambers)[1])->SetGid(2);
142 ((AliRICHChamber*)(*fChambers)[2])->SetGid(3);
143 ((AliRICHChamber*)(*fChambers)[3])->SetGid(4);
144 ((AliRICHChamber*)(*fChambers)[4])->SetGid(5);
145 ((AliRICHChamber*)(*fChambers)[5])->SetGid(6);
146 ((AliRICHChamber*)(*fChambers)[6])->SetGid(7);
147
148 Float_t pos1[3]={0,471.8999,165.2599};
149 Chamber(0).SetChamberTransform(pos1[0],pos1[1],pos1[2],new TRotMatrix("rot993","rot993",90,0,70.69,90,19.30999,-90));
150
151 Float_t pos2[3]={171,470,0};
152 Chamber(1).SetChamberTransform(pos2[0],pos2[1],pos2[2],new TRotMatrix("rot994","rot994",90,-20,90,70,0,0));
153
154 Float_t pos3[3]={0,500,0};
155 Chamber(2).SetChamberTransform(pos3[0],pos3[1],pos3[2],new TRotMatrix("rot995","rot995",90,0,90,90,0,0));
156
157 Float_t pos4[3]={-171,470,0};
158 Chamber(3).SetChamberTransform(pos4[0],pos4[1],pos4[2], new TRotMatrix("rot996","rot996",90,20,90,110,0,0));
159
160 Float_t pos5[3]={161.3999,443.3999,-165.3};
161 Chamber(4).SetChamberTransform(pos5[0],pos5[1],pos5[2],new TRotMatrix("rot997","rot997",90,340,108.1999,70,18.2,70));
162
163 Float_t pos6[3]={0., 471.9, -165.3,};
164 Chamber(5).SetChamberTransform(pos6[0],pos6[1],pos6[2],new TRotMatrix("rot998","rot998",90,0,109.3099,90,19.30999,90));
165
166 Float_t pos7[3]={-161.399,443.3999,-165.3};
167 Chamber(6).SetChamberTransform(pos7[0],pos7[1],pos7[2],new TRotMatrix("rot999","rot999",90,20,108.1999,110,18.2,110));
168
169 segmentation=Chamber(0).GetSegmentationModel(0);
170 geometry=Chamber(0).GetGeometryModel();
171 response=Chamber(0).GetResponseModel();
172
173
174 printf("* Pads : %3dx%3d *\n",segmentation->Npx(),segmentation->Npy());
175 printf("* Pad size : %5.2f x%5.2f mm2 *\n",segmentation->Dpx(),segmentation->Dpy());
176 printf("* Gap Thickness : %5.1f cm *\n",geometry->GetGapThickness());
177 printf("* Radiator Width : %5.1f cm *\n",geometry->GetQuartzWidth());
178 printf("* Radiator Length : %5.1f cm *\n",geometry->GetQuartzLength());
179 printf("* Freon Thickness : %5.1f cm *\n",geometry->GetFreonThickness());
180 printf("* Charge Slope : %5.1f ADC *\n",response->ChargeSlope());
2fc6393f 181 printf("* Feedback Prob. : %5.2f %% *\n",response->AlphaFeedback()*100);
0fad2f8d 182 printf("* Debug Level : %3d *\n",GetDebugLevel());
183 printf("* *\n");
0fad2f8d 184 printf("*********************************************************************************\n");
185
186}
187