Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Field Cage class #218

Merged
merged 29 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
1088b85
Make thickness of grids one parameter all over the code
paolafer Oct 30, 2023
f6c6246
Use less precision to avoid G4 miscalculations
paolafer Oct 30, 2023
a2b3935
Fix poly wrap dimensions according to drawings and actual pos
paolafer Nov 1, 2023
9f3ea82
Simplify definitions of derived quantities
paolafer Nov 1, 2023
4e7df8d
Change position of mesh in the cathode ring (facing towards drift)
paolafer Nov 1, 2023
f5499ab
Use as base variable the lengths appearing in the drawings
paolafer Nov 1, 2023
8e64de3
Change length of EL gap according to latest documents
paolafer Nov 1, 2023
0278e07
Add explanation comment
paolafer Nov 1, 2023
49db6d5
Add comments to clarify the placement of the ring holders
paolafer Nov 2, 2023
519e986
Update the dimensions of the ring holders, according to drawings
paolafer Nov 2, 2023
54cfcfb
Fix staves dimensions according to current drawing + decoupling
paolafer Nov 2, 2023
0fd1cd5
Eliminate part of active which is now buffer.
paolafer Nov 2, 2023
6624c8a
Fix frame diameters according to Jordi's 2D drawings
paolafer Nov 3, 2023
9ac80b8
Remove obsolete comment
paolafer Nov 3, 2023
63b6098
Update sapphire windows-gate distance according to Jordi's 2D
paolafer Nov 3, 2023
e9ec5af
Update cathode thickness according to Jordi's 2D measurements
paolafer Nov 3, 2023
ccb86b4
Update distances and dimensions according to Jordi
paolafer Nov 3, 2023
560fc83
Update teflon lengths and decouple for good drift teflon placement
paolafer Nov 3, 2023
ee8e6cc
Simplify teflon generator
paolafer Nov 3, 2023
00312ad
Propagate changes to optical geometry
paolafer Nov 3, 2023
fd7323b
Fix slightly the length of ICS according to latest drawings by Jordi
paolafer Nov 3, 2023
a3789aa
Modify active generator to include corners of polyhedron
paolafer Nov 3, 2023
a531e4b
Simplify vertex generator for simple cylindric volumes
paolafer Nov 3, 2023
f32af98
Fix distance gate-teflon from drawings
paolafer Nov 6, 2023
ff4a636
Make anode ring thinner to avoid overlap with masks
paolafer Nov 6, 2023
d4b91d0
Create new classes to enclose staves
paolafer Nov 6, 2023
1650b3d
Use new class in FC code
paolafer Nov 6, 2023
b797c5b
Update anode ring vertex generator to actually simulated volume
paolafer Nov 7, 2023
77aaaef
Remove useless comments
paolafer Nov 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 24 additions & 15 deletions source/geometries/Next100.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ namespace nexus {
// Lab dimensions
lab_size_ (5. * m),

// common used variables in geomety components
// 0.1 mm grid thickness
// note that if grid thickness change it must be also changed in Next100FieldCage.cc
gate_tracking_plane_distance_((26.1 + 0.1) * mm),
gate_sapphire_wdw_distance_ ((1458.2 - 0.1) * mm),
// common variables used in geometry components
grid_thickness_ (0.1 * mm),
//ep_fc_distance_ (24.8 * mm), /// this value was measured by Sara in the step file
gate_tracking_plane_distance_(25. * mm + grid_thickness_), // Jordi = 1.5 (distance TP plate-anode ring) + 13.5 (anode ring thickness) + 10 (EL gap)
gate_sapphire_wdw_distance_ (1458.8 * mm - grid_thickness_), // Jordi

specific_vertex_{},
lab_walls_(false)
Expand Down Expand Up @@ -71,7 +71,7 @@ namespace nexus {
ics_ = new Next100Ics();

// Inner Elements
inner_elements_ = new Next100InnerElements();
inner_elements_ = new Next100InnerElements(grid_thickness_);

}

Expand Down Expand Up @@ -100,13 +100,16 @@ namespace nexus {
G4double hallA_length = hallA_walls_->GetLSCHallALength();
// Since the walls will be displaced need to make the
// "lab" double sized to be sure.
G4Box* lab_solid = new G4Box("LAB", hallA_length, hallA_length, hallA_length);
G4Material *vacuum = G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic");
G4Box* lab_solid =
new G4Box("LAB", hallA_length, hallA_length, hallA_length);
G4Material* vacuum =
G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic");
lab_logic_ = new G4LogicalVolume(lab_solid, vacuum, "LAB");
this->SetSpan(2 * hallA_length);
}
else {
G4Box* lab_solid = new G4Box("LAB", lab_size_/2., lab_size_/2., lab_size_/2.);
G4Box* lab_solid =
new G4Box("LAB", lab_size_/2., lab_size_/2., lab_size_/2.);
lab_logic_ = new G4LogicalVolume(lab_solid,
G4NistManager::Instance()->FindOrBuildMaterial("G4_AIR"), "LAB");
}
Expand All @@ -120,9 +123,12 @@ namespace nexus {
vessel_->SetELtoTPdistance(gate_tracking_plane_distance_);
vessel_->Construct();
G4LogicalVolume* vessel_logic = vessel_->GetLogicalVolume();
G4LogicalVolume* vessel_internal_logic = vessel_->GetInternalLogicalVolume();
G4VPhysicalVolume* vessel_internal_phys = vessel_->GetInternalPhysicalVolume();
G4ThreeVector vessel_displacement = shielding_->GetAirDisplacement(); // explained below
G4LogicalVolume* vessel_internal_logic =
vessel_->GetInternalLogicalVolume();
G4VPhysicalVolume* vessel_internal_phys =
vessel_->GetInternalPhysicalVolume();
G4ThreeVector vessel_displacement =
shielding_->GetAirDisplacement(); // explained below
gate_zpos_in_vessel_ = vessel_->GetELzCoord();

// SHIELDING
Expand All @@ -132,7 +138,8 @@ namespace nexus {
G4LogicalVolume* shielding_air_logic = shielding_->GetAirLogicalVolume();

// Recall that airbox is slighly displaced in Y dimension. In order to avoid
// mistmatch with vertex generators, we place the vessel in the center of the world volume
// mistmatch with vertex generators, we place the vessel i
// n the center of the world volume
new G4PVPlacement(0, -vessel_displacement, vessel_logic,
"VESSEL", shielding_air_logic, false, 0);

Expand Down Expand Up @@ -163,12 +170,14 @@ namespace nexus {
"Hall_A", lab_logic_, false, 0, false);
}
else {
new G4PVPlacement(0, gate_pos, shielding_logic, "LEAD_BOX", lab_logic_, false, 0);
new G4PVPlacement(0, gate_pos, shielding_logic, "LEAD_BOX", lab_logic_,
false, 0);
}

//// VERTEX GENERATORS
lab_gen_ =
new BoxPointSampler(lab_size_ - 1.*m, lab_size_ - 1.*m, lab_size_ - 1.*m, 1.*m,
new BoxPointSampler(lab_size_ - 1.*m, lab_size_ - 1.*m,
lab_size_ - 1.*m, 1.*m,
G4ThreeVector(0., 0., 0.), 0);
}

Expand Down
5 changes: 4 additions & 1 deletion source/geometries/Next100.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ namespace nexus {

private:
// Detector dimensions
const G4double lab_size_; /// Size of the air box containing the detector
const G4double lab_size_; /// Size of the air box containing the detector
const G4double grid_thickness_; /// Width of grids simulated as dielectric
// const G4double ep_fc_distance_; /// Distance between the surface of the
///EP copper plate and the end of the staves/teflon panels/poly (a.k.a. FC)
const G4double gate_tracking_plane_distance_, gate_sapphire_wdw_distance_;

// Pointers to logical volumes
Expand Down
Loading
Loading