ATLAS Offline Software
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Ringer::BuildCaloRingsJetFctor< container_t > Class Template Reference

#include <CaloRingerReaderJetUtils.h>

Inheritance diagram for Ringer::BuildCaloRingsJetFctor< container_t >:
Collaboration diagram for Ringer::BuildCaloRingsJetFctor< container_t >:

Public Types

typedef container_t::base_value_type particle_t
 Particle type that the functor will decorate the CaloRingsLinks. More...
 
typedef SG::WriteDecorHandle< container_t, xAOD::CaloRingsLinksdecor_t
 CaloRings links decorator handle type. More...
 

Public Member Functions

 BuildCaloRingsJetFctor (const std::string &decoContName, ToolHandle< ICaloRingsBuilder > &builder, IMessageSvc *msgSvc, IDataHandleHolder *owningAlg)
 Main ctor, repass information for interface. More...
 
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...
 
void operator() (const particle_t *part)
 Methods. More...
 
StatusCode initialize ()
 Initialize the decorator keys. More...
 
StatusCode prepareJetToLoopFor (std::size_t nParticles)
 Prepare to loop for nParticles. More...
 
void checkJetRelease ()
 Release the handles when finished looping. More...
 

Private Types

typedef BuildCaloRingsJetFctorBase base_t
 

Private Member Functions

void displayLoopingMessage () const
 Shows current looping status. More...
 
void checkJetRelease ()
 Release the handles when finished looping. More...
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

SG::WriteDecorHandleKey< container_t > m_decorKey
 Decorator key. More...
 
decor_tm_decor {nullptr}
 Write decorator handle. More...
 
ToolHandle< ICaloRingsBuilder > & m_builder
 Protected Properties. More...
 
size_t m_part_counter
 Hold number of particles already procesed for this event: More...
 
size_t m_part_size
 Hold number of particles to be processed: 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 constexpr const char * m_particle_name = Ringer::GetParticleProp<particle_t>::name
 Holds particle name: More...
 

Detailed Description

template<typename container_t>
class Ringer::BuildCaloRingsJetFctor< container_t >

Definition at line 107 of file CaloRingerReaderJetUtils.h.

Member Typedef Documentation

◆ base_t

template<typename container_t >
typedef BuildCaloRingsJetFctorBase Ringer::BuildCaloRingsJetFctor< container_t >::base_t
private

Definition at line 117 of file CaloRingerReaderJetUtils.h.

◆ decor_t

template<typename container_t >
typedef SG::WriteDecorHandle< container_t, xAOD::CaloRingsLinks > Ringer::BuildCaloRingsJetFctor< container_t >::decor_t

CaloRings links decorator handle type.

Definition at line 114 of file CaloRingerReaderJetUtils.h.

◆ particle_t

template<typename container_t >
typedef container_t::base_value_type Ringer::BuildCaloRingsJetFctor< container_t >::particle_t

Particle type that the functor will decorate the CaloRingsLinks.

Definition at line 111 of file CaloRingerReaderJetUtils.h.

Constructor & Destructor Documentation

◆ BuildCaloRingsJetFctor()

template<typename container_t >
Ringer::BuildCaloRingsJetFctor< container_t >::BuildCaloRingsJetFctor ( const std::string &  decoContName,
ToolHandle< ICaloRingsBuilder > &  builder,
IMessageSvc *  msgSvc,
IDataHandleHolder *  owningAlg 
)
inline

Main ctor, repass information for interface.

Definition at line 147 of file CaloRingerReaderJetUtils.h.

153  builder,
154  msgSvc,
155  owningAlg->name()),
156  m_decorKey( decoContName + "." + xAOD::caloRingsLinksDecorKey() )
157  { m_decorKey.setOwner(owningAlg);}

Member Function Documentation

◆ checkJetRelease() [1/2]

template<typename container_t >
void Ringer::BuildCaloRingsJetFctorBase::checkJetRelease
private

Release the handles when finished looping.

Definition at line 86 of file CaloRingerReaderJetUtils.cxx.

43  {
44  if ( m_part_counter == m_part_size ) {
45  delete m_crContH; m_crContH = nullptr;
46  delete m_rsContH; m_rsContH = nullptr;
47  }
48 }

◆ checkJetRelease() [2/2]

template<typename container_t >
void Ringer::BuildCaloRingsJetFctor< container_t >::checkJetRelease ( )

Release the handles when finished looping.

◆ displayLoopingMessage()

template<typename container_t >
void Ringer::BuildCaloRingsJetFctor< container_t >::displayLoopingMessage ( ) const
private

Shows current looping status.

◆ incrementCounter()

void Ringer::BuildCaloRingsJetFctorBase::incrementCounter ( )
inlineprotectedinherited

Increment particle looping counter.

Definition at line 81 of file CaloRingerReaderJetUtils.h.

81 { ++m_part_counter; }

◆ initialize()

