ZDC geometry updated (rotation) - final version
authorcoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 3 Nov 2003 15:48:17 +0000 (15:48 +0000)
committercoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 3 Nov 2003 15:48:17 +0000 (15:48 +0000)
ZDC/AliZDCv2.cxx

index 05e84da..fa9683e 100644 (file)
@@ -127,10 +127,10 @@ AliZDCv2::AliZDCv2(const char *name, const char *title)
   fDimZP[2] = 75.;    
   fPosZN[0] = 0.;
   fPosZN[1] = 1.2;
-  fPosZN[2] = -11680.; 
+  fPosZN[2] = 11650.; 
   fPosZP[0] = -23.9;
   fPosZP[1] = 0.;
-  fPosZP[2] = -11600.; 
+  fPosZP[2] = 11650.; 
   fFibZN[0] = 0.;
   fFibZN[1] = 0.01825;
   fFibZN[2] = 50.;
@@ -141,7 +141,6 @@ AliZDCv2::AliZDCv2(const char *name, const char *title)
   // Parameters for EM calorimeter geometry
   fPosZEM[0] = 8.5;
   fPosZEM[1] = 0.;
-//  fPosZEM[2] = 830.;
   fPosZEM[2] = 735.;
   fZEMLength = 0.;
   
@@ -171,17 +170,17 @@ void AliZDCv2::CreateBeamLine()
   
   // -- Mother of the ZDCs (Vacuum PCON)
   Int_t irotM;
-  gMC->Matrix(irotM,90.,0.,90.,90.,180.,0.);   
+  gMC->Matrix(irotM,90.,180.,90.,90.,180.,0.);         
 
   zd1 = 2092.;
   
   conpar[0] = 0.;
   conpar[1] = 360.;
   conpar[2] = 2.;
-  conpar[3] = -zd1;
+  conpar[3] = zd1;
   conpar[4] = 0.;
   conpar[5] = 55.;
-  conpar[6] = -13500.;
+  conpar[6] = 13500.;
   conpar[7] = 0.;
   conpar[8] = 55.;
   gMC->Gsvolu("ZDC ", "PCON", idtmed[11], conpar, 9);
