Simulation looks like working on windows machine but not on linux

Hello, I modified my simulation putting flags…It looks like working on my windows machine, but now trying it on laboratory maschine I get these warnings

/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1ActionInitialization.cc: In constructor ‘B1ActionInitialization::B1ActionInitialization(G4bool, G4bool, G4bool, G4int)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1ActionInitialization.cc:38:166: warning: declaration of ‘fTargExt’ shadows a member of ‘B1ActionInitialization’ [-Wshadow]
 B1ActionInitialization::B1ActionInitialization(G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int fTargExt)

                                              ^
In file included from /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1ActionInitialization.cc:30:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/include/B1ActionInitialization.hh:52:11: note: shadowed declaration is here
     G4int fTargExt;
           ^~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1DetectorConstruction.cc: In member function ‘virtual G4VPhysicalVolume* B1DetectorConstruction::Construct()’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1DetectorConstruction.cc:137:15: warning: unused variable ‘Hpellet’ [-Wunused-variable]
   G4Material* Hpellet = new G4Material("HPellet", atomicNumber, massOfMole, Hdensity, kStateSolid, Htemperature, Hpressure);
               ^~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/exampleB1.cc: In function ‘int main(int, char**)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/exampleB1.cc:133:20: warning: unused variable ‘scoringManager’ [-Wunused-variable]
  G4ScoringManager* scoringManager = G4ScoringManager::GetScoringManager();
                    ^~~~~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1EventAction.cc: In member function ‘virtual void B1EventAction::BeginOfEventAction(const G4Event*)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1EventAction.cc:62:9: warning: unused variable ‘analysisManager’ [-Wunused-variable]
    auto analysisManager = G4AnalysisManager::Instance();
         ^~~~~~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1RunAction.cc: In member function ‘virtual void B1RunAction::EndOfRunAction(const G4Run*)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1RunAction.cc:138:47: warning: unused parameter ‘run’ [-Wunused-parameter]
 void B1RunAction::EndOfRunAction(const G4Run* run)
                                  ~~~~~~~~~~~~~^~~
In file included from /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1SteppingAction.cc:30:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/include/B1SteppingAction.hh
 In constructor ‘B1SteppingAction::B1SteppingAction(B1EventAction*, G4bool, G4bool, G4bool, G4int)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/include/B1SteppingAction.hh:61:11: warning: ‘B1SteppingAction::fTargExt’ will be initialized after [-Wreorder]
     G4int fTargExt;
           ^~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/include/B1SteppingAction.hh:54:22: warning:   ‘G4LogicalVolume* B1SteppingAction::fScoringVolume’ [-Wreorder]
     G4LogicalVolume* fScoringVolume;
                      ^~~~~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1SteppingAction.cc:44:1: warning:   when initialized here [-Wreorder]
 B1SteppingAction::B1SteppingAction(B1EventAction* eventAction, G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int TargExt)
 ^~~~~~~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1DetectorConstruction.cc:300:19: warning: ‘DummylogicEnv2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      checkOverlaps);          //overlaps checking
                   ^
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1DetectorConstruction.cc:291:22: warning: ‘DummylogicEnv’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         checkOverlaps);          //overlaps checking
                      ^
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1DetectorConstruction.cc:303:20: warning: ‘logicEnv2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    fScoringVolume2 = logicEnv2;
    ~~~~~~~~~~~~~~~~^~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/Prova/src/B1DetectorConstruction.cc:302:19: warning: ‘logicEnv’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    fScoringVolume = logicEnv;
    ~~~~~~~~~~~~~~~^~~~~~~~~~

and I don’t see the B1.root creating…does it depends on the warnings? (I don’t get these warning on my computer)

B1ActionInitialization.cc (3.3 KB)
B1DetectorConstruction.cc (12.5 KB)
B1SteppingAction.cc (12.0 KB)
B1DetectorConstruction.hh (4.0 KB)
B1SteppingAction.hh (2.6 KB)
B1ActionInitialization.hh (2.5 KB)
exampleB1.cc (9.8 KB)

Hi faca87,

I have limited information with which to evaluate your issue. Likely the warnings result from you using a different C++ compiler on your windows and linux installations. The warnings on your windows compiler are probably there as well but have been suppressed.

A possible reason that you are not seeing your output file on linux, is that your path may not be defined appropriately / your file folder structure may be different on linux. Do you set the output path in the macro file you run the simulation with? Have you adjusted the output path for linux to yield an output where you expect it? This may not be the issue you are having but it is a possiblity.

