int main(int argc, char *argv[]) #endif { TRACE_APPNAME("Ogre_App"); TRACE_CONNECT(); TRACE_MSG(trace::e_Info, trace::CTX_Default, "Initialized main application"); // redirect Ogre log to our listener LogRedir redir; Ogre::LogManager * mLogManager = OGRE_NEW Ogre::LogManager(); Ogre::Log * log = Ogre::LogManager::getSingleton().createLog("", true, false, false); if (log) log->addListener(&redir); // Create application object TutorialApplication app; try { app.go(); } catch( Ogre::Exception& e ) { #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL); #else std::cerr << "An exception has occured: " << e.getFullDescription().c_str() << std::endl; #endif } if (log) log->removeListener(&redir); return 0; }
int main(int argc, char *argv[]) { dsr::ArgumentHelper ah; ah.new_string("input_filename.vtk", "The name of the input file", input_filename); //ah.new_string("output_filename", "The name of the output file", output_filename); //ARGUMENT_HELPER_BASICS(ah); ah.set_description("STEP2: A simple tutorial application for the X3DLoader library"); ah.set_author("Kristian Sons, [email protected]"); ah.set_version(0.9f); ah.set_build_date(__DATE__); ah.process(argc, argv); // Check output string if (fileExists(input_filename)) { TutorialApplication app; app.setX3DFile(input_filename.c_str()); try { app.go(); } catch( Exception& e ) { fprintf(stderr, "An exception has occurred: %s\n", e.getFullDescription().c_str()); } return 0; } cerr << "Input file not found or not readable: " << input_filename << endl; return 1; }
int main(int argc, char *argv[]) { // Create application object TutorialApplication app; try { app.go(); } catch( Ogre::Exception& e ) { #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL); #else std::cerr << "An exception has occured: " << e.getFullDescription().c_str() << std::endl; #endif } return 0; }
void calibrateEM() { // FIXME: There are two possibilities to execute the script: // i) root run_hadron_g4.C // root[] .L calibrateEM.C // root[] calibrateEM() // or ii) Include the basics from run_hadron_g4.C here and // execute simply: // root calibrateEM.C // Load basic libraries // Load basic libraries gROOT->LoadMacro("/opt/geant4_vmc.2.15a/examples/macro/basiclibs.C"); basiclibs(); // Load Geant4 libraries gROOT->LoadMacro("/opt/geant4_vmc.2.15a/examples/macro/g4libs.C"); g4libs(); // Load the tutorial application library gSystem->Load("libTutorialApplication"); // MC application TutorialApplication* app = new TutorialApplication("TutorialApplication", "Tutorial Application for HEP Lecture @EKP"); // configure Geant4 gROOT->LoadMacro("g4Config.C"); Config(); // instantiate graphical user interface for tutorial application new TutorialMainFrame(app); //FIXME: Load "CountChargedinScint.C" gROOT->ProcessLine(".L CountChargedinScint.C"); //FIXME: Initialize the geometry app->InitMC("geometry/calor(1,0.2)"); //FIXME: Set the primary particle to photon app->SetPrimaryPDG(22); // Profile histogram - will show us the mean numbers of counts in bins of the energy. // The given binning refers to the energy, the other binning will be inferred automatically. TProfile* hcounts = new TProfile("hcounts","Counts per particle energy", 10,0,10); hcounts->SetXTitle("energy [GeV]"); hcounts->SetYTitle("mean number of counts"); // FIXME loop over different particle momenta, and for each momentum simulate several events (e.g. 10) for(Int_t i = 0 ; i < 10 ; ++i) { for(Int_t k = 0 ; k < 10; k ++) { //FIXME: Set the momentum of the primary particle to p Double_t p = i; app->SetPrimaryMomentum(p); //FIXME: Run the simulation app->RunMC(); //FIXME: Fill both the momentum and the output from CountChargedinScint // into the profile histogram hcounts Double_t x = CountChargedinScint(); hcounts->Fill(p,x); } } TCanvas* c = new TCanvas(); c->cd(); hcounts->Draw(); TF1 *fitter = new TF1("fitf","[0]*x", 0,10); fitter->SetParameter(0,1.0); fitter->SetParNames("calibration factor"); //FIXME: Fit the histogram to get the calibration factor hcounts->Fit("fitf"); }