@@ -195,7 +194,7 @@ void AliZDCv2::CreateBeamLine()
   // From beginning of ZDC volumes to beginning of D1
   tubpar[2] = (5838.3-zd1)/2.;
   gMC->Gsvolu("QT01", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT01", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT01", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   //-- SECOND SECTION OF THE BEAM PIPE (from the end of D1 to the
   //           beginning of D2) 
@@ -210,7 +209,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 3.47+0.2;
   tubpar[2] = 958.5/2.;
   gMC->Gsvolu("QT02", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT02", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT02", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
 
   zd1 += 2.*tubpar[2];
   
@@ -220,7 +219,7 @@ void AliZDCv2::CreateBeamLine()
   conpar[3] = 10./2.;
   conpar[4] = 10.4/2.;
   gMC->Gsvolu("QC01", "CONE", idtmed[7], conpar, 5);
-  gMC->Gspos("QC01", 1, "ZDC ", 0., 0., -conpar[0]-zd1, 0, "ONLY");
+  gMC->Gspos("QC01", 1, "ZDC ", 0., 0., conpar[0]+zd1, 0, "ONLY");
 
   zd1 += 2.*conpar[0];
   
@@ -228,7 +227,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 10.4/2.;
   tubpar[2] = 50./2.;
   gMC->Gsvolu("QT03", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT03", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT03", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2]*2.;
   
@@ -236,7 +235,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 10.4/2.;
   tubpar[2] = 10./2.;
   gMC->Gsvolu("QT04", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT04", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT04", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -244,7 +243,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 10.4/2.;
   tubpar[2] = 3.16/2.;
   gMC->Gsvolu("QT05", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT05", 1, "ZDC ", 0., 0., -tubpar[0]-zd1, 0, "ONLY");
+  gMC->Gspos("QT05", 1, "ZDC ", 0., 0., tubpar[0]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -252,7 +251,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 10.4/2;
   tubpar[2] = 190./2.;
   gMC->Gsvolu("QT06", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT06", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT06", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -262,7 +261,7 @@ void AliZDCv2::CreateBeamLine()
   conpar[3] = 20.6/2.;
   conpar[4] = 21./2.;
   gMC->Gsvolu("QC02", "CONE", idtmed[7], conpar, 5);
-  gMC->Gspos("QC02", 1, "ZDC ", 0., 0., -conpar[0]-zd1, 0, "ONLY");
+  gMC->Gspos("QC02", 1, "ZDC ", 0., 0., conpar[0]+zd1, 0, "ONLY");
   
   zd1 += conpar[0] * 2.;
   
@@ -270,7 +269,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 21./2.;
   tubpar[2] = 450./2.;
   gMC->Gsvolu("QT07", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT07", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT07", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -280,7 +279,7 @@ void AliZDCv2::CreateBeamLine()
   conpar[3] = 25.4/2.;
   conpar[4] = 25.8/2.;
   gMC->Gsvolu("QC03", "CONE", idtmed[7], conpar, 5);
-  gMC->Gspos("QC03", 1, "ZDC ", 0., 0., -conpar[0]-zd1, 0, "ONLY");
+  gMC->Gspos("QC03", 1, "ZDC ", 0., 0., conpar[0]+zd1, 0, "ONLY");
   
   zd1 += conpar[0] * 2.;
   
@@ -288,7 +287,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 25.8/2.;
   tubpar[2] = 205.8/2.;
   gMC->Gsvolu("QT08", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT08", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT08", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -297,7 +296,7 @@ void AliZDCv2::CreateBeamLine()
   // QT09 is 10 cm longer to accomodate TDI
   tubpar[2] = 515.4/2.;
   gMC->Gsvolu("QT09", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT09", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT09", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   // --- Insert TDI (inside ZDC volume)
   
@@ -305,14 +304,14 @@ void AliZDCv2::CreateBeamLine()
   boxpar[1] = 5.6;
   boxpar[2] = 400./2.;
   gMC->Gsvolu("QTD1", "BOX ", idtmed[7], boxpar, 3);
-  gMC->Gspos("QTD1", 1, "ZDC ", 3., 10.6,  -tubpar[2]-zd1-56.3, 0, "ONLY");
-  gMC->Gspos("QTD1", 2, "ZDC ", 3., -10.6, -tubpar[2]-zd1-56.3, 0, "ONLY");
+  gMC->Gspos("QTD1", 1, "ZDC ", 3., 10.6,  tubpar[2]+zd1+56.3, 0, "ONLY");
+  gMC->Gspos("QTD1", 2, "ZDC ", 3., -10.6, tubpar[2]+zd1+56.3, 0, "ONLY");
   
   boxpar[0] = 0.2/2.;
   boxpar[1] = 5.6;
   boxpar[2] = 400./2.;
   gMC->Gsvolu("QTD2", "BOX ", idtmed[6], boxpar, 3);
-  gMC->Gspos("QTD2", 1, "ZDC ", 8.6+boxpar[0], 0., -tubpar[2]-zd1-56.3, 0, "ONLY");
+  gMC->Gspos("QTD2", 1, "ZDC ", 8.6+boxpar[0], 0., tubpar[2]+zd1+56.3, 0, "ONLY");
   
 //  tubspar[0] = 6.2;  // R = 6.2 cm----------------------------------------
 //  tubspar[1] = 6.4;
@@ -325,7 +324,7 @@ void AliZDCv2::CreateBeamLine()
   tubspar[3] = 180.-75.5;
   tubspar[4] = 180.+75.5;
   gMC->Gsvolu("QTD3", "TUBS", idtmed[6], tubspar, 5);
-  gMC->Gspos("QTD3", 1, "ZDC ", 0., 0., -tubpar[2]-zd1-56.3, 0, "ONLY");
+  gMC->Gspos("QTD3", 1, "ZDC ", 0., 0., tubpar[2]+zd1+56.3, 0, "ONLY");
 
   zd1 += tubpar[2] * 2.;
   
@@ -334,7 +333,7 @@ void AliZDCv2::CreateBeamLine()
   // QT10 is 10 cm shorter
   tubpar[2] = 690./2.;
   gMC->Gsvolu("QT10", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT10", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT10", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -342,7 +341,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 50.4/2.;
   tubpar[2] = 778.5/2.;
   gMC->Gsvolu("QT11", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT11", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT11", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -352,7 +351,7 @@ void AliZDCv2::CreateBeamLine()
   conpar[3] = 55./2.;
   conpar[4] = 55.4/2.;
   gMC->Gsvolu("QC04", "CONE", idtmed[7], conpar, 5);
-  gMC->Gspos("QC04", 1, "ZDC ", 0., 0., -conpar[0]-zd1, 0, "ONLY");
+  gMC->Gspos("QC04", 1, "ZDC ", 0., 0., conpar[0]+zd1, 0, "ONLY");
   
   zd1 += conpar[0] * 2.;
   
@@ -360,7 +359,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 55.4/2.;
   tubpar[2] = 730./2.;
   gMC->Gsvolu("QT12", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT12", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT12", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -370,7 +369,7 @@ void AliZDCv2::CreateBeamLine()
   conpar[3] = 68./2.;
   conpar[4] = 68.4/2.;
   gMC->Gsvolu("QC05", "CONE", idtmed[7], conpar, 5);
-  gMC->Gspos("QC05", 1, "ZDC ", 0., 0., -conpar[0]-zd1, 0, "ONLY");
+  gMC->Gspos("QC05", 1, "ZDC ", 0., 0., conpar[0]+zd1, 0, "ONLY");
   
   zd1 += conpar[0] * 2.;
   
@@ -378,7 +377,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 68.4/2.;
   tubpar[2] = 927.3/2.;
   gMC->Gsvolu("QT13", "TUBE", idtmed[7], tubpar, 3);
-  gMC->Gspos("QT13", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT13", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -386,7 +385,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[1] = 68.4/2.;
   tubpar[2] = 0.2/2.;
   gMC->Gsvolu("QT14", "TUBE", idtmed[8], tubpar, 3);
-  gMC->Gspos("QT14", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("QT14", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   
   zd1 += tubpar[2] * 2.;
   
@@ -423,13 +422,13 @@ void AliZDCv2::CreateBeamLine()
 
   Float_t angle = 0.143*kDegrad;
   
-  AliMatrix(im1, 90.+0.143, 0., 90., 90., 0.143, 180.);
+  AliMatrix(im1, 90.-0.143, 0., 90., 90., 0.143, 180.);
   gMC->Gspos("QT17", 1, "ZDC ", TMath::Sin(angle) * 680.8/ 2. - 9.4, 
-             0., -tubpar[2]-zd1, im1, "ONLY");
+             0., tubpar[2]+zd1, im1, "ONLY");
             
-  AliMatrix(im2, 90.-0.143, 0., 90., 90., 0.143, 0.);
+  AliMatrix(im2, 90.+0.143, 0., 90., 90., 0.143, 0.);
   gMC->Gspos("QT18", 1, "ZDC ", 9.7 - TMath::Sin(angle) * 680.8 / 2., 
-             0., -tubpar[2]-zd1, im2, "ONLY");
+             0., tubpar[2]+zd1, im2, "ONLY");
                 
   // --  END OF BEAM PIPE VOLUME DEFINITION.  
   // ----------------------------------------------------------------
@@ -458,11 +457,11 @@ void AliZDCv2::CreateBeamLine()
   tubpar[2] = 637./2.;
   gMC->Gsvolu("YMQL", "TUBE", idtmed[7], tubpar, 3);
   
-  gMC->Gspos("MQXL", 1, "ZDC ", 0., 0., -tubpar[2]-zq, 0, "ONLY");
-  gMC->Gspos("YMQL", 1, "ZDC ", 0., 0., -tubpar[2]-zq, 0, "ONLY");
+  gMC->Gspos("MQXL", 1, "ZDC ", 0., 0., tubpar[2]+zq, 0, "ONLY");
+  gMC->Gspos("YMQL", 1, "ZDC ", 0., 0., tubpar[2]+zq, 0, "ONLY");
   
-  gMC->Gspos("MQXL", 2, "ZDC ", 0., 0., -tubpar[2]-zq-2430., 0, "ONLY");
-  gMC->Gspos("YMQL", 2, "ZDC ", 0., 0., -tubpar[2]-zq-2430., 0, "ONLY");
+  gMC->Gspos("MQXL", 2, "ZDC ", 0., 0., tubpar[2]+zq+2430., 0, "ONLY");
+  gMC->Gspos("YMQL", 2, "ZDC ", 0., 0., tubpar[2]+zq+2430., 0, "ONLY");
   
   // --  MQX 
   // --  GAP (VACUUM WITH MAGNETIC FIELD) 
@@ -479,11 +478,11 @@ void AliZDCv2::CreateBeamLine()
   tubpar[2] = 550./2.;
   gMC->Gsvolu("YMQ ", "TUBE", idtmed[7], tubpar, 3);
   
-  gMC->Gspos("MQX ", 1, "ZDC ", 0., 0., -tubpar[2]-zq-908.5,  0, "ONLY");
-  gMC->Gspos("YMQ ", 1, "ZDC ", 0., 0., -tubpar[2]-zq-908.5,  0, "ONLY");
+  gMC->Gspos("MQX ", 1, "ZDC ", 0., 0., tubpar[2]+zq+908.5,  0, "ONLY");
+  gMC->Gspos("YMQ ", 1, "ZDC ", 0., 0., tubpar[2]+zq+908.5,  0, "ONLY");
   
-  gMC->Gspos("MQX ", 2, "ZDC ", 0., 0., -tubpar[2]-zq-1558.5, 0, "ONLY");
-  gMC->Gspos("YMQ ", 2, "ZDC ", 0., 0., -tubpar[2]-zq-1558.5, 0, "ONLY");
+  gMC->Gspos("MQX ", 2, "ZDC ", 0., 0., tubpar[2]+zq+1558.5, 0, "ONLY");
+  gMC->Gspos("YMQ ", 2, "ZDC ", 0., 0., tubpar[2]+zq+1558.5, 0, "ONLY");
   
   // -- SEPARATOR DIPOLE D1 
   
@@ -513,7 +512,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[2] = 945./2.;
   gMC->Gsvolu("YD1 ", "TUBE", idtmed[7], tubpar, 3);
   
-  gMC->Gspos("YD1 ", 1, "ZDC ", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
+  gMC->Gspos("YD1 ", 1, "ZDC ", 0., 0., tubpar[2]+zd1, 0, "ONLY");
   gMC->Gspos("MD1 ", 1, "YD1 ", 0., 0., 0., 0, "ONLY");
   
   // -- DIPOLE D2 
@@ -536,7 +535,7 @@ void AliZDCv2::CreateBeamLine()
   tubpar[2] = 945./2.;
   gMC->Gsvolu("YD2 ", "TUBE", idtmed[7], tubpar, 3);
   
-  gMC->Gspos("YD2 ", 1, "ZDC ", 0., 0., -tubpar[2]-zd2, 0, "ONLY");
+  gMC->Gspos("YD2 ", 1, "ZDC ", 0., 0., tubpar[2]+zd2, 0, "ONLY");
   
   gMC->Gspos("MD2 ", 1, "YD2 ", -9.4, 0., 0., 0, "ONLY");
   gMC->Gspos("MD2 ", 2, "YD2 ",  9.4, 0., 0., 0, "ONLY");
@@ -665,7 +664,7 @@ void AliZDCv2::CreateZDC()
   
 
   // --- Position the proton calorimeter in ZDC 
-  gMC->Gspos("ZPRO", 1, "ZDC ", fPosZP[0], fPosZP[1], fPosZP[2] - fDimZP[2], 0, "ONLY");
+  gMC->Gspos("ZPRO", 1, "ZDC ", fPosZP[0], fPosZP[1], fPosZP[2]-fDimZP[2], 0, "ONLY");
     
   
   // -------------------------------------------------------------------------------