Access function to material id and absorber composition added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Jan 2001 13:11:14 +0000 (13:11 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Jan 2001 13:11:14 +0000 (13:11 +0000)
Carbon changed to low-density industrial carbon: rho = 1.75 g/cm^3

STRUCT/AliABSO.cxx
STRUCT/AliABSO.h

index b7f4b140f8f738cbbd839d48d295fdac96065126..a1fd68679d837bf28dd83a85d87b0cfc50c6407c 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.10  2000/10/02 21:28:15  fca
+Removal of useless dependecies via forward declarations
+
 Revision 1.9  2000/06/11 12:32:12  morsch
 Coding rule violations corrected
 
@@ -120,6 +123,17 @@ void AliABSO::CreateMaterials()
   Float_t aniwcu[3] ={58.6934, 183.84, 63.546};
   Float_t zniwcu[3] ={28., 74., 29};
   Float_t wniwcu[3] ={0.015,0.95,0.035};
+// Poly Concrete
+//                      H     Li     F       C      Al     Si      Ca      Pb     O
+  Float_t aPolyCc[9] = {1. ,  6.941, 18.998, 12.01, 26.98, 28.086, 40.078, 207.2, 15.999};
+  Float_t zPolyCc[9] = {1. ,  3.   ,  9.   ,  6.  , 13.  , 14.   , 20.   ,  82. ,  8.   };
+  Float_t wPolyCc[9] = {4.9,  1.2  ,  1.3  ,  1.1 ,  0.15,  0.02 ,  0.06 ,   0.7,  1.1  };
+  Float_t wtot=0;
+  Int_t   i=0;
+
+  for (i=0; i<9; i++) wtot+=wPolyCc[i];
+  for (i=0; i<9; i++) wPolyCc[i]/=wtot;  
+
 //
 // Insulation powder
 //                    Si         O       Ti     Al
@@ -130,9 +144,9 @@ void AliABSO::CreateMaterials()
   Float_t epsil, stmin, tmaxfd, deemax, stemax;
   //
   //     Carbon 
-  AliMaterial(6,  "CARBON$   ", 12.01, 6., 2.265, 18.8, 49.9);
-  AliMaterial(26, "CARBON$   ", 12.01, 6., 2.265, 18.8, 49.9);
-  AliMaterial(46, "CARBON$   ", 12.01, 6., 2.265, 18.8, 49.9);
+  AliMaterial( 6, "CARBON$   ", 12.01, 6., 1.75, 24.4, 49.9);
+  AliMaterial(26, "CARBON$   ", 12.01, 6., 1.75, 24.4, 49.9);
+  AliMaterial(46, "CARBON$   ", 12.01, 6., 1.75, 24.4, 49.9);
   //
   //     Aluminum 
   AliMaterial(9,  "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
@@ -199,6 +213,10 @@ void AliABSO::CreateMaterials()
   AliMixture(14, "INSULATION$", ains, zins, 0.41, 4, wins);
   AliMixture(34, "INSULATION$", ains, zins, 0.41, 4, wins);
   AliMixture(54, "INSULATION$", ains, zins, 0.41, 4, wins);
+  // Polymere Concrete 
+  AliMixture(20, "Poly Concrete$", aPolyCc, zPolyCc, 3.53, -9, wPolyCc);
+  AliMixture(40, "Poly Concrete$", aPolyCc, zPolyCc, 3.53,  9, wPolyCc);
+  AliMixture(60, "Poly Concrete$", aPolyCc, zPolyCc, 3.53,  9, wPolyCc);
 
   //
   // **************** 
@@ -274,6 +292,11 @@ void AliABSO::CreateMaterials()
   AliMedium(19, "ST_C0           ", 19, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(39, "ST_C1           ", 39, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
   AliMedium(59, "ST_C3           ", 59, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+  //
+  // Polymer Concrete 
+  AliMedium(20, "PCc_C0           ", 20, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+  AliMedium(40, "PCc_C1           ", 40, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+  AliMedium(60, "PCc_C3           ", 60, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
 }
 
 //_____________________________________________________________________________
@@ -293,3 +316,9 @@ void AliABSO::Init()
   printf("\n");
 }
  
+Int_t  AliABSO::GetMatId(Int_t imat) 
+{
+// Get geant material number
+    Int_t kmat=(*fIdmate)[imat]; 
+    return kmat;
+}
index 20b3f1182258833a3fff333e0e76529cdf1c0b77..91a4d619e538c1659afa22a81cdccf8a7a6ba0ca 100644 (file)
  
  
 class AliABSO : public AliModule {
-public:
-  AliABSO();
-  AliABSO(const char *name, const char *title);
-  virtual      ~AliABSO() {}
-  virtual void  CreateGeometry();
-  virtual void  CreateMaterials();
-  virtual void  Init();
-  virtual Int_t IsVersion() const {return 0;}
-  virtual void  DrawModule();
-  
-  
+    
+ public:
+    AliABSO();
+    AliABSO(const char *name, const char *title);
+    virtual      ~AliABSO() {}
+    virtual void    CreateGeometry();
+    virtual void    CreateMaterials();
+    virtual void    Init();
+    virtual Int_t   IsVersion() const {return 0;}
+    virtual void    DrawModule();
+    virtual Int_t   GetMatId(Int_t imat);
+    virtual Int_t   NumberOfLayers(Int_t i) {return fNLayers[i];}
+    virtual Float_t ZPositionOfLayer(Int_t i, Int_t il) {return fZLayers[i][il];}    
+    virtual Int_t   MaterialOfLayer (Int_t i, Int_t il) {return fMLayers[i][il];}        
+ protected:
+    Int_t   fNLayers[2];        // Number of Material Layers in the tracking Region
+    Float_t fZLayers[2][15];     // z-position of layers
+    Int_t   fMLayers[2][15];     // Material type of layers
   ClassDef(AliABSO,1)  // Muon Absorber Class
 };