Geant4 Version: 11.4.0
Operating System: Ubuntu 24.04.3 LTS
Compiler/Version: gcc 13.3.0
CMake Version: 3.28.3
Dear Gate users,
I’m trying to work with the Geant4-DNA example molcounters (basic). The model is the following : a cell with its nucleus and mitochondria. I added a vesicle with in its inside a cluster of nanoparticles. I moved the source into this cluster. If my nanoparticles cluster is full of G4_WATER I have no problem, but now I want to fix a new material. Since Geant4-DNA, if I understand properly, works only on water, I think a solution is to define a specific region for the cluster for which the chemistry is not activated, only the standard physics. I tried the following which is not working. If someone has an idea how to help me, many thanks!
DetectorConstruction.cc - function that construct the nanoparticles cluster :
void DetectorConstruction::ConstructNanoCluster(G4LogicalVolume* lvVesicle)
{
const G4double nanoClusterRadius = 100 * nm;
fNanoClusterRadius = nanoClusterRadius;
auto solidNanoCluster = new G4Orb("NanoCluster", nanoClusterRadius);
auto lvNanoCluster = new G4LogicalVolume(
solidNanoCluster,
fAGuIX,
"NanoCluster"
);
auto nanoClusterVisAtt = new G4VisAttributes(G4Colour(1.0, 1.0, 0.0, 0.2));
nanoClusterVisAtt->SetForceSolid(true);
lvNanoCluster->SetVisAttributes(nanoClusterVisAtt);
// Tirage aléatoire dans la vésicule
double u = G4UniformRand();
double v = G4UniformRand();
double theta = std::acos(2.0*v - 1.0);
double phi = 2.0 * CLHEP::pi * u;
G4double margin = 2 * nm;
double r = fVesicleRadius - nanoClusterRadius - margin;
G4ThreeVector localPos(
r * std::sin(theta) * std::cos(phi),
r * std::sin(theta) * std::sin(phi),
r * std::cos(theta)
);
fNanoClusterPV = new G4PVPlacement(
nullptr,
localPos,
lvNanoCluster,
"NanoCluster",
lvVesicle,
false,
0,
true
);
fNanoClusterLocalPosition = localPos;
// ---- CREATION DE LA REGION SANS CHIMIE ----
auto nanoClusterRegion = new G4Region("NanoClusterRegion");
lvNanoCluster->SetRegion(nanoClusterRegion);
nanoClusterRegion->AddRootLogicalVolume(lvNanoCluster);
}
And PhysicsList.cc - function ConstructProcess :
void PhysicsList::ConstructProcess()
{
AddTransportation();
if (fEmDNAPhysicsList) {
fEmDNAPhysicsList->ConstructProcess();
}
if (fEmDNAChemistryList) {
fEmDNAChemistryList->ConstructProcess();
}
}
Regards,
Sarah