Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ScoringManager.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29
30#ifndef G4ScoringManager_h
31#define G4ScoringManager_h 1
32
33#include "globals.hh"
34#include "G4VScoringMesh.hh"
35#include <vector>
36#include <map>
41#include "G4VScoreWriter.hh"
42
43// class description:
44//
45// This is a singleton class which manages the interactive scoring.
46// The user cannot access to the constructor. The pointer of the
47// only existing object can be got via G4ScoringManager::GetScoringManager()
48// static method. The first invokation of this static method makes
49// the singleton object.
50//
51
52typedef std::vector<G4VScoringMesh*> MeshVec;
53typedef std::vector<G4VScoringMesh*>::iterator MeshVecItr;
54typedef std::vector<G4VScoringMesh*>::const_iterator MeshVecConstItr;
55typedef std::map<G4String,G4VScoreColorMap*> ColorMapDict;
56typedef std::map<G4String,G4VScoreColorMap*>::iterator ColorMapDictItr;
57typedef std::map<G4String,G4VScoreColorMap*>::const_iterator ColorMapDictConstItr;
58
59
61{
62 public: // with description
64 // Returns the pointer to the singleton object.
65 public:
67
68 public:
69 static void SetReplicaLevel(G4int);
70 static G4int GetReplicaLevel();
71
72 protected:
74
75 public:
77
78 public: // with description
80 // Register a color map. Once registered, it is available by /score/draw and /score/drawColumn
81 // commands.
82
83 public:
86 void List() const;
87 void Dump() const;
88 void DrawMesh(const G4String& meshName, const G4String& psName,
89 const G4String& colorMapName, G4int axflg=111);
90 void DrawMesh(const G4String& meshName, const G4String& psName,
91 G4int idxPlane, G4int iColumn, const G4String& colorMapName);
92 void DumpQuantityToFile(const G4String& meshName, const G4String& psName,
93 const G4String& fileName, const G4String& option = "");
94 void DumpAllQuantitiesToFile(const G4String& meshName,
95 const G4String& fileName,
96 const G4String& option = "");
98 void ListScoreColorMaps();
99
100 private:
101 static G4ScoringManager * fSManager;
102 static G4int replicaLevel;
103 G4int verboseLevel;
104 G4ScoringMessenger* fMessenger;
105 G4ScoreQuantityMessenger* fQuantityMessenger;
106
107 MeshVec fMeshVec;
108 G4VScoringMesh* fCurrentMesh;
109
110 G4VScoreWriter * writer;
111 G4VScoreColorMap * fDefaultLinearColorMap;
112 ColorMapDict * fColorMapDict;
113
114 public:
116 { fCurrentMesh = scm; }
118 { return fCurrentMesh; }
119 inline void CloseCurrentMesh()
120 { fCurrentMesh = 0; }
121 inline void SetVerboseLevel(G4int vl)
122 {
123 verboseLevel = vl;
124 for(MeshVecItr itr = fMeshVec.begin(); itr != fMeshVec.end(); itr++) {
125 (*itr)->SetVerboseLevel(vl);
126 }
127 if(writer) writer->SetVerboseLevel(vl);
128 }
129 inline G4int GetVerboseLevel() const
130 { return verboseLevel; }
131 inline size_t GetNumberOfMesh() const
132 { return fMeshVec.size(); }
134 {
135 scm->SetVerboseLevel(verboseLevel);
136 fMeshVec.push_back(scm);
137 SetCurrentMesh(scm);
138 }
139 inline G4VScoringMesh* GetMesh(G4int i) const
140 { return fMeshVec[i]; }
142 { return fMeshVec[i]->GetWorldName(); }
143
144 public: // with description
146 {
147 if(writer) { delete writer; }
148 writer = sw;
149 if(writer) writer->SetVerboseLevel(verboseLevel);
150 }
151 // Replace score writers.
152};
153
154
155
156
157#endif
158
std::map< G4String, G4VScoreColorMap * >::const_iterator ColorMapDictConstItr
std::vector< G4VScoringMesh * > MeshVec
std::vector< G4VScoringMesh * >::const_iterator MeshVecConstItr
std::vector< G4VScoringMesh * >::iterator MeshVecItr
std::map< G4String, G4VScoreColorMap * >::iterator ColorMapDictItr
std::map< G4String, G4VScoreColorMap * > ColorMapDict
int G4int
Definition: G4Types.hh:66
G4VScoringMesh * FindMesh(const G4String &)
static G4int GetReplicaLevel()
G4VScoringMesh * GetMesh(G4int i) const
void RegisterScoringMesh(G4VScoringMesh *scm)
void Accumulate(G4VHitsCollection *map)
G4int GetVerboseLevel() const
static void SetReplicaLevel(G4int)
void SetVerboseLevel(G4int vl)
size_t GetNumberOfMesh() const
G4VScoreColorMap * GetScoreColorMap(const G4String &mapName)
void DumpAllQuantitiesToFile(const G4String &meshName, const G4String &fileName, const G4String &option="")
static G4ScoringManager * GetScoringManager()
G4String GetWorldName(G4int i) const
void SetCurrentMesh(G4VScoringMesh *scm)
void RegisterScoreColorMap(G4VScoreColorMap *colorMap)
void DrawMesh(const G4String &meshName, const G4String &psName, const G4String &colorMapName, G4int axflg=111)
G4VScoringMesh * GetCurrentMesh() const
void SetScoreWriter(G4VScoreWriter *sw)
static G4ScoringManager * GetScoringManagerIfExist()
void DumpQuantityToFile(const G4String &meshName, const G4String &psName, const G4String &fileName, const G4String &option="")
void SetVerboseLevel(G4int vl)
void SetVerboseLevel(G4int vl)