MyAnalysisSvc Class Reference

#include <MyAnalysisSvc.hh>

List of all members.

Public Member Functions

 MyAnalysisSvc ()
virtual ~MyAnalysisSvc ()
void set_out_card (G4String filename)
void set_PrintModulo (int i)
void set_ofile_name (G4String &val)
void set_tree_name (G4String &val)
void set_run_name (G4String &val)
void set_minT (double val)
void set_maxT (double val)
void ReadOutputCard (G4String filename)
int GetRunID ()
void BeginOfRunAction ()
void EndOfRunAction (const G4Run *)
void PreUserTrackingAction (const G4Track *)
void PostUserTrackingAction (const G4Track *)
void BeginOfEventAction ()
void EndOfEventAction (const G4Event *)
void InitialStepAction (const G4Step *)
void SteppingAction (const G4Step *)
void ASDI (G4String)
void PSDI (G4String)

Static Public Member Functions

static MyAnalysisSvcGetMyAnalysisSvc ()

Private Attributes

MyAnalysisSvcMessengerpMyAnalysisSvcMessenger
G4String out_card
G4String run_name
G4String ofile_name
G4String tree_name
int run_num
int fAutoSave
int fCircular
int fVerbose
int fPrintModulo
double m_minT
double m_maxT
clock_t t_begin
clock_t t_end
double event_start_time
MyRootpMyRoot
EventHeaderSvcpEventHeaderSvc
MyDetectorManagerpMyDetectorManager
McTruthSvcpMcTruthSvc
ProcessCountingSvcpProcessCountingSvc
MyTriggerSvcpMyTriggerSvc
PrimaryGeneratorActionpPrimaryGeneratorAction
MyProcessManagerpMyProcessManager

Static Private Attributes

static MyAnalysisSvcfMyAnalysisSvc = 0

Detailed Description

Definition at line 28 of file MyAnalysisSvc.hh.


Constructor & Destructor Documentation

MyAnalysisSvc::MyAnalysisSvc (  ) 

Definition at line 31 of file MyAnalysisSvc.cc.

References fMyAnalysisSvc, fPrintModulo, EventHeaderSvc::GetEventHeaderSvc(), McTruthSvc::GetMcTruthSvc(), MyDetectorManager::GetMyDetectorManager(), MyProcessManager::GetMyProcessManager(), MyRoot::GetMyRoot(), MyTriggerSvc::GetMyTriggerSvc(), PrimaryGeneratorAction::GetPrimaryGeneratorAction(), ProcessCountingSvc::GetProcessCountingSvc(), m_maxT, m_minT, ofile_name, out_card, pEventHeaderSvc, pMcTruthSvc, pMyAnalysisSvcMessenger, pMyDetectorManager, pMyProcessManager, pMyRoot, pMyTriggerSvc, pPrimaryGeneratorAction, pProcessCountingSvc, run_name, and set_out_card().

00032 {
00033         if (fMyAnalysisSvc){
00034                 G4Exception("MyAnalysisSvc::MyAnalysisSvc()","Run0031",
00035                                 FatalException, "MyAnalysisSvc constructed twice.");
00036         }
00037         fMyAnalysisSvc = this;
00038         //get pointers
00039         pMyAnalysisSvcMessenger = new MyAnalysisSvcMessenger(this);
00040         pMyRoot = MyRoot::GetMyRoot();
00041         pMyDetectorManager = MyDetectorManager::GetMyDetectorManager();
00042         pEventHeaderSvc = EventHeaderSvc::GetEventHeaderSvc();
00043         pMcTruthSvc = McTruthSvc::GetMcTruthSvc();
00044         pProcessCountingSvc = ProcessCountingSvc::GetProcessCountingSvc();
00045         pMyTriggerSvc = MyTriggerSvc::GetMyTriggerSvc();
00046         pPrimaryGeneratorAction  = PrimaryGeneratorAction::GetPrimaryGeneratorAction();
00047         pMyProcessManager = MyProcessManager::GetMyProcessManager();
00048 
00049         //default logfile
00050         run_name = getenv("RUNNAMEROOT");
00051         //default output file
00052         ofile_name = getenv("OFILENAMEROOT");
00053         //set default output card, read it, and inform relative files.
00054         std::string out_card = getenv("OUTCARDROOT");
00055         set_out_card(out_card.c_str());
00056         //default trigger card
00057         m_minT = -1;
00058         m_maxT = -1;
00059         fPrintModulo = 100;
00060 
00061 }

