]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - VZERO/AliVZEROv7.cxx
Restored compilation on Windows/Cygwin
[u/mrichter/AliRoot.git] / VZERO / AliVZEROv7.cxx
index 3e79dad3178af95b7e96eac8c225e290ea0a5bdf..2607de0806abaf7b7f8cc9ae17e11f5b791bf394 100644 (file)
@@ -39,6 +39,7 @@
 #include <TParticle.h>
 
 #include <TGeoManager.h>
+#include <TGeoMatrix.h>
 #include <TGeoMaterial.h>
 #include <TGeoMedium.h>
 #include <TGeoVolume.h>
 ClassImp(AliVZEROv7)
 
 //_____________________________________________________________________________
-AliVZEROv7:: AliVZEROv7():AliVZERO()
+AliVZEROv7:: AliVZEROv7():AliVZERO(),
+   fCellId(0),
+   fTrackPosition(),
+   fTrackMomentum(), 
+   fV0CHeight1(2.5), 
+   fV0CHeight2(4.4), 
+   fV0CHeight3(7.4), 
+   fV0CHeight4(12.5),
+   fV0CRMin(4.6), 
+   fV0CRBox(38.0),
+   fV0CLidThickness(0.30),
+   fV0CCellThickness(2.00),
+   fV0CBoxThickness(4.70),
+   fV0COffsetFibers(1.0),
+   fV0CLightYield(93.75),
+   fV0CLightAttenuation(0.05),
+   fV0CnMeters(15.0),
+   fV0CFibToPhot(0.3),
+   fV0AR0(4.2), 
+   fV0AR1(7.6), 
+   fV0AR2(13.8), 
+   fV0AR3(22.7),
+   fV0AR4(41.3), 
+   fV0AR5(43.3), 
+   fV0AR6(68.0),
+   fV0ASciWd(2.5), 
+   fV0APlaWd(0.5), 
+   fV0APlaAl(0.06), 
+   fV0AOctWd(0.75), 
+   fV0AFraWd(0.2),
+   fV0AOctH1(1.0), 
+   fV0AOctH2(2.0), 
+   fV0ABasHt(2.0),
+   fV0AFibRd(0.1),
+   fV0APlaEx(4.4),
+   fV0APMBWd(24.6), 
+   fV0APMBHt(22.0), 
+   fV0APMBTh(7.1), 
+   fV0APMBWdW(0.3), 
+   fV0APMBHtW(1.0),
+   fV0APMBAng(30.0), 
+   fV0APMBThW(0.3), 
+   fV0APMTR1(2.44), 
+   fV0APMTR2(2.54), 
+   fV0APMTR3(2.54),
+   fV0APMTR4(2.70), 
+   fV0APMTH(10.0), 
+   fV0APMTB(1.0),
+   fV0AnMeters(fV0AR6*0.01),
+   fV0ALightYield(93.75),
+   fV0ALightAttenuation(0.05),
+   fV0AFibToPhot(0.3),
+   fVersion(7)
 {
 // Standard default constructor 
 }
 
 //_____________________________________________________________________________
