Commit 0bac8638 authored by Alex Ciabattoni's avatar Alex Ciabattoni
Browse files

Geometry COSI updates

parent 36e96832
Loading
Loading
Loading
Loading
+52 −0
Original line number Diff line number Diff line
@@ -4711,6 +4711,58 @@ G4VPhysicalVolume* GeometryCOSI_ACS::ConstructGeometry(G4VPhysicalVolume* World_
                if (foam_sens == 1)
                    gm.AddXYZDetector(log_foam);
                /* Plastic casing aroung source */
                G4int casing_copy = 81;
                G4double casingX = 10.;
                G4double casingY = 10.;
                G4double casingZ = 5.;
                G4double casingThick = 1.;
                G4double casing_posX = 0.;
                G4double casing_posY = 0.;
                G4double casing_posZ = coatZ/2.-AlThick-coatThick-zlen-plasticZ+coatZ/2.+foamZ + casingZ/2.; // 268.394 mm
                G4Box* solid_casing_notsub = new G4Box("solid_casing_notsub", casingX/2., casingY/2., casingZ/2.);
                G4Box* casing_cavity = new G4Box("casing_cavity", casingX/2.-casingThick, casingY/2.-casingThick, casingZ/2.-casingThick);
                G4SubtractionSolid* solid_casing = new G4SubtractionSolid("solid_casing", solid_casing_notsub, casing_cavity, 0, G4ThreeVector(0., 0., 0.));
                
                G4LogicalVolume* log_casing = new G4LogicalVolume(solid_casing, plastic_mat, "log_casing");
                G4VPhysicalVolume* phys_casing = new G4PVPlacement(0, G4ThreeVector(casing_posX, casing_posY, casing_posZ), log_casing, "casing", log_chamber, false, casing_copy, true);
                
                G4VisAttributes* VisCasing = new G4VisAttributes(G4Colour::White());
                log_casing->SetVisAttributes(VisCasing);
                if (casing_sens == 1)
                    gm.AddXYZDetector(log_casing);
                /* Foam aroung source */
                G4int foam_source_copy = 82;
                G4double foam_sourceX = casingX-casingThick*2.;
                G4double foam_sourceY = casingY-casingThick*2.;
                G4double foam_sourceZ = (casingZ-casingThick*2.)/2.;
                G4double foam_cavityThick = 1.;
                G4double foam_source_posX = 0.;
                G4double foam_source_posY = 0.;
                G4double foam_source_posZ = casing_posZ - (casingZ-casingThick*2.)/2. + foam_sourceZ/2.;
                G4Box* solid_foam_source_notsub = new G4Box("solid_foam_source_notsub", foam_sourceX/2., foam_sourceY/2., foam_sourceZ/2.);
                G4Tubs* foam_source_cavity = new G4Tubs("foam_cavity", 0., 2.5, foam_cavityThick/2., 0., 360.);
                G4SubtractionSolid* solid_foam_source = new G4SubtractionSolid("solid_foam_source", solid_foam_source_notsub, foam_source_cavity, 0, G4ThreeVector(0., 0., foam_sourceZ/2.));
                
                G4LogicalVolume* log_foam_source = new G4LogicalVolume(solid_foam_source, foam_mat, "log_foam_source");
                G4VPhysicalVolume* phys_foam_source = new G4PVPlacement(0, G4ThreeVector(foam_source_posX, foam_source_posY, foam_source_posZ), log_foam_source, "foam_source", log_chamber, false, foam_source_copy, true);
                
                G4VisAttributes* VisFoam_source = new G4VisAttributes(G4Colour::Brown());
                log_foam_source->SetVisAttributes(VisFoam_source);
                if (foam_source_sens == 1)
                    gm.AddXYZDetector(log_foam_source);   
            }
            /* Teflon PTFE */