MyAnalysisSvc::~MyAnalysisSvc (  )  [virtual]

Definition at line 63 of file MyAnalysisSvc.cc.

References pMyAnalysisSvcMessenger.

00064 {
00065         delete pMyAnalysisSvcMessenger;
00066 }


Member Function Documentation

void MyAnalysisSvc::ASDI ( G4String  name  ) 

Definition at line 212 of file MyAnalysisSvc.cc.

References ProcessCountingSvc::AddASDI(), and pProcessCountingSvc.

00212                                      {
00213         pProcessCountingSvc->AddASDI(name);
00214 }

void MyAnalysisSvc::BeginOfEventAction (  ) 

Definition at line 139 of file MyAnalysisSvc.cc.

References event_start_time, ProcessCountingSvc::Initialize(), McTruthSvc::Initialize(), pMcTruthSvc, and pProcessCountingSvc.

Referenced by EventAction::BeginOfEventAction().

00139                                       {
00140         event_start_time = (double) clock();
00141 //      std::cout<<"event_start_time = "<<event_start_time<<std::endl;
00142         //Initialize
00143         pMcTruthSvc->Initialize();
00144         pProcessCountingSvc->Initialize();
00145 }

void MyAnalysisSvc::BeginOfRunAction (  ) 

Definition at line 94 of file MyAnalysisSvc.cc.

References LogSvc::AddLog(), MyRoot::CreateTree(), fCircular, LogSvc::GetLogSvc(), ofile_name, MyRoot::OpenFile(), pEventHeaderSvc, pMcTruthSvc, pMyDetectorManager, pMyRoot, pProcessCountingSvc, run_name, run_num, ProcessCountingSvc::SetBranch(), McTruthSvc::SetBranch(), EventHeaderSvc::SetBranch(), MyDetectorManager::SetBranch(), LogSvc::SetLogFile(), t_begin, and tree_name.

Referenced by RunAction::BeginOfRunAction().

00094                                     {
00095         //deal with log
00096         std::string log_name = getenv("LOGFILEROOT");
00097         if ( std::strlen(log_name.c_str()) != 0 ){
00098                 LogSvc::GetLogSvc()->SetLogFile( log_name.c_str() );
00099         }
00100         run_num = LogSvc::GetLogSvc()->AddLog( run_name.c_str() );
00101         std::cout<<"logfile finished for "<<run_name<<", "<<run_num<<std::endl;
00102 
00103         //set root file
00104         pMyRoot->OpenFile(ofile_name);
00105         pMyRoot->CreateTree(tree_name, fCircular);
00106 
00107         //set branches
00108         pMyDetectorManager->SetBranch();
00109         pEventHeaderSvc->SetBranch();
00110         pMcTruthSvc->SetBranch();
00111         pProcessCountingSvc->SetBranch();
00112 
00113         t_begin = (double)clock();
00114         std::cout<<"evt_num  memSize  time  R0  R1"<<std::endl;
00115         std::cout<<"         MB       sec         "<<std::endl;
00116 }

void MyAnalysisSvc::EndOfEventAction ( const G4Event *  evt  ) 

Definition at line 147 of file MyAnalysisSvc.cc.

References MyDetectorManager::Digitize(), fAutoSave, MyRoot::Fill(), MyRoot::FlushBaskets(), fPrintModulo, PrimaryGeneratorAction::get_extra(), EventHeaderSvc::get_R0(), EventHeaderSvc::get_R1(), MyProcessManager::GetMemorySize(), pEventHeaderSvc, pMyDetectorManager, pMyProcessManager, pMyRoot, pMyTriggerSvc, pPrimaryGeneratorAction, run_num, MyRoot::Save(), EventHeaderSvc::SetValue(), t_begin, and MyTriggerSvc::TriggerIt().

Referenced by EventAction::EndOfEventAction().

