ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4coutFormatters.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4coutFormatters.hh
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
//
28
//
29
// --------------------------------------------------------------------
30
// GEANT 4 header file
31
//
32
// Class Description:
33
//
34
// Utilities to handle transformations of cout/cerr streams
35
36
// ---------------- G4coutFormatters ----------------
37
//
38
// Author: A.Dotti (SLAC), April 2017
39
// --------------------------------------------------------------------
40
#ifndef G4COUTFORMATTERS_HH
41
#define G4COUTFORMATTERS_HH
42
43
#include <algorithm>
44
#include <sstream>
45
#include <vector>
46
#include <ctime>
47
#include <iomanip>
48
#include <functional>
49
#include <unordered_map>
50
51
#include "
G4String.hh
"
52
#include "
G4ios.hh
"
53
#include "
G4strstreambuf.hh
"
54
55
namespace
G4coutFormatters
56
{
57
// Static definitions of provided formatters
58
namespace
ID
59
{
60
static
const
G4String
SYSLOG
=
"syslog"
;
61
static
const
G4String
DEFAULT
=
"default"
;
62
}
63
64
// A function that set ups a style for the destination
65
// Example for a style that set to all capital the messages
66
// to G4cerr:
67
// setupStyle_f myStyle = [](G4coutDestination* dest)->G4int {
68
// dest->SetCerrTransformer(
69
// [](G4String& msg){
70
// msg->toUpper();
71
// return true; }
72
// );
73
// };
74
using
SetupStyle_f
= std::function<G4int(G4coutDestination*)>;
75
76
using
String_V
=std::vector<G4String>;
77
78
// Return list of formatter names
79
String_V
Names
();
80
81
// Setup style (by name) to destination
82
G4int
HandleStyle
(
G4coutDestination
* dest ,
const
G4String
& style );
83
84
// Set name of the style for the master thread
85
void
SetMasterStyle
(
const
G4String
& );
86
G4String
GetMasterStyle
();
87
88
// This function should be called in user application main function
89
// to setup the style just after setting up RunManager
90
void
SetupStyleGlobally
(
const
G4String
& news);
91
92
// To be used by user to register by name a new formatter.
93
// So it can be used via one of the previous functions
94
void
RegisterNewStyle
(
const
G4String
&
name
,
SetupStyle_f
& formatter);
95
}
96
97
#endif // G4COUTFORMATTERS_HH
geant4
tree
geant4-10.6-release
source
global
management
include
G4coutFormatters.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:21
using
1.8.2 with
ECCE GitHub integration