]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSvPPRasymm.cxx
The operator[] is replaced by At() or AddAt() in case of TObjArray.
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRasymm.cxx
index 71f02a5283f376be7cc36350dfc29ae2083b503c..b84d17e0f3ac61bbb951aa9fa02a88a777dac7f1 100644 (file)
 
 /*
 $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.
 
@@ -156,7 +174,7 @@ New ITS detailed geometry to be used for the PPR
 #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"
@@ -340,7 +358,7 @@ void AliITSvPPRasymm::CreateGeometry(){
   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();
@@ -359,14 +377,14 @@ void AliITSvPPRasymm::CreateGeometry(){
          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.;
   }      
@@ -512,19 +530,19 @@ void AliITSvPPRasymm::CreateGeometry(){
      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);
@@ -560,7 +578,7 @@ void AliITSvPPRasymm::CreateGeometry(){
     
   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);
@@ -597,12 +615,12 @@ void AliITSvPPRasymm::CreateGeometry(){
      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);
@@ -2952,15 +2970,15 @@ void AliITSvPPRasymm::CreateGeometry(){
      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");
@@ -3124,8 +3142,8 @@ void AliITSvPPRasymm::CreateGeometry(){
      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");
@@ -3133,8 +3151,8 @@ void AliITSvPPRasymm::CreateGeometry(){
      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");
@@ -4016,8 +4034,8 @@ void AliITSvPPRasymm::CreateGeometry(){
   
   // --- 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 ---------------------------------- 
@@ -4514,14 +4532,14 @@ void AliITSvPPRasymm::CreateGeometry(){
   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
 
@@ -4758,7 +4776,7 @@ void AliITSvPPRasymm::InitAliITSgeom(){
 //     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;