00147                                                       {
00148         int evt_num = evt->GetEventID();
00149         //Digitze
00150         pMyDetectorManager->Digitize();
00151         //Set event header 
00152         double weight = 1;
00153         void *result = pPrimaryGeneratorAction->get_extra("weight");
00154         if (result) weight = *((double*)result);
00155         pEventHeaderSvc->SetValue(evt,run_num,weight);
00156 
00157         //Fill
00158         if ( pMyTriggerSvc->TriggerIt(evt) ) pMyRoot->Fill();
00159 
00160         //AutoSave
00161         if (fAutoSave){
00162                 if ( evt_num%fAutoSave == 0 ){
00163                         pMyRoot->Save();
00164                         int nBytes = pMyRoot->FlushBaskets();
00165                         std::cout<<"Event "<<evt_num<<", "<<nBytes<<"Bytes data written"<<std::endl;
00166                 }
00167         }
00168 
00169         //print per event (modulo n)
00170         if (evt_num%fPrintModulo == 0) { 
00171                 std::cout <<evt_num
00172                    <<"  "<<pMyProcessManager->GetMemorySize()
00173                    <<"  "<<(((double)clock()-t_begin)/CLOCKS_PER_SEC)
00174                    <<"  "<<pEventHeaderSvc->get_R0()
00175                    <<"  "<<pEventHeaderSvc->get_R1()
00176                    <<std::endl;
00177         }
00178 }

void MyAnalysisSvc::EndOfRunAction ( const G4Run *  aRun  ) 

Definition at line 128 of file MyAnalysisSvc.cc.

References MyRoot::Close(), pMyRoot, t_begin, t_end, and MyRoot::Write().

Referenced by RunAction::EndOfRunAction().

00128                                                    {
00129         int NbOfEvents = aRun->GetNumberOfEvent();
00130         t_end = (double)clock();
00131         std::cout<<"\n##############################################"<<std::endl;
00132         std::cout<<"TOTAL TIME COST IS:  "<<(double)(t_end-t_begin)/CLOCKS_PER_SEC*1000<<"ms"<<std::endl;
00133         std::cout<<"TIME COST PER EVENT: "<<(double)(t_end-t_begin)/CLOCKS_PER_SEC/NbOfEvents*1000<<"ms"<<std::endl;
00134         std::cout<<"##############################################\n"<<std::endl;
00135         pMyRoot->Write();
00136         pMyRoot->Close();
00137 }

MyAnalysisSvc * MyAnalysisSvc::GetMyAnalysisSvc (  )  [static]
int MyAnalysisSvc::GetRunID (  )  [inline]

Definition at line 47 of file MyAnalysisSvc.hh.

References run_num.

00047 {return run_num;};

void MyAnalysisSvc::InitialStepAction ( const G4Step *  aStep  ) 

Definition at line 208 of file MyAnalysisSvc.cc.

References ProcessCountingSvc::InitialStep(), and pProcessCountingSvc.

00208                                                         {
00209         pProcessCountingSvc->InitialStep(aStep);
00210 }

void MyAnalysisSvc::PostUserTrackingAction ( const G4Track *  aTrack  ) 

Definition at line 123 of file MyAnalysisSvc.cc.

References pMcTruthSvc, and McTruthSvc::SetValuePost().

Referenced by MyTrackingAction::PostUserTrackingAction().

00123                                                                 {
00124         //set McTruth
00125         pMcTruthSvc->SetValuePost(aTrack);
00126 }

void MyAnalysisSvc::PreUserTrackingAction ( const G4Track *  aTrack  ) 

Definition at line 118 of file MyAnalysisSvc.cc.

References pMcTruthSvc, and McTruthSvc::SetValuePre().

Referenced by MyTrackingAction::PreUserTrackingAction().

00118                                                               {
00119         //set McTruth
00120         pMcTruthSvc->SetValuePre(aTrack);
00121 }

void MyAnalysisSvc::PSDI ( G4String  name  ) 

Definition at line 216 of file MyAnalysisSvc.cc.

References ProcessCountingSvc::AddPSDI(), and pProcessCountingSvc.

00216                                      {
00217         pProcessCountingSvc->AddPSDI(name);
00218 }

void MyAnalysisSvc::ReadOutputCard ( G4String  filename  ) 

Definition at line 220 of file MyAnalysisSvc.cc.

References fAutoSave, fCircular, fPrintModulo, fVerbose, and tree_name.

Referenced by set_out_card().

