]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSvPPRcoarseasymm.cxx
Flag for xlC compiler on MacOSX
[u/mrichter/AliRoot.git] / ITS / AliITSvPPRcoarseasymm.cxx
index 0106ca389fd036699ea1f154000a848b1f446177..0224508717876c165690b1aaf6ba2dd9eb7fc811 100644 (file)
@@ -1,4 +1,4 @@
-/**************************************************************************
+ /**************************************************************************
  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  *                                                                        *
  * Author: The ALICE Off-line Project.                                    *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.22  2001/03/29 22:01:53  barbera
-New flag added to change the material for some service supports as asked by the PMD people. Some changes to the services due to the new drawings from the engineers
-
-Revision 1.21  2001/03/29 05:28:56  barbera
-Rails material changed from aluminum to carbon fiber according with the decision of the last Technical Board
-
-Revision 1.20  2001/03/28 06:40:21  barbera
-Central and services mother volumes made consistenf for detailed and coarse geometry. Switch for rails added to the coarse geometries
-
-Revision 1.19  2001/03/13 18:13:30  barbera
-Some mother volumes sligthly modified to eliminate an overlap with the absorber
-
-Revision 1.18  2001/02/19 09:44:16  barbera
-Copy no.2 of volume ICO2 re-inserted
-
-Revision 1.17  2001/02/09 00:05:31  nilsen
-Added fMajor/MinorVersion variables and made other changes to better make
-use of the new code changes in AliITSgeom related classes.
-
-Revision 1.16  2001/01/30 09:23:13  hristov
-Streamers removed (R.Brun)
-
-Revision 1.15  2001/01/17 07:41:29  barbera
-Some media parameters modified
-
-Revision 1.14  2001/01/15 13:13:53  barbera
-Some comments added
-
-Revision 1.13  2000/12/10 16:00:45  barbera
-Added last definition of special media like end-ladder boxes and cones
-
-Revision 1.12  2000/11/02 15:44:23  barbera
-Services on the opposite side w.r.t the absorber modified to make room for rails
-
-Revision 1.10  2000/10/27 17:19:50  barbera
-Position of rails w.r.t. the interaction point corrected.
-
-Revision 1.9  2000/10/27 13:31:29  barbera
-Rails between ITS and TPC added.
-
-Revision 1.8  2000/10/27 13:03:08  barbera
-Small changes in the SPD volumes and materials
-
-Revision 1.6  2000/10/16 14:45:37  barbera
-Mother volume ITSD modified to avoid some overlaps
-
-Revision 1.5  2000/10/16 13:49:15  barbera
-Services volumes slightly modified and material added following Pierluigi Barberis' information
-
-Revision 1.4  2000/10/07 15:33:07  barbera
-Small corrections to the ITSV mother volume
-
-Revision 1.3  2000/10/07 13:06:50  barbera
-Some new materials and media defined
-
-Revision 1.2  2000/10/07 10:58:15  barbera
-Mother volume ITSV corrected
-
-Revision 1.1  2000/10/06 23:09:24  barbera
-New coarse geometry (asymmetric services
-
-Revision 1.20  2000/10/02 21:28:08  fca
-Removal of useless dependecies via forward declarations
-
-Revision 1.19  2000/07/10 16:07:19  fca
-Release version of ITS code
-
-Revision 1.14.2.2  2000/05/19 10:09:21  nilsen
-fix for bug with HP and Sun unix + fix for event display in ITS-working branch
-
-Revision 1.14.2.1  2000/03/04 23:45:19  nilsen
-Fixed up the comments/documentation.
-
-Revision 1.14  1999/11/25 06:52:56  fca
-Correct value of drca
-
-Revision 1.13.2.1  1999/11/25 06:52:21  fca
-Correct value of drca
-
-Revision 1.13  1999/10/27 11:16:26  fca
-Correction of problem in geometry
-
-Revision 1.12  1999/10/22 08:25:25  fca
-remove double definition of destructors
-
-Revision 1.11  1999/10/22 08:16:49  fca
-Correct destructors, thanks to I.Hrivnacova
-
-Revision 1.10  1999/10/06 19:56:50  fca
-Add destructor
-
-Revision 1.9  1999/10/05 08:05:09  fca
-Minor corrections for uninitialised variables.
-
-Revision 1.8  1999/09/29 09:24:20  fca
-Introduction of the Copyright and cvs Log
-
-*/
+/* $Id$ */
 
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
@@ -129,28 +30,24 @@ Introduction of the Copyright and cvs Log
 // strongly encouraged to uses AliITSv5.
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
-#include <iostream.h> 
+#include <Riostream.h> 
 #include <TMath.h>
