ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  Alice external volume                                                    //
//  This class contains the description of the Alice external volume         //
//                                                                           //
//Begin_Html
/*
<img src="picts/AliBODYClass.gif">
</pre>
<br clear=left>
<font size=+2 color=red>
<p>The responsible person for this module is
<a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
</font>
<pre>
*/
//End_Html
//                                                                           //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include <TGeoGlobalMagField.h>
#include <TVirtualMC.h>
#include <TArrayI.h>

#include "AliBODY.h"
#include "AliMagF.h"
#include "AliRun.h"

ClassImp(AliBODY)
 
//_____________________________________________________________________________
AliBODY::AliBODY()
{
  //
  // Default constructor
  //
}
 
//_____________________________________________________________________________
AliBODY::AliBODY(const char *name, const char *title)
       : AliModule(name,title)
{
  //
  // Standard constructor of the Alice external volume
  //
  //PH  SetMarkerColor(7);
  //PH  SetMarkerStyle(2);
  //PH  SetMarkerSize(0.4);
}
 
//_____________________________________________________________________________
void AliBODY::CreateGeometry()
{
  //
  // Create the geometry of the Alice external body
  //
  //Begin_Html
  /*
    <img src="picts/AliBODYTree.gif">
  */
  //End_Html
  //
  // If the ZDC is present we have an asymmetric box
  // made by a four sides polygone
  //  
  //Begin_Html
  /*
    <img src="picts/AliBODYLarge.gif">
  */
  //End_Html
  //
  // If the ZDC is not present make just a BOX
  //
  //Begin_Html
  /*
    <img src="picts/AliBODYSmall.gif">
  */
  //End_Html

  Float_t dALIC[10];
  Int_t *idtmed = fIdtmed->GetArray()+1;
  //
  if(gAlice->GetModule("ZDC")) {
    //
    dALIC[0]=2500.;
    dALIC[1]=2500.;
    dALIC[2]=15000.;
    TVirtualMC::GetMC()->Gsvolu("ALIC","BOX ",idtmed[1],dALIC,3);
  } else if ( gAlice->GetModule("ACORDE")) {
    //
    // If the Cosmic Ray Trigger  is present we need a large box
    // 
    //
    dALIC[0]=13000.;
    dALIC[1]=5000.;
    dALIC[2]=13000.;
    TVirtualMC::GetMC()->Gsvolu("ALIC","BOX ",idtmed[1],dALIC,3);
      
  } else {
    //
    // If the ZDC and ACORDE are not present make just a BOX
    //
    dALIC[0]=2000;
    dALIC[1]=2000;
    dALIC[2]=3000;
    TVirtualMC::GetMC()->Gsvolu("ALIC","BOX ",idtmed[1],dALIC,3);
  }
}
 
