131 G4Material* air = NISTman->FindOrBuildMaterial(
"G4_AIR");
132 G4Material* water = NISTman->FindOrBuildMaterial(
"G4_WATER");
133 G4Material* lead = NISTman->FindOrBuildMaterial(
"G4_Pb");
137 G4cout << G4endl <<
"The materials defined are : " << G4endl << G4endl;
138 G4cout << *(G4Material::GetMaterialTable()) << G4endl;
148 G4ThreeVector worldSize = G4ThreeVector(200*cm, 200*cm, 200*cm);
151 =
new G4Box(
"world", worldSize.x()/2., worldSize.y()/2., worldSize.z()/2.);
178 =
new G4Box(
"phantom",
179 phantomSize.x()/2., phantomSize.y()/2., phantomSize.z()/2.);
183 G4RotationMatrix* rot =
new G4RotationMatrix();
185 G4ThreeVector positionPhantom;
199 G4cout <<
"<-- RE02DetectorConstruction::Construct-------" <<G4endl;
200 G4cout <<
" Water Phantom Size " <<
fPhantomSize/mm << G4endl;
201 G4cout <<
" Segmentation ("<<
fNx<<
","<<
fNy<<
","<<
fNz<<
")"<< G4endl;
202 G4cout <<
" Lead plate at even copy # (0-False,1-True): " <<
IsLeadSegment()
204 G4cout <<
"<---------------------------------------------"<< G4endl;
211 G4ThreeVector sensSize;
212 sensSize.setX(phantomSize.x()/(G4double)nxCells);
213 sensSize.setY(phantomSize.y()/(G4double)nyCells);
214 sensSize.setZ(phantomSize.z()/(G4double)nzCells);
222 new G4Box(yRepName,phantomSize.x()/2.,sensSize.y()/2.,phantomSize.z()/2.);
226 new G4PVReplica(yRepName,logYRep,logicPhantom,kYAxis,
fNy,sensSize.y());
230 new G4Box(xRepName,sensSize.x()/2.,sensSize.y()/2.,phantomSize.z()/2.);
234 new G4PVReplica(xRepName,logXRep,logYRep,kXAxis,
fNx,sensSize.x());
243 new G4Box(zVoxName,sensSize.x()/2.,sensSize.y()/2.,sensSize.z()/2.);
247 std::vector<G4Material*> phantomMat(2,water);
271 logicWorld ->SetVisAttributes(boxVisAtt);
276 logicPhantom->SetVisAttributes(phantomVisAtt);
280 logYRep->SetVisAttributes(yRepVisAtt);
282 logXRep->SetVisAttributes(xRepVisAtt);
285 fLVPhantomSens->SetVisAttributes(G4VisAttributes::GetInvisible());
298 G4SDManager* pSDman = G4SDManager::GetSDMpointer();
301 G4String phantomSDname =
"PhantomSD";
310 pSDman->AddNewDetector( mFDet );
330 electronFilter->add(particleName=
"e+");
331 electronFilter->add(particleName=
"e-");
350 scorer1->SetFilter(protonFilter);
356 scorer2->SetFilter(protonFilter);
366 scorer3->SetFilter(chargedFilter);
367 scorer4->SetFilter(chargedFilter);
368 scorer5->SetFilter(chargedFilter);
374 mFDet->RegisterPrimitive(scorer0);
375 mFDet->RegisterPrimitive(scorer1);
376 mFDet->RegisterPrimitive(scorer2);
377 mFDet->RegisterPrimitive(scorer3);
378 mFDet->RegisterPrimitive(scorer4);
379 mFDet->RegisterPrimitive(scorer5);
393 for ( G4int i = 0; i < 4; i++){
394 std::ostringstream name;
395 name <<
"gammaSurfCurr" << std::setfill(
'0') << std::setw(3) << i;
397 G4double kmin = std::pow(10.,(G4double)i)*keV;
398 G4double kmax = std::pow(10.,(G4double)(i+1))*keV;
402 pkinEFilter->add(
"gamma");
407 scorer->SetFilter(pkinEFilter);
408 mFDet->RegisterPrimitive(scorer);