100{
101
102
103
104
105
106
107
108 new TGeoManager("E03_geometry", "E03 VMC example geometry");
109
110
111
112 TString name;
113 Double_t a;
114 Double_t z;
115 Double_t density;
116
117
118
119
120
121 new TGeoMaterial("Aluminium", a = 26.98, z = 13., density = 2.700);
122
123 new TGeoMaterial("liquidArgon", a = 39.95, z = 18., density = 1.390);
124
125 new TGeoMaterial("Lead", a = 207.19, z = 82., density = 11.35);
126
127
128
129
130
131
132
133 TGeoElement* elH = new TGeoElement("Hydrogen", "H", z = 1, a = 1.01);
134 TGeoElement* elC = new TGeoElement("Carbon", "C", z = 6., a = 12.01);
135 TGeoElement* elN = new TGeoElement("Nitrogen", "N", z = 7., a = 14.01);
136 TGeoElement* elO = new TGeoElement("Oxygen", "O", z = 8., a = 16.00);
137 TGeoElement* elSi = new TGeoElement("Silicon", "Si", z = 14., a = 28.09);
138
139
140
141
142
143
144
145
146
147
148
149
150
151 TGeoMixture* matH2O = new TGeoMixture("Water", 2, density = 1.000);
152 matH2O->AddElement(elH, 2);
153 matH2O->AddElement(elO, 1);
154
155
156
157
158 TGeoMixture* matSci = new TGeoMixture("Scintillator", 2, density = 1.032);
159 matSci->AddElement(elC, 9);
160 matSci->AddElement(elH, 10);
161
162 TGeoMixture* matMyl = new TGeoMixture("Mylar", 3, density = 1.397);
163 matMyl->AddElement(elC, 10);
164 matMyl->AddElement(elH, 8);
165 matMyl->AddElement(elO, 4);
166
167 TGeoMixture* matSiO2 = new TGeoMixture("quartz", 2, density = 2.200);
168 matSiO2->AddElement(elSi, 1);
169 matSiO2->AddElement(elO, 2);
170
171
172
173
174
175 TGeoMixture* matAir = new TGeoMixture("Air", 2, density = 1.29e-03);
176 matAir->AddElement(elN, 0.7);
177 matAir->AddElement(elO, 0.3);
178
179
180
181
182
183
184 TGeoMixture* matAerog = new TGeoMixture("Aerogel", 3, density = 0.200);
185 matAerog->AddElement(matSiO2, 0.625);
186 matAerog->AddElement(matH2O, 0.374);
187 matAerog->AddElement(elC, 0.001);
188
189
190
191
192
193 TGeoMixture* matCO2 = new TGeoMixture("CarbonicGas", 2, density = 1.842e-03);
194 matCO2->AddElement(elC, 1);
195 matCO2->AddElement(elO, 2);
196
197 Double_t atmosphere = 6.32421e+08;
198 Double_t pressure = 50. * atmosphere;
199 Double_t temperature = 325.;
200 matCO2->SetPressure(pressure);
201 matCO2->SetTemperature(temperature);
202 matCO2->SetState(TGeoMaterial::kMatStateGas);
203
204 TGeoMixture* matSteam = new TGeoMixture("WaterSteam", 1, density = 0.3e-03);
205 matSteam->AddElement(matH2O, 1.0);
206
207 pressure = 2. * atmosphere;
208 temperature = 500.;
209 matSteam->SetPressure(pressure);
210 matSteam->SetTemperature(temperature);
211 matSteam->SetState(TGeoMaterial::kMatStateGas);
212
213
214
215
216
217 new TGeoMaterial("Galactic", a = 1.e-16, z = 1.e-16, density = 1.e-16);
218
219 TGeoMixture* matBeam = new TGeoMixture("Beam", 1, density = 1.e-5);
220 matBeam->AddElement(matAir, 1.0);
221
222 pressure = 2. * atmosphere;
223 temperature = STP_temperature;
224 matBeam->SetPressure(pressure);
225 matBeam->SetTemperature(temperature);
226 matBeam->SetState(TGeoMaterial::kMatStateGas);
227
228
229
230
231
232
233 Double_t param[20];
234 param[0] = 0;
235 param[1] = 2;
236 param[2] = 10.;
237 param[3] = -20.;
238 param[4] = -0.01;
239 param[5] = -.3;
240 param[6] = .001;
241 param[7] = -.8;
242 for (Int_t i = 8; i < 20; ++i) param[i] = 0.;
243
244 Int_t mediumId = 0;
245 TList* materials = gGeoManager->GetListOfMaterials();
246 TIter next(materials);
247 while (
TObject* obj = next()) {
248 TGeoMaterial* material = (TGeoMaterial*)obj;
249 new TGeoMedium(material->GetName(), ++mediumId, material, param);
250 }
251}