00220                                                     {
00221         std::ifstream fin_card(file_name);
00222         if(!fin_card){
00223                 std::cout<<"In MyAnalysisSvc::ReadOutputCard, cannot open "<<file_name<<"!!!"<<std::endl;
00224                 G4Exception("MyAnalysisSvc::ReadOutputCard()",
00225                                 "InvalidSetup", FatalException,
00226                                 "cannot find output card");
00227         }
00228         std::stringstream buf_card;
00229         std::string s_card;
00230         bool find_tree_name = false;
00231         bool find_AutoSave = false;
00232         bool find_Circular = false;
00233         bool find_Verbose = false;
00234         bool find_PrintModulo = false;
00235         while(getline(fin_card,s_card)){
00236                 buf_card.str("");
00237                 buf_card.clear();
00238                 buf_card<<s_card;
00239 
00240                 //eleminate useless lines
00241                 const char* c_card = s_card.c_str();
00242                 int length = strlen(c_card);
00243                 int offset = 0;
00244                 for ( ; offset < length; offset++ ){
00245                         if ( c_card[offset] != ' ' ) break;
00246                 }
00247                 if ( c_card[offset] == '#' || (c_card[offset] == '/' && c_card[offset+1] == '/') || length - offset == 0 ){
00248                         continue;
00249                 }
00250                 std::string name;
00251                 buf_card>>name;
00252                 if ( name == "tree_name" ){
00253                         buf_card>>tree_name;
00254                         std::cout<<"In MyAnalysisSvc::ReadOutputCard, tree_name will be set to "<<tree_name<<std::endl;
00255                         find_tree_name = true;
00256                 }
00257                 else if ( name == "AutoSave" ){
00258                         buf_card>>fAutoSave;
00259                         std::cout<<"In MyAnalysisSvc::ReadOutputCard, fAutoSave will be set to "<<fAutoSave<<std::endl;
00260                         find_AutoSave = true;
00261                 }
00262                 else if ( name == "Circular" ){
00263                         buf_card>>fCircular;
00264                         std::cout<<"In MyAnalysisSvc::ReadOutputCard, fCircular will be set to "<<fCircular<<std::endl;
00265                         find_Circular = true;
00266                 }
00267                 else if ( name == "Verbose" ){
00268                         buf_card>>fVerbose;
00269                         std::cout<<"In MyAnalysisSvc::ReadOutputCard, fVerbose will be set to "<<fVerbose<<std::endl;
00270                         find_Verbose = true;
00271                 }
00272                 else if ( name == "PrintModulo" ){
00273                         buf_card>>fPrintModulo;
00274                         std::cout<<"In MyAnalysisSvc::ReadOutputCard, fPrintModulo will be set to "<<fPrintModulo<<std::endl;
00275                         find_PrintModulo = true;
00276                 }
00277                 if ( find_Verbose && find_PrintModulo && find_Circular && find_AutoSave && find_tree_name ) break;
00278         }
00279         if (!find_tree_name){
00280                 std::cout<<"In MyAnalysisSvc::ReadOutputCard, tree_name not found in card, will be set to t as default"<<std::endl;
00281                 tree_name = "t";
00282         }
00283         if (!find_AutoSave){
00284                 std::cout<<"In MyAnalysisSvc::ReadOutputCard, AutoSave not found in card, will be set to 0 as default"<<std::endl;
00285                 fAutoSave = 0;
00286         }
00287         if (!find_Circular){
00288                 std::cout<<"In MyAnalysisSvc::ReadOutputCard, Circular not found in card, will be set to 0 as default"<<std::endl;
00289                 fCircular = 0;
00290         }
00291         if (!find_Verbose){
00292                 std::cout<<"In MyAnalysisSvc::ReadOutputCard, Verbose not found in card, will be set to 0 as default"<<std::endl;
00293                 fVerbose = 0;
00294         }
00295         if (!find_PrintModulo){
00296                 std::cout<<"In MyAnalysisSvc::ReadOutputCard, PrintModulo not found in card, will be set to 0 as default"<<std::endl;
00297                 fPrintModulo = 100;
00298         }
00299         fin_card.close();
00300         buf_card.str("");
00301         buf_card.clear();
00302 }

void MyAnalysisSvc::set_maxT ( double  val  )  [inline]

Definition at line 44 of file MyAnalysisSvc.hh.

References m_maxT.

Referenced by MyAnalysisSvcMessenger::SetNewValue().

00044 {m_maxT=val;};

void MyAnalysisSvc::set_minT ( double  val  )  [inline]

Definition at line 43 of file MyAnalysisSvc.hh.

References m_minT.

Referenced by MyAnalysisSvcMessenger::SetNewValue().