Quickly glancing through your code and some of the compiler warnings you have shared above though, there are other issues. Such as in your DetectorConstruction. Your DummylogicEnv 1 and 2 are only defined for the case that you set fDummyTargetFlag true. However, regardless of whether fDummyTargetFlag is true, you place the dummy targets in the physical world with your G4PVPlacement command below. This is a problem, because whenever fDummyTargetFlag is false, you try to place a phyiscal volume without first defining the logical volume associated with it. You should place those G4PVPlacement commands associated with the dummy target within your if(fDummyTargetFlag) if statement.

I encourage you to read the compiler warnings you have shared above and understand what they mean. Trying to resolve the compiler warnings should make your code more versatile and give you a better understanding of the software you’re working with.

Best of luck,

Joseph

HEllo @JDecunha thank you for you reply! I solve (thanks to your message). On the linux machine, the simulation didn’t run because of the Dummy targets placement! I putted it into the if(fDummyTargetFlag) and now it looks like working…

Now I get these warnings

/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1ActionInitialization.cc: In constructor ‘B1ActionInitialization::B1ActionInitialization(G4bool, G4bool, G4bool, G4int)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1ActionInitialization.cc:38:166: warning: declaration of ‘fTargExt’ shadows a member of ‘B1ActionInitialization’ [-Wshadow]
 B1ActionInitialization::B1ActionInitialization(G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int fTargExt)

                                              ^
In file included from /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1ActionInitialization.cc:30:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/include/B1ActionInitialization.hh:52:11: note: shadowed declaration is here
     G4int fTargExt;
           ^~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1DetectorConstruction.cc: In member function ‘virtual G4VPhysicalVolume* B1DetectorConstruction::Construct()’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1DetectorConstruction.cc:137:15: warning: unused variable ‘Hpellet’ [-Wunused-variable]
   G4Material* Hpellet = new G4Material("HPellet", atomicNumber, massOfMole, Hdensity, kStateSolid, Htemperature, Hpressure);
               ^~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/exampleB1.cc: In function ‘int main(int, char**)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/exampleB1.cc:133:20: warning: unused variable ‘scoringManager’ [-Wunused-variable]
  G4ScoringManager* scoringManager = G4ScoringManager::GetScoringManager();
                    ^~~~~~~~~~~~~~
In file included from /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1SteppingAction.cc:30:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/include/B1SteppingAction.hh: In constructor ‘B1SteppingAction::B1SteppingAction(B1EventAction*, G4bool, G4bool, G4bool, G4int)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/include/B1SteppingAction.hh:61:11: warning: ‘B1SteppingAction::fTargExt’ will be initialized after [-Wreorder]
     G4int fTargExt;
           ^~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/include/B1SteppingAction.hh:54:22: warning:   ‘G4LogicalVolume* B1SteppingAction::fScoringVolume’ [-Wreorder]
     G4LogicalVolume* fScoringVolume;
                      ^~~~~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1SteppingAction.cc:44:1: warning:   when initialized here [-Wreorder]
 B1SteppingAction::B1SteppingAction(B1EventAction* eventAction, G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int TargExt)
 ^~~~~~~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1EventAction.cc: In member function ‘virtual void B1EventAction::BeginOfEventAction(const G4Event*)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1EventAction.cc:62:9: warning: unused variable ‘analysisManager’ [-Wunused-variable]
    auto analysisManager = G4AnalysisManager::Instance();
         ^~~~~~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1RunAction.cc: In member function ‘virtual void B1RunAction::EndOfRunAction(const G4Run*)’:
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1RunAction.cc:138:47: warning: unused parameter ‘run’ [-Wunused-parameter]
 void B1RunAction::EndOfRunAction(const G4Run* run)
                                  ~~~~~~~~~~~~~^~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1DetectorConstruction.cc:300:19: warning: ‘DummylogicEnv2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
      checkOverlaps);          //overlaps checking
                   ^
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1DetectorConstruction.cc:291:22: warning: ‘DummylogicEnv’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         checkOverlaps);          //overlaps checking
                      ^
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1DetectorConstruction.cc:303:20: warning: ‘logicEnv2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    fScoringVolume2 = logicEnv2;
    ~~~~~~~~~~~~~~~~^~~~~~~~~~~
/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/12-B1_update_13-05/src/B1DetectorConstruction.cc:302:19: warning: ‘logicEnv’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    fScoringVolume = logicEnv;