template<typename container_t >
StatusCode Ringer::BuildCaloRingsJetFctor< container_t >::initialize ( )

Initialize the decorator keys.

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 42 of file AthMessaging.cxx.

43 {
45  m_lvl = m_imsg ?
46  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
47  MSG::INFO;
48 }

◆ 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 }

◆ operator()()

template<typename container_t >
void Ringer::BuildCaloRingsJetFctor< container_t >::operator() ( const particle_t part)

Methods.

Looping functor method when it has access to cluster.

◆ prepareJetToLoopFor()

template<typename container_t >
StatusCode Ringer::BuildCaloRingsJetFctor< container_t >::prepareJetToLoopFor ( std::size_t  nParticles)

Prepare to loop for nParticles.

◆ 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  // Ensure initMessaging was called to avoid that the user
31  // defined message level is being overwritten (ATEAM-1117).
32  if (!m_initialized.test_and_set()) initMessaging();
33  m_lvl = lvl;
34 }

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_builder

template<typename container_t >
ToolHandle<ICaloRingsBuilder>& Ringer::BuildCaloRingsJetFctorBase::m_builder
private

Protected Properties.

CaloRings which will be used

Definition at line 64 of file CaloRingerReaderJetUtils.h.

◆ m_crContH

SG::WriteHandle<xAOD::CaloRingsContainer>* Ringer::BuildCaloRingsJetFctorBase::m_crContH
privateinherited

Private Properties.

Keep CaloRingsContainer handle in scope until finished looping

Definition at line 95 of file CaloRingerReaderJetUtils.h.

◆ m_decor

template<typename container_t >
decor_t* Ringer::BuildCaloRingsJetFctor< container_t >::m_decor {nullptr}
private

Write decorator handle.

Definition at line 141 of file CaloRingerReaderJetUtils.h.

◆ m_decorKey

template<typename container_t >
SG::WriteDecorHandleKey< container_t > Ringer::BuildCaloRingsJetFctor< container_t >::m_decorKey
private

Decorator key.

Definition at line 136 of file CaloRingerReaderJetUtils.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.

◆ m_part_counter

template<typename container_t >
size_t Ringer::BuildCaloRingsJetFctorBase::m_part_counter
private

Hold number of particles already procesed for this event:

Definition at line 66 of file CaloRingerReaderJetUtils.h.

◆ m_part_size

template<typename container_t >
size_t Ringer::BuildCaloRingsJetFctorBase::m_part_size
private

Hold number of particles to be processed:

Definition at line 68 of file CaloRingerReaderJetUtils.h.

◆ m_particle_name

template<typename container_t >
constexpr const char* Ringer::BuildCaloRingsJetFctor< container_t >::m_particle_name = Ringer::GetParticleProp<particle_t>::name
staticconstexprprivate

Holds particle name:

Definition at line 126 of file CaloRingerReaderJetUtils.h.

◆ m_rsContH

SG::WriteHandle<xAOD::RingSetContainer>* Ringer::BuildCaloRingsJetFctorBase::m_rsContH
privateinherited

Keep RingSetContainer handle in scope until finished looping.

Definition at line 97 of file CaloRingerReaderJetUtils.h.


The documentation for this class was generated from the following file:
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
Ringer::BuildCaloRingsJetFctorBase::BuildCaloRingsJetFctorBase
BuildCaloRingsJetFctorBase(ToolHandle< ICaloRingsBuilder > &builder, IMessageSvc *msgSvc, const std::string &name)
Main ctor Initialize values.
Definition: CaloRingerReaderJetUtils.h:48
Ringer::BuildCaloRingsJetFctorBase::m_part_counter
size_t m_part_counter
Hold number of particles already procesed for this event:
Definition: CaloRingerReaderJetUtils.h:66
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
xAOD::caloRingsLinksDecorKey
std::string caloRingsLinksDecorKey()
Definition: getCaloRingsDecorator.h:17
Ringer::BuildCaloRingsJetFctorBase::m_crContH
SG::WriteHandle< xAOD::CaloRingsContainer > * m_crContH
Private Properties.
Definition: CaloRingerReaderJetUtils.h:95
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
Ringer::BuildCaloRingsJetFctorBase::m_rsContH
SG::WriteHandle< xAOD::RingSetContainer > * m_rsContH
Keep RingSetContainer handle in scope until finished looping.
Definition: CaloRingerReaderJetUtils.h:97
createSimpleDistributions.builder
builder
Definition: createSimpleDistributions.py:51
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
Ringer::BuildCaloRingsJetFctorBase::m_part_size
size_t m_part_size
Hold number of particles to be processed:
Definition: CaloRingerReaderJetUtils.h:68
Ringer::BuildCaloRingsJetFctor::m_decorKey
SG::WriteDecorHandleKey< container_t > m_decorKey
Decorator key.
Definition: CaloRingerReaderJetUtils.h:136
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:15
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:42
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
python.SystemOfUnits.ms
float ms
Definition: SystemOfUnits.py:148