00043 {m_minT=val;};

void MyAnalysisSvc::set_ofile_name ( G4String &  val  )  [inline]

Definition at line 39 of file MyAnalysisSvc.hh.

References ofile_name.

Referenced by MyAnalysisSvcMessenger::SetNewValue().

00039 { ofile_name = val; };

void MyAnalysisSvc::set_out_card ( G4String  filename  ) 

Definition at line 75 of file MyAnalysisSvc.cc.

References fPrintModulo, fVerbose, pEventHeaderSvc, pMcTruthSvc, pMyDetectorManager, pMyRoot, pMyTriggerSvc, pProcessCountingSvc, ReadOutputCard(), ProcessCountingSvc::ReadOutputCard(), McTruthSvc::ReadOutputCard(), MyDetectorManager::ReadOutputCard(), EventHeaderSvc::ReadOutputCard(), MyTriggerSvc::SetMyTrigger(), MyRoot::SetPrintModulo(), and MyRoot::SetVerbose().

Referenced by MyAnalysisSvc(), and MyAnalysisSvcMessenger::SetNewValue().

00075                                                   {
00076         if(file_name[0] != '/'){ // Relative Dir
00077                 G4String dir_name = getenv("CONFIGUREROOT");
00078                 if (dir_name[dir_name.size()-1] != '/') dir_name.append("/");
00079                 file_name = dir_name + file_name;
00080         }
00081         //inform relative files
00082         pEventHeaderSvc->ReadOutputCard(file_name);
00083         pMyDetectorManager->ReadOutputCard(file_name);
00084         pMcTruthSvc->ReadOutputCard(file_name);
00085         pProcessCountingSvc->ReadOutputCard(file_name);
00086         pMyTriggerSvc->SetMyTrigger(file_name);
00087         //read output card
00088         ReadOutputCard(file_name);
00089         //set verbose
00090         pMyRoot->SetVerbose(fVerbose);
00091         pMyRoot->SetPrintModulo(fPrintModulo);
00092 }

void MyAnalysisSvc::set_PrintModulo ( int  i  )  [inline]

Definition at line 37 of file MyAnalysisSvc.hh.

References fPrintModulo.

Referenced by MyAnalysisSvcMessenger::SetNewValue().

00037 {fPrintModulo = i;};

void MyAnalysisSvc::set_run_name ( G4String &  val  )  [inline]

Definition at line 41 of file MyAnalysisSvc.hh.

References run_name.

Referenced by MyAnalysisSvcMessenger::SetNewValue().

00041 { run_name = val; };

void MyAnalysisSvc::set_tree_name ( G4String &  val  )  [inline]

Definition at line 40 of file MyAnalysisSvc.hh.

References tree_name.

Referenced by MyAnalysisSvcMessenger::SetNewValue().

00040 { tree_name = val; };

void MyAnalysisSvc::SteppingAction ( const G4Step *  aStep  ) 

Definition at line 180 of file MyAnalysisSvc.cc.

References event_start_time, m_maxT, m_minT, pProcessCountingSvc, and ProcessCountingSvc::SetValue().

Referenced by SteppingAction::UserSteppingAction().

00180                                                      {
00181 //    CLHEP::HepRandom::showEngineStatus();
00182         //set ProcessCounting
00183         double current_time = (double) clock();
00184 //      std::cout<<"current_time = "<<current_time<<", deltaT = "<<(current_time - event_start_time)/CLOCKS_PER_SEC<<std::endl;
00185         pProcessCountingSvc->SetValue(aStep);
00186         G4Track* aTrack = aStep->GetTrack() ;
00187         G4int nSteps = aTrack->GetCurrentStepNumber();
00188         bool needStopAndKill = false;
00189         if (nSteps>2e5){
00190                 std::cout<<"### This track is killed for that nSteps>2e5 ###"<<std::endl;
00191                 needStopAndKill = true;
00192         }
00193         G4double globalT=aTrack->GetGlobalTime();//Time since the event in which the track belongs is created
00194         if ((m_minT>=0&&m_minT>globalT)&&(m_maxT>=0&&m_maxT<globalT)){
00195                 std::cout<<"### This track is killed for that globalT < "<<m_minT<<" || globalT > "<<m_maxT<<" ###"<<std::endl;
00196                 needStopAndKill = true;
00197         }
00198         if (( current_time - event_start_time > 5*CLOCKS_PER_SEC)){
00199                 std::cout<<"### This track is killed for that elapsed time in this event is larger than 5 sec ###"<<std::endl;
00200                 needStopAndKill = true;
00201         }
00202         if (needStopAndKill){
00203                 aTrack->SetTrackStatus(fStopAndKill);
00204                 std::cout<<" => ["<<aTrack->GetTrackID()<<"]: "<<aTrack->GetParticleDefinition()->GetParticleName()<<", "<<G4BestUnit(aStep->GetPreStepPoint()->GetKineticEnergy(),"Energy")<<", @ \""<<aStep->GetPreStepPoint()->GetTouchable()->GetVolume(0)->GetName()<<"\""<<std::endl;
00205         }
00206 }


Member Data Documentation

Definition at line 79 of file MyAnalysisSvc.hh.

Referenced by BeginOfEventAction(), and SteppingAction().

int MyAnalysisSvc::fAutoSave [private]

Definition at line 69 of file MyAnalysisSvc.hh.

Referenced by EndOfEventAction(), and ReadOutputCard().

int MyAnalysisSvc::fCircular [private]

Definition at line 70 of file MyAnalysisSvc.hh.

Referenced by BeginOfRunAction(), and ReadOutputCard().

Definition at line 61 of file MyAnalysisSvc.hh.

Referenced by GetMyAnalysisSvc(), and MyAnalysisSvc().

int MyAnalysisSvc::fVerbose [private]

Definition at line 71 of file MyAnalysisSvc.hh.

Referenced by ReadOutputCard(), and set_out_card().

double MyAnalysisSvc::m_maxT [private]

Definition at line 75 of file MyAnalysisSvc.hh.

Referenced by MyAnalysisSvc(), set_maxT(), and SteppingAction().

double MyAnalysisSvc::m_minT [private]

Definition at line 74 of file MyAnalysisSvc.hh.

Referenced by MyAnalysisSvc(), set_minT(), and SteppingAction().

G4String MyAnalysisSvc::ofile_name [private]

Definition at line 66 of file MyAnalysisSvc.hh.

Referenced by BeginOfRunAction(), MyAnalysisSvc(), and set_ofile_name().

G4String MyAnalysisSvc::out_card [private]

Definition at line 64 of file MyAnalysisSvc.hh.

Referenced by MyAnalysisSvc().

Definition at line 82 of file MyAnalysisSvc.hh.

Referenced by BeginOfRunAction(), EndOfEventAction(), MyAnalysisSvc(), and set_out_card().

Definition at line 62 of file MyAnalysisSvc.hh.

Referenced by MyAnalysisSvc(), and ~MyAnalysisSvc().

Definition at line 83 of file MyAnalysisSvc.hh.

Referenced by BeginOfRunAction(), EndOfEventAction(), MyAnalysisSvc(), and set_out_card().

Definition at line 88 of file MyAnalysisSvc.hh.

Referenced by EndOfEventAction(), and MyAnalysisSvc().

Definition at line 86 of file MyAnalysisSvc.hh.

Referenced by EndOfEventAction(), MyAnalysisSvc(), and set_out_card().

Definition at line 87 of file MyAnalysisSvc.hh.

Referenced by EndOfEventAction(), and MyAnalysisSvc().

G4String MyAnalysisSvc::run_name [private]

Definition at line 65 of file MyAnalysisSvc.hh.

Referenced by BeginOfRunAction(), MyAnalysisSvc(), and set_run_name().

int MyAnalysisSvc::run_num [private]

Definition at line 68 of file MyAnalysisSvc.hh.

Referenced by BeginOfRunAction(), EndOfEventAction(), and GetRunID().

clock_t MyAnalysisSvc::t_begin [private]

Definition at line 77 of file MyAnalysisSvc.hh.

Referenced by BeginOfRunAction(), EndOfEventAction(), and EndOfRunAction().

clock_t MyAnalysisSvc::t_end [private]

Definition at line 78 of file MyAnalysisSvc.hh.

Referenced by EndOfRunAction().

G4String MyAnalysisSvc::tree_name [private]

Definition at line 67 of file MyAnalysisSvc.hh.

Referenced by BeginOfRunAction(), ReadOutputCard(), and set_tree_name().


The documentation for this class was generated from the following files:

Generated on 15 Jun 2016 for g4sim by  doxygen 1.6.1