Hi,
I want to study how much energy is deposited in three detectors which are placed in certain positions. I don’t want them to influence each other so I’m thinking about the most convenient way to move on with the simulation:
Shift them and place particle sources for each one
Shift them but move all of them via z through the beams of the particle sources
Remove two detectors and run each simulation independently from them
…?
weller
January 19, 2023, 1:11pm
2
This. With a nice command line parameter to pick which detector to use
1 Like
Thanks for your input!
Where would I put such a line?
Can I remove an object in the run.mac file or so?
weller
January 19, 2023, 1:37pm
4
there are examples with a basic command line parameter: geant4/exampleB1.cc at v11.1.0 · Geant4/geant4 · GitHub
or be inspired
int main(int argc,char** argv) {
G4String macro;
G4int detectorID = 0;
for ( G4int i=1; i<argc; i=i+2 ) {
if (G4String(argv[i]) == "-m" ) macro = argv[i+1];
else if (G4String(argv[i]) == "-d" ) detectorID = G4UIcommand::ConvertToInt(argv[i+1]);
else {
...
return 1;
}
}
...
and run like so: epicSimulation -m run.mac -d 0
For
G4UIcommand::ConvertToInt(argv[i+1])
I’m receiving error C2064: term does not evaluate to a function taking 1 arguments
?
I’m trying to use it like this:
G4int detectorID = 0;
if(argc > 1)
{
detectorID = G4UIcommand::ConvertToInt(argv[2])
G4cout << Detector cmd: << detectorID << G4endl;
}
which is quite the same as:
auto runManager = G4RunManagerFactory::CreateRunManager();
if (argc==3) {
G4int nThreads = G4UIcommand::ConvertToInt(argv[2]);
runManager->SetNumberOfThreads(nThreads);
}
?
weller
January 20, 2023, 11:09am
6
it’s not the same, in the first there is a ; missing
1 Like
Omg, with the ;
it’s working now…
Thank you!
How do I parse an argument argv
to the construction.cc
respectively where the geometry is built up?
Is there an example somewhere?
weller
January 27, 2023, 11:27am
9
I just added a class member to my G4VUserDetectorConstruction, and set the value when calling auto detector = new DetectorConstruction(myParameter);
a more elaborate example is
1 Like
system
Closed
February 3, 2023, 11:28am
10
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.