QwGeant4
QweakSimPMTOnly.cc
Go to the documentation of this file.
1 
2 // QweakSimPMTOnly.cc
3 // Marty McHugh
4 // 2013-06-11
5 
6 /////// --------------------------------------------------------------------
7 
8 #include "QweakSimPMTOnly.hh"
9 
10 //--- geant4 includes
11 #include "G4RunManager.hh"
12 #include "G4VisAttributes.hh"
13 
14 //--- user includes
15 #include "QweakSimSolids.hh"
16 #include "QweakSimMaterial.hh"
19 #include "QweakSimPMTOnly_PMTSD.hh"
21 
22 /////// --------------------------------------------------------------------
23 
25 {
26  //--- Initialize Pointers
27  myUserInfo = userInfo;
28 
29  PMTOnlySD = NULL;
30  PMTOnly_PMTSD = NULL;
31 
32  PMTOnlyMessenger = NULL;
33 
34  pMaterial = NULL;
35 
41 
42  PMTOnly_Solid = NULL;
43  PMTOnly_Logical = NULL;
44  PMTOnly_Physical = NULL;
45  PMTOnly_Material = NULL;
46  PMTOnly_VisAtt = NULL;
47 
52 
57 
58  PMTOnlyCathode_Solid = NULL;
62 
63  //--- Set Initial Values
64  MD5_CenterPosition_X = -335.17*cm;
65  MD5_CenterPosition_Y = 0.0*cm;
66  MD5_CenterPosition_Z = 577.88*cm;
67 
71 
72  PMTOnlyContainer_CenterPosition_X = -320.0*cm; // Default:-320 cm
73  PMTOnlyContainer_CenterPosition_Y = -50.00*cm; // Default: -50 cm
74  PMTOnlyContainer_CenterPosition_Z = 775.00*cm; // Default: 775 cm
75 
76  //--- All following coordinates are w.r.t.
77  //--- the center of the Mother Volume.
78 
79  PMTOnly_FullLength_X = 18.00*cm;
80  PMTOnly_FullLength_Y = 18.00*cm;
81  PMTOnly_FullLength_Z = 1.25*cm;
82 
83  PMTOnly_CenterPosition_X = 0.00*cm;
84  PMTOnly_CenterPosition_Y = 0.00*cm;
85  PMTOnly_CenterPosition_Z = 0.00*cm;
86 
87  PMTOnlyContainer_TiltAngle_X = 0.00*degree;
88  PMTOnlyContainer_TiltAngle_Y = 0.00*degree;
89  PMTOnlyContainer_TiltAngle_Z = 0.00*degree;
90 
93 
97 
100 
101  PMTOnlyEntranceWindow_X = 0.0*cm;
102  PMTOnlyEntranceWindow_Y = 0.0*cm;
105 
106  G4double ReductionInPhotoPMTOnlyCathodeDiameter = 5*mm;
107 
108  PMTOnlyCathode_Thickness = 1.0*mm;
109  PMTOnlyCathode_Diameter = PMTOnlyEntranceWindow_Diameter - ReductionInPhotoPMTOnlyCathodeDiameter;
110 
111  PMTOnlyCathode_X = 0.0*cm;
112  PMTOnlyCathode_Y = 0.0*cm;
115 
117 
119 }
120 
121 
122 /////// --------------------------------------------------------------------
123 
125 {
126  /* --- Delete Pointers
127  if (PMTOnlySD) delete PMTOnlySD;
128 
129  if (pMaterial) delete pMaterial;
130  if (PMTOnlyMessenger) delete PMTOnlyMessenger;
131 
132  if (PMTOnlyContainer_Solid) delete PMTOnlyContainer_Solid;
133  if (PMTOnlyContainer_Logical) delete PMTOnlyContainer_Logical;
134  if (PMTOnlyContainer_Physical) delete PMTOnlyContainer_Physical;
135  if (PMTOnlyContainer_Material) delete PMTOnlyContainer_Material;
136  if (PMTOnlyContainer_VisAtt) delete PMTOnlyContainer_VisAtt;
137 
138  if (PMTOnly_VisAtt) delete PMTOnly_VisAtt;
139  if (PMTOnly_Material) delete PMTOnly_Material;
140  if (PMTOnly_Physical) delete PMTOnly_Physical;
141  if (PMTOnly_Logical) delete PMTOnly_Logical;
142  if (PMTOnly_Solid) delete PMTOnly_Solid;
143 
144  if (PMTOnlyQuartzOpticalFilm_Material) delete PMTOnlyQuartzOpticalFilm_Material;
145  if (PMTOnlyQuartzOpticalFilm_Physical) delete PMTOnlyQuartzOpticalFilm_Physical;
146  if (PMTOnlyQuartzOpticalFilm_Logical) delete PMTOnlyQuartzOpticalFilm_Logical;
147  if (PMTOnlyQuartzOpticalFilm_Solid) delete PMTOnlyQuartzOpticalFilm_Solid;
148 
149  if (PMTOnlyEntranceWindow_Material) delete PMTOnlyEntranceWindow_Material;
150  if (PMTOnlyEntranceWindow_Physical) delete PMTOnlyEntranceWindow_Physical;
151  if (PMTOnlyEntranceWindow_Logical) delete PMTOnlyEntranceWindow_Logical;
152  if (PMTOnlyEntranceWindow_Solid) delete PMTOnlyEntranceWindow_Solid;
153 
154  if (PMTOnlyCathode_Material) delete PMTOnlyCathode_Material;
155  if (PMTOnlyCathode_Physical) delete PMTOnlyCathode_Physical;
156  if (PMTOnlyCathode_Logical) delete PMTOnlyCathode_Logical;
157  if (PMTOnlyCathode_Solid) delete PMTOnlyCathode_Solid;
158  */
159 }
160 
161 
162 /////// --------------------------------------------------------------------
163 
164 void QweakSimPMTOnly::ConstructComponent(G4VPhysicalVolume* MotherVolume)
165 {
166 
167  //--- Materials
172  PMTOnlyCathode_Material = pMaterial->GetMaterial("Photocathode");
173 
174  //--- Define Mother Solid Volume;
175  PMTOnlyContainer_Solid = new G4Box("PMTOnlyContainer_Solid",
179 
180  //--- Define Mother Logical Volume;
181  PMTOnlyContainer_Logical = new G4LogicalVolume(PMTOnlyContainer_Solid,
183  "PMTOnlyContainer_Logical",
184  0,0,0);
185 
186  //--- Define Mother Placement and Physical Volume
190  PMTOnlyContainer_RotationMatrix = new G4RotationMatrix();
192 
195  "PMTOnlyContainer_Physical",
197  MotherVolume,
198  false,
199  0);
200 
201  //--- Define PMTOnly Solid Volume
202  PMTOnly_Solid = new G4Box("PMTOnly_Solid",
203  0.5*PMTOnly_FullLength_X, // X Length
204  0.5*PMTOnly_FullLength_Y, // Y Length
205  0.5*PMTOnly_FullLength_Z); // Z Length
206 
207  //--- Define PMTOnly Logical Volume
208  PMTOnly_Logical = new G4LogicalVolume(PMTOnly_Solid,
210  "PMTOnly_Logical",
211  0,0,0);
212 
213  //--- Define PMTOnly Physical Volume
217 
218  PMTOnly_Physical = new G4PVPlacement(0,
220  "PMTOnly_Physical",
223  false,
224  0);
225 
226 
227  //--- Define PMTOnlyQuartzOpticalFilm Solid
228  PMTOnlyQuartzOpticalFilm_Solid = new G4Tubs("PMTOnlyQuartzOpticalFilm_Solid",
229  0.00*cm,
232  0.0*degree,
233  360.0*degree);
234 
235  //--- Define PMTOnlyQuartzOpticaFilm Logical
238  "PMTOnlyQuartzOpticalFilm_Logical");
239 
240  //--- Define PMTOnlyQuartzOpticalFilm Physical Volume & Placement.
241  G4ThreeVector PMTOnlyQuartzOpticalFilm_Position(PMTOnlyQuartzOpticalFilm_X,
244 
245  PMTOnlyQuartzOpticalFilm_Physical = new G4PVPlacement(0,
246  PMTOnlyQuartzOpticalFilm_Position,
247  "PMTOnlyQuartzOpticalFilm_Physical",
250  false,
251  0);
252 
253  //--- Define PMTOnlyEntranceWindow Solid
254  PMTOnlyEntranceWindow_Solid = new G4Tubs("PMTOnlyEntranceWindow_Solid",
255  0.00*cm,
258  0.0*degree,
259  360.0*degree);
260 
261  //--- Define PMTOnlyEntranceWindow Logical
264  "PMTOnlyEntranceWindow_Logical");
265 
266  //--- Define PMTOnlyEntranceWindow Physical Volume & Placement
267  G4ThreeVector PMTOnlyEntranceWindow_Position(PMTOnlyEntranceWindow_X,
270 
271  PMTOnlyEntranceWindow_Physical = new G4PVPlacement(0,
272  PMTOnlyEntranceWindow_Position,
273  "PMTOnlyEntranceWindow_Physical",
276  false,
277  0);
278 
279  //--- Define PMTOnlyCathode Solid
280  PMTOnlyCathode_Solid = new G4Tubs("PMTOnlyCathode_Solid",
281  0.00*cm,
284  0.0*degree,
285  360.0*degree);
286 
287  //--- Define PMTOnlyCathode Logical
288  PMTOnlyCathode_Logical = new G4LogicalVolume(PMTOnlyCathode_Solid,
290  "PMTOnlyCathode_Logical");
291 
292  //--- Define PMTOnlyCathode Placement & Physical Volume
293  G4ThreeVector PMTOnlyCathode_Position(PMTOnlyCathode_X,
296 
297  PMTOnlyCathode_Physical = new G4PVPlacement(0,
298  PMTOnlyCathode_Position,
299  "PMTOnlyCathode_Physical",
302  false,
303  0);
304 
305  ////////////////////////////
306  // Optical Photon Stuff //
307  ////////////////////////////
308 
309  // All code below copied from QweakSimCerenkov.cc
310  const G4int nEntries = 11;
311  G4double PhotonEnergy[nEntries] = {
312  1.54986*eV, //800.59 nm
313  1.77127*eV, //700.51 nm
314  2.06648*eV, //600.44 nm
315  2.47978*eV, //500.37 nm
316  2.8178*eV, //440.34 nm
317  3.09973*eV, //400.29 nm
318  3.5424*eV, //350.27 nm
319  4.13297*eV, //300.22 nm
320  4.95956*eV, //250.18 nm
321  5.51063*eV, //225.16 nm
322  5.90424*eV //210.15 nm
323  };
324 
325  G4double PhotoPMTOnlyCathode_Efficiency[nEntries] = {
326  0.0080, //800.59 nm
327  0.0298, //700.51 nm
328  0.0638, //600.44 nm
329  0.1240, //500.37 nm
330  0.1670, //440.34 nm
331  0.1770, //400.29 nm
332  0.1800, //350.27 nm
333  0.2110, //300.22 nm
334  0.1780, //250.18 nm
335  0.0890, //225.16 nm
336  0.0355 //210.15 nm
337  };
338 
339  G4double PhotoPMTOnlyCathode_Reflectivity[nEntries] = {
340  0.25, //800 nm
341  0.25, //700 nm
342  0.25, //600 nm
343  0.25, //500 nm
344  0.25, //440 nm
345  0.25, //400 nm
346  0.25, //350 nm
347  0.25, //300 nm
348  0.25, //250 nm
349  0.25, //225 nm
350  0.25 //210 nm
351  };
352 
353  G4double Reflectivity[nEntries];
354  for (G4int kk= 0; kk < nEntries; kk++) {
355  G4double mylambda = (h_Planck*c_light/PhotonEnergy[kk])/nanometer;
356 
357  // Nevens empiric formular for the reflectivity
358  Reflectivity[kk] = 1.0 - 0.027*exp(-0.004608*mylambda);
359  };
360 
361  G4OpticalSurface* LightGuide_OpticalSurface = new G4OpticalSurface("LightGuideOpticalSurface");
362  LightGuide_OpticalSurface->SetType(dielectric_dielectric);
363  LightGuide_OpticalSurface->SetFinish(polished);
364  LightGuide_OpticalSurface->SetPolish(0.997);
365  LightGuide_OpticalSurface->SetModel(glisur);
366 
367  G4MaterialPropertiesTable *quartzST = new G4MaterialPropertiesTable();
368  quartzST->AddProperty("REFLECTIVITY", PhotonEnergy , Reflectivity, nEntries);
369  LightGuide_OpticalSurface->SetMaterialPropertiesTable(quartzST);
370 
371  G4OpticalSurface* PhotoPMTOnlyCathode_OpticalSurface = new G4OpticalSurface("PhotoPMTOnlyCathode_OS");
372  PhotoPMTOnlyCathode_OpticalSurface ->SetType(dielectric_metal);
373  PhotoPMTOnlyCathode_OpticalSurface ->SetFinish(polished);
374  PhotoPMTOnlyCathode_OpticalSurface ->SetModel(glisur);
375 
376  G4MaterialPropertiesTable* PhotoPMTOnlyCathode_MPT = new G4MaterialPropertiesTable();
377  PhotoPMTOnlyCathode_MPT->AddProperty("REFLECTIVITY", PhotonEnergy, PhotoPMTOnlyCathode_Reflectivity,nEntries);
378  PhotoPMTOnlyCathode_MPT->AddProperty("EFFICIENCY", PhotonEnergy, PhotoPMTOnlyCathode_Efficiency,nEntries);
379  PhotoPMTOnlyCathode_OpticalSurface->SetMaterialPropertiesTable(PhotoPMTOnlyCathode_MPT);
380 
381  new G4LogicalBorderSurface("PMT_BorderSurface",
384  PhotoPMTOnlyCathode_OpticalSurface);
385 
386 
387  ////////////////////////////////////
388  // Define Visulization Attributes //
389  ////////////////////////////////////
390 
391  PMTOnlyContainer_VisAtt = new G4VisAttributes(G4Colour::White());
392  PMTOnlyContainer_VisAtt->SetVisibility(true);
393  PMTOnlyContainer_VisAtt->SetForceWireframe(true);
395 
396  PMTOnly_VisAtt = new G4VisAttributes(G4Colour::Blue());
397  PMTOnly_VisAtt->SetVisibility(true);
398  PMTOnly_Logical->SetVisAttributes(PMTOnly_VisAtt);
399 
400  G4VisAttributes* QuartzGlueFilm_VisAtt = new G4VisAttributes(G4Colour::White());
401  QuartzGlueFilm_VisAtt->SetVisibility(true);
402  PMTOnlyQuartzOpticalFilm_Logical->SetVisAttributes(QuartzGlueFilm_VisAtt);
403 
404  G4VisAttributes* PMTOnlyEntranceWindow_VisAtt = new G4VisAttributes(G4Colour::Grey());
405  PMTOnlyEntranceWindow_VisAtt->SetVisibility(true);
406  PMTOnlyEntranceWindow_Logical->SetVisAttributes(PMTOnlyEntranceWindow_VisAtt);
407 
408  G4VisAttributes* PMTOnlyCathode_VisAtt = new G4VisAttributes(G4Colour::Magenta());
409  PMTOnlyCathode_VisAtt->SetVisibility(true);
410  PMTOnlyCathode_Logical->SetVisAttributes(PMTOnlyCathode_VisAtt);
411 
412  ///////////////////////////////////////////
413  // Define Sensitive Detectors to PMTOnly //
414  ///////////////////////////////////////////
415 
416  G4SDManager* SDman = G4SDManager::GetSDMpointer();
417 
418  PMTOnlySD = new QweakSimPMTOnly_DetectorSD("PMTOnlySD");
419  SDman -> AddNewDetector(PMTOnlySD);
420  PMTOnly_Logical -> SetSensitiveDetector(PMTOnlySD);
421 
422  PMTOnly_PMTSD = new QweakSimPMTOnly_PMTSD("PMTOnly_PMTSD", myUserInfo);
423  SDman -> AddNewDetector(PMTOnly_PMTSD);
424  PMTOnlyCathode_Logical -> SetSensitiveDetector(PMTOnly_PMTSD);
425 
426 }
427 
428 
429 /////// --------------------------------------------------------------------
430 
432 {
433 }
434 
435 
436 
437 /////// --------------------------------------------------------------------
438 
439 void QweakSimPMTOnly::SetPMTOnly_Material(G4String materialName)
440 {
441  //--- Set PMTOnly Material
442 
443  G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
444 
445  if (pttoMaterial)
446  {
447  G4cout << "=== Changing PMTOnly material: Look up material " << G4endl;
448  PMTOnly_Logical -> SetMaterial(pttoMaterial);
449  G4cout << "=== Changing PMTOnly material: Now the material is " << materialName << G4endl;
450  }
451  else
452  G4cerr << "=== Error: Changing PMTOnly material FAILED! " << G4endl << G4endl;
453 
454 }
455 
456 
457 
458 /////// --------------------------------------------------------------------
459 
461 {
462  //--- Set PMTOnly X Position
463 
464  G4cout << "=== Calling QweakSimPMTOnly::SetPMTOnly_CenterPositionInX() " << G4endl;
466  PMTOnlyContainer_Physical->SetTranslation(G4ThreeVector(PMTOnlyContainer_CenterPosition_X,
469  G4cout << "=== Leaving QweakSimPMTOnly::SetPMTOnly_CenterPositionInX() " << G4endl << G4endl;
470 }
471 
472 
473 
474 /////// --------------------------------------------------------------------
475 
477 {
478  //--- Set PMTOnly Y Position
479 
480  G4cout << "=== Calling QweakSimPMTOnly::SetPMTOnly_CenterPositionInY() " << G4endl;
482  PMTOnlyContainer_Physical->SetTranslation(G4ThreeVector(PMTOnlyContainer_CenterPosition_X,
485  G4cout << "=== Leaving QweakSimPMTOnly::SetPMTOnly_CenterPositionInY() " << G4endl << G4endl;
486 }
487 
488 
489 
490 /////// --------------------------------------------------------------------
491 
493 {
494  //--- Set PMTOnly Z Position
495 
496  G4cout << "=== Calling QweakSimPMTOnly::SetPMTOnly_CenterPositionInZ() " << G4endl;
498  PMTOnlyContainer_Physical->SetTranslation(G4ThreeVector(PMTOnlyContainer_CenterPosition_X,
501  G4cout << "=== Leaving QweakSimPMTOnly::SetPMTOnly_CenterPositionInZ() " << G4endl << G4endl;
502 }
503 
504 
505 /////// --------------------------------------------------------------------
506 
508 {
509  //--- Find PMTOnly Center Position
510  G4double x = GetPMTOnly_CenterPositionInX();
511  G4double y = GetPMTOnly_CenterPositionInY();
512  G4double z = GetPMTOnly_CenterPositionInZ();
513 
514  G4cout << "PMTOnly_X: " << x << G4endl;
515  G4cout << "PMTOnly_Y: " << y << G4endl;
516  G4cout << "PMTOnly_Z: " << z << G4endl;
517 }
518 
519 /////// --------------------------------------------------------------------
520 
522 {
523  //--- Set PMTOnly New X Tilting Angle
524 
525  G4cout << G4endl << "=== Calling QweakSimPMTOnly::SetPMTOnly_TiltAngleInX() " << G4endl;
526 
527  //--- rotate back with old angle
530 
531  //--- assign new tilting angle
532  PMTOnlyContainer_TiltAngle_X = xTiltAngle;
533 
534  //--- rotate to new angle
537 
538  G4cout << G4endl << "=== Leaving QweakSimPMTOnly::SetPMTOnly_TiltAngleInX() " << G4endl << G4endl;
539 }
540 
541 
542 
543 /////// --------------------------------------------------------------------
544 
546 {
547  //--- Set PMTOnly New Y Tilting Angle
548 
549  G4cout << G4endl << "=== Calling QweakSimPMTOnly::SetPMTOnly_TiltAngleInY() " << G4endl;
550 
551  //--- rotate back with old angle
554 
555  //--- assign new tilting angle
556  PMTOnlyContainer_TiltAngle_Y = yTiltAngle;
557 
558  //--- rotate to new angle
561 
562  G4cout << G4endl << "=== Leaving QweakSimPMTOnly::SetPMTOnly_TiltAngleInY() " << G4endl << G4endl;
563 }
564 
565 
566 
567 /////// --------------------------------------------------------------------
568 
570 {
571  //--- Set PMTOnly New Z Tilting Angle
572 
573  G4cout << G4endl << "=== Calling QweakSimPMTOnly::SetPMTOnly_TiltAngleInZ() " << G4endl;
574 
575  //--- rotate back with old angle
578 
579  //--- assign new tilting angle
580  PMTOnlyContainer_TiltAngle_Z = zTiltAngle;
581 
582  //--- rotate to new angle
585 
586  G4cout << G4endl << "=== Leaving QweakSimPMTOnly::SetPMTOnly_TiltAngleInZ() " << G4endl << G4endl;
587 }
588 
589 
590 
591 /////// --------------------------------------------------------------------
592 
594 {
595  //--- Enable the PMTOnly
596 
597  G4cout << "=== Calling QweakSimPMTOnly::SetPMTOnly_Enabled() " << G4endl;
598  PMTOnly_VisAtt -> SetVisibility(true);
599  PMTOnlyContainer_Physical->SetTranslation(G4ThreeVector(PMTOnlyContainer_CenterPosition_X,
602  G4cout << "=== Leaving QweakSimPMTOnly::SetPMTOnly_Enabled() " << G4endl << G4endl;
603 }
604 
605 
606 
607 /////// --------------------------------------------------------------------
608 
610 {
611  //--- Disable the PMTOnly
612 
613  G4cout << "=== Calling QweakSimPMTOnly::SetPMTOnly_Disabled() " << G4endl;
614  PMTOnly_VisAtt -> SetVisibility(false);
615  PMTOnlyContainer_Physical->SetTranslation(G4ThreeVector(PMTOnlyContainer_CenterPosition_X,
617  PMTOnlyContainer_CenterPosition_Z + 400.00*cm));
618  G4cout << "=== Leaving QweakSimPMTOnly::SetPMTOnly_Disabled() " << G4endl << G4endl;
619 }
620 
621 
622 /////// --------------------------------------------------------------------
623 
G4double PMTOnlyContainer_TiltAngle_Z
G4VisAttributes * PMTOnly_VisAtt
G4LogicalVolume * PMTOnlyQuartzOpticalFilm_Logical
G4double PMTOnlyContainer_FullLength_X
G4double PMTOnlyEntranceWindow_Diameter
G4double PMTOnlyQuartzOpticalFilm_X
G4LogicalVolume * PMTOnly_Logical
G4double PMTOnlyCathode_Diameter
G4double PMTOnlyContainer_CenterPosition_X
G4VSensitiveDetector * PMTOnlySD
G4double PMTOnlyEntranceWindow_Y
G4double GetPMTOnly_CenterPositionInX()
G4double MD5_CenterPosition_Y
G4double MD5_CenterPosition_X
static QweakSimMaterial * GetInstance()
QweakSimUserInformation * myUserInfo
G4VPhysicalVolume * PMTOnlyContainer_Physical
void FindPMTOnly_MotherCenter()
void SetPMTOnly_CenterPositionInZ(G4double zPos)
G4double PMTOnly_FullLength_X
G4VPhysicalVolume * PMTOnlyQuartzOpticalFilm_Physical
G4double PMTOnlyCathode_Z
G4double PMTOnlyEntranceWindow_Thickness
G4double PMTOnlyContainer_FullLength_Z
QweakSimMaterial * pMaterial
G4double MD5_CenterPosition_Z
G4Material * PMTOnlyEntranceWindow_Material
G4VPhysicalVolume * PMTOnlyEntranceWindow_Physical
G4double PMTOnlyContainer_CenterPosition_Z
G4double PMTOnly_CenterPosition_Y
G4Material * PMTOnlyQuartzOpticalFilm_Material
G4LogicalVolume * PMTOnlyEntranceWindow_Logical
G4Tubs * PMTOnlyCathode_Solid
G4double PMTOnlyContainer_CenterPosition_Y
G4double PMTOnlyContainer_TiltAngle_X
void SetPMTOnly_CenterPositionInY(G4double yPos)
G4double PMTOnly_CenterPosition_Z
void SetPMTOnly_TiltAngleInX(G4double xTiltAngle)
G4Box * PMTOnlyContainer_Solid
QweakSimPMTOnly(QweakSimUserInformation *)
G4Tubs * PMTOnlyEntranceWindow_Solid
G4VSensitiveDetector * PMTOnly_PMTSD
G4double PMTOnlyCathode_X
G4double PMTOnlyQuartzOpticalFilm_Thickness
G4Material * PMTOnlyContainer_Material
G4double GetPMTOnly_CenterPositionInY()
G4ThreeVector PMTOnly_CenterPosition
G4LogicalVolume * PMTOnlyCathode_Logical
void SetPMTOnly_TiltAngleInY(G4double yTiltAngle)
G4Material * PMTOnly_Material
G4Material * GetMaterial(G4String material)
void SetPMTOnly_TiltAngleInZ(G4double zTiltAngle)
void ConstructComponent(G4VPhysicalVolume *MotherVolume)
QweakSimPMTOnlyMessenger * PMTOnlyMessenger
G4VPhysicalVolume * PMTOnlyCathode_Physical
G4double PMTOnly_FullLength_Z
G4double PMTOnlyContainer_TiltAngle_Y
G4Material * PMTOnlyCathode_Material
G4VisAttributes * PMTOnlyContainer_VisAtt
void SetPMTOnly_CenterPositionInX(G4double xPos)
G4double PMTOnlyEntranceWindow_X
G4double PMTOnlyQuartzOpticalFilm_Y
G4Tubs * PMTOnlyQuartzOpticalFilm_Solid
G4LogicalVolume * PMTOnlyContainer_Logical
G4RotationMatrix * PMTOnlyContainer_RotationMatrix
G4double PMTOnlyQuartzOpticalFilm_Diameter
G4VPhysicalVolume * PMTOnly_Physical
G4double PMTOnlyContainer_FullLength_Y
G4double PMTOnly_CenterPosition_X
G4double PMTOnlyCathode_Y
G4double PMTOnly_FullLength_Y
G4double PMTOnlyQuartzOpticalFilm_Z
G4ThreeVector PMTOnlyContainer_CenterPosition
G4double GetPMTOnly_CenterPositionInZ()
void SetPMTOnly_Material(G4String)
G4double PMTOnlyEntranceWindow_Z
G4double PMTOnlyCathode_Thickness