+#include <TNode.h>
+#include <TObjArray.h>
 #include <TRandom.h>
+#include <TTUBE.h>
 #include <TVector.h>
+#include <TVirtualMC.h>
 #include <TGeometry.h>
-#include <TNode.h>
-#include <TTUBE.h>
-#include <TFile.h>    // only required for Tracking function?
-#include <TCanvas.h>
-#include <TObjArray.h>
-#include <TClonesArray.h>
 
 
-#include "AliMC.h"
 #include "AliMagF.h"
 #include "AliConst.h"
-
 #include "AliITShit.h"
 #include "AliITSvPPRcoarseasymm.h"
+#include "AliMagF.h"
 #include "AliRun.h"
 
-
 ClassImp(AliITSvPPRcoarseasymm)
  
 //_____________________________________________________________________________
@@ -185,11 +82,12 @@ AliITSvPPRcoarseasymm::AliITSvPPRcoarseasymm(const char *name, const char *title
     fMinorVersion = 0;
 }
 //____________________________________________________________________________
-AliITSvPPRcoarseasymm::AliITSvPPRcoarseasymm(const AliITSvPPRcoarseasymm &source){
+AliITSvPPRcoarseasymm::AliITSvPPRcoarseasymm(const AliITSvPPRcoarseasymm &s) :
+ AliITS(s){
 ////////////////////////////////////////////////////////////////////////
 //     Copy Constructor for ITS version 6.
 ////////////////////////////////////////////////////////////////////////
-    if(&source == this) return;
+    if(&s == this) return;
     Warning("Copy Constructor","Not allowed to copy AliITSvPPRcoarseasymm");
     return;
 }
@@ -215,41 +113,41 @@ void AliITSvPPRcoarseasymm::BuildGeometry(){
 //    Geometry builder for the ITS version 6.
 ////////////////////////////////////////////////////////////////////////
     TNode *node, *top;
-    const int kColorITS=kYellow;
+    const Int_t kColorITS=kYellow;
     //
     top = gAlice->GetGeometry()->GetNode("alice");
 
-    new TTUBE("S_layer1","Layer1 of ITS","void",3.95,3.95+0.05475,12.25);
+    new TTUBE("S_layer1","Layer1 of ITS","void",3.8095,3.8095+1.03*9.36/100.,14.35);
     top->cd();
     node = new TNode("Layer1","Layer1","S_layer1",0,0,0,"");
     node->SetLineColor(kColorITS);
     fNodes->Add(node);
 
-    new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+0.05475,16.3);
+    new TTUBE("S_layer2","Layer2 of ITS","void",7.,7.+1.03*9.36/100.,14.35);
     top->cd();
     node = new TNode("Layer2","Layer2","S_layer2",0,0,0,"");
     node->SetLineColor(kColorITS);
     fNodes->Add(node);
 
-    new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.05288,21.1);
+    new TTUBE("S_layer3","Layer3 of ITS","void",15.,15.+0.94*9.36/100.,25.1);
     top->cd();
     node = new TNode("Layer3","Layer3","S_layer3",0,0,0,"");
     node->SetLineColor(kColorITS);
     fNodes->Add(node);
 
-    new TTUBE("S_layer4","Layer4 of ITS","void",24,24+0.05288,29.6);
+    new TTUBE("S_layer4","Layer4 of ITS","void",24.1,24.1+0.95*9.36/100.,32.1);
     top->cd();
     node = new TNode("Layer4","Layer4","S_layer4",0,0,0,"");
     node->SetLineColor(kColorITS);
     fNodes->Add(node);
 
-    new TTUBE("S_layer5","Layer5 of ITS","void",40,40+0.05382,45.1);
+    new TTUBE("S_layer5","Layer5 of ITS","void",38.5,38.5+0.91*9.36/100.,49.405);
     top->cd();
     node = new TNode("Layer5","Layer5","S_layer5",0,0,0,"");
     node->SetLineColor(kColorITS);
     fNodes->Add(node);
 
-    new TTUBE("S_layer6","Layer6 of ITS","void",45,45+0.05382,50.4);
+    new TTUBE("S_layer6","Layer6 of ITS","void",43.5765,43.5765+0.87*9.36/100.,55.27);
     top->cd();
     node = new TNode("Layer6","Layer6","S_layer6",0,0,0,"");
     node->SetLineColor(kColorITS);
@@ -262,7 +160,7 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
 ////////////////////////////////////////////////////////////////////////
   
   //INNER RADII OF THE SILICON LAYERS 
