33 #include "G4RotationMatrix.hh" 34 #include "G4Material.hh" 37 #include "G4LogicalVolume.hh" 38 #include "G4PVPlacement.hh" 39 #include "G4VisAttributes.hh" 40 #include "G4Colour.hh" 41 #include "G4RunManager.hh" 42 #include "G4SDManager.hh" 44 #include "G4AssemblyVolume.hh" 46 #include "G4PhysicalConstants.hh" 47 #include "G4SystemOfUnits.hh" 52 : gasSD(0), silSD(0), silRingSD(0), sciSD(0),sciRingSD(0),plaSD(0),
53 solidWorld(0), worldLog(0), chamberLog(0), AlplateLog(0), DiamondLog(0), SupportLog(0),
54 worldPhys(0), chamberPhys(0), AlplatePhys(0), DiamondPhys(0), SupportPhys(0),
55 mediumMaterial(0), defaultMaterial(0), chamberMaterial(0), windowMaterial(0),
56 emField(0), MaikoGeoIncludedFlag(
"off"), ACTARTPCGeoIncludedFlag(
"off"),
57 gasGeoIncludedFlag(
"on"), silGeoIncludedFlag(
"off"), sciGeoIncludedFlag(
"off"),
58 gasDet(0), silDet(0),silRingDet(0), sciDet(0), sciRingDet(0), plaDet(0) {
70 G4SDManager* SDman = G4SDManager::GetSDMpointer();
72 G4String gasSDname =
"gasSD";
74 SDman->AddNewDetector(
gasSD );
76 G4String silSDname =
"silSD";
78 SDman->AddNewDetector(
silSD );
80 G4String silRingSDname =
"silRingSD";
84 G4String sciSDname =
"sciSD";
86 SDman->AddNewDetector(
sciSD );
88 G4String sciRingSDname =
"sciRingSD";
92 G4String plaSDname =
"plaSD";
94 SDman->AddNewDetector(
plaSD );
179 G4cout<<
"ERROR, multiple geometry definition. Verify inputfile. (geo="<< geo <<
", i_geo="<<i_geo<<
")"<<G4endl;
186 case 0: G4cout <<
"Building empty geometry" <<G4endl;
189 case 1: G4cout <<
"Building ACTAR_TPC geometry" <<G4endl;
192 case 2: G4cout <<
"Building ACTAR_TPC Demonstrator geometry"<<G4endl;
195 case 3: G4cout <<
"Building SpecMAT geometry"<<G4endl;
198 case 4: G4cout <<
"Building MAIKO geometry"<<G4endl;
201 case 5: G4cout <<
"Building Other geometry"<<G4endl;
204 default: G4cout <<
"UNKNOWN geometry"<<G4endl;
294 G4Box* solidChamber =
new G4Box(
"Chamber",
297 chamberLog =
new G4LogicalVolume(solidChamber,
322 G4double plateSizeX = 128.*mm;
323 G4double plateSizeY = 4.54/2*mm;
324 G4double plateSizeZ = 128.*mm;
326 G4Box *Alplate=
new G4Box(
"Al_plate",plateSizeX,plateSizeY,plateSizeZ);
327 AlplateLog=
new G4LogicalVolume(Alplate,G4Material::GetMaterial(
"Aluminium"),
"Al_plate");
329 G4double platePosX = 0.*cm;
331 G4double platePosZ = 0.*cm;
333 AlplatePhys=
new G4PVPlacement(0,G4ThreeVector( platePosX,platePosY,platePosZ),
336 G4VisAttributes* plateVisAtt=
new G4VisAttributes(G4Colour(1.0,0.,1.0));
337 plateVisAtt->SetVisibility(
true);
369 worldLog->SetVisAttributes (G4VisAttributes::Invisible);
438 G4Box* solidChamber =
new G4Box(
"Chamber",
441 chamberLog =
new G4LogicalVolume(solidChamber,
460 G4double window_outer_radius = 36.*mm;
461 G4double window_inner_radius = 0.*mm;
462 G4double window_half_length = 5.*mm;
463 G4double startAngle = 0.*deg;
464 G4double spanningAngle = 360.*deg;
466 G4Tubs *window =
new G4Tubs(
"Window",window_inner_radius,window_outer_radius,window_half_length,
467 startAngle,spanningAngle);
468 G4VisAttributes* windowVisAtt=
new G4VisAttributes(G4Colour(1.0,0.,0.));
469 windowVisAtt->SetVisibility(
true);
471 G4LogicalVolume* window_log =
new G4LogicalVolume(window,
chamberMaterial,
"window_log",0,0,0);
472 window_log->SetVisAttributes(windowVisAtt);
474 G4double windowPosX = 0.*mm;
475 G4double windowPosY = 0.*mm;
476 G4double windowPosZ = -
chamberSizeZ+window_half_length+22.*mm;
478 G4VPhysicalVolume* window_phys=
new G4PVPlacement(0,G4ThreeVector(windowPosX,windowPosY,windowPosZ),
486 G4RotationMatrix* rotLeft =
new G4RotationMatrix(pi/2,pi/2,-pi/2);
487 G4RotationMatrix* rotRight =
new G4RotationMatrix(-pi/2,pi/2,pi/2);
489 G4double Support_x = 8. *mm;
490 G4double Support_x2 = 6.4*mm;
491 G4double Support_y = 85. *mm;
493 G4double Support_z = 1.6*mm;
495 G4Box* SupportBox =
new G4Box(
"SupportBox", Support_x, Support_y, Support_z);
496 G4Box* SupportBox2 =
new G4Box(
"SupportBox2", Support_x2, Support_y, Support_z);
498 SupportLog=
new G4LogicalVolume(SupportBox,G4Material::GetMaterial(
"Lead"),
"SupportLog");
502 SupportPhys=
new G4PVPlacement(0,G4ThreeVector(32+6.175-8,-105+85+4.54,64+6.575),
505 SupportPhys=
new G4PVPlacement(0,G4ThreeVector(-32-6.175+8,-105+85+4.54,64+6.575),
508 G4VisAttributes* SupportVisAtt=
new G4VisAttributes(G4Colour(1.0,1.0,1.0));
509 SupportVisAtt->SetVisibility(
true);
512 SupportLog=
new G4LogicalVolume(SupportBox2,G4Material::GetMaterial(
"Lead"),
"SupportLog");
515 SupportPhys=
new G4PVPlacement(rotRight,G4ThreeVector(32+4.575,-105+85+4.54,64+4.975-6.4),
519 SupportPhys=
new G4PVPlacement(rotLeft,G4ThreeVector(-32-4.575,-105+85+4.54,64+4.975-6.4),
522 SupportVisAtt->SetVisibility(
true);
528 G4double Diamond_x = 12.*mm;
529 G4double Diamond_y = 12.*mm;
530 G4double Diamond_z = 0.75*mm;
532 G4Box* DiamondBox =
new G4Box(
"DiamondBox", Diamond_x, Diamond_y, Diamond_z);
534 DiamondLog=
new G4LogicalVolume(DiamondBox,G4Material::GetMaterial(
"Lead"),
"DiamondLog");
535 DiamondPhys=
new G4PVPlacement(0,G4ThreeVector(0,0,64+23),
538 G4VisAttributes* DiamondVisAtt=
new G4VisAttributes(G4Colour(1.0,0.,1.0));
539 DiamondVisAtt->SetVisibility(
true);
551 G4double plateSizeX = 32.*mm;
552 G4double plateSizeY = 4.54/2*mm;
553 G4double plateSizeZ = 64.*mm;
555 G4Box *Alplate=
new G4Box(
"Al_plate",plateSizeX,plateSizeY,plateSizeZ);
556 AlplateLog=
new G4LogicalVolume(Alplate,G4Material::GetMaterial(
"Aluminium"),
"Al_plate");
558 G4double platePosX = 0.*cm;
561 G4double platePosZ = 0.*cm;
563 AlplatePhys=
new G4PVPlacement(0,G4ThreeVector( platePosX,platePosY,platePosZ),
566 G4VisAttributes* plateVisAtt=
new G4VisAttributes(G4Colour(1.0,0.,1.0));
567 plateVisAtt->SetVisibility(
true);
599 worldLog->SetVisAttributes (G4VisAttributes::Invisible);
705 G4Box* solidChamber =
new G4Box(
"Chamber",
708 chamberLog =
new G4LogicalVolume(solidChamber,
727 G4double innerRadius = 0.*cm;
728 G4double outerRadius = 10.*cm;
729 G4double hz = 0.037*mm;
730 G4double startAngle = 0.*deg;
731 G4double spanningAngle = 360.*deg;
733 G4VPhysicalVolume* mylarWin;
735 G4Tubs* mwindow=
new G4Tubs(
"mwindow",
742 G4LogicalVolume* mwindowLog =
new G4LogicalVolume(mwindow,
746 mylarWin =
new G4PVPlacement(0,
756 G4VisAttributes* mylarVisAtt =
new G4VisAttributes(G4Colour(1.0,0.0,0.0));
757 mylarVisAtt->SetVisibility(
true);
758 mwindowLog->SetVisAttributes(mylarVisAtt);
798 worldLog->SetVisAttributes (G4VisAttributes::Invisible);
840 G4Box* solidChamber =
new G4Box(
"Chamber",
843 chamberLog =
new G4LogicalVolume(solidChamber,
894 worldLog->SetVisAttributes (G4VisAttributes::Invisible);
903 <<
"##################################################################" << G4endl
904 <<
"## ActarSimDetectorConstruction::PrintDetectorParameters() " << G4endl
906 <<
"## Geometry FLAGS: " << G4endl
912 <<
"## Ancillary FLAGS: " << G4endl
917 <<
"## The medium material is: "<< G4endl <<
mediumMaterial << G4endl << G4endl << G4endl
918 <<
"## The chamber material is: "<< G4endl <<
chamberMaterial << G4endl << G4endl;
919 G4cout << G4endl <<
" The EM field applied has the following components:" 920 << G4endl <<
" Magnetic component: " 924 << G4endl <<
" Electric component: " 928 <<
"##################################################################" << G4endl;
937 G4cout <<
"##################################################################" << G4endl << G4endl << G4endl;
943 G4Material* pttoMaterial = G4Material::GetMaterial(mat);
950 G4Material* pttoMaterial = G4Material::GetMaterial(mat);
958 G4Material* pttoMaterial = G4Material::GetMaterial(mat);
974 G4Material* pttoMaterial = G4Material::GetMaterial(mat);
981 G4RunManager::GetRunManager()->DefineWorldVolume(this->
Construct());
1002 G4Element* H =
new G4Element(
"Hydrogen" ,
"H" , z= 1., a= 1.00794*g/mole);
1004 G4Element* He =
new G4Element(
"Helium" ,
"He", z= 2., a= 4.0026*g/mole);
1005 G4Element* C =
new G4Element(
"Carbon" ,
"C", z=6., a= 12.0107*g/mole);
1006 G4Element* N =
new G4Element(
"Nitrogen" ,
"N" , z= 7., a= 14.00674*g/mole);
1007 G4Element* O =
new G4Element(
"Oxygen" ,
"O" , z= 8., a= 15.9994*g/mole);
1008 G4Element* F =
new G4Element(
"Fluorine" ,
"F", z=9., a=18.9984032*g/mole);
1009 G4Element* Na =
new G4Element(
"Sodium" ,
"Na", z=11., a= 22.98977*g/mole);
1010 G4Element* S =
new G4Element(
"Sulphur" ,
"S", z=16., a= 32.066*g/mole);
1011 G4Element* Ar =
new G4Element(
"Argon" ,
"Ar", z=18., a= 39.9481*g/mole);
1012 G4Element* Zn =
new G4Element(
"Zinc",
"Zn", z=30., a= 65.39*g/mole);
1013 G4Element* Ge =
new G4Element(
"Germanium",
"Ge", z=32., a= 72.61*g/mole);
1014 G4Element* Br =
new G4Element(
"Bromine" ,
"Br", z=35., a= 79.904*g/mole);
1015 G4Element* Cd =
new G4Element(
"Cadmium" ,
"Cd", z=48., a= 112.411*g/mole);
1016 G4Element* Te =
new G4Element(
"Tellurium",
"Te", z=52., a= 127.60*g/mole);
1017 G4Element* I =
new G4Element(
"Iodine" ,
"I", z=53., a= 126.90447*g/mole);
1018 G4Element* Cs =
new G4Element(
"Cesium" ,
"Cs", z=55., a= 132.90545*g/mole);
1019 G4Element* Ba =
new G4Element(
"Barium" ,
"Ba", z=56., a= 137.327*g/mole);
1020 G4Element* La =
new G4Element(
"Lanthanum",
"La", z=57., a= 138.9055*g/mole);
1021 G4Element* Ce =
new G4Element(
"Cerium" ,
"Ce", z=58., a= 140.116*g/mole);
1022 G4Element* Lu =
new G4Element(
"Lutecium" ,
"Lu", z=71., a= 174.967*g/mole);
1023 G4Element* W =
new G4Element(
"Tungsten" ,
"W" , z=74., a= 183.84*g/mole);
1024 G4Element* Pb =
new G4Element(
"Lead" ,
"Pb", z=82., a= 207.20*g/mole);
1025 G4Element* Bi =
new G4Element(
"Bismuth" ,
"Bi", z=83., a= 208.98038*g/mole);
1030 G4double density, pressure, temperature;
1031 G4int ncomponents, natoms;
1032 G4double fractionmass;
1035 new G4Material(
"Aluminium", z= 13., a= 26.98*g/mole, density= 2.7*g/cm3);
1038 new G4Material(
"Copper", z= 29., a= 63.546*g/mole, density= 8.96*g/cm3);
1043 G4Material* Vacuum =
1044 new G4Material(
"Galactic", z=1., a=1.01*g/mole,density= universe_mean_density,
1045 kStateGas, 3.e-18*pascal, 2.73*kelvin);
1046 Vacuum->SetChemicalFormula(
"NOMATTER");
1048 density =0.0688*mg/cm3;
1050 temperature =298.2*kelvin;
1051 G4Material* HeCF4300=
1052 new G4Material(
"HeCF4_300", density,ncomponents=3,kStateGas, temperature, pressure);
1053 HeCF4300->AddElement (He,natoms=98);
1054 HeCF4300->AddElement (C,natoms=2);
1055 HeCF4300->AddElement (F,natoms=8);
1057 density =0.1376*mg/cm3;
1059 temperature =298.2*kelvin;
1060 G4Material* HeCF4600=
1061 new G4Material(
"HeCF4_600", density,ncomponents=3,kStateGas, temperature, pressure);
1062 HeCF4600->AddElement (He,natoms=98);
1063 HeCF4600->AddElement (C,natoms=2);
1064 HeCF4600->AddElement (F,natoms=8);
1066 density =0.1835*mg/cm3;
1068 temperature =298.2*kelvin;
1069 G4Material* HeCF4800=
1070 new G4Material(
"HeCF4_800", density,ncomponents=3,kStateGas, temperature, pressure);
1071 HeCF4800->AddElement (He,natoms=98);
1072 HeCF4800->AddElement (C,natoms=2);
1073 HeCF4800->AddElement (F,natoms=8);
1075 density =0.2521*mg/cm3;
1077 temperature =298.2*kelvin;
1078 G4Material* HeCF41100=
1079 new G4Material(
"HeCF4_1100", density,ncomponents=3,kStateGas, temperature, pressure);
1080 HeCF41100->AddElement (He,natoms=98);
1081 HeCF41100->AddElement (C,natoms=2);
1082 HeCF41100->AddElement (F,natoms=8);
1084 density =1.818*mg/cm3;
1086 temperature =298.2*kelvin;
1087 G4Material* ArCF41100=
1088 new G4Material(
"ArCF4_1100", density,ncomponents=3,kStateGas, temperature, pressure);
1089 ArCF41100->AddElement (Ar,natoms=98);
1090 ArCF41100->AddElement (C,natoms=2);
1091 ArCF41100->AddElement (F,natoms=8);
1095 density = 1.290*mg/cm3;
1097 new G4Material(
"Air", density, ncomponents=2);
1098 Air->AddElement(N, fractionmass=70.*perCent);
1099 Air->AddElement(O, fractionmass=30.*perCent);
1102 density = 0.7174*mg/cm3;
1103 G4Material* methane =
1104 new G4Material(
"CH4", density, ncomponents=2) ;
1105 methane->AddElement(C,1);
1106 methane->AddElement(H,4);
1109 density = 2.005*mg/cm3;
1110 G4Material* propane =
1111 new G4Material(
"C3H8", density, ncomponents=2) ;
1112 propane->AddElement(C,3);
1113 propane->AddElement(H,8);
1116 new G4Material(
"Water", density= 1.000*g/cm3, ncomponents=2);
1117 H2O->AddElement(H, natoms=2);
1118 H2O->AddElement(O, natoms=1);
1119 H2O->SetChemicalFormula(
"H_2O");
1120 H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV);
1123 new G4Material(
"BGO", density= 7.10*g/cm3, ncomponents=3);
1124 BGO->AddElement(O , natoms=12);
1125 BGO->AddElement(Ge, natoms= 3);
1126 BGO->AddElement(Bi, natoms= 4);
1128 G4Material* SodiumIodine =
1129 new G4Material(
"NaI",density= 3.67*g/cm3,ncomponents=2);
1130 SodiumIodine->AddElement(Na , natoms=1);
1131 SodiumIodine->AddElement(I , natoms=1);
1133 G4Material* BariumFluoride =
1134 new G4Material(
"BaF",density= 4.89*g/cm3,ncomponents=2);
1135 BariumFluoride->AddElement(Ba , natoms=1);
1136 BariumFluoride->AddElement(F , natoms=2);
1138 G4Material* CesiumIodine=
1139 new G4Material(
"CsI",density= 4.51*g/cm3,ncomponents=2);
1140 CesiumIodine->AddElement(Cs, natoms=1);
1141 CesiumIodine->AddElement(I, natoms=1);
1143 G4Material* CeriumFluoride =
1144 new G4Material(
"CeF3",density= 6.16*g/cm3,ncomponents=2);
1145 CeriumFluoride->AddElement(Ce , natoms=1);
1146 CeriumFluoride->AddElement(F , natoms=3);
1148 G4Material* LantanumBromide =
1149 new G4Material(
"LaBr3",density= 5.29*g/cm3,ncomponents=2);
1150 LantanumBromide->AddElement(La , natoms=1);
1151 LantanumBromide->AddElement(Br , natoms=3);
1154 new G4Material(
"LSO",density= 7.4*g/cm3,ncomponents=3);
1155 LSO->AddElement(Lu , natoms=2);
1156 LSO->AddElement(S , natoms=1);
1157 LSO->AddElement(O , natoms=5);
1160 new G4Material(
"CdZnTe",density= 5.78*g/cm3 ,ncomponents=3);
1161 CdZnTe->AddElement(Cd, natoms=9);
1162 CdZnTe->AddElement(Zn, natoms=1);
1163 CdZnTe->AddElement(Te, natoms=10);
1166 new G4Material(
"PWO",density= 8.28*g/cm3 ,ncomponents=3);
1167 PWO->AddElement(Pb, natoms=1);
1168 PWO->AddElement(W, natoms=1);
1169 PWO->AddElement(O, natoms=4);
1172 G4Material* mylar=
new G4Material(
"Mylar",density= 1.4*g/cm3,ncomponents=3);
1173 mylar -> AddElement(H,0.042);
1174 mylar -> AddElement(C,0.625);
1175 mylar -> AddElement(O,0.333);
1177 G4Material* Scint =
new G4Material(
"BC408", density= 1.032*g/cm3, ncomponents=2);
1178 Scint->AddElement(C, natoms=9);
1179 Scint->AddElement(H, natoms=10);
1181 new G4Material(
"Silicon" , z=14., a= 28.09*g/mole, density= 2.330*g/cm3);
1183 new G4Material(
"Germanium" , z=32., a= 72.61*g/mole, density= 5.323*g/cm3);
1185 new G4Material(
"Iron" , z=26., a= 55.85*g/mole, density= 7.870*g/cm3);
1187 new G4Material(
"Tungsten" , z=74., a=183.85*g/mole, density= 19.30*g/cm3);
1189 new G4Material(
"Lead" , z=82., a=207.19*g/mole, density= 11.35*g/cm3);
1191 new G4Material(
"Uranium" , z=92., a=238.03*g/mole, density= 18.95*g/cm3);
void SetMagField(G4ThreeVector mVector)
Setting the uniform magnetic field vector.
G4String silGeoIncludedFlag
Control variable for including the silicons.
G4String gasGeoIncludedFlag
Control variable for including a gas volume.
G4String ACTARTPCDEMOGeoIncludedFlag
Control variable for including ACTARTPCDEMO.
ActarSimSilDetectorConstruction * silDet
Pointer to recoil silicon constructor.
G4VPhysicalVolume * ConstructActarTPCDEMO()
G4String SpecMATGeoIncludedFlag
Control variable for including SpecMAT.
G4VPhysicalVolume * DiamondPhys
Pointer to physical Diamond detector.
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction function.
void SetUpdateChamberMaterial(G4Material *)
G4double chamberCenterZ
Chamber Z Center.
G4ThreeVector mField
Magnetic field vector.
void PrintDetectorParameters()
Prints Gas volume detector parameters.
ActarSimPlaSD * plaSD
Pointer to plastic sensitive detector.
G4String sciGeoIncludedFlag
Control variable for including the scintillators.
void PrintDetectorParameters()
Prints Scintillator detector parameters. To be filled.
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction function within the Silicon.
ActarSimSciSD * sciSD
Pointer to scintillator sensitive detector.
ActarSimSilRingDetectorConstruction * silRingDet
Pointer to silRing for MAIKO constructor.
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction functions.
G4double chamberCenterY
Chamber Y Center.
G4LogicalVolume * DiamondLog
Pointer to logic Diamond detector.
ActarSimSilRingSD * silRingSD
Pointer to silicon ring sensitive detector.
G4Material * windowMaterial
Pointer to the window material.
G4double worldSizeY
World Y half-lengths (always centered at (0,0,0))
ActarSimDetectorMessenger * detectorMessenger
Pointer to the Messenger.
G4VPhysicalVolume * chamberPhys
Pointer to physical chamber.
G4VPhysicalVolume * SupportPhys
Pointer to physical CageField support.
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction functions within the TOF.
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction functions.
G4double worldSizeZ
World Z half-lengths (always centered at (0,0,0))
G4Material * defaultMaterial
Pointer to the default material.
G4VPhysicalVolume * AlplatePhys
Pointer to physical Al plate.
ActarSimGasDetectorConstruction * gasDet
Pointer to target constructor.
void SetWorldSizeX(G4double val)
void SetChamberMaterial(G4String)
Sets the material the chamber is made of (the same as GasBox)
G4LogicalVolume * AlplateLog
Pointer to logic aluminium plate.
G4VPhysicalVolume * worldPhys
Pointer to physical world.
G4String OthersGeoIncludedFlag
Control variable for including other geometries.
G4double worldSizeX
World X half-lengths (always centered at (0,0,0))
void InitAnalysisForExistingDetectors()
void SetWindowMaterial(G4String)
Sets the material the window is made of.
G4double chamberCenterX
Chamber X Center.
G4double chamberSizeX
Chamber X half-lengths.
G4ThreeVector eField
Electric field vector.
ActarSimPlaDetectorConstruction * plaDet
Pointer to Hodoscope constructor.
G4LogicalVolume * worldLog
Pointer to logic world.
G4Material * mediumMaterial
Pointer to the medium material.
void PrintDetectorParameters()
Prints Scintillator detector parameters.
ActarSimSciRingDetectorConstruction * sciRingDet
Pointer to sciRing for MAIKO constructor.
G4VPhysicalVolume * ConstructActarTPC()
void Construct(const G4VPhysicalVolume *)
Things to do while contructing...
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction functions within the TOF.
void SetWorldSizeY(G4double val)
G4LogicalVolume * chamberLog
Pointer to logic chamber.
ActarSimROOTAnalysis * gActarSimROOTAnalysis
Global pointer to this soliton.
G4String ACTARTPCGeoIncludedFlag
Control variable for including ACTARTPC.
ActarSimSciRingSD * sciRingSD
Pointer to scintillator ring sensitive detector.
G4String MaikoGeoIncludedFlag
Control variable for including MAIKO.
void UpdateGeometry()
Updates any change on the geometry of the detectors.
G4VPhysicalVolume * ConstructEmptyWorld()
void PrintDetectorParameters()
Prints Scintillator detector parameters. To be filled.
void PrintDetectorParameters()
Prints Scintillator detector parameters. To be filled.
void SetMediumMaterial(G4String)
Sets the material the medium is made of.
G4double chamberSizeY
Chamber Y half-lengths.
void PrintDetectorParameters()
Print current detector parameters.
G4LogicalVolume * SupportLog
Pointer to logic CageField support.
ActarSimSciDetectorConstruction * sciDet
Pointer to scintillator constructor.
G4VPhysicalVolume * Construct()
ActarSimSilSD * silSD
Pointer to silicon sensitive detector.
ActarSimDetectorConstruction()
Constructor: initialize all variables, materials and pointers.
void PrintDetectorParameters()
Prints Scintillator detector parameters. TODO: To be filled.
G4VPhysicalVolume * ConstructSpecMAT()
void SetDefaultMaterial(G4String)
Sets the default material.
void UpdateEMField()
Setting the uniform EM field.
G4VPhysicalVolume * ConstructMAIKO()
G4double chamberSizeZ
Chamber Z half-lengths.
G4VPhysicalVolume * ConstructOthers()
void SetEleField(G4ThreeVector eVector)
void SetWorldSizeZ(G4double val)
G4Material * chamberMaterial
Pointer to the chamber material.
ActarSimUniformEMField * emField
Pointer to the uniform em. field.
ActarSimGasSD * gasSD
Pointer to gas sensitive detector.
~ActarSimDetectorConstruction()
Destructor.