]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSt2GeometryBuilder.cxx
mixing example
[u/mrichter/AliRoot.git] / MUON / AliMUONSt2GeometryBuilder.cxx
index e3d2b2b2bbd94c45d0fb8e9a2e2ead29a23d948b..de0f380c6eeab68936c732a2eea8c159fd752995 100644 (file)
  **************************************************************************/
 
 // $Id$
-//
+
+//-----------------------------------------------------------------------------
 // Class AliMUONSt2GeometryBuilder
 // -------------------------------
 // MUON Station2 coarse geometry construction class.
 // Extracted from AliMUONv1
 // Dummy version of station 2 with the right DE id (Ch. Finck)
+//-----------------------------------------------------------------------------
 
 #include <TVirtualMC.h>
 #include <TGeoMatrix.h>
+#include <TArrayI.h>
 
 #include "AliLog.h"
 
 #include "AliMUONSt2GeometryBuilder.h"
 #include "AliMUON.h"
-#include "AliMUONChamber.h"
+#include "AliMUONConstants.h"
 #include "AliMUONGeometryModule.h"
 #include "AliMUONGeometryEnvelopeStore.h"
 
+/// \cond CLASSIMP
 ClassImp(AliMUONSt2GeometryBuilder)
+/// \endcond
 
 //______________________________________________________________________________
 AliMUONSt2GeometryBuilder::AliMUONSt2GeometryBuilder(AliMUON* muon)
- : AliMUONVGeometryBuilder("st2.dat",
-                           muon->Chamber(2).GetGeometry(), 
-                          muon->Chamber(3).GetGeometry()),
+ : AliMUONVGeometryBuilder(2, 2), 
    fMUON(muon)
 {
-// Standard constructor
+/// Standard constructor
 
 }
 
@@ -50,36 +53,14 @@ AliMUONSt2GeometryBuilder::AliMUONSt2GeometryBuilder()
  : AliMUONVGeometryBuilder(),
    fMUON(0)
 {
-// Default constructor
+/// Default constructor
 }
 
 
 //______________________________________________________________________________
-AliMUONSt2GeometryBuilder::AliMUONSt2GeometryBuilder(const AliMUONSt2GeometryBuilder& rhs)
-  : AliMUONVGeometryBuilder(rhs)
+AliMUONSt2GeometryBuilder::~AliMUONSt2GeometryBuilder() 
 {
-// Protected copy constructor
-
-  AliFatal("Copy constructor is not implemented.");
-}
-
-//______________________________________________________________________________
-AliMUONSt2GeometryBuilder::~AliMUONSt2GeometryBuilder() {
-//
-}
-
-//______________________________________________________________________________
-AliMUONSt2GeometryBuilder& 
-AliMUONSt2GeometryBuilder::operator = (const AliMUONSt2GeometryBuilder& rhs) 
-{
-// Protected assignement operator
-
-  // check assignement to self
-  if (this == &rhs) return *this;
-
-  AliFatal("Assignment operator is not implemented.");
-    
-  return *this;  
+/// Destructor
 }
 
 //
@@ -89,7 +70,7 @@ AliMUONSt2GeometryBuilder::operator = (const AliMUONSt2GeometryBuilder& rhs)
 //______________________________________________________________________________
 void AliMUONSt2GeometryBuilder::CreateGeometry() 
 {
-// From AliMUONv1::CreateGeometry()
+/// From AliMUONv1::CreateGeometry()
 
 //
 //********************************************************************
@@ -117,10 +98,6 @@ void AliMUONSt2GeometryBuilder::CreateGeometry()
      Int_t irot2;
      fMUON->AliMatrix(irot2,  90.,  90., 90., 180., 0., 0.);
 
-     AliMUONChamber* iChamber = &fMUON->Chamber(2);
-     //     AliMUONChamber* iChamber1 = iChamber;
-     //     AliMUONChamber* iChamber2 = &fMUON->Chamber(3);
-     
      // Half of the total thickness of frame crosses (including DAlu)
      // for each chamber in stations 1 and 2:
      // 3% of X0 of composite material,
@@ -129,6 +106,12 @@ void AliMUONSt2GeometryBuilder::CreateGeometry()
      // DGas and DAlu not changed from standard values
      //     Double_t zfpos=-(iChamber->DGas()+dframez+iChamber->DAlu())/2;
              // The same parameters are defined in builder for station 1 
+
+     //    sensitive gas gap
+     const Float_t kDGas = 0.5;
+
+     //    3% radiation length of aluminum (X0=8.9 cm)      
+     // const Float_t kDAlu = 3.5 * 8.9 / 100.;
      
      // Mother volume
      // Outer excess and inner recess for mother volume radius
@@ -145,9 +128,9 @@ void AliMUONSt2GeometryBuilder::CreateGeometry()
 
      Float_t posx, posy, posz;
 //   Chamber Material represented by Alu sheet
-     tpar[0]= iChamber->RInner();
-     tpar[1]= iChamber->ROuter();
-     tpar[2] = (iChamber->DGas())/2;
+     tpar[0]= AliMUONConstants::Rmin(1);
+     tpar[1]= AliMUONConstants::Rmax(1);
+     tpar[2] = kDGas/2;
      tpar[3] = 0.;
      tpar[4] = 90.;
   
@@ -208,28 +191,32 @@ void AliMUONSt2GeometryBuilder::CreateGeometry()
      GetEnvelopes(3)->AddEnvelopeConstituent("S04G", "LF04", 4);
 }
 
+//______________________________________________________________________________
+void AliMUONSt2GeometryBuilder::SetVolumes()
+{
+/// Defines the volumes for the station2 chambers.
+
+  // Define chamber volumes as virtual
+  SetVolume(2, "SC03", true);
+  SetVolume(3, "SC04", true);
+}
+
 //______________________________________________________________________________
 void AliMUONSt2GeometryBuilder::SetTransformations()
 {
-// Defines the transformations for the station2 chambers.
-// ---
-
-  AliMUONChamber* iChamber1 = &fMUON->Chamber(2);
-  Double_t zpos1 = - iChamber1->Z(); 
-  iChamber1->GetGeometry()
-    ->SetTranslation(TGeoTranslation(0., 0., zpos1));
-
-  AliMUONChamber* iChamber2 = &fMUON->Chamber(3);
-  Double_t zpos2 = - iChamber2->Z(); 
-  iChamber2->GetGeometry()
-    ->SetTranslation(TGeoTranslation(0., 0., zpos2));
+/// Defines the transformations for the station2 chambers.
+
+  Double_t zpos1 = - AliMUONConstants::DefaultChamberZ(2); 
+  SetTranslation(2, TGeoTranslation(0., 0., zpos1));
+
+  Double_t zpos2 = - AliMUONConstants::DefaultChamberZ(3); 
+  SetTranslation(3, TGeoTranslation(0., 0., zpos2));
 }
 
 //______________________________________________________________________________
 void AliMUONSt2GeometryBuilder::SetSensitiveVolumes()
 {
-// Defines the sensitive volumes for station2 chambers.
-// ---
+/// Defines the sensitive volumes for station2 chambers.
 
   GetGeometry(2)->SetSensitiveVolume("S03G");
   GetGeometry(3)->SetSensitiveVolume("S04G");