-AliVZEROv7::AliVZEROv7(const char *name, const char *title):AliVZERO(name,title)
+AliVZEROv7::AliVZEROv7(const char *name, const char *title):AliVZERO(name,title),
+   fCellId(0),
+   fTrackPosition(),
+   fTrackMomentum(), 
+   fV0CHeight1(2.5), 
+   fV0CHeight2(4.4), 
+   fV0CHeight3(7.4), 
+   fV0CHeight4(12.5),
+   fV0CRMin(4.6), 
+   fV0CRBox(38.0),
+   fV0CLidThickness(0.30),
+   fV0CCellThickness(2.00),
+   fV0CBoxThickness(4.70),
+   fV0COffsetFibers(1.0),
+   fV0CLightYield(93.75),
+   fV0CLightAttenuation(0.05),
+   fV0CnMeters(15.0),
+   fV0CFibToPhot(0.3),
+   fV0AR0(4.2), 
+   fV0AR1(7.6), 
+   fV0AR2(13.8), 
+   fV0AR3(22.7),
+   fV0AR4(41.3), 
+   fV0AR5(43.3), 
+   fV0AR6(68.0),
+   fV0ASciWd(2.5), 
+   fV0APlaWd(0.5), 
+   fV0APlaAl(0.06), 
+   fV0AOctWd(0.75), 
+   fV0AFraWd(0.2),
+   fV0AOctH1(1.0), 
+   fV0AOctH2(2.0), 
+   fV0ABasHt(2.0),
+   fV0AFibRd(0.1),
+   fV0APlaEx(4.4),
+   fV0APMBWd(24.6), 
+   fV0APMBHt(22.0), 
+   fV0APMBTh(7.1), 
+   fV0APMBWdW(0.3), 
+   fV0APMBHtW(1.0),
+   fV0APMBAng(30.0), 
+   fV0APMBThW(0.3), 
+   fV0APMTR1(2.44), 
+   fV0APMTR2(2.54), 
+   fV0APMTR3(2.54),
+   fV0APMTR4(2.70), 
+   fV0APMTH(10.0), 
+   fV0APMTB(1.0),
+   fV0AnMeters(fV0AR6*0.01),
+   fV0ALightYield(93.75),
+   fV0ALightAttenuation(0.05),
+   fV0AFibToPhot(0.3),
+   fVersion(7)
+
+
 {
 // Standard constructor for V-zero Detector  version 7
 
   AliDebug(2,"Create VZERO object ");
-  fVersion            =     7;  // version number
-
-  // V0C Parameters related to geometry: All in cm
-  fV0CHeight1         =    2.5; // height of cell 1
-  fV0CHeight2         =    4.4; // height of cell 2
-  fV0CHeight3         =    7.4; // height of cell 3
-  fV0CHeight4         =   12.5; // height of cell 4
-  fV0CRMin            =    4.6; // inner radius of box
-  fV0CRBox            =   38.0; // outer radius of box
-  fV0CLidThickness    =   0.30; // thickness of Carbon lid
-  fV0CCellThickness   =   2.00; // thickness of elementary cell
-  fV0CBoxThickness    =   4.70; // thickness of V0C Box
-  fV0COffsetFibers    =    1.0; // offset to output fibers
-  // V0C Parameters related to light output
-  fV0CLightYield         =  93.75; // Light yield in BC408 (93.75 eV per photon)
-  fV0CLightAttenuation   =   0.05; // Light attenuation in fiber (0.05 per meter)
-  fV0CnMeters            =   15.0; // Number of meters of clear fibers to PM
-  fV0CFibToPhot          =    0.3; // Attenuation at fiber-photocathode interface
-
-  // V0A Parameters related to geometry: All in cm
-  fV0AR0     =  4.2;  // Radius of hole
-  fV0AR1     =  7.6;  // Maximun radius of 1st cell
-  fV0AR2     = 13.8; // Maximun radius of 2nd cell
-  fV0AR3     = 22.7; // Maximun radius of 3rd cell
-  fV0AR4     = 41.3; // Maximun radius of 4th cell
-  fV0AR5     = 43.3; // Radius circunscrite to innermost octagon
-  fV0AR6     = 68.0; // Radius circunscrite to outtermost octagon
-  fV0ASciWd  =  2.5;  // Scintillator thickness 
-  fV0APlaWd  =  0.5;  // Plates thinckness
-  fV0APlaAl  = 0.06; // Plates AlMg3 thinckness
-  fV0AOctWd  = 0.75; // Innermost octagon thickness
-  fV0AOctH1  =  1.0;  // Height of innermost octagon
-  fV0AOctH2  =  2.0;  // Height of outtermost octagon
-  fV0AFibRd  =  0.1;  // Radius of Fiber
-  fV0AFraWd  =  0.2;  // Support Frame thickness
-  fV0APMBWd  = 24.6;  // Width of PM Box
-  fV0APMBHt  = 22.0;  // Height of PM Box
-  fV0APMBTh  =  7.1;  // Thickness of PM Box
-  fV0APMBWdW =  0.3;  // Thickness of PM Box Side1 Wall
-  fV0APMBHtW =  1.0;  // Thickness of PM Box Side2 Wall
-  fV0APMBThW =  0.3;  // Thickness of PM Box Top Wall
-  fV0APMBAng = 30.0;  // Angle between PM Box and Support
-  fV0APMTR1  = 2.44;  // PMT Glass
-  fV0APMTR2  = 2.54;  // PMT Glass
-  fV0APMTR3  = 2.54;  // PMT Cover
-  fV0APMTR4  = 2.70;  // PMT Cover
-  fV0APMTH   = 10.0;  // PMT Height
-  fV0APMTB   =  1.0;  // PMT Basis
-  fV0APlaEx  =  4.4;  // Plates Extension height
-  fV0ABasHt  =  2.0;  // Basis Height
-  // V0A Parameters related to light output
-  fV0ALightYield         =  93.75;      // Light yield in BC404
-  fV0ALightAttenuation   =   0.05;      // Light attenuation in WLS fiber, per meter
-  fV0AnMeters            = fV0AR6*0.01; // Tentative value, in meters
-  fV0AFibToPhot          =    0.3;      // Attenuation at fiber-photocathode interface
+
+//  fVersion            =     7;  // version number
+
+//   // V0C Parameters related to geometry: All in cm
+//   fV0CHeight1         =    2.5; // height of cell 1
+//   fV0CHeight2         =    4.4; // height of cell 2
+//   fV0CHeight3         =    7.4; // height of cell 3
+//   fV0CHeight4         =   12.5; // height of cell 4
+//   fV0CRMin            =    4.6; // inner radius of box
+//   fV0CRBox            =   38.0; // outer radius of box
+//   fV0CLidThickness    =   0.30; // thickness of Carbon lid
+//   fV0CCellThickness   =   2.00; // thickness of elementary cell
+//   fV0CBoxThickness    =   4.70; // thickness of V0C Box
+//   fV0COffsetFibers    =    1.0; // offset to output fibers
+//   // V0C Parameters related to light output
+//   fV0CLightYield         =  93.75; // Light yield in BC408 (93.75 eV per photon)
+//   fV0CLightAttenuation   =   0.05; // Light attenuation in fiber (0.05 per meter)
+//   fV0CnMeters            =   15.0; // Number of meters of clear fibers to PM
+//   fV0CFibToPhot          =    0.3; // Attenuation at fiber-photocathode interface
+// 
+//   // V0A Parameters related to geometry: All in cm
+//   fV0AR0     =  4.2;  // Radius of hole
+//   fV0AR1     =  7.6;  // Maximun radius of 1st cell
+//   fV0AR2     = 13.8; // Maximun radius of 2nd cell
+//   fV0AR3     = 22.7; // Maximun radius of 3rd cell
+//   fV0AR4     = 41.3; // Maximun radius of 4th cell
+//   fV0AR5     = 43.3; // Radius circunscrite to innermost octagon
+//   fV0AR6     = 68.0; // Radius circunscrite to outtermost octagon
+//   fV0ASciWd  =  2.5;  // Scintillator thickness 
+//   fV0APlaWd  =  0.5;  // Plates thinckness
+//   fV0APlaAl  = 0.06; // Plates AlMg3 thinckness
+//   fV0AOctWd  = 0.75; // Innermost octagon thickness
+//   fV0AOctH1  =  1.0;  // Height of innermost octagon
+//   fV0AOctH2  =  2.0;  // Height of outtermost octagon
+//   fV0AFibRd  =  0.1;  // Radius of Fiber
+//   fV0AFraWd  =  0.2;  // Support Frame thickness
+//   fV0APMBWd  = 24.6;  // Width of PM Box
+//   fV0APMBHt  = 22.0;  // Height of PM Box
+//   fV0APMBTh  =  7.1;  // Thickness of PM Box
+//   fV0APMBWdW =  0.3;  // Thickness of PM Box Side1 Wall
+//   fV0APMBHtW =  1.0;  // Thickness of PM Box Side2 Wall
+//   fV0APMBThW =  0.3;  // Thickness of PM Box Top Wall
+//   fV0APMBAng = 30.0;  // Angle between PM Box and Support
+//   fV0APMTR1  = 2.44;  // PMT Glass
+//   fV0APMTR2  = 2.54;  // PMT Glass
+//   fV0APMTR3  = 2.54;  // PMT Cover
+//   fV0APMTR4  = 2.70;  // PMT Cover
+//   fV0APMTH   = 10.0;  // PMT Height
+//   fV0APMTB   =  1.0;  // PMT Basis
+//   fV0APlaEx  =  4.4;  // Plates Extension height
+//   fV0ABasHt  =  2.0;  // Basis Height
+//   // V0A Parameters related to light output
+//   fV0ALightYield         =  93.75;      // Light yield in BC404
+//   fV0ALightAttenuation   =   0.05;      // Light attenuation in WLS fiber, per meter
+//   fV0AnMeters            = fV0AR6*0.01; // Tentative value, in meters
+//   fV0AFibToPhot          =    0.3;      // Attenuation at fiber-photocathode interface
 }
 //_____________________________________________________________________________
 
