/*
$Log$
+Revision 1.44 2001/05/31 19:24:47 barbera
+Default values of SPD detector and chip thickness set to 200 microns as defined by the Technical Board
+
+Revision 1.43 2001/05/30 16:15:47 fca
+Correct comparison wiht AliGeant3::Class() introduced. Thanks to I.Hrivnacova
+
+Revision 1.42 2001/05/30 15:55:35 hristov
+Strings compared instead of pointers
+
+Revision 1.41 2001/05/30 14:04:31 hristov
+Dynamic cast replaced (F.Carminati)
+
+Revision 1.40 2001/05/25 15:59:59 morsch
+Overlaps corrected. (R. Barbera)
+
+Revision 1.38 2001/05/16 08:17:49 hristov
+Bug fixed in the StepManager to account for the difference in the geometry tree for the ITS pixels. This fixes both the funny distribution of pixel coordinates and the missing hits/digits/points in many sectors of the ITS pixel barrel. Also included is a patch to properly get and use the detector dimensions through out the ITS code. (B.Nilsen)
+
Revision 1.37 2001/05/10 00:12:59 nilsen
Finished fixing up the default segmentation for the PPR geometry.
#include "AliRun.h"
#include "AliMagF.h"
#include "AliConst.h"
-#include "../TGeant3/TGeant3.h"
+#include "AliGeant3.h"
#include "AliITSGeant3Geometry.h"
#include "AliITShit.h"
#include "AliITS.h"
Float_t ddet2=300.; // total detector thickness on layer 2 (micron)
Float_t dchip2=300.; // total chip thickness on layer 2 (micron)
- Float_t dbus=200.; // total bus thickness on both layers (micron)
+ Float_t dbus=300.; // total bus thickness on both layers (micron)
ddet1 = GetThicknessDet1();
ddet2 = GetThicknessDet2();
ddet2=300.;
}
- if(dchip1 < 150. || dchip1 > 300.) {
- cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [150,300] microns."
+ if(dchip1 < 100. || dchip1 > 300.) {
+ cout << "ITS - WARNING: the chip thickness for layer 1 is outside the range of [100,300] microns."
" The default value of 300 microns will be used." << endl;
dchip1=300.;
}
- if(dchip2 < 150. || dchip2 > 300.) {
- cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [150,300] microns."
+ if(dchip2 < 100. || dchip2 > 300.) {
+ cout << "ITS - WARNING: the chip thickness for layer 2 is outside the range of [100,300] microns."
" The default value of 300 microns will be used." << endl;
dchip2=300.;
}
AliMatrix(idrotm[234],90.0,71.9991,90.0,161.9991,0.0,0.0);
AliMatrix(idrotm[235],90.0,270.0,90.0,0.0,0.0,0.0);
AliMatrix(idrotm[236],90.0,180.013702,90.0,270.013702,0.0,0.0);
- AliMatrix(idrotm[237],90.0,0.0,90.0,90.0,180.0,0.0);
+ AliMatrix(idrotm[237],90.0,0.0,90.0,90.0,0.0,0.0);
AliMatrix(idrotm[238],90.0,144.0,90.0,234.0,0.0,0.0);
AliMatrix(idrotm[239],90.0,216.0,90.0,306.0,0.0,0.0);
AliMatrix(idrotm[240],90.0,288.0,90.0,18.0,0.0,0.0);
AliMatrix(idrotm[241],90.0,324.0,90.0,54.0,0.0,0.0);
AliMatrix(idrotm[242],90.0,36.0,90.0,126.0,0.0,0.0);
AliMatrix(idrotm[243],90.0,108.0,90.0,198.0,0.0,0.0);
- AliMatrix(idrotm[244],90.0,0.0,90.0,270.0,180.0,0.0);
- AliMatrix(idrotm[245],90.0,342.0,90.0,252.0,180.0,0.0);
- AliMatrix(idrotm[246],90.0,130.0,90.0,40.0,180.0,0.0);
- AliMatrix(idrotm[247],90.0,139.0,90.0,49.0,180.0,0.0);
- AliMatrix(idrotm[248],90.0,148.0,90.0,58.0,180.0,0.0);
- AliMatrix(idrotm[249],90.0,157.0,90.0,67.0,180.0,0.0);
+ AliMatrix(idrotm[244],90.0,180.0,90.0,270.0,0.0,0.0);
+ AliMatrix(idrotm[245],90.0,162.0,90.0,252.0,0.0,0.0);
+ AliMatrix(idrotm[246],90.0,310.0,90.0,40.0,0.0,0.0);
+ AliMatrix(idrotm[247],90.0,319.0,90.0,49.0,0.0,0.0);
+ AliMatrix(idrotm[248],90.0,328.0,90.0,58.0,0.0,0.0);
+ AliMatrix(idrotm[249],90.0,337.0,90.0,67.0,0.0,0.0);
AliMatrix(idrotm[1003],90.0,73.5,90.0,163.5,0.0,0.0);
AliMatrix(idrotm[1011],90.0,342.0,90.0,72.0,0.0,0.0);
AliMatrix(idrotm[1039],90.0,72.0,90.0,162.0,0.0,0.0);
if (option == 2) {
- AliMatrix(idrotm[201],90.0,0.0,90.0,90.0,180.0,0.0);
+ AliMatrix(idrotm[201],90.0,0.0,90.0,90.0,0.0,0.0);
AliMatrix(idrotm[202],90.0,90.0,90.0,0.0,0.0,0.0);
AliMatrix(idrotm[203],90.0,350.0,90.0,260.0,0.0,0.0);
AliMatrix(idrotm[204],90.0,170.0,90.0,80.0,0.0,0.0);
AliMatrix(idrotm[235],90.0,270.0,90.0,0.0,0.0,0.0);
AliMatrix(idrotm[236],90.0,180.013702,90.0,270.013702,0.0,0.0);
AliMatrix(idrotm[237],90.0,90.0,90.0,180.0,0.0,0.0);
- AliMatrix(idrotm[238],90.0,0.0,90.0,270.0,180.0,0.0);
- AliMatrix(idrotm[239],90.0,342.0,90.0,252.0,180.0,0.0);
- AliMatrix(idrotm[240],90.0,130.0,90.0,40.0,180.0,0.0);
- AliMatrix(idrotm[241],90.0,139.0,90.0,49.0,180.0,0.0);
- AliMatrix(idrotm[242],90.0,148.0,90.0,58.0,180.0,0.0);
- AliMatrix(idrotm[243],90.0,157.0,90.0,67.0,180.0,0.0);
+ AliMatrix(idrotm[238],90.0,180.0,90.0,270.0,0.0,0.0);
+ AliMatrix(idrotm[239],90.0,162.0,90.0,252.0,0.0,0.0);
+ AliMatrix(idrotm[240],90.0,310.0,90.0,40.0,0.0,0.0);
+ AliMatrix(idrotm[241],90.0,319.0,90.0,49.0,0.0,0.0);
+ AliMatrix(idrotm[242],90.0,328.0,90.0,58.0,0.0,0.0);
+ AliMatrix(idrotm[243],90.0,337.0,90.0,67.0,0.0,0.0);
AliMatrix(idrotm[244],90.0,216.0,90.0,306.0,0.0,0.0);
AliMatrix(idrotm[245],90.0,36.0,90.0,126.0,0.0,0.0);
AliMatrix(idrotm[246],90.0,108.0,90.0,198.0,0.0,0.0);
gMC->Gspos("I126",2,"I12A",-0.7799,7.2874,0.0,idrotm[217],"ONLY");
gMC->Gspos("I125",2,"I12A",-0.6315,7.0883,0.0,idrotm[216],"ONLY");
gMC->Gspos("I124",2,"I12A",-0.4965,6.8742,0.0,idrotm[215],"ONLY");
- gMC->Gspos("I103",3,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-3.536,idrotm[237],"ONLY");
- gMC->Gspos("I103",4,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-10.708,idrotm[237],"ONLY");
+ gMC->Gspos("I103",3,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-3.536,0,"ONLY");
+ gMC->Gspos("I103",4,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],-10.708,0,"ONLY");
gMC->Gspos("I103",1,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],10.708,0,"ONLY");
gMC->Gspos("I103",2,"I10A",-0.05,-di10a[1]+2.*di104[1]+di103[1],3.536,0,"ONLY");
gMC->Gspos("I105",1,"I10A",-0.05,0.01,-16.844,idrotm[237],"ONLY");
gMC->Gspos("I105",2,"I10A",-0.05,0.01,16.844,0,"ONLY");
gMC->Gspos("I104",1,"I10A",0.0,-di10a[1]+di104[1],0.0,0,"ONLY");
- gMC->Gspos("I1D3",3,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-3.536,idrotm[237],"ONLY");
- gMC->Gspos("I1D3",4,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-10.708,idrotm[237],"ONLY");
+ gMC->Gspos("I1D3",3,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-3.536,0,"ONLY");
+ gMC->Gspos("I1D3",4,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],-10.708,0,"ONLY");
gMC->Gspos("I1D3",1,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],10.708,0,"ONLY");
gMC->Gspos("I1D3",2,"I20A",-0.05,-di20a[1]+2.*di104[1]+di1d3[1],3.536,0,"ONLY");
gMC->Gspos("I105",3,"I20A",-0.05,0.01,-16.844,idrotm[237],"ONLY");
gMC->Gspos("I105",4,"I10B",-0.05,-0.01,16.844,0,"ONLY");
gMC->Gspos("I107",2,"I10B",-0.0455,-di10b[1]+di107[1],3.536,0,"ONLY");
gMC->Gspos("I107",1,"I10B",-0.0455,-di10b[1]+di107[1],10.708,0,"ONLY");
- gMC->Gspos("I107",4,"I10B",-0.0455,-di10b[1]+di107[1],-10.708,idrotm[201],"ONLY");
- gMC->Gspos("I107",3,"I10B",-0.0455,-di10b[1]+di107[1],-3.536,idrotm[201],"ONLY");
+ gMC->Gspos("I107",4,"I10B",-0.0455,-di10b[1]+di107[1],-10.708,0,"ONLY");
+ gMC->Gspos("I107",3,"I10B",-0.0455,-di10b[1]+di107[1],-3.536,0,"ONLY");
gMC->Gspos("I109",1,"I10B",-0.138,0.015,-16.844,idrotm[201],"ONLY");
gMC->Gspos("I109",2,"I10B",-0.138,0.015,16.844,0,"ONLY");
gMC->Gspos("I108",1,"I10B",-0.138,-di10b[1]+2.*di107[1]+di108[1],0.0,0,"ONLY");
gMC->Gspos("I105",2,"I20B",-0.05,-0.01,16.844,0,"ONLY");
gMC->Gspos("I1D7",2,"I20B",-0.0455,-di20b[1]+di1d7[1],3.536,0,"ONLY");
gMC->Gspos("I1D7",1,"I20B",-0.0455,-di20b[1]+di1d7[1],10.708,0,"ONLY");
- gMC->Gspos("I1D7",4,"I20B",-0.0455,-di20b[1]+di1d7[1],-10.708,idrotm[201],"ONLY");
- gMC->Gspos("I1D7",3,"I20B",-0.0455,-di20b[1]+di1d7[1],-3.536,idrotm[201],"ONLY");
+ gMC->Gspos("I1D7",4,"I20B",-0.0455,-di20b[1]+di1d7[1],-10.708,0,"ONLY");
+ gMC->Gspos("I1D7",3,"I20B",-0.0455,-di20b[1]+di1d7[1],-3.536,0,"ONLY");
gMC->Gspos("I109",3,"I20B",-0.138,0.015,-16.844,idrotm[201],"ONLY");
gMC->Gspos("I109",4,"I20B",-0.138,0.015,16.844,0,"ONLY");
gMC->Gspos("I108",2,"I20B",-0.138,-di20b[1]+2.*di1d7[1]+di108[1],0.0,0,"ONLY");
// --- Place volumes of cylinders between SPD and SDD and SDD and SSD
- gMC->Gspos("ICY1",1,"ITSD",0.0,0.0,0.,0,"ONLY");
- gMC->Gspos("ICY2",1,"ITSD",0.0,0.0,0.,0,"ONLY");
+ gMC->Gspos("ICY1",1,"IS02",0.0,0.0,0.,0,"ONLY");
+ gMC->Gspos("ICY2",1,"IS01",0.0,0.0,0.,0,"ONLY");
// --- Place volumes of SDD cone ----------------------------------
dgh[1] = 3.;
dgh[2] = 5.; // 5. comes from the fact that the volume has to be 567.6/2 cm^3
gMC->Gsvolu("ISR1", "TUBE", idtmed[284], dgh, 3);
- gMC->Gspos("ISR1", 1, "ALIC", 54.9, 11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 2, "ALIC", 54.9, -11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 3, "ALIC", -54.9, 11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 4, "ALIC", -54.9, -11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 5, "ALIC", 54.9, 11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 6, "ALIC", 54.9, -11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 7, "ALIC", -54.9, 11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 8, "ALIC", -54.9, -11., -79.5, 0, "ONLY");
+ gMC->Gspos("ISR1", 1, "ITSV", 53.4292, 10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 2, "ITSV", 53.4292, -10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 3, "ITSV", -53.4292, 10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 4, "ITSV", -53.4292, -10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 5, "ITSV", 53.4292, 10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 6, "ITSV", 53.4292, -10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 7, "ITSV", -53.4292, 10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 8, "ITSV", -53.4292, -10.7053, -79.75, 0, "ONLY");
// --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE ABSORBER
// Based on the geometry tree defined in Geant 3.21, this
// routine initilizes the Class AliITSgeom from the Geant 3.21 ITS geometry
// sturture.
- if(!(dynamic_cast<TGeant3*>(gMC))) {
+ if(gMC->IsA()!=AliGeant3::Class()) {
Error("InitAliITSgeom",
"Wrong Monte Carlo. InitAliITSgeom uses TGeant3 calls");
return;