//_____________________________________________________________________________
void AliBODY::CreateMaterials()
{
// Create materials and media
  Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
  Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
  
  // AIR

  Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
  Float_t zAir[4]={6.,7.,8.,18.};
  Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
  Float_t dAir = 1.20479E-3 * 960./1014.;
  Float_t dAir1 = 1.20479E-10;
  //
  AliMixture(1,"Vacuum  $",aAir,zAir,dAir1,4,wAir);
  AliMixture(2,"Air     $",aAir,zAir,dAir,4,wAir);
  AliMaterial(3,"Be      $", 9.01,4 ,1.848   ,35.30,36.70);
  //
  AliMedium(1,"Vacuum  $",1,0,isxfld,sxmgmx,10,1,0.1,0.1,10);
  AliMedium(2,"Air     $",2,0,isxfld,sxmgmx,10,-1,-0.1,0.1 ,-10);
  AliMedium(3,"Be pipe $",3,0,isxfld,sxmgmx,10,0.1,0.1,0.01,0.01);
}
 
 AliBODY.cxx:1
 AliBODY.cxx:2
 AliBODY.cxx:3
 AliBODY.cxx:4
 AliBODY.cxx:5
 AliBODY.cxx:6
 AliBODY.cxx:7
 AliBODY.cxx:8
 AliBODY.cxx:9
 AliBODY.cxx:10
 AliBODY.cxx:11
 AliBODY.cxx:12
 AliBODY.cxx:13
 AliBODY.cxx:14
 AliBODY.cxx:15
 AliBODY.cxx:16
 AliBODY.cxx:17
 AliBODY.cxx:18
 AliBODY.cxx:19
 AliBODY.cxx:20
 AliBODY.cxx:21
 AliBODY.cxx:22
 AliBODY.cxx:23
 AliBODY.cxx:24
 AliBODY.cxx:25
 AliBODY.cxx:26
 AliBODY.cxx:27
 AliBODY.cxx:28
 AliBODY.cxx:29
 AliBODY.cxx:30
 AliBODY.cxx:31
 AliBODY.cxx:32
 AliBODY.cxx:33
 AliBODY.cxx:34
 AliBODY.cxx:35
 AliBODY.cxx:36
 AliBODY.cxx:37
 AliBODY.cxx:38
 AliBODY.cxx:39
 AliBODY.cxx:40
 AliBODY.cxx:41
 AliBODY.cxx:42
 AliBODY.cxx:43
 AliBODY.cxx:44
 AliBODY.cxx:45
 AliBODY.cxx:46
 AliBODY.cxx:47
 AliBODY.cxx:48
 AliBODY.cxx:49
 AliBODY.cxx:50
 AliBODY.cxx:51
 AliBODY.cxx:52
 AliBODY.cxx:53
 AliBODY.cxx:54
 AliBODY.cxx:55
 AliBODY.cxx:56
 AliBODY.cxx:57
 AliBODY.cxx:58
 AliBODY.cxx:59
 AliBODY.cxx:60
 AliBODY.cxx:61
 AliBODY.cxx:62
 AliBODY.cxx:63
 AliBODY.cxx:64
 AliBODY.cxx:65
 AliBODY.cxx:66
 AliBODY.cxx:67
 AliBODY.cxx:68
 AliBODY.cxx:69
 AliBODY.cxx:70
 AliBODY.cxx:71
 AliBODY.cxx:72
 AliBODY.cxx:73
 AliBODY.cxx:74
 AliBODY.cxx:75
 AliBODY.cxx:76
 AliBODY.cxx:77
 AliBODY.cxx:78
 AliBODY.cxx:79
 AliBODY.cxx:80
 AliBODY.cxx:81
 AliBODY.cxx:82
 AliBODY.cxx:83
 AliBODY.cxx:84
 AliBODY.cxx:85
 AliBODY.cxx:86
 AliBODY.cxx:87
 AliBODY.cxx:88
 AliBODY.cxx:89
 AliBODY.cxx:90
 AliBODY.cxx:91
 AliBODY.cxx:92
 AliBODY.cxx:93
 AliBODY.cxx:94
 AliBODY.cxx:95
 AliBODY.cxx:96
 AliBODY.cxx:97
 AliBODY.cxx:98
 AliBODY.cxx:99
 AliBODY.cxx:100
 AliBODY.cxx:101
 AliBODY.cxx:102
 AliBODY.cxx:103
 AliBODY.cxx:104
 AliBODY.cxx:105
 AliBODY.cxx:106
 AliBODY.cxx:107
 AliBODY.cxx:108
 AliBODY.cxx:109
 AliBODY.cxx:110
 AliBODY.cxx:111
 AliBODY.cxx:112
 AliBODY.cxx:113
 AliBODY.cxx:114
 AliBODY.cxx:115
 AliBODY.cxx:116
 AliBODY.cxx:117
 AliBODY.cxx:118
 AliBODY.cxx:119
 AliBODY.cxx:120
 AliBODY.cxx:121
 AliBODY.cxx:122
 AliBODY.cxx:123
 AliBODY.cxx:124
 AliBODY.cxx:125
 AliBODY.cxx:126
 AliBODY.cxx:127
 AliBODY.cxx:128
 AliBODY.cxx:129
 AliBODY.cxx:130
 AliBODY.cxx:131
 AliBODY.cxx:132
 AliBODY.cxx:133
 AliBODY.cxx:134
 AliBODY.cxx:135
 AliBODY.cxx:136
 AliBODY.cxx:137
 AliBODY.cxx:138
 AliBODY.cxx:139
 AliBODY.cxx:140
 AliBODY.cxx:141
 AliBODY.cxx:142
 AliBODY.cxx:143
 AliBODY.cxx:144
 AliBODY.cxx:145
 AliBODY.cxx:146
 AliBODY.cxx:147
 AliBODY.cxx:148
 AliBODY.cxx:149
 AliBODY.cxx:150
 AliBODY.cxx:151