Hello good day Forum, i experience this problem while trying to execute the command and run my Root.
/home/bashir/Bash/exercise/action.cc:16:28: error: ‘G4UserRunAction’ is an inaccessible base of ‘MyRunAction’
16 | SetUserAction(runAction);
| ^
make[2]: *** [CMakeFiles/rano.dir/build.make:89: CMakeFiles/rano.dir/action.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:104: CMakeFiles/rano.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
these are some of my codes.
run.hh
#ifndef RUN_HH
#define RUN_HH
#include "G4UserRunAction.hh"
#include "G4AnalysisManager.hh"
class MyRunAction : public G4UserRunAction
{
public:
MyRunAction();
~MyRunAction();
virtual void BeginOfRunAction(const G4Run*);
virtual void EndOfRunAction(const G4Run*);
};
#endif
run.cc
‘’’
#include “run.hh”
MyRunAction::MyRunAction()
{}
MyRunAction::~MyRunAction()
{}
void MyRunAction::BeginOfRunAction(const G4Run*)
{
G4AnalysisManager *man = G4AnalysisManager::Instance();
man->OpenFile("output.root");
man->CreateNtuple("Hits", "Hits" );
man->CreateNtupleIColumn("fEvent");
man->CreateNtupleIColumn("fX");
man->CreateNtupleIColumn("fY");
man->CreateNtupleIColumn("fZ");
man->FinishNtuple(0);
}
void MyRunAction::EndOfRunAction(const G4Run*)
{
G4AnalysisManager *man = G4AnalysisManager::Instance();
man->Write();
man->CloseFile();
}
action.hh
#ifndef ACTION_HH
#define ACTION_HH
#include “G4VUserActionInitialization.hh”
#include “generator.hh”
#include “run.hh”
class MyActionInitialization : public G4VUserActionInitialization
{
public:
MyActionInitialization();
~MyActionInitialization();
virtual void Build() const;
};
#endif
action.cc
#include “action.hh”
#include “run.hh”
MyActionInitialization::MyActionInitialization()
{}
MyActionInitialization::~MyActionInitialization()
{}
void MyActionInitialization::Build() const
{
MyPrimaryGenerator *generator = new MyPrimaryGenerator();
SetUserAction(generator);
MyRunAction* runAction = new MyRunAction();
SetUserAction(runAction);
}
main.cc/rano,cc
#include
#include “G4RunManager.hh”
#include “G4UImanager.hh”
#include “G4VisManager.hh”
#include “G4VisExecutive.hh”
#include “G4UIExecutive.hh”
#include “construction.hh”
#include “physics.hh”
#include “action.hh”
int main(int argc, char** argv)
{
G4RunManager *runManager = new G4RunManager();
runManager->SetUserInitialization(new MyDetectorConstruction());
runManager->SetUserInitialization(new MyPhysicsList());
runManager->SetUserInitialization(new MyActionInitialization());
runManager->Initialize();
G4UIExecutive *ui = new G4UIExecutive(argc, argv);
G4VisManager *visManager = new G4VisExecutive();
visManager->Initialize();
G4UImanager *UImanager = G4UImanager::GetUIpointer();
UImanager->ApplyCommand("/vis/open OGL");
UImanager->ApplyCommand("/vis/viewer/set/viewpointVector 1 1 1");
UImanager->ApplyCommand("/vis/drawVolume");
UImanager->ApplyCommand("/vis/viewer/set/autoRefresh true");
UImanager->ApplyCommand("/vis/scene/add/trajectories smooth");
ui->SessionStart();
return 0;
}
please help me out i spent so much time trying thank you