| 1 | nikolas | 1.1 | #include "PamVMCDetND.h" | 
| 2 |  |  | #include <TGeoMaterial.h> | 
| 3 |  |  | ClassImp(PamVMCDetND) | 
| 4 |  |  |  | 
| 5 |  |  | void  PamVMCDetND::DefineGeometry(){ | 
| 6 |  |  |  | 
| 7 |  |  |  | 
| 8 |  |  | TGeoMaterial *m=0; | 
| 9 |  |  | TGeoMixture *x=0; | 
| 10 |  |  | TString s = "ALUMINIUM"; | 
| 11 |  |  | m = GetMat(s); | 
| 12 |  |  | if(!m){ | 
| 13 |  |  | m = new TGeoMaterial(s,26.98,13,2.7); | 
| 14 |  |  | m->SetUniqueID(   9); | 
| 15 |  |  | } | 
| 16 |  |  |  | 
| 17 |  |  | s = "IRON"; | 
| 18 |  |  | m = GetMat(s); | 
| 19 |  |  | if(!m){ | 
| 20 |  |  | m = new TGeoMaterial(s,55.85,26,7.87); | 
| 21 |  |  | m->SetUniqueID(  10); | 
| 22 |  |  | } | 
| 23 |  |  |  | 
| 24 |  |  | s = "N2GAS"; | 
| 25 |  |  | m = GetMat(s); | 
| 26 |  |  | if (!m){ | 
| 27 |  |  | m = new TGeoMaterial(s,14.01,7,0.1250000E-02); | 
| 28 |  |  | m->SetUniqueID(  19); | 
| 29 |  |  | } | 
| 30 |  |  |  | 
| 31 |  |  |  | 
| 32 |  |  | s = "CADMIUM"; | 
| 33 |  |  | m = GetMat(s); | 
| 34 |  |  | if(!m){ | 
| 35 |  |  | m = new TGeoMaterial(s,112.411,48,8.65); | 
| 36 |  |  | m->SetUniqueID(  31); | 
| 37 |  |  | } | 
| 38 |  |  |  | 
| 39 |  |  | s = "He3"; | 
| 40 |  |  | m = GetMat(s); | 
| 41 |  |  | if(!m){ | 
| 42 |  |  | // m = new TGeoMaterial(s,3,2,0.1246000E-02); | 
| 43 |  |  | m = new TGeoMaterial(s,3,2,0.1246e-2); | 
| 44 |  |  | // m->SetState(TGeoMaterial::EGeoMaterialState(3)); | 
| 45 |  |  | //m->SetPressure(7*STP_pressure); | 
| 46 |  |  | m->SetUniqueID(  33); | 
| 47 |  |  | } | 
| 48 |  |  |  | 
| 49 |  |  | s = "POLYETHYLENE"; | 
| 50 |  |  | x = (TGeoMixture*)GetMat(s); | 
| 51 |  |  | if(!x){ | 
| 52 |  |  | x = new TGeoMixture(s,2,  0.930000    ); | 
| 53 |  |  | x->SetUniqueID(  34); | 
| 54 |  |  | x->DefineElement(0,12.011,6,0.8562844); | 
| 55 |  |  | x->DefineElement(1,1.00794,1,0.1437155); | 
| 56 |  |  | } | 
| 57 |  |  |  | 
| 58 |  |  | TGeoMedium *n =0; | 
| 59 |  |  |  | 
| 60 |  |  | s="ALUMINIUM"; | 
| 61 |  |  | n = (GetMed(s))?GetMed(s): new TGeoMedium(s,1,9,-1,1,40,1,100,0.5000000E-01,0.136283,0.5000000E-03); | 
| 62 |  |  |  | 
| 63 |  |  | s = "N2 GAS"; | 
| 64 |  |  | 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); | 
| 65 |  |  |  | 
| 66 |  |  | s = "IRON"; | 
| 67 |  |  | n = (GetMed(s))?GetMed(s): new TGeoMedium(s,27,10,-1,1,40,1,100,0.5000000E-01,0.2491200E-02,0.5000000E-03); | 
| 68 |  |  |  | 
| 69 |  |  | s = "CADMIUM"; | 
| 70 |  |  | n = (GetMed(s))?GetMed(s):  new TGeoMedium(s,21,31,-1,1,40,1,0.5000000E-01,0.5000000E-01,0.5000000E-03,0.5000000E-03); | 
| 71 |  |  |  | 
| 72 |  |  | s = "He3"; | 
| 73 |  |  | n = (GetMed(s))?GetMed(s):  new TGeoMedium(s,22,33,-1,1,40,1,0.5000000E-01,0.5000000E-01,0.1840000E-01,0.5000000E-03); | 
| 74 |  |  |  | 
| 75 |  |  | s = "POLYETHYLENE"; | 
| 76 |  |  | n = (GetMed(s))?GetMed(s):  new TGeoMedium(s,23,34,-1,1,40,1,100,0.5000000E-01,0.2000000E-01,0.5000000E-03); | 
| 77 |  |  |  | 
| 78 |  |  | TGeoVolume *v = 0; | 
| 79 |  |  |  | 
| 80 |  |  | s = "NDBO"; | 
| 81 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),27.5,30.,7.5); | 
| 82 |  |  | s = "NDBX"; | 
| 83 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),21.45,21.45,7.); | 
| 84 |  |  | s = "NDCD"; | 
| 85 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("CADMIUM"),21.25,21.25,6.9); | 
| 86 |  |  | s = "NDBI"; | 
| 87 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),21.2,21.2,6.875); | 
| 88 |  |  | s = "NDTU"; | 
| 89 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeTube(s,GetMed("IRON"),0.,0.925,10.); // orig (s,GetMed("IRON"),0.92,0.925,10) | 
| 90 |  |  | s = "NDTI"; | 
| 91 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeTube(s,GetMed("He3"),0.,0.92,9.99); // orig (s,GetMed("He3"),0,0.92,10) | 
| 92 |  |  | s = "NDPB"; | 
| 93 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("POLYETHYLENE"),21.2,21.2,1.); | 
| 94 |  |  | s = "NDCO"; | 
| 95 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),27.5,30.,0.5); | 
| 96 |  |  | s = "NDBS"; | 
| 97 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("ALUMINIUM"),15,4.275,7.); | 
| 98 |  |  | s = "NDSS"; | 
| 99 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),14.8,4.075,6.8); | 
| 100 |  |  | s = "NDCI"; | 
| 101 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),21.2,11.3,0.325); | 
| 102 |  |  | s = "NDCM"; | 
| 103 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),21.2,4.25,0.325); | 
| 104 |  |  | s = "NDCE"; | 
| 105 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),14.6,2.875,0.325); | 
| 106 |  |  | s = "NDSI"; | 
| 107 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.,7.26,0.325); | 
| 108 |  |  | s = "NDSM"; | 
| 109 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),1.,5.8,0.325); | 
| 110 |  |  | s = "NDSE"; | 
| 111 |  |  | v = (GetVol(s))?GetVol(s): gGeoManager->MakeBox(s,GetMed("N2 GAS"),4.2,1.05,0.325); | 
| 112 |  |  |  | 
| 113 |  |  |  | 
| 114 |  |  | GetVol("NDBO")->AddNode(GetVol("NDBX"),1,new TGeoTranslation(0.,0.,-0.5)); | 
| 115 |  |  | GetVol("NDBX")->AddNode(GetVol("NDCD"),1,new TGeoTranslation(0.,0.,0.1)); | 
| 116 |  |  | GetVol("NDCD")->AddNode(GetVol("NDBI"),1,new TGeoTranslation(0.,0.,0.25E-01)); | 
| 117 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),1,new TGeoCombiTrans(-19.975,0.,0.5E-01,GetRot("rot2")));//FLUKA off | 
| 118 |  |  | GetVol("NDTU")->AddNode(GetVol("NDTI"),1,gGeoIdentity);//FLUKA off | 
| 119 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),2,new TGeoCombiTrans(-17.625,0.,0.5E-01,GetRot("rot2"))); | 
| 120 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),3,new TGeoCombiTrans(-15.275,0.,0.5E-01,GetRot("rot2"))); | 
| 121 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),4,new TGeoCombiTrans(-12.925,0.,0.5E-01,GetRot("rot2"))); | 
| 122 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),5,new TGeoCombiTrans(-10.575,0.,0.5E-01,GetRot("rot2"))); | 
| 123 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),6,new TGeoCombiTrans(-8.225,0.,0.5E-01,GetRot("rot2"))); | 
| 124 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),7,new TGeoCombiTrans(-5.875,0.,0.5E-01,GetRot("rot2"))); | 
| 125 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),8,new TGeoCombiTrans(-3.525,0.,0.5E-01,GetRot("rot2"))); | 
| 126 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),9,new TGeoCombiTrans(-1.175,0.,0.5E-01,GetRot("rot2"))); | 
| 127 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),10,new TGeoCombiTrans(1.175,0.,0.5E-01,GetRot("rot2"))); | 
| 128 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),11,new TGeoCombiTrans(3.525,0.,0.5E-01,GetRot("rot2"))); | 
| 129 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),12,new TGeoCombiTrans(5.875,0.,0.5E-01,GetRot("rot2"))); | 
| 130 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),13,new TGeoCombiTrans(8.225,0.,0.5E-01,GetRot("rot2"))); | 
| 131 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),14,new TGeoCombiTrans(10.575,0.,0.5E-01,GetRot("rot2"))); | 
| 132 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),15,new TGeoCombiTrans(12.925,0.,0.5E-01,GetRot("rot2"))); | 
| 133 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),16,new TGeoCombiTrans(15.275,0.,0.5E-01,GetRot("rot2"))); | 
| 134 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),17,new TGeoCombiTrans(17.625,0.,0.5E-01,GetRot("rot2"))); | 
| 135 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),18,new TGeoCombiTrans(19.975,0.,0.5E-01,GetRot("rot2"))); | 
| 136 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),19,new TGeoCombiTrans(-19.975,0.,3.9,GetRot("rot2"))); | 
| 137 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),20,new TGeoCombiTrans(-17.625,0.,3.9,GetRot("rot2"))); | 
| 138 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),21,new TGeoCombiTrans(-15.275,0.,3.9,GetRot("rot2"))); | 
| 139 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),22,new TGeoCombiTrans(-12.925,0.,3.9,GetRot("rot2"))); | 
| 140 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),23,new TGeoCombiTrans(-10.575,0.,3.9,GetRot("rot2"))); | 
| 141 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),24,new TGeoCombiTrans(-8.225,0.,3.9,GetRot("rot2"))); | 
| 142 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),25,new TGeoCombiTrans(-5.875,0.,3.9,GetRot("rot2"))); | 
| 143 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),26,new TGeoCombiTrans(-3.525,0.,3.9,GetRot("rot2"))); | 
| 144 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),27,new TGeoCombiTrans(-1.175,0.,3.9,GetRot("rot2"))); | 
| 145 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),28,new TGeoCombiTrans(1.175,0.,3.9,GetRot("rot2"))); | 
| 146 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),29,new TGeoCombiTrans(3.525,0.,3.9,GetRot("rot2"))); | 
| 147 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),30,new TGeoCombiTrans(5.875,0.,3.9,GetRot("rot2"))); | 
| 148 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),31,new TGeoCombiTrans(8.225,0.,3.9,GetRot("rot2"))); | 
| 149 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),32,new TGeoCombiTrans(10.575,0.,3.9,GetRot("rot2"))); | 
| 150 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),33,new TGeoCombiTrans(12.925,0.,3.9,GetRot("rot2"))); | 
| 151 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),34,new TGeoCombiTrans(15.275,0.,3.9,GetRot("rot2"))); | 
| 152 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),35,new TGeoCombiTrans(17.625,0.,3.9,GetRot("rot2"))); | 
| 153 |  |  | GetVol("NDBI")->AddNode(GetVol("NDTU"),36,new TGeoCombiTrans(19.975,0.,3.9,GetRot("rot2"))); | 
| 154 |  |  | GetVol("NDBI")->AddNode(GetVol("NDPB"),1,new TGeoTranslation(0.,0.,-5.875)); | 
| 155 |  |  | GetVol("NDBI")->AddNode(GetVol("NDPB"),2,new TGeoTranslation(0.,0.,-3.875)); | 
| 156 |  |  | GetVol("NDBI")->AddNode(GetVol("NDPB"),3,new TGeoTranslation(0.,0.,-1.875)); | 
| 157 |  |  | GetVol("NDBI")->AddNode(GetVol("NDPB"),4,new TGeoTranslation(0.,0.,1.975)); | 
| 158 |  |  | GetVol("NDBI")->AddNode(GetVol("NDPB"),5,new TGeoTranslation(0.,0.,5.825)); | 
| 159 |  |  | GetVol("NDBO")->AddNode(GetVol("NDCO"),1,new TGeoTranslation(0.,0.,7.)); | 
| 160 |  |  | GetVol("NDCO")->AddNode(GetVol("NDCM"),1,new TGeoTranslation(0.,-16.95,0.175)); | 
| 161 |  |  | GetVol("NDCO")->AddNode(GetVol("NDCM"),2,new TGeoTranslation(0.,16.95,0.175)); | 
| 162 |  |  | GetVol("NDCO")->AddNode(GetVol("NDCI"),1,new TGeoTranslation(0.,0.,0.175)); | 
| 163 |  |  | GetVol("NDCO")->AddNode(GetVol("NDCE"),1,new TGeoTranslation(0.,-25.475,0.175)); | 
| 164 |  |  | GetVol("NDCO")->AddNode(GetVol("NDCE"),2,new TGeoTranslation(0.,25.475,0.175)); | 
| 165 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSM"),1,new TGeoTranslation(-23.6,-14.6,0.175)); | 
| 166 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSM"),2,new TGeoTranslation(23.6,-14.6,0.175)); | 
| 167 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSM"),3,new TGeoTranslation(-23.6,14.6,0.175)); | 
| 168 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSM"),4,new TGeoTranslation(23.6,14.6,0.175)); | 
| 169 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSI"),1,new TGeoTranslation(-23.6,0.,0.175)); | 
| 170 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSI"),2,new TGeoTranslation(23.6,0.,0.175)); | 
| 171 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSE"),1,new TGeoTranslation(-20.4,-23.65,0.175)); | 
| 172 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSE"),2,new TGeoTranslation(20.4,-23.65,0.175)); | 
| 173 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSE"),3,new TGeoTranslation(-20.4,23.65,0.175)); | 
| 174 |  |  | GetVol("NDCO")->AddNode(GetVol("NDSE"),4,new TGeoTranslation(20.4,23.65,0.175)); | 
| 175 |  |  | GetVol("NDBO")->AddNode(GetVol("NDBS"),1,new TGeoTranslation(0.,-25.725,-0.5)); | 
| 176 |  |  | GetVol("NDBS")->AddNode(GetVol("NDSS"),1,gGeoIdentity); | 
| 177 |  |  | GetVol("NDBO")->AddNode(GetVol("NDBS"),2,new TGeoTranslation(0.,25.725,-0.5)); | 
| 178 |  |  |  | 
| 179 |  |  |  | 
| 180 |  |  | SetMotherProp(GetVol("NDBO"),1,new TGeoTranslation(0.,0.,-6.289)); | 
| 181 |  |  |  | 
| 182 |  |  | }; | 
| 183 |  |  |  | 
| 184 |  |  | void  PamVMCDetND::DefineCuts(){ | 
| 185 |  |  |  | 
| 186 |  |  | TString  s ="ALUMINIUM"; // default GPAMELA parameters | 
| 187 |  |  | if (GetMed(s) && !GetCC(s)) | 
| 188 |  |  | SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 189 |  |  | 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); | 
| 190 |  |  | s ="N2 GAS"; | 
| 191 |  |  | if (GetMed(s) && !GetCC(s)) | 
| 192 |  |  | SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 193 |  |  | 0.001, 0.01, 1., 1., 1., 0., 0., 1., 1., 4., 1., 1., 2., 1.)); | 
| 194 |  |  | s = "IRON";  //default GPAMELA parameters | 
| 195 |  |  | if (GetMed(s) && !GetCC(s)) | 
| 196 |  |  | SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 197 |  |  | 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); | 
| 198 |  |  | s = "CADMIUM"; //default GPAMELA parameters | 
| 199 |  |  | if (GetMed(s) && !GetCC(s)) | 
| 200 |  |  | SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 201 |  |  | 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); | 
| 202 |  |  | s = "He3"; | 
| 203 |  |  | if (GetMed(s) && !GetCC(s)) //default GPAMELA parameters | 
| 204 |  |  | SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 205 |  |  | 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); | 
| 206 |  |  | s = "POLYETHYLENE"; //default GPAMELA parameters | 
| 207 |  |  | if (GetMed(s) && !GetCC(s)) | 
| 208 |  |  | SetCC(s, new pCutControl(GetMedID(s), 0.0001, 0.001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, | 
| 209 |  |  | 0.001, 0.01, 1., 1., 1., 0., 1., 1., 1., 4., 1., 1., 1., 1.)); | 
| 210 |  |  | } | 
| 211 |  |  |  |