Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TMCVerbose.h
Go to the documentation of this file.
1 // @(#)root/vmc:$Id$
2 // Author: Ivana Hrivnacova; 24/02/2003
3 
4 /*************************************************************************
5  * Copyright (C) 2006, Rene Brun and Fons Rademakers. *
6  * Copyright (C) 2003, ALICE Experiment at CERN. *
7  * All rights reserved. *
8  * *
9  * For the licensing terms see $ROOTSYS/LICENSE. *
10  * For the list of contributors see $ROOTSYS/README/CREDITS. *
11  *************************************************************************/
12 
13 #ifndef ROOT_TMCVerbose
14 #define ROOT_TMCVerbose
15 
16 //
17 // Class TMCVerbose
18 // ----------------
19 // Class for printing a detailed infomation from MC application.
20 // Defined levels:
21 // 0 no output
22 // 1 info up to event level
23 // 2 info up to tracking level
24 // 3 detailed info for each step
25 
26 #include <TObject.h>
27 
28 class TVirtualMCStack;
29 
30 class TMCVerbose : public TObject {
31 public:
32  TMCVerbose(Int_t level);
33  TMCVerbose();
34  virtual ~TMCVerbose();
35 
36  // methods
37  virtual void InitMC();
38  virtual void RunMC(Int_t nofEvents);
39  virtual void FinishRun();
40 
41  virtual void ConstructGeometry();
42  virtual void ConstructOpGeometry();
43  virtual void InitGeometry();
44  virtual void AddParticles();
45  virtual void AddIons();
46  virtual void GeneratePrimaries();
47  virtual void BeginEvent();
48  virtual void BeginPrimary();
49  virtual void PreTrack();
50  virtual void Stepping();
51  virtual void PostTrack();
52  virtual void FinishPrimary();
53  virtual void EndOfEvent();
54  virtual void FinishEvent();
55 
56  // set methods
57  void SetLevel(Int_t level);
58 
59  // get methods
60  Int_t GetLevel() const;
61 
62 private:
63  // methods
64  void PrintBanner() const;
65  void PrintTrackInfo() const;
66  void PrintStepHeader() const;
67 
68  // data members
69  Int_t fLevel; ///< Verbose level
70  Int_t fStepNumber; ///< Current step number
71 
72  ClassDef(TMCVerbose, 1) // Verbose class for MC application
73 };
74 
75 // inline functions
76 
77 inline void TMCVerbose::SetLevel(Int_t level)
78 {
79  fLevel = level;
80 }
81 
82 inline Int_t TMCVerbose::GetLevel() const
83 {
84  return fLevel;
85 }
86 
87 #endif // ROOT_TMCVerbose