| 1 | 
nikolas | 
1.1 | 
#include "PamVMCDetTofS2.h" | 
| 2 | 
  | 
  | 
 | 
| 3 | 
  | 
  | 
ClassImp(PamVMCDetTofS2) | 
| 4 | 
  | 
  | 
 | 
| 5 | 
  | 
  | 
void  PamVMCDetTofS2::DefineGeometry(){ | 
| 6 | 
  | 
  | 
 | 
| 7 | 
  | 
  | 
  TGeoMaterial *m=0; | 
| 8 | 
  | 
  | 
  TGeoMixture *x=0; | 
| 9 | 
  | 
  | 
  TString s = "ALUMINIUM";  | 
| 10 | 
  | 
  | 
  m = GetMat(s); | 
| 11 | 
  | 
  | 
  if(!m){ | 
| 12 | 
  | 
  | 
    m = new TGeoMaterial(s,26.98,13,2.7); | 
| 13 | 
  | 
  | 
    m->SetUniqueID(   9); | 
| 14 | 
  | 
  | 
  } | 
| 15 | 
  | 
  | 
 | 
| 16 | 
  | 
  | 
  s = "SCINT"; | 
| 17 | 
  | 
  | 
  x = (TGeoMixture*)GetMat(s);  | 
| 18 | 
  | 
  | 
  if(!x){ | 
| 19 | 
  | 
  | 
    x = new TGeoMixture(s,2,   1.03200    ); | 
| 20 | 
  | 
  | 
    x->SetUniqueID(  17); | 
| 21 | 
  | 
  | 
    x->DefineElement(0,12.01,6,0.922427); | 
| 22 | 
  | 
  | 
    x->DefineElement(1,1.01,1,0.7757296E-01); | 
| 23 | 
  | 
  | 
  } | 
| 24 | 
  | 
  | 
 | 
| 25 | 
  | 
  | 
  s = "N2GAS"; | 
| 26 | 
  | 
  | 
  m = GetMat(s); | 
| 27 | 
  | 
  | 
  if (!m){ | 
| 28 | 
  | 
  | 
    m = new TGeoMaterial(s,14.01,7,0.1250000E-02); | 
| 29 | 
  | 
  | 
    m->SetUniqueID(  19); | 
| 30 | 
  | 
  | 
  } | 
| 31 | 
  | 
  | 
   | 
| 32 | 
  | 
  | 
  s = "MYLAR"; | 
| 33 | 
  | 
  | 
  x = (TGeoMixture*)GetMat(s); | 
| 34 | 
  | 
  | 
  if(!x){ | 
| 35 | 
  | 
  | 
    x = new TGeoMixture(s,3,   1.39000    ); | 
| 36 | 
  | 
  | 
    x->SetUniqueID(  29); | 
| 37 | 
  | 
  | 
    x->DefineElement(0,12.011,6,0.6250159); | 
| 38 | 
  | 
  | 
    x->DefineElement(1,1.00794,1,0.4196011E-01); | 
| 39 | 
  | 
  | 
    x->DefineElement(2,15.9994,8,0.3330241); | 
| 40 | 
  | 
  | 
  } | 
| 41 | 
  | 
  | 
 | 
| 42 | 
  | 
  | 
  s = "POLYSTYRENE"; | 
| 43 | 
  | 
  | 
  x = (TGeoMixture*)GetMat(s); | 
| 44 | 
  | 
  | 
  if(!x){ | 
| 45 | 
  | 
  | 
    x = new TGeoMixture(s,2,  0.350000E-01); | 
| 46 | 
  | 
  | 
    x->SetUniqueID(  30); | 
| 47 | 
  | 
  | 
    x->DefineElement(0,12.011,6,0.9225789); | 
| 48 | 
  | 
  | 
    x->DefineElement(1,1.00794,1,0.7742105E-01); | 
| 49 | 
  | 
  | 
  } | 
| 50 | 
  | 
  | 
  TGeoMedium *n=0; | 
| 51 | 
  | 
  | 
 | 
| 52 | 
  | 
  | 
  s="ALUMINIUM"; | 
| 53 | 
  | 
  | 
  n = (GetMed(s))?GetMed(s): new TGeoMedium(s,1,9,-1,1,40,1,100,0.5000000E-01,0.136283,0.5000000E-03); | 
| 54 | 
  | 
  | 
 | 
| 55 | 
  | 
  | 
  s = "N2 GAS"; | 
| 56 | 
  | 
  | 
  n = (GetMed(s))?GetMed(s): new TGeoMedium(s,3,19,-1,1,40,1,0.5000000E-01,0.5000000E-01,0.1000000E-02,0.5000000E-03); | 
| 57 | 
  | 
  | 
 | 
| 58 | 
  | 
  | 
  s = "SCINTILLATOR"; | 
| 59 | 
  | 
  | 
  n = (GetMed(s))?GetMed(s): new TGeoMedium(s,10,17,1,1,40,1,0.5000000E-01,0.5000000E-01,0.1000000E-01,0.5000000E-03); | 
| 60 | 
  | 
  | 
 | 
| 61 | 
  | 
  | 
  s = "MYLAR"; | 
| 62 | 
  | 
  | 
  n = (GetMed(s))?GetMed(s): new TGeoMedium("MYLAR",19,29,-1,1,40,1,100,0.5000000E-01,0.2300000E-04,0.5000000E-03); | 
| 63 | 
  | 
  | 
 | 
| 64 | 
  | 
  | 
  s = "POLYSTYRENE"; | 
| 65 | 
  | 
  | 
  n = (GetMed(s))?GetMed(s): new TGeoMedium("POLYSTYRENE",20,30,-1,1,40,1,100,0.5000000E-01,0.4000000E-02,0.5000000E-03); | 
| 66 | 
  | 
  | 
 | 
| 67 | 
  | 
  | 
  TGeoVolume *v=0; | 
| 68 | 
  | 
  | 
 | 
| 69 | 
  | 
  | 
  TPLAfirst = kFALSE; | 
| 70 | 
  | 
  | 
 | 
| 71 | 
  | 
  | 
 | 
| 72 | 
  | 
  | 
  s = "TPLA";  | 
| 73 | 
  | 
  | 
  v = GetVol(s); | 
| 74 | 
  | 
  | 
  if(!v) { | 
| 75 | 
  | 
  | 
    v = gGeoManager->MakeBox(s,GetMed("N2 GAS"),28.,27.165,1.6); | 
| 76 | 
  | 
  | 
    TPLAfirst = kTRUE; | 
| 77 | 
  | 
  | 
  } | 
| 78 | 
  | 
  | 
   | 
| 79 | 
  | 
  | 
  s = "S2"; | 
| 80 | 
  | 
  | 
  v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox("S2",GetMed("ALUMINIUM"),9.0046,7.5046,0.7476); | 
| 81 | 
  | 
  | 
  s = "S2A"; | 
| 82 | 
  | 
  | 
  v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox("S2A",GetMed("N2 GAS"),9.0046,7.5046,0.7146); | 
| 83 | 
  | 
  | 
  s = "S21M"; | 
| 84 | 
  | 
  | 
  v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox("S21M",GetMed("MYLAR"),9.,3.7523,0.2523); | 
| 85 | 
  | 
  | 
  s = "S22M"; | 
| 86 | 
  | 
  | 
  v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox("S22M",GetMed("MYLAR"),4.5023,7.5,0.2523); | 
| 87 | 
  | 
  | 
  s = "S21X"; | 
| 88 | 
  | 
  | 
  v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox("S21X",GetMed("SCINTILLATOR"),9.,3.75,0.25); | 
| 89 | 
  | 
  | 
  s = "S22Y"; | 
| 90 | 
  | 
  | 
  v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox("S22Y",GetMed("SCINTILLATOR"),4.5,7.5,0.25); | 
| 91 | 
  | 
  | 
  s = "POLY"; | 
| 92 | 
  | 
  | 
  v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox("POLY",GetMed("POLYSTYRENE"),9.0046,7.5046,0.2);   | 
| 93 | 
  | 
  | 
 | 
| 94 | 
  | 
  | 
  | 
| 95 | 
  | 
  | 
  GetVol("S2")->AddNode(GetVol("S2A"),1,gGeoIdentity); | 
| 96 | 
  | 
  | 
    GetVol("S2A")->AddNode(GetVol("S22M"),1,new TGeoTranslation(-4.5023,0.,-0.4523)); | 
| 97 | 
  | 
  | 
      GetVol("S22M")->AddNode(GetVol("S22Y"),1,gGeoIdentity); | 
| 98 | 
  | 
  | 
    GetVol("S2A")->AddNode(GetVol("S22M"),2,new TGeoTranslation(4.5023,0.,-0.4523)); | 
| 99 | 
  | 
  | 
    GetVol("S2A")->AddNode(GetVol("S21M"),1,new TGeoTranslation(0.,-3.7523,0.523E-01)); | 
| 100 | 
  | 
  | 
      GetVol("S21M")->AddNode(GetVol("S21X"),1,gGeoIdentity); | 
| 101 | 
  | 
  | 
    GetVol("S2A")->AddNode(GetVol("S21M"),2,new TGeoTranslation(0.,3.7523,0.523E-01)); | 
| 102 | 
  | 
  | 
    GetVol("S2A")->AddNode(GetVol("POLY"),1,new TGeoTranslation(0.,0.,0.5046)); | 
| 103 | 
  | 
  | 
   | 
| 104 | 
  | 
  | 
  if(TPLAfirst){ | 
| 105 | 
  | 
  | 
    GetVol("TPLA")->AddNode(GetVol("S2"),1,new TGeoTranslation(0.,0.,-0.3524)); | 
| 106 | 
  | 
  | 
    SetMotherProp(GetVol("TPLA"),1, new TGeoTranslation(0.,0.,73.489)); | 
| 107 | 
  | 
  | 
  } else { | 
| 108 | 
  | 
  | 
    GetVol("TPLA")->AddNode(GetVol("S2"),1,new TGeoTranslation(0.,0.,-0.3524)); | 
| 109 | 
  | 
  | 
  } | 
| 110 | 
  | 
  | 
 | 
| 111 | 
  | 
  | 
 | 
| 112 | 
  | 
  | 
}; | 
| 113 | 
  | 
  | 
 | 