@@ -505,7 +613,7 @@ void AliVZEROv7::CreateGeometry()
     TGeoVolume *v0APMT2 = new TGeoVolume("V0APMT2", sV0APMT2, medV0APMAlum);
     TGeoVolume *v0APMT = new TGeoVolumeAssembly("V0APMT");
     TGeoTube *sV0APMTT = new TGeoTube("sV0APMTT", 0., fV0APMTR4, fV0APMTB/2.);
-    TGeoVolume *v0APMTT = new TGeoVolume("V0APMT1", sV0APMTT, medV0APMAlum);
+    TGeoVolume *v0APMTT = new TGeoVolume("V0APMTT", sV0APMTT, medV0APMAlum);
     v0APMT1->SetLineColor(kV0AColorPMG);
     v0APMT2->SetLineColor(kV0AColorPMA);
     v0APMTT->SetLineColor(kV0AColorPMA);
@@ -586,12 +694,34 @@ void AliVZEROv7::CreateGeometry()
     rot->RotateZ(180);
     v0LE->AddNode(v0ABasis,1,rot);
 
-  // Adding detectors to top volume
+    // Adding detectors to top volume
     TGeoVolume *vZERO = new TGeoVolumeAssembly("VZERO");
     vZERO->AddNode(v0RI,1,new TGeoTranslation(0, 0, -zdet));