-  Float_t rl[6]    = { 3.8095,7.,15.,24.,38.1,43.5765 };   
+  Float_t rl[6]    = { 3.8095,7.,15.,24.,38.5,43.5765 };   
   //THICKNESSES OF LAYERS (in % radiation length)
   Float_t drl[6]   = { 1.03,1.03,0.94,0.95,0.91,0.87 };   
   //HALF LENGTHS OF LAYERS  
@@ -285,29 +183,29 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
   rails = GetRails();
   
   if(rails != 0 && rails != 1) {
-     cout << "WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)." 
+     cout << "ITS - WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)." 
      " The default value of 1 (rails in) will be used." << endl;
   }  
   
   if (rails == 0 ) {
-     cout << "Rails are out." << endl; 
+     cout << "ITS: Rails are out." << endl; 
   } else {
-     cout << "Rails are in." << endl;
+     cout << "ITS: Rails are in." << endl;
   }      
   
   suppmat = GetSupportMaterial();   
   
   if (suppmat != 0 && suppmat != 1 && suppmat != 2) {
-     cout << "WARNING: the flag for the material of services supports is not set neither to 0 (copper) nor to 1 (aluminum) nor to 2 (carbon)." 
+     cout << "ITS - WARNING: the flag for the material of services supports is not set neither to 0 (copper) nor to 1 (aluminum) nor to 2 (carbon)." 
      " The default value of 0 (copper) will be used." << endl;
   }  
   
   if (suppmat == 0) {
-     cout << "The material of the services supports is copper." << endl; 
+     cout << "ITS: The material of the services supports is copper." << endl; 
   } else if (suppmat == 1){
-     cout << "The material of the services supports is aluminum." << endl;
+     cout << "ITS: The material of the services supports is aluminum." << endl;
   } else {
-     cout << "The material of the services supports is carbon." << endl;
+     cout << "ITS: The material of the services supports is carbon." << endl;
   }      
       
 
@@ -320,7 +218,7 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
     
   //     FIELD CAGE HALF LENGTH 
   
-  rlim  = 56.;
+  rlim  = 50.;
   zmax  = 74.;
   ztpc = 284.;
   
@@ -338,37 +236,37 @@ void AliITSvPPRcoarseasymm::CreateGeometry(){
   dgh[8] = 85.;
   dgh[9] = -ztpc;
   dgh[10] = 46;  
-  dgh[11] = rlim+0.1;
+  dgh[11] = rlim+6;
   dgh[12] = -97.5;
   dgh[13] = 46;  
-  dgh[14] = rlim+0.1;
+  dgh[14] = rlim+6;
   dgh[15] = -zmax;
   dgh[16] = 46;  
-  dgh[17] = rlim+0.1;
+  dgh[17] = rlim+6;
   dgh[18] = -48;   
   dgh[19] = 6;
-  dgh[20] = rlim+0.1;
+  dgh[20] = rlim+6;
   dgh[21] = -28.6;   
   dgh[22] = 6;
-  dgh[23] = rlim+0.1;    
+  dgh[23] = rlim+6;    
   dgh[24] = -27.6;  
   dgh[25] = 3.295;
-  dgh[26] = rlim+0.1
+  dgh[26] = rlim+6
   dgh[27] = 27.6;   
   dgh[28] = 3.295;
-  dgh[29] = rlim+0.1;
+  dgh[29] = rlim+6;
   dgh[30] = 28.6;   
   dgh[31] = 6;
-  dgh[32] = rlim+0.1;
+  dgh[32] = rlim+6;
   dgh[33] = 48;   
   dgh[34] = 6;
-  dgh[35] = rlim+0.1;  
+  dgh[35] = rlim+6;  
   dgh[36] = zmax;
   dgh[37] = 46;
-  dgh[38] = rlim+0.1;
+  dgh[38] = rlim+6;
   dgh[39] = 97.5;
   dgh[40] = 46;  
-  dgh[41] = rlim+0.1;
+  dgh[41] = rlim+6;
   dgh[42] = ztpc;
   dgh[43] = 62;     
   dgh[44] = 62+4.;  
@@ -942,14 +840,14 @@ void AliITSvPPRcoarseasymm::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[286], 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
 
@@ -1348,7 +1246,7 @@ void AliITSvPPRcoarseasymm::StepManager(){
     hits[5]=momentum[2];
     hits[6]=gMC->Edep();
     hits[7]=gMC->TrackTime();
-//    new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->CurrentTrack(),vol,hits);
+//    new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->GetMCApp()->GetCurrentTrackNumber(),vol,hits);
 //
 // no hits for this coarse asymmetric version.
 //