]> git.uio.no Git - u/mrichter/AliRoot.git/blame - START/AliSTARTv1.cxx
Added a cut on PtHard at 2.76 GeV/c (Nicole)
[u/mrichter/AliRoot.git] / START / AliSTARTv1.cxx
CommitLineData
bc46b572 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
9996ad0f 16/* $Id$ */
bc46b572 17
18/////////////////////////////////////////////////////////////////////
19// //
20// START ( T-zero) detector version 1 //
21//
22//Begin Html
23/*
24<img src="gif/AliSTARTv1Class.gif">
25*/
26//End Html
27// //
28// //
29//////////////////////////////////////////////////////////////////////
30
88cb7938 31#include <Riostream.h>
32#include <stdlib.h>
33
bc46b572 34#include <TGeometry.h>
0cc62300 35#include <TLorentzVector.h>
88cb7938 36#include <TMath.h>
37#include <TNode.h>
38#include <TTUBE.h>
39#include <TVirtualMC.h>
bc46b572 40
e4da63c2 41#include "AliLog.h"
94de3818 42#include "AliMagF.h"
88cb7938 43#include "AliRun.h"
e21b5f4a 44
bc46b572 45#include "AliSTARThit.h"
88cb7938 46#include "AliSTARTv1.h"
e21b5f4a 47#include "AliSTARTParameters.h"
48
5d12ce38 49#include "AliMC.h"
e21b5f4a 50#include "AliCDBLocal.h"
51#include "AliCDBStorage.h"
52#include "AliCDBManager.h"
53#include "AliCDBEntry.h"
bc46b572 54
55ClassImp(AliSTARTv1)
56
57//--------------------------------------------------------------------
58AliSTARTv1::AliSTARTv1(const char *name, const char *title):
59 AliSTART(name,title)
60{
61 //
62 // Standart constructor for START Detector version 0
63 //
64 fIdSens1=0;
e4da63c2 65 fIshunt = 2;
bc46b572 66}
db173afc 67//_____________________________________________________________________________
68
69AliSTARTv1::~AliSTARTv1()
70{
71 // desctructor
72}
73
bc46b572 74//-------------------------------------------------------------------------
75void AliSTARTv1::CreateGeometry()
76{
77 //
78 // Create the geometry of START Detector version 0
79 //
80 // begin Html
81 /*
82 <img src="gif/AliSTARTv0.gif">
83 */
84 //
85
86
e21b5f4a 87 Int_t *idtmed = fIdtmed->GetArray();
88
89 AliSTARTParameters* param = AliSTARTParameters::Instance();
90 param->Init();
91 Float_t zdetC = param->GetZposition(0);
92 Float_t zdetA = param->GetZposition(1);
bc46b572 93
94 Int_t is;
95 Int_t idrotm[999];
96 Float_t x,y,z;
97
304618a5 98 Float_t pstartR[18]={0., 360., 5.,
99 -76.5+0.00+69.7, 4.25, 10.,
100 -76.5+6.05+69.7, 4.5, 10.,
101 -76.5+8.05+69.7, 4.5, 10.,
102 -76.5+8.05+69.7, 5.1, 10.,
103 -62.9+0.00+69.7, 5.1, 10.};
104
e21b5f4a 105 Float_t pstart[3]={4.29, 12.5,6.95};
d65c9254 106 Float_t pinstart[3]={0.,1.6,6.5};
e4da63c2 107 Float_t ppmt[3]={0.,1.5,3.5};
a4156e5c 108 Float_t ptop[3]={0.,1.,1.0};
2303c85c 109 Float_t preg[3]={0., 1.0, 0.005}; //photcathode dobavil bogdanov
db173afc 110 Float_t ptopout[3]={1.,1.01,1.5};
bc46b572 111 Float_t pbot[3]={0.6,1.2,0.1};
112 Float_t pglass[3]={1.2,1.3,2.};
e21b5f4a 113 Float_t pcer[3]={0.9,1.1,1.35};
114 Float_t psteel[3]={0.9,1.1,0.15};
304618a5 115 Float_t psupport1[3] = {4.51,4.6,4.0};//C kozhuh vnutri
d65c9254 116 Float_t psupport2[3] = {9.4,9.5,4.0};// snaruzhi C
304618a5 117 Float_t psupport3[3] = {4.51,9.5,0.05};//kryshki C
2303c85c 118 Float_t psupport5[3] = {1.44,1.5,6.5}; // stakanchik dlai feu C
e21b5f4a 119 Float_t psupport6[3] = {0,1.4,0.04}; //kryshechka stakanchika Al
120 Float_t psupport7[3] = {1.5,1.6,0.4}; //kolechko snaruzhu stakanchika Al
db173afc 121
d65c9254 122 // Mother Volume katushka dlia krepezha vokrug truby k Absorbru
2ad713c4 123 AliMatrix(idrotm[901], 90., 0., 90., 90., 180., 0.);
d65c9254 124 Float_t ppcon[70];
125 ppcon[0] = 0;
126 ppcon[1] = 360;
304618a5 127 ppcon[2] = 13;
d65c9254 128// 1:
129 ppcon[3] = 14.1/2;
130 ppcon[4] = 4.4;
304618a5 131 ppcon[5] = 4.5;
d65c9254 132// 2
304618a5 133 ppcon[6] = ppcon[3]+1.;
d65c9254 134 ppcon[7] = 4.4;
304618a5 135 ppcon[8] = 4.5;
d65c9254 136// 3
137 ppcon[9] = ppcon[6];
138 ppcon[10] = 4.4;
304618a5 139 ppcon[11] = 5.1;
d65c9254 140
141// 4
142
143 ppcon[12] = ppcon[9]+0.1;
144 ppcon[13] = 4.4;
304618a5 145 ppcon[14] = 5.1;
d65c9254 146// 5
147
148 ppcon[15] = ppcon[12];
304618a5 149 ppcon[16] = 4.9;
150 ppcon[17] = 5.1;
d65c9254 151
152// 6
e21b5f4a 153// ppcon[18] = ppcon[15]+7.05;
154 ppcon[18] = ppcon[15]+6.9;
304618a5 155 ppcon[19] = 4.9;
156 ppcon[20] = 5.1;
d65c9254 157
158// 7
159 ppcon[21] = ppcon[18];
304618a5 160 ppcon[22] = 4.9;
161 ppcon[23] = 5.1;
162
304618a5 163/// 8
affef71b 164 ppcon[24] = ppcon[21]+0.01;
304618a5 165 ppcon[25] = 3.15;
166 ppcon[26] = 3.25;
d65c9254 167
affef71b 168/// 9
169 ppcon[27] = ppcon[24];
50063378 170 ppcon[28] = 3.15;
304618a5 171 ppcon[29] = 3.25;
affef71b 172
d65c9254 173// 10
affef71b 174 ppcon[30] = ppcon[27]+4.5;
d65c9254 175 ppcon[31] = 3.15;
304618a5 176 ppcon[32] = 3.25;
177
d65c9254 178// 11
affef71b 179 ppcon[33] = ppcon[30];
d65c9254 180 ppcon[34] = 3.15;
affef71b 181 ppcon[35] = 3.25;
304618a5 182
d65c9254 183// 12
affef71b 184 ppcon[36] = ppcon[33];
d65c9254 185 ppcon[37] = 3.15;
304618a5 186 ppcon[38] = 7.6;
187
d65c9254 188// 13
affef71b 189 ppcon[39] = ppcon[33]+0.4;
d65c9254 190 ppcon[40] = 3.15;
304618a5 191 ppcon[41] = 7.6;
192
affef71b 193// 14
194// ppcon[39] = ppcon[36];
195// ppcon[40] = 3.15;
196// ppcon[41] = 7.6;
197
e21b5f4a 198
199
304618a5 200 gMC->Gsvolu("0SUP", "PCON", idtmed[kAir], ppcon,42);
e21b5f4a 201 z=-zdetC;
2ad713c4 202 gMC->Gspos("0SUP",1,"ALIC",0.,0.,z,idrotm[901],"ONLY");
bc46b572 203
bc46b572 204 //-------------------------------------------------------------------
205 // START volume
206 //-------------------------------------------------------------------
207
bc46b572 208
304618a5 209 gMC->Gsvolu("0STR","PCON",idtmed[kAir],pstartR,18);
d65c9254 210 gMC->Gsvolu("0STL","TUBE",idtmed[kAir],pstart,3);
e21b5f4a 211 gMC->Gspos("0STR",1,"ALIC",0.,0.,-zdetC-pstart[2],idrotm[901],"ONLY");
212 gMC->Gspos("0STL",1,"ALIC",0.,0.,zdetA+pstart[2],0,"ONLY");
bc46b572 213
214//START interior
db173afc 215 gMC->Gsvolu("0INS","TUBE",idtmed[kAir],pinstart,3);
216 gMC->Gsvolu("0PMT","TUBE",idtmed[kAir],ppmt,3);
217
d65c9254 218 gMC->Gsvolu("0SU1","TUBE",idtmed[kC],psupport1,3);//C kozhuh vnutri
219 gMC->Gsvolu("0SU2","TUBE",idtmed[kC],psupport2,3);// snaruzhi C
220 gMC->Gsvolu("0SU3","TUBE",idtmed[kC],psupport3,3);//kryshka perednaiai C
221 gMC->Gsvolu("0SU4","TUBE",idtmed[kC],psupport3,3);//kryshka zadnaiai C
e4da63c2 222 // gMC->Gsvolu("0SU5","TUBE",idtmed[kAir],psupport4,3);// dyrki dlia feu v zadnej kryshke Air
d65c9254 223 gMC->Gsvolu("0SU6","TUBE",idtmed[kC],psupport5,3);// stakanchik dlai feu C
224 gMC->Gsvolu("0SU7","TUBE",idtmed[kAl],psupport6,3);//kryshechka stakanchika Al
225 gMC->Gsvolu("0SU8","TUBE",idtmed[kAl],psupport7,3);//kolechko snaruzhu stakanchika Al
db173afc 226
bc46b572 227// first ring: 12 units of Scintillator+PMT+divider
e21b5f4a 228 Float_t theta = (180 / TMath::Pi()) * TMath::ATan(6.5 / zdetC);
e4da63c2 229 Float_t angle = 2 * TMath::Pi() / 12;
d65c9254 230 Float_t phi[3];
304618a5 231
d65c9254 232 for (is=0; is<12; is++)
bc46b572 233 {
ef51244a 234
e4da63c2 235 x = 6.5 * TMath::Sin(is * angle);
236 y = 6.5 * TMath::Cos(is * angle);
d65c9254 237
60b0465d 238 phi[0] = -30 * is;
239 phi[1] = 90 - is * 30;
240 phi[2] = 90 - is * 30;
241 for (Int_t j = 0; j < 3; j++)
242 if (phi[j] < 0) phi[j] += 360;
d65c9254 243
60b0465d 244 AliMatrix (idrotm[902 + is], 90., phi[0],
245 90. + theta, phi[1],
246 theta, phi[2]);
d65c9254 247 z=-pstart[2]+pinstart[2]+0.2;
60b0465d 248 gMC->Gspos ("0INS", is + 1, "0STR", x, y, z, idrotm[902 + is], "ONLY");
249 gMC->Gspos ("0INS", is + 13, "0STL", x, y, z, 0, "ONLY");
9436d88b 250 }
60b0465d 251
bc46b572 252
60b0465d 253 x=0;
254 y=0;
e21b5f4a 255 z=-pinstart[2]+ppmt[2]+psupport6[2]*2;
60b0465d 256 gMC->Gspos("0PMT",1,"0INS",x,y,z,0,"ONLY");
60b0465d 257 // PMT
258
259 // Entry window (glass)
e4da63c2 260 gMC->Gsvolu("0TOP","TUBE",idtmed[kOpGlass],ptop,3); //glass
60b0465d 261 z=-ppmt[2]+ptop[2];
262 gMC->Gspos("0TOP",1,"0PMT",0,0,z,0,"ONLY");
db173afc 263 //metal volume to simulate reclection
264 gMC->Gsvolu("0TOO","TUBE",idtmed[kOpAir],ptopout,3); //glass
db173afc 265 gMC->Gspos("0TOO",1,"0PMT",0,0,z,0,"ONLY");
266
60b0465d 267 //Fotokatod
db173afc 268 gMC->Gsvolu ("0REG", "TUBE", idtmed[kOpGlassCathode], preg, 3);
269 z = -ppmt[2] + 2 * ptop[2] + preg[2];
270 gMC->Gspos ("0REG", 1, "0PMT", 0, 0, z, 0, "ONLY");
e21b5f4a 271 // Bottom glass
60b0465d 272 gMC->Gsvolu("0BOT","TUBE",idtmed[kGlass],pbot,3);
273 z=ppmt[2]-pbot[2];
60b0465d 274 gMC->Gspos("0BOT",1,"0PMT",0,0,z,0,"ONLY");
275 // Side cylinder glass
276 gMC->Gsvolu("0OUT","TUBE",idtmed[kGlass],pglass,3);
277 z=ppmt[2]-pglass[2];
60b0465d 278 gMC->Gspos("0OUT",1,"0PMT",0,0,z,0,"ONLY");
279 //PMT electrodes support structure
280 gMC->Gsvolu("0CER","TUBE",idtmed[kCer],pcer,3);
281 gMC->Gsvolu("0STE","TUBE",idtmed[kSteel],psteel,3);
e21b5f4a 282 z=-ppmt[2]+2*ptop[2]+0.3 + pcer[2];
283 gMC->Gspos("0CER",1,"0PMT",0,0,z,0,"ONLY");
284 z +=psteel[2]+pcer[2];
285 gMC->Gspos("0STE",1,"0PMT",0,0,z,0,"ONLY");
286
60b0465d 287 //Support left side
60b0465d 288 z=-pstart[2]+psupport1[2]+0.1;
289 gMC->Gspos("0SU1",1,"0STR",0,0,z,0,"ONLY"); //C kozhuh snaruzhi
290 gMC->Gspos("0SU2",1,"0STR",0,0,z,0,"ONLY"); //C kozhuh vnutri
291 z=-pstart[2]+psupport3[2]+0.1;
292 gMC->Gspos("0SU3",1,"0STR",0,0,z,0,"ONLY"); //peredniaia kryshka
e21b5f4a 293 z=-pstart[2]+2.*psupport1[2]-0.05;//+0.1;
e4da63c2 294 gMC->Gspos("0SU4",1,"0STR",0,0,z,0,"MANY"); //zadnaiai kryshka
60b0465d 295 gMC->Gspos("0SU6",1,"0INS",0,0,0,0,"ONLY");//C stakanchik dlia feu
296 z=-pinstart[2]+psupport6[2];
297 gMC->Gspos("0SU7",1,"0INS",0,0,z,0,"ONLY"); //Al kryshechka
298
299 z=pinstart[2]-psupport7[2];
300 gMC->Gspos("0SU8",1,"0INS",0,0,z,0,"ONLY"); //Al kolechko
301
302
303 Float_t par[3];
304 par[0]=4.4;
305 par[1]=4.5;
306 par[2]=0.5;
307 gMC->Gsvolu("0SC0","TUBE",idtmed[kC],par,3);
308 z=ppcon[3]+par[2];
309 gMC->Gspos("0SC0",1,"0SUP",0,0,z,0,"ONLY");
310 z += par[2];
311 par[0]=4.4;
312 par[1]=5.1;
313 par[2]=0.05;
314 gMC->Gsvolu("0SC1","TUBE",idtmed[kC],par,3);
315 z += par[2];
316 gMC->Gspos("0SC1",1,"0SUP",0,0,z,0,"ONLY");
317 z=z+par[2];
318 par[0]=4.9;
319 par[1]=5.0;
320 par[2]=6.9/2;
d65c9254 321 gMC->Gsvolu("0SC2","TUBE",idtmed[kC],par,3);
322 z += par[2];
323 gMC->Gspos("0SC2",1,"0SUP",0,0,z,0,"ONLY");
324 z += par[2];
db173afc 325
326 par[0]=3.15;
304618a5 327 par[1]=4.9;
328 par[2]=0.1/2;
d65c9254 329 gMC->Gsvolu("0SA1","TUBE",idtmed[kAl],par,3);
304618a5 330
d65c9254 331 z += par[2];
332 gMC->Gspos("0SA1",1,"0SUP",0,0,z,0,"ONLY");
333 z=z+par[2];
334 par[0]=3.15;
335 par[1]=3.16;
304618a5 336 par[2]=4.5/2;
d65c9254 337 gMC->Gsvolu("0SA2","TUBE",idtmed[kAl],par,3);
338 z += par[2];
339 gMC->Gspos("0SA2",1,"0SUP",0,0,z,0,"ONLY");
340 z=z+par[2];
341 par[0]=3.16; // eta chast' prikruchena k absorberu
342 par[1]=7.5;
304618a5 343 par[2]=0.2;
d65c9254 344 gMC->Gsvolu("0SA3","TUBE",idtmed[kAl],par,3);
345 z += par[2];
346 gMC->Gspos("0SA3",1,"0SUP",0,0,z,0,"ONLY");
347 par[0]=3.16; // gvozdi eta chast' prikruchena k absorberu
348 par[1]=7.5;
349 par[2]=0.01;
350 gMC->Gsvolu("0SN2","TUBE",idtmed[kSteel],par,3);
351 gMC->Gspos("0SN2",1,"0SUP",0,0,z,0,"ONLY");
db173afc 352
d65c9254 353
bc46b572 354}
355//------------------------------------------------------------------------
356void AliSTARTv1::CreateMaterials()
357{
ef51244a 358 Int_t isxfld = gAlice->Field()->Integ();
359 Float_t sxmgmx = gAlice->Field()->Max();
db173afc 360 // Float_t a,z,d,radl,absl,buf[1];
361 // Int_t nbuf;
60b0465d 362 Int_t *idtmed = fIdtmed->GetArray();
363
364// AIR
365
366 Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
367 Float_t zAir[4]={6.,7.,8.,18.};
368 Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
369 Float_t dAir = 1.20479E-3;
370
bc46b572 371// Scintillator CH
372 Float_t ascin[2]={1.01,12.01};
373 Float_t zscin[2]={1,6};
374 Float_t wscin[2]={1,1};
375 Float_t denscin=1.03;
a94466c5 376//Lucite C(CH3)CO2CH3
377 Float_t alucite[3]={1.01,12.01,15.999};
378 Float_t zlucite[3]={1,6,8};
379 Float_t wlucite[3]={8,5,2};
380 Float_t denlucite=1.16;
381 // PMT glass SiO2
bc46b572 382 Float_t aglass[2]={28.0855,15.9994};
383 Float_t zglass[2]={14.,8.};
384 Float_t wglass[2]={1.,2.};
385 Float_t dglass=2.65;
386// Ceramic 97.2% Al2O3 , 2.8% SiO2
db173afc 387 // Float_t wcer[2]={0.972,0.028};
e4da63c2 388 Float_t aCeramic[2] = { 26.981539,15.9994 };
389 Float_t zCeramic[2] = { 13.,8. };
390 Float_t wCeramic[2] = { 2.,3. };
bc46b572 391 Float_t denscer = 3.6;
392
393// Brass 80% Cu, 20% Zn
394 Float_t abrass[2] = {63.546,65.39};
395 Float_t zbrass[2] = {29,30};
396 Float_t wbrass[2] = {0.8,0.2};
397 Float_t denbrass=8.96;
398
399//Ribber C6H12S
400 Float_t aribber[3] = {12.,1.,32.};
401 Float_t zribber[3] = {6.,1.,16.};
402 Float_t wribber[3] = {6.,12.,1.};
403 Float_t denribber=0.8;
d65c9254 404// Support inside
405 Float_t asupport[2] = {12.,1.};
406 Float_t zsupport[2] = {6.,1.};
407 Float_t wsupport[2] = {1.,1.};
408 Float_t densupport=0.1;
bc46b572 409
410//*** Definition Of avaible START materials ***
4a9de4af 411 AliMaterial(0, "Steel$", 55.850,26.,7.87,1.76,999);
412 AliMaterial(1, "Vacuum$", 1.e-16,1.e-16,1.e-16,1.e16,999);
413 AliMixture(2, "Air$", aAir, zAir, dAir,4,wAir);
d65c9254 414 AliMaterial(10, "CarbonPlastic$", 12.01, 6.0, 2.26, 18.8,999);
415 AliMaterial(11, "Aliminium$", 26.98, 13.0, 2.7, 8.9,999);
bc46b572 416
e4da63c2 417 AliMixture( 3, "Ceramic $",aCeramic, zCeramic, denscer, -2, wCeramic);
bc46b572 418 AliMixture( 4, "PMT glass $",aglass,zglass,dglass,-2,wglass);
db173afc 419 /*
420 char namate[21]="";
421
bc46b572 422 gMC->Gfmate((*fIdmate)[3], namate, a, z, d, radl, absl, buf, nbuf);
db173afc 423 acer[0]=a;
424
bc46b572 425 zcer[0]=z;
426 gMC->Gfmate((*fIdmate)[4], namate, a, z, d, radl, absl, buf, nbuf);
427 acer[1]=a;
428 zcer[1]=z;
db173afc 429 AliMixture( 11, "Ceramic $", acer, zcer, denscer, 2, wcer);
430 */
431 AliMixture( 5, "Scintillator$",ascin,zscin,denscin,-2,wscin);
bc46b572 432 AliMixture( 6, "Brass $", abrass, zbrass, denbrass, 2, wbrass);
bc46b572 433 AliMixture( 7, "Ribber $",aribber,zribber,denribber,-3,wribber);
a94466c5 434 AliMixture( 8, "Lucite$",alucite,zlucite,denlucite,-3,wlucite);
d65c9254 435 AliMixture( 9, "Penoplast$",asupport,zsupport,densupport,-2,wsupport);
db173afc 436 AliMixture( 21, "PMT Optical glass $",aglass,zglass,dglass,-2,wglass);
437 AliMixture( 24, "PMT Optical glass cathode $",aglass,zglass,dglass,-2,wglass);
438 AliMixture(22, "START Opt Air$", aAir, zAir, dAir,4,wAir);
439 AliMixture(23, "START Opt Air Next$", aAir, zAir, dAir,4,wAir);
bc46b572 440
ef51244a 441 AliMedium(1, "START Air$", 2, 0, isxfld, sxmgmx, 10., .1, 1., .003, .003);
442 AliMedium(2, "Scintillator$", 5, 1, isxfld, sxmgmx, 10., .01, 1., .003, .003);
443 AliMedium(3, "Vacuum$", 1, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
db173afc 444 AliMedium(4, "Ceramic$", 3, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
d65c9254 445 AliMedium(6, "Glass$", 4, 1, isxfld, sxmgmx, 10., .01, .1, .003, .003);
ef51244a 446 AliMedium(8, "Steel$", 0, 0, isxfld, sxmgmx, 1., .001, 1., .001, .001);
447 AliMedium(9, "Ribber $", 7, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
448 AliMedium(11, "Brass $", 6, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
a94466c5 449 AliMedium(12, "Lucite$", 8, 1, isxfld, sxmgmx, 10., .01, 1., .003, .003);
d65c9254 450 AliMedium(13, "CarbonPlastic$", 10, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);
451 AliMedium(14, "PenoPlast$", 9, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);
452 AliMedium(15, "Aluminium$", 11, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);
db173afc 453 AliMedium(16, "OpticalGlass$", 21, 1, isxfld, sxmgmx, 10., .01, .1, .003, .003);
454 AliMedium(17, "START OpAir$", 22, 0, isxfld, sxmgmx, 10., .1, 1., .003, .003);
455 AliMedium(18, "START OpAirNext$", 23, 0, isxfld, sxmgmx, 10., .1, 1., .003, .003);
456 AliMedium(19, "OpticalGlassCathode$", 24, 1, isxfld, sxmgmx, 10., .01, .1, .003, .003);
457
a94466c5 458
e4da63c2 459// Definition Cherenkov parameters
460 int i;
db173afc 461 const Int_t kNbins=31;
e4da63c2 462
db173afc 463 Float_t rindexSiO2[kNbins], efficAll[kNbins], rindexAir[kNbins], absorAir[kNbins],rindexCathodeNext[kNbins], absorbCathodeNext[kNbins];
464
2303c85c 465 // quartz 20mm
db173afc 466 Float_t aAbsSiO2[kNbins]={29.0, 28.6, 28.3, 27.7, 27.3, 26.7, 26.4,
467 25.9, 25.3, 24.9, 24.5, 23.7,
468 23.2, 22.8, 22.4, 21.8, 21.3,
469 22.8, 22.1, 21.7, 21.2, 20.5,
470 19.9, 19.3, 18.7, 18.0, 17.1,
471 16.3, 15.3, 14.3, 14.3 };
472
473 Float_t aPckov[kNbins] ={3.87, 3.94, 4.02, 4.11, 4.19, 4.29, 4.38,
2303c85c 474 4.48, 4.58, 4.69, 4.81, 4.93,
475 5.05, 5.19, 5.33, 5.48, 5.63,
476 5.8, 5.97, 6.16, 6.36, 6.57,
db173afc 477 6.8, 7.04, 7.3, 7.58, 7.89,
478 8.22, 8.57, 8.97, 9.39 };
479 /*
480 Float_t effCathode[kNbins]={0.11, 0.13, 0.15, 0.16, 0.18, 0.19, 0.20,
481 0.21, 0.22, 0.23, 0.24, 0.26,
482 0.27, 0.29, 0.30, 0.29, 0.29,
483 0.28, 0.28, 0.27, 0.26, 0.25,
484 0.25, 0.23, 0.20, 0.19, 0.17,
485 0.17, 0.17, 0.2, 0.23};
486 */
487 // Float_t aAbsSiO2[kNbins]; //quartz 30mm
e4da63c2 488 for(i=0;i<kNbins;i++)
489 {
2303c85c 490 aPckov[i]=aPckov[i]*1e-9;//Photons energy bins 4 eV - 8.5 eV step 0.1 eV
db173afc 491 rindexAir[i]=0;
492 rindexSiO2[i]=1.458; //refractive index for qwarts
493 rindexCathodeNext[i]=0;
e4da63c2 494 efficAll[i]=1.;
db173afc 495
496 // aAbsSiO2[i]=28.5; //quartz 30mm
497 absorAir[i]=0.3;
498 absorbCathodeNext[i]=0;
499
e4da63c2 500 }
db173afc 501
502
503 gMC->SetCerenkov (idtmed[kOpGlass], kNbins, aPckov, aAbsSiO2, efficAll, rindexSiO2 );
504 // gMC->SetCerenkov (idtmed[kOpGlassCathode], kNbins, aPckov, aAbsSiO2, effCathode, rindexSiO2 );
505 gMC->SetCerenkov (idtmed[kOpGlassCathode], kNbins, aPckov, aAbsSiO2,efficAll , rindexSiO2 );
506 gMC->SetCerenkov (idtmed[kOpAir], kNbins, aPckov,absorAir , efficAll,rindexAir );
507 gMC->SetCerenkov (idtmed[kOpAirNext], kNbins, aPckov,absorbCathodeNext , efficAll, rindexCathodeNext);
508
4951e003 509 AliDebugClass(1,": ++++++++++++++Medium set++++++++++");
db173afc 510
511
bc46b572 512}
513//---------------------------------------------------------------------
514void AliSTARTv1::DrawDetector()
515{
516//
517// Draw a shaded view of the Forward multiplicity detector version 0
518//
519
520 //Set ALIC mother transparent
521 gMC->Gsatt("ALIC","SEEN",0);
522 //
523 //Set volumes visible
e4da63c2 524 // gMC->Gsatt("0STR","SEEN",0);
525 // gMC->Gsatt("0INS","SEEN",0);
526 // gMC->Gsatt("0PMT","SEEN",1);
527 // gMC->Gsatt("0DIV","SEEN",1);
bc46b572 528 //
d65c9254 529 gMC->Gdopt("hide","off");
bc46b572 530 gMC->Gdopt("shad","on");
531 gMC->SetClipBox(".");
532 gMC->SetClipBox("*",0,1000,-1000,1000,-1000,1000);
533 gMC->DefaultRange();
affef71b 534 gMC->Gdraw("alic",90,0,0,-35,9.5,.6,0.6);
60b0465d 535 //gMC->Gdraw("alic",0,0,0,10,9.5,.8,0.8); //other side view
bc46b572 536 gMC->Gdhead(1111,"T-Zero detector");
537 gMC->Gdopt("hide","off");
538}
539
540//-------------------------------------------------------------------
541void AliSTARTv1::Init()
542{
543// Initialises version 0 of the Forward Multiplicity Detector
544//
545//Int_t *idtmed = gAlice->Idtmed();
546 AliSTART::Init();
60b0465d 547 fIdSens1=gMC->VolId("0REG");
e4da63c2 548
549 AliDebug(1,Form("%s: *** START version 1 initialized ***\n",ClassName()));
550
bc46b572 551}
552
553//-------------------------------------------------------------------
554
555void AliSTARTv1::StepManager()
556{
557 //
558 // Called for every step in the START Detector
559 //
560 Int_t id,copy,copy1;
e4da63c2 561 static Float_t hits[6];
bc46b572 562 static Int_t vol[2];
563 TLorentzVector pos;
564
db173afc 565 // TClonesArray &lhits = *fHits;
bc46b572 566
567 if(!gMC->IsTrackAlive()) return; // particle has disappeared
db173afc 568
60b0465d 569// If particles is photon then ...
db173afc 570
571 if (gMC->TrackPid() == 50000050)
572 {
e4da63c2 573 id=gMC->CurrentVolID(copy);
574
575
576 // Check the sensetive volume
db173afc 577 if(id==fIdSens1 ) {
e4da63c2 578 if(gMC->IsTrackEntering()) {
579 gMC->CurrentVolOffID(2,copy);
580 vol[1]=copy;
581 gMC->CurrentVolOffID(3,copy1);
582 vol[0]=copy1;
e4da63c2 583 gMC->TrackPosition(pos);
584 hits[0] = pos[0];
585 hits[1] = pos[1];
586 hits[2] = pos[2];
587 if(pos[2]<0) vol[0]=2;
db173afc 588 if(pos[2]>=0) vol[0]=1;
e4da63c2 589
590 Float_t etot=gMC->Etot();
591 hits[3]=etot;
592 Int_t iPart= gMC->TrackPid();
593 Int_t partID=gMC->IdFromPDG(iPart);
594 hits[4]=partID;
e4da63c2 595 Float_t ttime=gMC->TrackTime();
db173afc 596 hits[5]=ttime*1e12;
597 AddHit(fIshunt,vol,hits);
598 // cout<< gAlice->GetMCApp()->GetCurrentTrackNumber()<<" hit added "<<endl;
e4da63c2 599 }
db173afc 600 /*
601 printf("track(%i) alive(%i) disap(%i) enter(%i) exit(%i) inside(%i) out(%i) stop(%i) new(%i) \n",
602 gAlice->GetMCApp()->GetCurrentTrackNumber(),
603 gMC->IsTrackAlive(),
604 gMC->IsTrackDisappeared(),
605 gMC->IsTrackEntering(),
606 gMC->IsTrackExiting(),
607 gMC->IsTrackInside(),
608 gMC->IsTrackOut(),
609 gMC->IsTrackStop(),
610 gMC->IsNewTrack());
611 */
612 } //sensitive
613 } //photon
bc46b572 614}
615
616
617
618
619
620
621
622