Loading code/MaterialsDefinition.cc +9 −0 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -899,6 +905,9 @@ G4Material* MaterialsDefinition::GetMaterial(int index) { case 74: dummat = natural_rubber; break; case 75: dummat = peek; break; } return dummat; } Loading code/MaterialsDefinition.hh +1 −0 Original line number Diff line number Diff line Loading @@ -246,6 +246,7 @@ public: G4Material* foam; G4Material* natural_rubber; G4Material* peek; Loading geom/GeometryCOSI_ACS.cc +45 −28 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 ----------------------- */ Loading Loading @@ -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 geom/GeometryCOSI_ACS.hh +1 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,7 @@ protected: G4Material* foam_mat; G4Material* rubber_mat; G4Material* steel_mat; G4Material* peek_mat; private: Loading Loading
code/MaterialsDefinition.cc +9 −0 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -899,6 +905,9 @@ G4Material* MaterialsDefinition::GetMaterial(int index) { case 74: dummat = natural_rubber; break; case 75: dummat = peek; break; } return dummat; } Loading
code/MaterialsDefinition.hh +1 −0 Original line number Diff line number Diff line Loading @@ -246,6 +246,7 @@ public: G4Material* foam; G4Material* natural_rubber; G4Material* peek; Loading
geom/GeometryCOSI_ACS.cc +45 −28 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 ----------------------- */ Loading Loading @@ -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
geom/GeometryCOSI_ACS.hh +1 −0 Original line number Diff line number Diff line Loading @@ -102,6 +102,7 @@ protected: G4Material* foam_mat; G4Material* rubber_mat; G4Material* steel_mat; G4Material* peek_mat; private: Loading