I understand the warnings:

  1. /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/src/B1ActionInitialization.cc: In constructor ‘B1ActionInitialization::B1ActionInitialization(G4bool, G4bool, G4bool, G4int)’:*
    

    **/data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/src/B1ActionInitialization.cc:38:166: warning: declaration of ‘fTargExt’ shadows a member of ‘B1ActionInitialization’ [-Wshadow] B1ActionInitialization::B1ActionInitialization(G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int fTargExt)
    In file included from /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/src/B1ActionInitialization.cc:30:
    /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/include/B1ActionInitialization.hh:52:11: note: shadowed declaration is here
    G4int fTargExt;

  2.     In file included from /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/src/B1SteppingAction.cc:30:
         /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/include/B1SteppingAction.hh: In constructor ‘B1SteppingAction::B1SteppingAction(B1EventAction*, G4bool, G4bool, G4bool, G4int)’:
         /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/include/B1SteppingAction.hh:61:11: warning: ‘B1SteppingAction::fTargExt’ will be initialized after [-Wreorder]
              G4int fTargExt;
    
  3. /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/src/B1DetectorConstruction.cc:302:20: warning: ‘logicEnv2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     fScoringVolume2 = logicEnv2;
     ~~~~~~~~~~~~~~~~^~~~~~~~~~~
     /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/src/B1DetectorConstruction.cc:301:19: warning: ‘logicEnv’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         fScoringVolume = logicEnv;
    
  4.     /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/src/B1EventAction.cc: In member function ‘virtual void B1EventAction::BeginOfEventAction(const G4Event*)’:
     /data_collamaf/DataFausto/Muon_Collider/II_anno/Simulazione_Geant/2021/231-10-05_FLAG/13-B1_update_13-05/src/B1EventAction.cc:62:9: warning: unused variable ‘analysisManager’ [-Wunused-variable]
         auto analysisManager = G4AnalysisManager::Instance();
    

do you know the problem?

There are several things going on here.

1.) Your boolean fTargExt is defined somewhere, though a previous definition exists in B1ActionInitialization. That is what is meant by shadowing.

2.) I believe these warnings are caused by the shadowing warning #1.

3.) These warnings look identical to the warnings produced about your dummy volume. Likely your logicEnv is initialized in an if statement. So if that if statement is not invoked your logicEnv 1 and 2 will never be initialized.

4.) This is just a warning that you are not using the analysisManager.

Thank you @JDecunha !

I want to choose if getting particles outgoing my first or my second target then.

  1. In exampleB1.cc I wrote
    G4int TargExt = 2; //1 to get primary particles or secondary muons outgoing first target, 2 to get them outgoing the second one

  2. In SteppingAction.cc

     B1SteppingAction::B1SteppingAction(B1EventAction* eventAction, G4bool     PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int TargExt)
         : G4UserSteppingAction(),
           fTargExt(TargExt),  
    

and

    if (fTargExt==1) TargetExt="Target1";
     else if (fTargExt==2) TargetExt="Target2";

in B1ActionInizialization.cc

B1ActionInitialization::B1ActionInitialization(G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int fTargExt)
 : G4VUserActionInitialization(),
 fTargExt(fTargExt)

and

SetUserAction(new B1SteppingAction(eventAction, fPrimaryPositronElectronExitFlag, fSecondaryPhotonsExitFlag, fSecondaryMuonsExitFlag, fTargExt));

In B1Steppingaction.hh

B1SteppingAction(B1EventAction* eventAction, G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int TargExt);

and

private:
    G4int fTargExt;

In B1ActionInizialization.hh

public:
    B1ActionInitialization(G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int TargExt);

and

private:
    G4int fTargExt;

I guess that the warning is due to

  B1ActionInitialization::B1ActionInitialization(G4bool PrimaryPositronElectronExitFlag, G4bool SecondaryPhotonsExitFlag, G4bool SecondaryMuonsExitFlag, G4int fTargExt)
     : G4VUserActionInitialization(),
     fTargExt(fTargExt)

but I wrote it because I got an error requiring to pass fTargExt to B1ActionInizialization…
How can I fix the warning?

B1ActionInitialization.hh (2.5 KB)
B1SteppingAction.hh (2.6 KB)
B1ActionInitialization.cc (3.3 KB)
B1SteppingAction.cc (12.0 KB)
exampleB1.cc (10.1 KB)