| 114 | 
  | 
  | 
void  PamVMCDetTofS2::DefineCuts(){ | 
| 115 | 
  | 
  | 
 | 
| 116 | 
  | 
  | 
 TString  s ="ALUMINIUM"; // default GPAMELA parameters | 
| 117 | 
  | 
  | 
  if (GetMed(s) && !GetCC(s)) | 
| 118 | 
  | 
  | 
  SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 119 | 
  | 
  | 
                             0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); | 
| 120 | 
  | 
  | 
  s ="N2 GAS"; | 
| 121 | 
  | 
  | 
  if (GetMed(s) && !GetCC(s)) | 
| 122 | 
  | 
  | 
    SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 123 | 
  | 
  | 
                             0.001, 0.01, 1., 1., 1., 0., 0., 1., 1., 4., 1., 1., 2., 1.)); | 
| 124 | 
  | 
  | 
  s ="SCINTILLATOR";// default GPAMELA parameters | 
| 125 | 
  | 
  | 
  if (GetMed(s) && !GetCC(s)) | 
| 126 | 
  | 
  | 
    SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 127 | 
  | 
  | 
                             0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); | 
| 128 | 
  | 
  | 
  s ="MYLAR"; | 
| 129 | 
  | 
  | 
  if (GetMed(s) && !GetCC(s)) | 
| 130 | 
  | 
  | 
    SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 131 | 
  | 
  | 
                             0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); | 
| 132 | 
  | 
  | 
  s = "POLYSTYRENE"; | 
| 133 | 
  | 
  | 
    SetCC(s, new pCutControl(GetMedID(s), 0.00001, 0.00001, 0.00001, 0.00001, 0.001, 0.001, 0.01, 0.00001, | 
| 134 | 
  | 
  | 
                             0.00001, 0.01, 1., 1., 1., 0., 1., 1., 1., 1., 1., 1., 1., 2.)); | 
| 135 | 
  | 
  | 
 | 
| 136 | 
  | 
  | 
} | 
| 137 | 
  | 
  | 
 |