-    vZERO->AddNode(v0LE,1,new TGeoTranslation(0, 0, +340));
+    // V0A position according to TB decision 13/12/2005 
+    vZERO->AddNode(v0LE,1,new TGeoTranslation(0, 0, +327.5));
     top->AddNode(vZERO,1);
 }
+
+//_____________________________________________________________________________
+void AliVZEROv7::AddAlignableVolumes() const
+{
+  //
+  // Create entries for alignable volumes associating the symbolic volume
+  // name with the corresponding volume path. Needs to be syncronized with
+  // eventual changes in the geometry.
+  // 
+  TString vpC = "/ALIC_1/VZERO_1/V0RI_1";
+  TString vpA = "/ALIC_1/VZERO_1/V0LE_1";
+  TString snC = "VZERO/V0C";
+  TString snA = "VZERO/V0A";
+  
+  if(!gGeoManager->SetAlignableEntry(snC.Data(),vpC.Data()))
+    AliFatal(Form("Alignable entry %s not created. Volume path %s not valid", snC.Data(),vpC.Data()));
+  if(!gGeoManager->SetAlignableEntry(snA.Data(),vpA.Data()))
+    AliFatal(Form("Alignable entry %s not created. Volume path %s not valid", snA.Data(),vpA.Data()));
+
+} 
+
 //_____________________________________________________________________________
 void AliVZEROv7::CreateMaterials()
 {
@@ -755,9 +885,9 @@ void AliVZEROv7::StepManager()
   static    Int_t   vol[4];
   static    Float_t hits[21];
   static    Float_t eloss, tlength;
-  static    Int_t   nPhotonsInStep;
-  static    Int_t   nPhotons; 
-  static    Int_t   numStep;
+  static    Int_t   nPhotonsInStep = 0;
+  static    Int_t   nPhotons = 0
+  static    Int_t   numStep = 0;
   Int_t     ringNumber;
   Float_t   destep, step;
   numStep += 1;