LCOV - code coverage report
Current view: top level - MUON/MUONsim - AliMUONCommonGeometryBuilder.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 92 92 100.0 %
Date: 2016-06-14 17:26:59 Functions: 9 9 100.0 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       3             :  *      SigmaEffect_thetadegrees                                                                  *
       4             :  * Author: The ALICE Off-line Project.                                    *
       5             :  * Contributors are mentioned in the code where appropriate.              *
       6             :  *                                                                        *
       7             :  * Permission to use, copy, modify and distribute this software and its   *
       8             :  * documentation strictly for non-commercial purposes is hereby granted   *
       9             :  * without fee, provided that the above copyright notice appears in all   *
      10             :  * copies and that both the copyright notice and this permission notice   *
      11             :  * appear in the supporting documentation. The authors make no claims     *
      12             :  * about the suitability of this software for any purpeateose. It is      *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : 
      16             : // $Id$
      17             : 
      18             : //-----------------------------------------------------------------------------
      19             : // Class AliMUONCommonGeometryBuilder
      20             : // ----------------------------------
      21             : // Geometry construction common to all stations
      22             : // (material definition).
      23             : // separated from AliMUONGeometryBuilder
      24             : //-----------------------------------------------------------------------------
      25             : 
      26             : 
      27             : #include <TGeoGlobalMagField.h>
      28             : #include <TVirtualMC.h>
      29             : 
      30             : #include "AliMUONCommonGeometryBuilder.h"
      31             : #include "AliMUON.h"
      32             : #include "AliMagF.h"
      33             : #include "AliRun.h"
      34             : #include "AliLog.h"
      35             : 
      36             : /// \cond CLASSIMP
      37          16 : ClassImp(AliMUONCommonGeometryBuilder)
      38             : /// \endcond
      39             :  
      40             : //______________________________________________________________________________//___________________________________________
      41             : AliMUONCommonGeometryBuilder::AliMUONCommonGeometryBuilder(AliMUON* muon)
      42           1 :   : AliMUONVGeometryBuilder(-1, 0),
      43           1 :     fMUON(muon)
      44           5 : {
      45             : /// Standard constructor
      46           2 : }
      47             : 
      48             : //______________________________________________________________________________//___________________________________________
      49             : AliMUONCommonGeometryBuilder::AliMUONCommonGeometryBuilder() 
      50          12 :   : AliMUONVGeometryBuilder(),
      51          12 :     fMUON(0)
      52          60 : {
      53             : /// Default constructor
      54          24 : } 
      55             : 
      56             : //______________________________________________________________________________
      57             : AliMUONCommonGeometryBuilder::~AliMUONCommonGeometryBuilder()
      58          52 : {
      59             : /// Destructor
      60          52 : }
      61             : 
      62             : //
      63             : // public functions
      64             : //
      65             : 
      66             : //_____________________________________________________________________________
      67             : void AliMUONCommonGeometryBuilder::CreateMaterials()
      68             : {
      69             : /// Definition of common materials
      70             : 
      71             :   //
      72             :   //     Ar-CO2 gas (80%+20%)
      73           2 :   Float_t ag1[3]   = { 39.95,12.01,16. };
      74           1 :   Float_t zg1[3]   = { 18.,6.,8. };
      75           1 :   Float_t wg1[3]   = { .8,.0667,.13333 };
      76             :   Float_t dg1      = .001821;
      77             :   //
      78             :   //     Ar-buthane-freon gas -- trigger chambers 
      79           1 :   Float_t atr1[4]  = { 39.95,12.01,1.01,19. };
      80           1 :   Float_t ztr1[4]  = { 18.,6.,1.,9. };
      81           1 :   Float_t wtr1[4]  = { .56,.1262857,.2857143,.028 };
      82             :   Float_t dtr1     = .002599;
      83             :   //
      84             :   //     Ar-CO2 gas 
      85           1 :   Float_t agas[3]  = { 39.95,12.01,16. };
      86           1 :   Float_t zgas[3]  = { 18.,6.,8. };
      87           1 :   Float_t wgas[3]  = { .74,.086684,.173316 };
      88             :   Float_t dgas     = .0018327;
      89             :   //
      90             :   //     Ar-Isobutane gas (80%+20%) -- tracking 
      91           1 :   Float_t ag[3]    = { 39.95,12.01,1.01 };
      92           1 :   Float_t zg[3]    = { 18.,6.,1. };
      93           1 :   Float_t wg[3]    = { .8,.057,.143 };
      94             :   Float_t dg       = .0019596;
      95             :   //
      96             :   //     Ar-Isobutane-Forane-SF6 gas (49%+7%+40%+4%) -- trigger 
      97           1 :   Float_t atrig[5] = { 39.95,12.01,1.01,19.,32.066 };
      98           1 :   Float_t ztrig[5] = { 18.,6.,1.,9.,16. };
      99           1 :   Float_t wtrig[5] = { .49,1.08,1.5,1.84,0.04 };
     100             :   Float_t dtrig    = .0031463;
     101             :   //
     102             :   //     bakelite: C6 H6 O
     103           1 :   Float_t abak[3] = {12.01 , 1.01 , 16.};
     104           1 :   Float_t zbak[3] = {6.     , 1.   , 8.};
     105           1 :   Float_t wbak[3] = {6.     , 6.   , 1.}; 
     106             :   Float_t dbak = 1.4;
     107             : 
     108           1 :   Int_t iSXFLD   = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->PrecInteg();
     109           1 :   Float_t sXMGMX = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
     110             :   //
     111             :   // --- Define the various materials for GEANT --- 
     112           1 :   fMUON->AliMaterial(9, "ALUMINIUM0$", 26.98, 13., 2.7, 8.9, 37.2);
     113           1 :   fMUON->AliMaterial(10, "ALUMINIUM1$", 26.98, 13., 2.7, 8.9, 37.2);
     114           1 :   fMUON->AliMaterial(49, "Kapton$", 12.01,6,1.42,-28.6,999);          // from DPG
     115           1 :   fMUON->AliMaterial(42, "Copper$", 63.546,29.,8.96,-1.43,9.6);
     116             : 
     117             :   //fMUON->AliMaterial(43, "FR4$", 17.749, 8.875, 1.7, -19.4, 999.);    // from DPG
     118           1 :   Float_t aFR[4] = {16.0, 28.09, 12.011, 1.00794} ;
     119           1 :   Float_t zFR[4] = {8.0, 14.0, 6.0, 1.0} ;
     120           1 :   Float_t wFR[4] = {292.0, 68.0, 462.0, 736.0} ;
     121             :   Float_t dFR = 1.8 ; 
     122           1 :   fMUON->AliMixture(43, "FR4$", aFR, zFR, dFR, -4, wFR);
     123             : 
     124           1 :   fMUON->AliMaterial(44, "FrameEpoxy",12.24,6.0,1.85,-19.14,999);// use 16.75cm
     125             : 
     126             : 
     127             :   // Air
     128           1 :   Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
     129           1 :   Float_t zAir[4]={6.,7.,8.,18.};
     130           1 :   Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
     131             :   Float_t dAir = 1.20479E-3;
     132           1 :   fMUON->AliMixture(15, "AIR$      ", aAir,  zAir, dAir,4, wAir);
     133             :   //    fMUON->AliMaterial(15, "AIR$      ", 14.61, 7.3, .001205, 30423.24, 67500);
     134           1 :   fMUON->AliMixture(19, "Bakelite$", abak, zbak, dbak, -3, wbak);
     135           1 :   fMUON->AliMixture(20, "ArC4H10 GAS$", ag, zg, dg, 3, wg);
     136           1 :   fMUON->AliMixture(21, "TRIG GAS$", atrig, ztrig, dtrig, -5, wtrig);
     137           1 :   fMUON->AliMixture(22, "ArCO2 80%$", ag1, zg1, dg1, 3, wg1);
     138           1 :   fMUON->AliMixture(23, "Ar-freon $", atr1, ztr1, dtr1, 4, wtr1);
     139           1 :   fMUON->AliMixture(24, "ArCO2 GAS$", agas, zgas, dgas, 3, wgas);
     140             : 
     141             :   // materials for slat: 
     142             :   //     Sensitive area: gas (already defined) 
     143             :   //     PCB: copper 
     144             :   //     insulating material: vetronite -> replacing by G10 Ch. Finck
     145             :   //     spacer: noryl Ch. Finck
     146             :   //     panel sandwich: carbon, nomex, carbon replacing rohacell by nomex Ch. Finck
     147             : 
     148             :   // G10: SiO2(60%) + C8H14O4(40%)
     149           1 :   Float_t aglass[5] = {12.01, 28.09, 16., 1.01,  16.};
     150           1 :   Float_t zglass[5] = { 6.,   14.,    8., 1.,    8.};
     151           1 :   Float_t wglass[5] = { 0.22, 0.28, 0.32, 0.03,  0.15};
     152             :   Float_t dglass    = 1.7;
     153             : 
     154             :   // rohacell: C9 H13 N1 O2
     155           1 :   Float_t arohac[4] = {12.01,  1.01, 14.010, 16.};
     156           1 :   Float_t zrohac[4] = { 6.,    1.,    7.,     8.};
     157           1 :   Float_t wrohac[4] = { 9.,   13.,    1.,     2.};
     158             :   Float_t drohac    = 0.03;
     159             : 
     160             :   // Nomex: C22 H10 N2 O5
     161           1 :   Float_t aNomex[4] = {12.01,  1.01, 14.010, 16.};
     162           1 :   Float_t zNomex[4] = { 6.,    1.,    7.,     8.};
     163           1 :   Float_t wNomex[4] = { 22.,   10.,   2.,     5.};
     164             :   Float_t dNomex    = 0.024; //honey comb
     165             :   Float_t dNomex2   = 1.43;  //bulk material
     166             : 
     167             : 
     168             :   // Noryl: C8 H8 O polyphenylene oxyde (di-methyl not sure)
     169           1 :   Float_t aNoryl[3] = {12.01,  1.01, 16.};
     170           1 :   Float_t zNoryl[3] = { 6.,    1.,    8.};
     171           1 :   Float_t wNoryl[3] = { 8.,    8.,    1.};
     172             :   Float_t dNoryl    = 1.06;
     173             : 
     174           1 :   fMUON->AliMaterial(31, "COPPER$",   63.54,    29.,   8.96,   1.4, 0.);
     175           1 :   fMUON->AliMixture( 32, "G10$",      aglass, zglass, dglass, -5, wglass);
     176           1 :   fMUON->AliMaterial(33, "Carbon$",   12.01,     6.,  2.265,  18.8, 49.9);
     177           1 :   fMUON->AliMixture( 34, "Rohacell$", arohac, zrohac, drohac, -4, wrohac); 
     178           1 :   fMUON->AliMixture( 35, "Nomex$",    aNomex, zNomex, dNomex, -4, wNomex); 
     179           1 :   fMUON->AliMixture( 36, "Noryl$",    aNoryl, zNoryl, dNoryl, -3, wNoryl); 
     180           1 :   fMUON->AliMixture( 37, "Nomex_bulk$",aNomex, zNomex, dNomex2, -4, wNomex); 
     181             : 
     182             :   Float_t  epsil  = .001; // Tracking precision, 
     183             :   Float_t  stemax = -1.;  // Maximum displacement for multiple scat 
     184             :   Float_t  tmaxfd = -20.; // Maximum angle due to field deflection 
     185             :   Float_t  deemax = -.3;  // Maximum fractional energy loss, DLS 
     186             :   Float_t  stmin  = -.8;
     187           1 :   Float_t  maxDestepAlu = fMUON->GetMaxDestepAlu();
     188           1 :   Float_t  maxDestepGas = fMUON->GetMaxDestepGas();
     189           1 :   Float_t  maxStepAlu = fMUON->GetMaxStepAlu();
     190           1 :   Float_t  maxStepGas = fMUON->GetMaxStepGas();
     191             : 
     192             :   //
     193             :   //    Air 
     194           1 :   fMUON->AliMedium(1, "AIR_CH_US         ", 15, 1, iSXFLD, sXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
     195             :  
     196             :   //
     197             :   //    Aluminum 
     198           1 :   fMUON->AliMedium(4, "ALU_CH_US0         ", 9, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu, 
     199             :                    maxDestepAlu, epsil, stmin);
     200           1 :   fMUON->AliMedium(5, "ALU_CH_US1         ", 10, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu, 
     201             :                    maxDestepAlu, epsil, stmin);
     202             :   //
     203             :   //    Ar-isoC4H10 gas 
     204           1 :   fMUON->AliMedium(6, "AR_CH_US          ", 20, 1, iSXFLD, sXMGMX, tmaxfd, maxStepGas, 
     205             :                    maxDestepGas, epsil, stmin);
     206             :   //
     207             :   //    Ar-Isobuthane-Forane-SF6 gas 
     208           1 :   fMUON->AliMedium(7, "GAS_CH_TRIGGER    ", 21, 1, iSXFLD, sXMGMX, tmaxfd, stemax, deemax, epsil, stmin);
     209             : 
     210           1 :   fMUON->AliMedium(8, "BAKE_CH_TRIGGER   ", 19, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu, 
     211             :                    maxDestepAlu, epsil, stmin);
     212             :   //
     213             :   // slat medium
     214           1 :   fMUON->AliMedium(9, "ARG_CO2   ", 22, 1, iSXFLD, sXMGMX, tmaxfd, maxStepGas, 
     215             :                    maxDestepAlu, epsil, stmin);
     216             :   //
     217             :   // tracking media for slats: check the parameters!! 
     218           1 :   fMUON->AliMedium(11, "PCB_COPPER        ", 31, 0, iSXFLD, sXMGMX, tmaxfd, 
     219             :                    maxStepAlu, maxDestepAlu, epsil, stmin);
     220           1 :   fMUON->AliMedium(12, "G10               ", 32, 0, iSXFLD, sXMGMX, tmaxfd, 
     221             :                    maxStepAlu, maxDestepAlu, epsil, stmin);
     222           1 :   fMUON->AliMedium(13, "CARBON            ", 33, 0, iSXFLD, sXMGMX, tmaxfd, 
     223             :                    maxStepAlu, maxDestepAlu, epsil, stmin);
     224           1 :   fMUON->AliMedium(14, "Rohacell          ", 34, 0, iSXFLD, sXMGMX, tmaxfd, 
     225             :                    maxStepAlu, maxDestepAlu, epsil, stmin);
     226           1 :   fMUON->AliMedium(15, "Nomex             ", 35, 0, iSXFLD, sXMGMX, tmaxfd, 
     227             :                    maxStepAlu, maxDestepAlu, epsil, stmin);
     228           1 :   fMUON->AliMedium(16, "Noryl             ", 36, 0, iSXFLD, sXMGMX, tmaxfd, 
     229             :                    maxStepAlu, maxDestepAlu, epsil, stmin);
     230           1 :   fMUON->AliMedium(17, "Nomex bulk        ", 37, 0, iSXFLD, sXMGMX, tmaxfd, 
     231             :                    maxStepAlu, maxDestepAlu, epsil, stmin);
     232             : 
     233             :   // for station 2 only
     234             :                    // was med: 4  mat: 9
     235           1 :   fMUON->AliMedium(22, "COPPER_II        ", 42, 0, iSXFLD, sXMGMX, 
     236             :                    tmaxfd, maxStepAlu, maxDestepAlu, epsil, stmin);
     237             :                    // was med: 10  mat: 30
     238           1 :   fMUON->AliMedium(23, "FR4_CH           ", 43, 0, iSXFLD, sXMGMX, 
     239             :                    10.0, 0.01, 0.1, 0.003, 0.003);
     240           1 :   fMUON->AliMedium(24, "FrameCH$",   44, 1, iSXFLD, sXMGMX, 
     241             :                    10.0, 0.001, 0.001, 0.001, 0.001);
     242           1 :   fMUON->AliMedium(29, "Kapton            ", 49, 0, iSXFLD, sXMGMX,  
     243             :                    10.0, 0.01, 1.0, 0.003, 0.003);
     244             :                    // was med: 18  mat: 34 
     245           1 : }
     246             : 
     247             : 

Generated by: LCOV version 1.11