Construction changes and minor modifications
This commit is contained in:
parent
247f4aad08
commit
cd7e4d34bd
|
@ -59,6 +59,12 @@ Run with custom config file
|
|||
* secondsipmenabled - Enable the second SiPM
|
||||
|
||||
# Changelog
|
||||
## 2020-04-08
|
||||
* SiPM position fix
|
||||
* Changed scintillator mother volume
|
||||
* Changed displayLimit in vis.mac
|
||||
* New default config file
|
||||
|
||||
## 2020-02-19
|
||||
* Scintillator subtracted from it's coating
|
||||
* Scintillation process fix
|
||||
|
|
14
config.conf
14
config.conf
|
@ -1,22 +1,22 @@
|
|||
pgpositionx=0
|
||||
pgpositiony=-15
|
||||
pgpositionz=10
|
||||
pgpositiony=-10
|
||||
pgpositionz=11
|
||||
pgmomentumx=0
|
||||
pgmomentumy=1
|
||||
pgmomentumz=0
|
||||
sipmsizex=1
|
||||
sipmsizey=1
|
||||
sipmsizez=1
|
||||
scintillatorsizex=1
|
||||
scintillatorsizey=1
|
||||
scintillatorsizex=2
|
||||
scintillatorsizey=2
|
||||
scintillatorlength=20
|
||||
scintillatorisbox=1
|
||||
coatingthickness=0.1
|
||||
scintillatorradius=5
|
||||
xdivision=1
|
||||
ydivision=1
|
||||
pgenergy=100
|
||||
numberofevents=100
|
||||
ydivision=5
|
||||
pgenergy=1000
|
||||
numberofevents=1
|
||||
lengthunit=cm
|
||||
firstsipmenabled=1
|
||||
secondsipmenabled=0
|
|
@ -17,6 +17,6 @@
|
|||
/vis/scene/add/eventID
|
||||
|
||||
/vis/scene/add/text 0 6 14 cm 18 4 4 Box
|
||||
/vis/ogl/set/displayListLimit 50000
|
||||
/vis/ogl/set/displayListLimit 500000
|
||||
|
||||
/run/beamOn 10
|
||||
|
|
|
@ -165,7 +165,7 @@ G4VPhysicalVolume* SiPMDetectorConstruction::Construct()
|
|||
{
|
||||
z_pos_helper = coatingThickness + (scintillator_size.getZ() / 2);
|
||||
z_pos_helper = z_pos_helper - (container_sizeZ / 2);
|
||||
posScint = G4ThreeVector(0, 0, z_pos_helper); //center on X and Y
|
||||
//posScint = G4ThreeVector(0, 0, z_pos_helper); //center on X and Y
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -199,9 +199,10 @@ G4VPhysicalVolume* SiPMDetectorConstruction::Construct()
|
|||
|
||||
//---World definitions----------------------------------------------------------------------------------------------
|
||||
G4Box* solidWorld = new G4Box( "World", //its name
|
||||
0.5 * world_sizeX,
|
||||
0.5 * world_sizeY,
|
||||
0.5 * world_sizeZ); //its size
|
||||
world_sizeX,
|
||||
world_sizeY,
|
||||
world_sizeZ); //its size
|
||||
//Prevent overlapping so the world size is doubled
|
||||
|
||||
G4LogicalVolume* logicWorld = new G4LogicalVolume( solidWorld, //its solid
|
||||
world_mat, //its material
|
||||
|
@ -254,9 +255,9 @@ G4VPhysicalVolume* SiPMDetectorConstruction::Construct()
|
|||
|
||||
G4VSolid* solidCoating = new G4SubtractionSolid("ScintillatorCoating",
|
||||
solidScintCoating,
|
||||
solidScint,
|
||||
solidScint/*,
|
||||
0,
|
||||
G4ThreeVector(0, 0, 0));
|
||||
G4ThreeVector(0, 0, 0)*/);
|
||||
|
||||
G4LogicalVolume* logicScintCoating = new G4LogicalVolume( solidCoating, //its solid
|
||||
scint_coating, //its material
|
||||
|
@ -365,7 +366,7 @@ G4VPhysicalVolume* SiPMDetectorConstruction::Construct()
|
|||
scint_material_mpt -> AddProperty("ABSLENGTH", pp, absl, n);
|
||||
scint_material_mpt -> AddProperty("SLOWCOMPONENT", pp, slow, n);
|
||||
scint_material_mpt -> AddProperty("FASTCOMPONENT", pp, fast, n);
|
||||
scint_material_mpt -> AddConstProperty("SCINTILLATIONYIELD", 50000./MeV); //50 volt
|
||||
scint_material_mpt -> AddConstProperty("SCINTILLATIONYIELD", 1000./MeV); //50 volt
|
||||
scint_material_mpt -> AddConstProperty("RESOLUTIONSCALE", 1.0);
|
||||
scint_material_mpt -> AddConstProperty("FASTTIMECONSTANT", 0.01*ns);
|
||||
scint_material_mpt -> AddConstProperty("SLOWTIMECONSTANT", 1.*ns);
|
||||
|
@ -378,7 +379,7 @@ G4VPhysicalVolume* SiPMDetectorConstruction::Construct()
|
|||
|
||||
G4LogicalBorderSurface *ScintillatorSurface = new G4LogicalBorderSurface("Scintillator Surface", physScint, physScintCoating, OpScintillatorSurface);
|
||||
|
||||
G4double reflectivityCoating[n] = {0.9, 0.9};
|
||||
G4double reflectivityCoating[n] = {0.99, 0.99};
|
||||
G4double efficiencyCoating[n] = {0, 0};
|
||||
|
||||
G4MaterialPropertiesTable *ScintillatorToWolframMaterialPropertyTable = new G4MaterialPropertiesTable();
|
||||
|
@ -418,7 +419,7 @@ G4VPhysicalVolume* SiPMDetectorConstruction::Construct()
|
|||
|
||||
int x = parameters.GetXDivison();
|
||||
int y = parameters.GetYDivison();
|
||||
int helper = 0;
|
||||
int copyNumber = 0;
|
||||
G4VPhysicalVolume *physContainer[x][y];
|
||||
char s1[30];
|
||||
|
||||
|
@ -428,15 +429,15 @@ G4VPhysicalVolume* SiPMDetectorConstruction::Construct()
|
|||
{
|
||||
snprintf(s1, 30, "Container_x%d_y%d", i, j);
|
||||
logicContainer -> SetName(s1);
|
||||
physContainer[x][y] = new G4PVPlacement(0,
|
||||
G4ThreeVector(i * (container_sizeX / 2), j * (container_sizeY / 2), container_sizeZ / 2),
|
||||
physContainer[i][j] = new G4PVPlacement( 0,
|
||||
G4ThreeVector(i * container_sizeX + (container_sizeX / 2) - (world_sizeX / 2), j * container_sizeY + (container_sizeY / 2) - (world_sizeY / 2), container_sizeZ / 2),
|
||||
logicContainer,
|
||||
s1, //its name
|
||||
logicWorld,
|
||||
false,
|
||||
helper, //copy number
|
||||
copyNumber, //copy number
|
||||
checkOverlaps);
|
||||
helper++;
|
||||
copyNumber++;
|
||||
}
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue