ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Geo2G4SolidFactory Class Reference

#include <Geo2G4SolidFactory.h>

Inheritance diagram for Geo2G4SolidFactory:
Collaboration diagram for Geo2G4SolidFactory:

Public Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 
typedef std::pair< LArWheelSolid_t, int > LArWheelSolidDef_t
 
typedef std::map< std::string, LArWheelSolidDef_tLArWheelSolid_typemap
 

Public Member Functions

 Geo2G4SolidFactory ()
 
G4VSolid *Build ATLAS_NOT_THREAD_SAFE (const GeoShape *, std::string name=std::string(""))
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Private Member Functions

G4VSolid *createLArWheelSolid ATLAS_NOT_THREAD_SAFE (const std::string &name, const LArWheelSolidDef_t &lwsdef, const EMECData &emecData) const
 
G4VSolid *createLArWheelSliceSolid ATLAS_NOT_THREAD_SAFE (const GeoUnidentifiedShape *, const EMECData &emecData) const
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Static Private Attributes

static const LArWheelSolid_typemap s_lwsTypes
 

Detailed Description

Definition at line 22 of file Geo2G4SolidFactory.h.

Member Typedef Documentation

◆ LArWheelSolid_typemap

Definition at line 27 of file Geo2G4SolidFactory.h.

◆ LArWheelSolidDef_t

Definition at line 26 of file Geo2G4SolidFactory.h.

◆ StoreGateSvc_t

Definition at line 25 of file Geo2G4SolidFactory.h.

Constructor & Destructor Documentation

◆ Geo2G4SolidFactory()

Geo2G4SolidFactory::Geo2G4SolidFactory ( )

Definition at line 146 of file Geo2G4SolidFactory.cxx.

146  :
147  AthMessaging("Geo2G4SolidFactory"),
148  m_detStore( "StoreGateSvc/DetectorStore", "Geo2G4SolidFactory" )
149 {
150 }

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE() [1/3]

G4VSolid* Build Geo2G4SolidFactory::ATLAS_NOT_THREAD_SAFE ( const GeoShape *  ,
std::string  name = std::string("") 
)

◆ ATLAS_NOT_THREAD_SAFE() [2/3]

G4VSolid* createLArWheelSliceSolid Geo2G4SolidFactory::ATLAS_NOT_THREAD_SAFE ( const GeoUnidentifiedShape *  ,
const EMECData emecData 
) const
private

◆ ATLAS_NOT_THREAD_SAFE() [3/3]

G4VSolid* createLArWheelSolid Geo2G4SolidFactory::ATLAS_NOT_THREAD_SAFE ( const std::string &  name,
const LArWheelSolidDef_t lwsdef,
const EMECData emecData 
) const
private

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40 {
42  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 164 of file AthMessaging.h.

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level  lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 179 of file AthMessaging.h.

180 { return msg() << lvl; }

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152 {
153  if (!m_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level  lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29 {
30  m_lvl = lvl;
31 }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_detStore

StoreGateSvc_t Geo2G4SolidFactory::m_detStore
private

Pointer to StoreGate (detector store by default)

Definition at line 38 of file Geo2G4SolidFactory.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ s_lwsTypes

const Geo2G4SolidFactory::LArWheelSolid_typemap Geo2G4SolidFactory::s_lwsTypes
staticprivate

Definition at line 36 of file Geo2G4SolidFactory.h.


The documentation for this class was generated from the following files:
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
AthMessaging::AthMessaging
AthMessaging()
Default constructor:
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
Geo2G4SolidFactory::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: Geo2G4SolidFactory.h:38
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132