Commit c548ecab authored by Alex Ciabattoni's avatar Alex Ciabattoni
Browse files

Geometry COSI updated

parent e135cc99
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -670,6 +670,12 @@ void MaterialsDefinition::DefineMaterials() {

    // Natural rubber
    natural_rubber = manNist->FindOrBuildMaterial("G4_RUBBER_NATURAL");

    // PEEK
    peek = new G4Material(name="PEEK", density=1.32*g/cm3, ncomponents=3);
    peek->AddElement(elC, 19);
    peek->AddElement(elH, 12);
    peek->AddElement(elO, 3);
}


@@ -899,6 +905,9 @@ G4Material* MaterialsDefinition::GetMaterial(int index) {
    case 74:
        dummat = natural_rubber;
        break;
    case 75:
        dummat = peek;
        break;
    }
    return dummat;
}
+1 −0
Original line number Diff line number Diff line
@@ -246,6 +246,7 @@ public:

    G4Material* foam;
    G4Material* natural_rubber;
    G4Material* peek;
    


+45 −28
Original line number Diff line number Diff line
@@ -1453,6 +1453,9 @@ G4VPhysicalVolume* GeometryCOSI_ACS::ConstructGeometry(G4VPhysicalVolume* World_
        G4int block_sens = 0;
        gm.config->readInto(block_sens, "SENSITIVE.BLOCK");
        G4cout << "SENSITIVE.BLOCK: " << block_sens << G4endl; 
        G4int sourceCase_sens = 0;
        gm.config->readInto(sourceCase_sens, "SENSITIVE.SOURCE.CASE");
        G4cout << "SENSITIVE.SOURCE.CASE: " << sourceCase_sens << G4endl; 
        G4int frame_sens = 0;
        gm.config->readInto(frame_sens, "SENSITIVE.FRAME");
        G4cout << "SENSITIVE.FRAME: " << frame_sens << G4endl;  
@@ -1588,6 +1591,7 @@ G4VPhysicalVolume* GeometryCOSI_ACS::ConstructGeometry(G4VPhysicalVolume* World_
        foam_mat = materials->GetMaterial(73);
        rubber_mat = materials->GetMaterial(74);
        steel_mat = materials->GetMaterial(34);
        peek_mat = materials->GetMaterial(75);
        /* --------------------- MATERIAL OPTICAL PROPERTIES ----------------------- */
@@ -7426,45 +7430,58 @@ G4VPhysicalVolume* GeometryCOSI_ACS::ConstructGeometry(G4VPhysicalVolume* World_
                if (foam_source_sens == 1)
                    gm.AddXYZDetector(log_foam_source);   
/*
                // Source
                G4int source_copy = 47;
                G4double sourceR = 11.7;
                G4double source_halfH = 1.734375;
                // Source case
                G4int sourceCase_copy = 47;
                G4double sourceCaseR = 11.7;
                G4double sourceCase_halfH = 1.734375;
                G4double sourceR = 2.5;
                G4double sourceH = 3.18;
                G4double source_posX = -47.6;
                G4double source_posY = 0.;
                G4double source_posZ = 617.191125;
                G4double sourceCase_posX = -47.6;
                G4double sourceCase_posY = 0.;
                G4double sourceCase_posZ = 617.191125;
                G4Tubs* solid_source = new G4Tubs("solid_source", 0., sourceR, source_halfH, 0., 360.);
                G4LogicalVolume* log_source = new G4LogicalVolume(solid_source, plastic_mat, "log_source");
                G4VPhysicalVolume* phys_source = new G4PVPlacement(0, G4ThreeVector(source_posX, source_posY, source_posZ), log_source, "source", log_chamber, false, source_copy, true);
                G4Tubs* solid_source_notsub = new G4Tubs("solid_source_notsub", 0., sourceCaseR, sourceCase_halfH, 0., 360.);
                G4Tubs* source_cavity = new G4Tubs("source_cavity", 0., sourceR, sourceH/2. ,0., 360.);
                G4SubtractionSolid* solid_sourceCase = new G4SubtractionSolid("solid_sourceCase", solid_source_notsub, source_cavity, 0, G4ThreeVector(0., 0., 0.));
                G4LogicalVolume* log_sourceCase = new G4LogicalVolume(solid_sourceCase, peek_mat, "log_sourceCase");
                G4VPhysicalVolume* phys_sourceCase = new G4PVPlacement(0, G4ThreeVector(sourceCase_posX, sourceCase_posY, sourceCase_posZ), log_sourceCase, "source_case", log_chamber, false, sourceCase_copy, true);
                
                G4VisAttributes* VisSource = new G4VisAttributes(G4Colour::Red());
                log_source->SetVisAttributes(VisSource);
*/
                log_sourceCase->SetVisAttributes(VisSource);
                if (sourceCase_sens == 1)
                    gm.AddXYZDetector(log_sourceCase);
            }
/*
            else {
                // Source
                G4int source_copy = 47;
                G4int sourceCase_copy = 47;
                G4double sourceR = 11.7;
                G4double source_halfH = 1.734375;
                G4double sourceCaseR = 11.7;
                G4double sourceCase_halfH = 1.734375;
                G4double sourceR = 2.5;
                G4double sourceH = 3.18;
                G4double source_posX = -47.6;
                G4double source_posY = 0.;
                G4double source_posZ = 605.784375;
                G4double sourceCase_posX = -47.6;
                G4double sourceCase_posY = 0.;
                G4double sourceCase_posZ = 605.784375;
                G4Tubs* solid_source = new G4Tubs("solid_source", 0., sourceR, source_halfH, 0., 360.);
                G4LogicalVolume* log_source = new G4LogicalVolume(solid_source, plastic_mat, "log_source");
                G4VPhysicalVolume* phys_source = new G4PVPlacement(0, G4ThreeVector(source_posX, source_posY, source_posZ), log_source, "source", log_chamber, false, source_copy, true);
                G4Tubs* solid_source_notsub = new G4Tubs("solid_source_notsub", 0., sourceCaseR, sourceCase_halfH, 0., 360.);
                G4Tubs* source_cavity = new G4Tubs("source_cavity", 0., sourceR, sourceH/2. ,0., 360.);
                G4SubtractionSolid* solid_sourceCase = new G4SubtractionSolid("solid_sourceCase", solid_source_notsub, source_cavity, 0, G4ThreeVector(0., 0., 0.));
                G4LogicalVolume* log_sourceCase = new G4LogicalVolume(solid_sourceCase, peek_mat, "log_sourceCase");
                G4VPhysicalVolume* phys_sourceCase = new G4PVPlacement(0, G4ThreeVector(sourceCase_posX, sourceCase_posY, sourceCase_posZ), log_sourceCase, "source_case", log_chamber, false, sourceCase_copy, true);
                
                G4VisAttributes* VisSource = new G4VisAttributes(G4Colour::Red());
                log_source->SetVisAttributes(VisSource);
                log_sourceCase->SetVisAttributes(VisSource);
                if (sourceCase_sens == 1)
                    gm.AddXYZDetector(log_sourceCase);
            }
*/
            /*** BGO crystals ***/
            G4double posY_BGO1 = -122.555; // from housing drawing
+1 −0
Original line number Diff line number Diff line
@@ -102,6 +102,7 @@ protected:
    G4Material* foam_mat;
    G4Material* rubber_mat;
    G4Material* steel_mat;
    G4Material* peek_mat;

private: