00001 // @(#)root/vmc:$Id: TMCVerbose.h 20882 2007-11-19 11:31:26Z rdm $ 00002 // Author: Ivana Hrivnacova; 24/02/2003 00003 00004 /************************************************************************* 00005 * Copyright (C) 2006, Rene Brun and Fons Rademakers. * 00006 * Copyright (C) 2003, ALICE Experiment at CERN. * 00007 * All rights reserved. * 00008 * * 00009 * For the licensing terms see $ROOTSYS/LICENSE. * 00010 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00011 *************************************************************************/ 00012 00013 #ifndef ROOT_TMCVerbose 00014 #define ROOT_TMCVerbose 00015 00016 // 00017 // Class TMCVerbose 00018 // ---------------- 00019 // Class for printing detailed info from MC application. 00020 // Defined levels: 00021 // 0 no output 00022 // 1 info up to event level 00023 // 2 info up to tracking level 00024 // 3 detailed info for each step 00025 00026 #include <TObject.h> 00027 00028 class TVirtualMCStack; 00029 00030 class TMCVerbose : public TObject 00031 { 00032 public: 00033 TMCVerbose(Int_t level); 00034 TMCVerbose(); 00035 virtual ~TMCVerbose(); 00036 00037 // methods 00038 virtual void InitMC(); 00039 virtual void RunMC(Int_t nofEvents); 00040 virtual void FinishRun(); 00041 00042 virtual void ConstructGeometry(); 00043 virtual void ConstructOpGeometry(); 00044 virtual void InitGeometry(); 00045 virtual void AddParticles(); 00046 virtual void AddIons(); 00047 virtual void GeneratePrimaries(); 00048 virtual void BeginEvent(); 00049 virtual void BeginPrimary(); 00050 virtual void PreTrack(); 00051 virtual void Stepping(); 00052 virtual void PostTrack(); 00053 virtual void FinishPrimary(); 00054 virtual void FinishEvent(); 00055 00056 // set methods 00057 void SetLevel(Int_t level); 00058 00059 private: 00060 // methods 00061 void PrintBanner() const; 00062 void PrintTrackInfo() const; 00063 void PrintStepHeader() const; 00064 00065 // data members 00066 Int_t fLevel; // verbose level 00067 Int_t fStepNumber; // current step number 00068 00069 ClassDef(TMCVerbose,1) //Verbose class for MC application 00070 }; 00071 00072 // inline functions 00073 00074 inline void TMCVerbose::SetLevel(Int_t level) 00075 { fLevel = level; } 00076 00077 #endif //ROOT_TMCVerbose 00078