LCOV - code coverage report
Current view: top level - STRUCT - AliSHIL.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 112 123 91.1 %
Date: 2016-06-14 17:26:59 Functions: 4 8 50.0 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       3             :  *                                                                        *
       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 purpose. It is          *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : 
      16             : /* $Id$ */
      17             : 
      18             : ///////////////////////////////////////////////////////////////////////////////
      19             : //                                                                           //
      20             : //  Muon Shield Class                                                        //
      21             : //  This class contains a description of the muon shield                     //
      22             : //                                                                           //
      23             : //Begin_Html
      24             : /*
      25             : <img src="picts/AliSHILClass.gif">
      26             : */
      27             : //End_Html
      28             : //                                                                           //
      29             : //                                                                           //
      30             : ///////////////////////////////////////////////////////////////////////////////
      31             : 
      32             : #include <TGeoGlobalMagField.h>
      33             : 
      34             : #include "AliSHIL.h"
      35             : #include "AliRun.h"
      36             : #include "AliMagF.h"
      37             : #include "AliConst.h"
      38             : #include "AliLog.h"
      39             : 
      40          12 : ClassImp(AliSHIL)
      41             :  
      42             : //_____________________________________________________________________________
      43          12 : AliSHIL::AliSHIL()
      44          36 : {
      45             :   //
      46             :   // Default constructor for muon shield
      47             :   //
      48          12 : }
      49             :  
      50             : //_____________________________________________________________________________
      51             : AliSHIL::AliSHIL(const char *name, const char *title)
      52           1 :   : AliModule(name,title)
      53           3 : {
      54             :   //
      55             :   // Standard constructor for muon shield
      56             :   //
      57             :   //PH  SetMarkerColor(7);
      58             :   //PH  SetMarkerStyle(2);
      59             :   //PH  SetMarkerSize(0.4);
      60           1 : }
      61             :  
      62             : //_____________________________________________________________________________
      63             : void AliSHIL::CreateGeometry()
      64             : {
      65             :   //
      66             :   // Build muon shield geometry
      67             :   //
      68           0 : }
      69             : 
      70             : //_____________________________________________________________________________
      71             : void AliSHIL::CreateMaterials()
      72             : {
      73             :   //
      74             :   // Defines materials for the muon shield
      75             :   //
      76           2 :   Int_t   isxfld1 = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
      77           1 :   Int_t   isxfld2 = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->PrecInteg();
      78             : 
      79           1 :   Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
      80             : // Steel  
      81           1 :   Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
      82           1 :   Float_t zsteel[4] = { 26.,24.,28.,14. };
      83           1 :   Float_t wsteel[4] = { .715,.18,.1,.005 };
      84             : // PbW
      85           1 :   Float_t apbw[2]   = { 207.2,183.85 };
      86           1 :   Float_t zpbw[2]   = { 82.,74. };
      87           1 :   Float_t wpbw[2]   = { .5,.5 };
      88             : // Concrete
      89           1 :   Float_t aconc[10] = { 1.,12.01,15.994,22.99,24.305,26.98,
      90             :                         28.086,39.1,40.08,55.85 };
      91           1 :   Float_t zconc[10] = { 1.,6.,8.,11.,12.,13.,14.,19.,20.,26. };
      92           1 :   Float_t wconc[10] = { .01,.001,.529107,.016,.002,.033872,
      93             :                         .337021,.013,.044,.014 };
      94             : // Ni-Cu-W alloy
      95           1 :   Float_t aniwcu[3] ={58.6934, 183.84, 63.546};
      96           1 :   Float_t zniwcu[3] ={28.,      74.,   29.};
      97           1 :   Float_t wniwcu[3] ={ 0.015,    0.95,  0.035};
      98             : //
      99             : // Insulation powder
     100             : //                    Si         O       Ti     Al
     101           1 :   Float_t ains[4] ={28.0855, 15.9994, 47.867,  26.982};
     102           1 :   Float_t zins[4] ={14.,      8.    , 22.   ,  13.   };
     103           1 :   Float_t wins[4] ={ 0.3019,  0.4887,  0.1914,  0.018};
     104             : //
     105             : // Air
     106             : //
     107           1 :   Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
     108           1 :   Float_t zAir[4]={6.,7.,8.,18.};
     109           1 :   Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
     110             :   Float_t dAir = 1.20479E-3;
     111             :   Float_t dAir1 = 1.20479E-10;
     112             : //
     113             : // Cast iron
     114             : //
     115           1 :   Float_t acasti[4] = {55.847,12.011,28.085,54.938};
     116           1 :   Float_t zcasti[4] = {26.,6.,14.,25.};
     117           1 :   Float_t wcasti[4] = {0.929,0.035,0.031,0.005};
     118             :   
     119             :   Float_t epsil, stmin, tmaxfd, deemax, stemax;
     120             :   
     121             :   //     STEEL 
     122             :   
     123             :   
     124             :   //     LEAD/TUNGSTEN MIXTURE 
     125             :   
     126             :   
     127             :   // --- Define the various materials for GEANT --- 
     128             :   //     Aluminum 
     129           1 :   AliMaterial(9,  "ALU1      ", 26.98, 13., 2.7, 8.9, 37.2);
     130           1 :   AliMaterial(29, "ALU2      ", 26.98, 13., 2.7, 8.9, 37.2);
     131           1 :   AliMaterial(49, "ALU3      ", 26.98, 13., 2.7, 8.9, 37.2);
     132             :   
     133             :   //     Iron 
     134           1 :   AliMaterial(10, "IRON1     ", 55.85, 26., 7.87, 1.76, 17.1);
     135           1 :   AliMaterial(30, "IRON2     ", 55.85, 26., 7.87, 1.76, 17.1);
     136           1 :   AliMaterial(50, "IRON3     ", 55.85, 26., 7.87, 1.76, 17.1);
     137             : 
     138             :   //
     139             :   //     Copper
     140           1 :   AliMaterial(11, "COPPER1   ", 63.55, 29., 8.96, 1.43, 15.1);
     141           1 :   AliMaterial(31, "COPPER2   ", 63.55, 29., 8.96, 1.43, 15.1);
     142           1 :   AliMaterial(51, "COPPER3   ", 63.55, 29., 8.96, 1.43, 15.1);
     143             :   
     144             :   //     Tungsten 
     145           1 :   AliMaterial(12, "TUNGSTEN1 ", 183.85, 74., 19.3, .35, 10.3);
     146           1 :   AliMaterial(32, "TUNGSTEN2 ", 183.85, 74., 19.3, .35, 10.3);
     147           1 :   AliMaterial(52, "TUNGSTEN3 ", 183.85, 74., 19.3, .35, 10.3);
     148             :   
     149             :   //     Lead 
     150           1 :   AliMaterial(13, "LEAD1     ", 207.19, 82., 11.35, .56, 18.5);
     151           1 :   AliMaterial(33, "LEAD2     ", 207.19, 82., 11.35, .56, 18.5);
     152           1 :   AliMaterial(53, "LEAD3     ", 207.19, 82., 11.35, .56, 18.5);
     153             :   
     154             :   //     Air 
     155           1 :   AliMixture(15, "AIR1      ", aAir, zAir, dAir, 4, wAir);
     156           1 :   AliMixture(35, "AIR2      ", aAir, zAir, dAir, 4, wAir);
     157           1 :   AliMixture(55, "AIR3      ", aAir, zAir, dAir, 4, wAir);
     158           1 :   AliMixture(75, "AIR_MUON  ", aAir, zAir, dAir, 4, wAir);
     159             : 
     160             :   //     Vacuum 
     161           1 :   AliMixture(16, "VACUUM1 ", aAir, zAir, dAir1, 4, wAir);
     162           1 :   AliMixture(36, "VACUUM2 ", aAir, zAir, dAir1, 4, wAir);
     163           1 :   AliMixture(56, "VACUUM3 ", aAir, zAir, dAir1, 4, wAir);
     164             :   
     165             :   //     Stainless Steel 
     166           1 :   AliMixture(19, "STAINLESS STEEL1", asteel, zsteel, 7.88, 4, wsteel);
     167           1 :   AliMixture(39, "STAINLESS STEEL2", asteel, zsteel, 7.88, 4, wsteel);
     168           1 :   AliMixture(59, "STAINLESS STEEL3", asteel, zsteel, 7.88, 4, wsteel);
     169             :   
     170             :   //     Lead/Tungsten 
     171           1 :   AliMixture(20, "LEAD/TUNGSTEN1", apbw, zpbw, 15.325, 2, wpbw);
     172           1 :   AliMixture(40, "LEAD/TUNGSTEN2", apbw, zpbw, 15.325, 2, wpbw);
     173           1 :   AliMixture(60, "LEAD/TUNGSTEN3", apbw, zpbw, 15.325, 2, wpbw);
     174             : 
     175             :   //     Ni-W-Cu 
     176           1 :   AliMixture(21, "Ni-W-Cu1", aniwcu, zniwcu, 18.78, 3, wniwcu);
     177           1 :   AliMixture(41, "Ni-W-Cu2", aniwcu, zniwcu, 18.78, 3, wniwcu);
     178           1 :   AliMixture(61, "Ni-W-Cu3", aniwcu, zniwcu, 18.78, 3, wniwcu);
     179             : 
     180             :   //     Concrete 
     181           1 :   AliMixture(17, "CONCRETE1", aconc, zconc, 2.35, 10, wconc);
     182           1 :   AliMixture(37, "CONCRETE2", aconc, zconc, 2.35, 10, wconc);
     183           1 :   AliMixture(57, "CONCRETE3", aconc, zconc, 2.35, 10, wconc);
     184             : 
     185             :   //     Insulation powder 
     186           1 :   AliMixture(14, "INSULATION1", ains, zins, 0.41, 4, wins);
     187           1 :   AliMixture(34, "INSULATION2", ains, zins, 0.41, 4, wins);
     188           1 :   AliMixture(54, "INSULATION3", ains, zins, 0.41, 4, wins);
     189             : 
     190             :   //     Cast iron
     191           1 :   AliMixture(18, "CAST IRON1", acasti, zcasti, 7.2, 4, wcasti);
     192           1 :   AliMixture(38, "CAST IRON2", acasti, zcasti, 7.2, 4, wcasti);
     193           1 :   AliMixture(58, "CAST IRON3", acasti, zcasti, 7.2, 4, wcasti);
     194             :   
     195             :   // **************** 
     196             :   //     Defines tracking media parameters. 
     197             :   //     Les valeurs sont commentees pour laisser le defaut 
     198             :   //     a GEANT (version 3-21, page CONS200), f.m. 
     199             :   epsil  = .001;  // Tracking precision, 
     200             :   stemax = -1.;   // Maximum displacement for multiple scat 
     201             :   tmaxfd = -20.;  // Maximum angle due to field deflection 
     202             :   deemax = -.3;   // Maximum fractional energy loss, DLS 
     203             :   stmin  = -.8;
     204             :   // *************** 
     205             :   
     206             :   //    Aluminum 
     207           1 :   AliMedium(9,  "ALU_C0          ", 9, 0,  isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     208           1 :   AliMedium(29, "ALU_C1          ", 29, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     209           1 :   AliMedium(49, "ALU_C2          ", 49, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     210             :   
     211             :   //    Iron 
     212           1 :   AliMedium(10, "FE_C0           ", 10, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     213           1 :   AliMedium(30, "FE_C1           ", 30, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     214           1 :   AliMedium(50, "FE_C2           ", 50, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     215             : 
     216             :   //    Copper 
     217           1 :   AliMedium(11, "Cu_C0           ", 11, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     218           1 :   AliMedium(31, "Cu_C1           ", 31, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     219           1 :   AliMedium(51, "Cu_C2           ", 51, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     220             :   
     221             :   //    Tungsten 
     222           1 :   AliMedium(12, "W_C0            ", 12, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     223           1 :   AliMedium(32, "W_C1            ", 32, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     224           1 :   AliMedium(52, "W_C2            ", 52, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     225             :   
     226             :   //    Lead 
     227           1 :   AliMedium(13, "PB_C0           ", 13, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     228           1 :   AliMedium(33, "PB_C1           ", 33, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     229           1 :   AliMedium(53, "PB_C2           ", 53, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     230             : 
     231             :   //    Insulation Powder 
     232           1 :   AliMedium(14, "INS_C0          ", 14, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     233           1 :   AliMedium(34, "INS_C1          ", 34, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     234           1 :   AliMedium(54, "INS_C2          ", 54, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     235             :   
     236             :   //    Air 
     237           1 :   AliMedium(15, "AIR_C0          ", 15, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     238           1 :   AliMedium(35, "AIR_C1          ", 35, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     239           1 :   AliMedium(55, "AIR_C2          ", 55, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     240           1 :   AliMedium(75, "AIR_MUON        ", 75, 0, isxfld2, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     241             :   
     242             :   //    Vacuum 
     243           1 :   AliMedium(16, "VA_C0           ", 16, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     244           1 :   AliMedium(36, "VA_C1           ", 36, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     245           1 :   AliMedium(56, "VA_C2           ", 56, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     246             :   
     247             :   //    Steel 
     248           1 :   AliMedium(19, "ST_C0           ", 19, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     249           1 :   AliMedium(39, "ST_C1           ", 39, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     250           1 :   AliMedium(59, "ST_C3           ", 59, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     251             :   
     252             :   //    Lead/Tungsten 
     253           1 :   AliMedium(20, "PB/W0           ", 20, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     254           1 :   AliMedium(40, "PB/W1           ", 40, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     255           1 :   AliMedium(60, "PB/W3           ", 60, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     256             : 
     257             :   //    Ni/Tungsten 
     258           1 :   AliMedium(21, "Ni/W0           ", 21, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     259           1 :   AliMedium(41, "Ni/W1           ", 41, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     260           1 :   AliMedium(61, "Ni/W3           ", 61, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     261             : 
     262             : //    Concrete 
     263           1 :   AliMedium(17, "CC_C0           ", 17, 0, 0,      sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     264           1 :   AliMedium(37, "CC_C1           ", 37, 0, 0,      sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     265           1 :   AliMedium(57, "CC_C2           ", 57, 0, 0,      sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     266             : 
     267             :   //    Cast iron 
     268           1 :   AliMedium(18, "CAST_IRON0      ", 18, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     269           1 :   AliMedium(38, "CAST_IRON1      ", 38, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     270           1 :   AliMedium(58, "CAST_IRON2      ", 58, 0, isxfld1, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
     271             :   
     272           1 : }
     273             : 
     274             : //_____________________________________________________________________________
     275             : void AliSHIL::Init()
     276             : {
     277             :   //
     278             :   // Initialise the muon shield after it has been built
     279             :   //
     280             :   Int_t i;
     281             :   //
     282           0 :   if(AliLog::GetGlobalDebugLevel()>0) {
     283           0 :     printf("\n%s: ",ClassName());
     284           0 :     for(i=0;i<35;i++) printf("*");
     285           0 :     printf(" SHIL_INIT ");
     286           0 :     for(i=0;i<35;i++) printf("*");
     287           0 :     printf("\n%s: ",ClassName());
     288             :     //
     289             :     // Here the SHIL initialisation code (if any!)
     290           0 :     for(i=0;i<80;i++) printf("*");
     291           0 :     printf("\n");
     292           0 :   }
     293           0 : }
     294             : 
     295             :  

Generated by: LCOV version 1.11