| Message: Discripancy in Geomatrical Efficiency of NaI Detector | Not Logged In (login) |
|
Hello,
i am trying to compute the geomatical efficiency of a simple NaI crystal (3 inch dia and 3 inch length). and results that i got are a bit over estimated from real one and the over estimation increases with increase of source to detecto distance for example at 0.5 cm from detector surface the geomatical efficiency from geant is 0.46 and from solid angle it is 0.435 and at 1 cm from detector surface the geomatrical efficiency from geant is 0.4164 and from solid angle is 0.3730.
i worked a lot but i have no idea why it is so can any one guide or explain me why it is so.
here is my detector construction and the scoring mathod i m using in sensitive detector class.
is there any problem with my scoring?
const G4Track* aTrack = aStep->GetTrack();
//if we have a primary gamma particle
if( //aTrack->GetDefinition() == G4Gamma::GammaDefinition() &&
aTrack->GetParentID() == 0){
G4StepPoint* prePoint = aStep->GetPreStepPoint();
G4StepPoint* endPoint = aStep->GetPostStepPoint();
G4String procName = endPoint->GetProcessDefinedStep()->GetProcessName();
RunAction* myRunAction = (RunAction*)(G4RunManager::GetRunManager()->GetUserRunAction());
if( prePoint->GetStepStatus() == fGeomBoundary && endPoint->GetStepStatus() == fGeomBoundary) {
// G4cout << "PreStepPoint & PostStepPoint on Boundary" << G4endl;
// G4cout << "Gamma Tansported through detector without Interaction" << G4endl;
myRunAction->ProcessgammaTransported();
}
else if( prePoint->GetStepStatus() == fGeomBoundary) {
// G4cout << "PreStepPoint on Boundary" << G4endl;
// G4cout << "Gamma Just enter the detector" << G4endl;
// myRunAction->ProcessgammaInteracted();
myRunAction->CountProcesses(procName);
}
else if( endPoint->GetStepStatus() == fGeomBoundary) {
// G4cout << "PostStepPoint on Boundary" << G4endl;
// G4cout << "Gamma leaving the detector" << G4endl;
myRunAction->ProcessgammaOutFlux();
}
DETECTOR CONSTRUCTION
SolidAbsorber = new G4Tubs("Absorber",0.*cm,3.81*cm,3.81*cm,0.,2.*pi);
// G4SubtractionSolid* sBox = new G4SubtractionSolid("mySolid",PolyBox, well_tube);
LogicalAbsorber = new G4LogicalVolume(SolidAbsorber, //its shape
AbsorberMaterial, //its material
AbsorberMaterial->GetName()); //its name
PhysicalAbsorber = new G4PVPlacement(0, //no rotation
G4ThreeVector(0.,0.,-3.81*cm), //at (0,0,0)
LogicalAbsorber, //its logical volume
AbsorberMaterial->GetName(), //its name
LogicalWorld, //its mother volume
false, //no boolean operation
0); //copy number
G4SDManager* SDman = G4SDManager::GetSDMpointer();
SensitiveDetector* NaIAbs = new SensitiveDetector("NaIAbsorber");
SDman->AddNewDetector(NaIAbs);
LogicalAbsorber->SetSensitiveDetector(NaIAbs);
|
| Inline Depth: | Outline Depth: | Add message: |
|
to: |