source: trunk/examples/advanced/hadrontherapy/include/HadrontherapyModulator.hh @ 1282

Last change on this file since 1282 was 807, checked in by garnier, 16 years ago

update

File size: 10.5 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26// ----------------------------------------------------------------------------
27//                 GEANT 4 - Hadrontherapy example
28// ----------------------------------------------------------------------------
29// Code developed by:
30//
31// G.A.P. Cirrone(a)*, F. Di Rosa(a), S. Guatelli(b), G. Russo(a)
32//
33// (a) Laboratori Nazionali del Sud
34//     of the National Institute for Nuclear Physics, Catania, Italy
35// (b) National Institute for Nuclear Physics Section of Genova, genova, Italy
36//
37// * cirrone@lns.infn.it
38// ----------------------------------------------------------------------------
39
40#ifndef HadrontherapyModulator_H
41#define HadrontherapyModulator_H 1
42
43class G4Tubs;
44class G4LogicalVolume;
45class G4VPhysicalVolume;
46
47
48class HadrontherapyModulator
49{
50public:
51
52  HadrontherapyModulator();
53  ~HadrontherapyModulator();
54
55  void BuildModulator(G4VPhysicalVolume*); 
56  void SetModulatorAngle(G4double);
57
58private:
59
60  G4RotationMatrix* rm;
61  G4VPhysicalVolume* physiMotherMod;
62
63  G4Tubs*            solidMod0;   
64  G4LogicalVolume*   logicMod0;   
65  G4VPhysicalVolume* physiMod0;
66 
67 
68  G4Tubs*            solidMod1;   
69  G4LogicalVolume*   logicMod1;   
70  G4VPhysicalVolume* physiMod1;
71 
72  G4Tubs*            solidMod2;   
73  G4LogicalVolume*   logicMod2;   
74  G4VPhysicalVolume* physiMod2;
75 
76  G4Tubs*            solidMod3;   
77  G4LogicalVolume*   logicMod3;   
78  G4VPhysicalVolume* physiMod3;
79 
80  G4Tubs*            solidMod4; 
81  G4LogicalVolume*   logicMod4; 
82  G4VPhysicalVolume* physiMod4;
83
84  G4Tubs*            solidMod5; 
85  G4LogicalVolume*   logicMod5;   
86  G4VPhysicalVolume* physiMod5;
87 
88  G4Tubs*            solidMod6; 
89  G4LogicalVolume*   logicMod6; 
90  G4VPhysicalVolume* physiMod6;
91 
92  G4Tubs*            solidMod7;   
93  G4LogicalVolume*   logicMod7;   
94  G4VPhysicalVolume* physiMod7;
95 
96  G4Tubs*            solidMod8; 
97  G4LogicalVolume*   logicMod8;   
98  G4VPhysicalVolume* physiMod8;
99 
100  G4Tubs*            solidMod9;   
101  G4LogicalVolume*   logicMod9;   
102  G4VPhysicalVolume* physiMod9;
103 
104  G4Tubs*            solidMod10;   
105  G4LogicalVolume*   logicMod10; 
106  G4VPhysicalVolume* physiMod10;
107 
108  G4Tubs*            solidMod11;   
109  G4LogicalVolume*   logicMod11; 
110  G4VPhysicalVolume* physiMod11;
111 
112  G4Tubs*            solidMod12;   
113  G4LogicalVolume*   logicMod12; 
114  G4VPhysicalVolume* physiMod12;
115 
116  G4Tubs*            solidMod13; 
117  G4LogicalVolume*   logicMod13;   
118  G4VPhysicalVolume* physiMod13;
119 
120  G4Tubs*            solidMod14;   
121  G4LogicalVolume*   logicMod14; 
122  G4VPhysicalVolume* physiMod14;
123 
124  G4Tubs*            solidMod15; 
125  G4LogicalVolume*   logicMod15; 
126  G4VPhysicalVolume* physiMod15;
127 
128  G4Tubs*            solidMod16;   
129  G4LogicalVolume*   logicMod16;   
130  G4VPhysicalVolume* physiMod16;
131 
132  G4Tubs*            solidMod17; 
133  G4LogicalVolume*   logicMod17; 
134  G4VPhysicalVolume* physiMod17;
135 
136  G4Tubs*            solidMod18;   
137  G4LogicalVolume*   logicMod18; 
138  G4VPhysicalVolume* physiMod18;
139 
140  G4Tubs*            solidMod20; 
141  G4LogicalVolume*   logicMod20; 
142  G4VPhysicalVolume* physiMod20;
143
144  G4Tubs*            solidMod21; 
145  G4LogicalVolume*   logicMod21;   
146  G4VPhysicalVolume* physiMod21;
147
148  G4Tubs*            solidMod22;   
149  G4LogicalVolume*   logicMod22; 
150  G4VPhysicalVolume* physiMod22;
151 
152  G4Tubs*            solidMod23;   
153  G4LogicalVolume*   logicMod23; 
154  G4VPhysicalVolume* physiMod23;
155 
156  G4Tubs*            solidMod24; 
157  G4LogicalVolume*   logicMod24; 
158  G4VPhysicalVolume* physiMod24;
159
160  G4Tubs*            solidMod25;   
161  G4LogicalVolume*   logicMod25; 
162  G4VPhysicalVolume* physiMod25;
163
164  G4Tubs*            solidMod26;   
165  G4LogicalVolume*   logicMod26; 
166  G4VPhysicalVolume* physiMod26;
167 
168  G4Tubs*            solidMod27; 
169  G4LogicalVolume*   logicMod27; 
170  G4VPhysicalVolume* physiMod27;
171 
172  G4Tubs*            solidMod28; 
173  G4LogicalVolume*   logicMod28; 
174  G4VPhysicalVolume* physiMod28;
175 
176  G4Tubs*            solidMod29;   
177  G4LogicalVolume*   logicMod29; 
178  G4VPhysicalVolume* physiMod29;
179 
180  G4Tubs*            solidMod30; 
181  G4LogicalVolume*   logicMod30; 
182  G4VPhysicalVolume* physiMod30;
183 
184  G4Tubs*            solidMod31;   
185  G4LogicalVolume*   logicMod31; 
186  G4VPhysicalVolume* physiMod31;
187 
188  G4Tubs*            solidMod32; 
189  G4LogicalVolume*   logicMod32;   
190  G4VPhysicalVolume* physiMod32;
191 
192  G4Tubs*            solidMod33; 
193  G4LogicalVolume*   logicMod33;   
194  G4VPhysicalVolume* physiMod33;
195 
196  G4Tubs*            solidMod34;   
197  G4LogicalVolume*   logicMod34; 
198  G4VPhysicalVolume* physiMod34;
199 
200  G4Tubs*            solidMod35; 
201  G4LogicalVolume*   logicMod35; 
202  G4VPhysicalVolume* physiMod35;
203
204  G4Tubs*            solidMod36; 
205  G4LogicalVolume*   logicMod36; 
206  G4VPhysicalVolume* physiMod36;
207 
208  G4Tubs*            solidMod37;   
209  G4LogicalVolume*   logicMod37;   
210  G4VPhysicalVolume* physiMod37;
211
212  G4Tubs*            solidMod38; 
213  G4LogicalVolume*   logicMod38;   
214  G4VPhysicalVolume* physiMod38;
215 
216 
217  G4Tubs*            solidMod40;   // pointer to the
218  G4LogicalVolume*   logicMod40; 
219  G4VPhysicalVolume* physiMod40;
220 
221  G4Tubs*            solidMod41;   
222  G4LogicalVolume*   logicMod41; 
223  G4VPhysicalVolume* physiMod41;
224 
225  G4Tubs*            solidMod42; 
226  G4LogicalVolume*   logicMod42; 
227  G4VPhysicalVolume* physiMod42;
228 
229  G4Tubs*            solidMod43;   
230  G4LogicalVolume*   logicMod43; 
231  G4VPhysicalVolume* physiMod43;
232 
233  G4Tubs*            solidMod44; 
234  G4LogicalVolume*   logicMod44;   
235  G4VPhysicalVolume* physiMod44;
236 
237  G4Tubs*            solidMod45;   
238  G4LogicalVolume*   logicMod45;   
239  G4VPhysicalVolume* physiMod45;
240
241  G4Tubs*            solidMod46;   
242  G4LogicalVolume*   logicMod46;   
243  G4VPhysicalVolume* physiMod46;
244 
245  G4Tubs*            solidMod47; 
246  G4LogicalVolume*   logicMod47; 
247  G4VPhysicalVolume* physiMod47;
248 
249  G4Tubs*            solidMod48;   
250  G4LogicalVolume*   logicMod48; 
251  G4VPhysicalVolume* physiMod48;
252 
253  G4Tubs*            solidMod49;   
254  G4LogicalVolume*   logicMod49; 
255  G4VPhysicalVolume* physiMod49;
256 
257  G4Tubs*            solidMod50;   
258  G4LogicalVolume*   logicMod50; 
259  G4VPhysicalVolume* physiMod50;
260 
261  G4Tubs*            solidMod51; 
262  G4LogicalVolume*   logicMod51; 
263  G4VPhysicalVolume* physiMod51;
264
265  G4Tubs*            solidMod52; 
266  G4LogicalVolume*   logicMod52;   
267  G4VPhysicalVolume* physiMod52;
268 
269  G4Tubs*            solidMod53; 
270  G4LogicalVolume*   logicMod53; 
271  G4VPhysicalVolume* physiMod53;
272 
273  G4Tubs*            solidMod54; 
274  G4LogicalVolume*   logicMod54;   
275  G4VPhysicalVolume* physiMod54;
276
277  G4Tubs*            solidMod55;   
278  G4LogicalVolume*   logicMod55;   
279  G4VPhysicalVolume* physiMod55;
280 
281  G4Tubs*            solidMod56;   
282  G4LogicalVolume*   logicMod56; 
283  G4VPhysicalVolume* physiMod56;
284
285  G4Tubs*            solidMod57;   
286  G4LogicalVolume*   logicMod57; 
287  G4VPhysicalVolume* physiMod57;
288 
289  G4Tubs*            solidMod58;   
290  G4LogicalVolume*   logicMod58;   
291  G4VPhysicalVolume* physiMod58;
292
293  G4Tubs*            solidMod60;   
294  G4LogicalVolume*   logicMod60;   
295  G4VPhysicalVolume* physiMod60;
296 
297  G4Tubs*            solidMod61;   
298  G4LogicalVolume*   logicMod61;   
299  G4VPhysicalVolume* physiMod61;
300 
301  G4Tubs*            solidMod62; 
302  G4LogicalVolume*   logicMod62;   
303  G4VPhysicalVolume* physiMod62;
304   
305  G4Tubs*            solidMod63; 
306  G4LogicalVolume*   logicMod63;   
307  G4VPhysicalVolume* physiMod63;
308
309  G4Tubs*            solidMod64; 
310  G4LogicalVolume*   logicMod64; 
311  G4VPhysicalVolume* physiMod64;
312 
313  G4Tubs*            solidMod65; 
314  G4LogicalVolume*   logicMod65; 
315  G4VPhysicalVolume* physiMod65;
316 
317  G4Tubs*            solidMod66; 
318  G4LogicalVolume*   logicMod66; 
319  G4VPhysicalVolume* physiMod66;
320 
321  G4Tubs*            solidMod67; 
322  G4LogicalVolume*   logicMod67; 
323  G4VPhysicalVolume* physiMod67;
324 
325  G4Tubs*            solidMod68; 
326  G4LogicalVolume*   logicMod68;   
327  G4VPhysicalVolume* physiMod68;
328 
329  G4Tubs*            solidMod69;   
330  G4LogicalVolume*   logicMod69; 
331  G4VPhysicalVolume* physiMod69;
332 
333  G4Tubs*            solidMod70; 
334  G4LogicalVolume*   logicMod70;   
335  G4VPhysicalVolume* physiMod70;
336 
337  G4Tubs*            solidMod71; 
338  G4LogicalVolume*   logicMod71;   
339  G4VPhysicalVolume* physiMod71;
340 
341  G4Tubs*            solidMod72; 
342  G4LogicalVolume*   logicMod72; 
343  G4VPhysicalVolume* physiMod72;
344   
345  G4Tubs*            solidMod73;   
346  G4LogicalVolume*   logicMod73; 
347  G4VPhysicalVolume* physiMod73;
348 
349  G4Tubs*            solidMod74;   
350  G4LogicalVolume*   logicMod74;   
351  G4VPhysicalVolume* physiMod74;
352 
353  G4Tubs*            solidMod75; 
354  G4LogicalVolume*   logicMod75; 
355  G4VPhysicalVolume* physiMod75;
356 
357  G4Tubs*            solidMod76;   
358  G4LogicalVolume*   logicMod76; 
359  G4VPhysicalVolume* physiMod76;
360
361  G4Tubs*            solidMod77; 
362  G4LogicalVolume*   logicMod77; 
363  G4VPhysicalVolume* physiMod77;
364 
365  G4Tubs*            solidMod78;   
366  G4LogicalVolume*   logicMod78; 
367  G4VPhysicalVolume* physiMod78;
368   
369};
370#endif
Note: See TracBrowser for help on using the repository browser.