ATLAS Offline Software
Loading...
Searching...
No Matches
TrigEDMChecker Class Reference

#include <TrigEDMChecker.h>

Inheritance diagram for TrigEDMChecker:
Collaboration diagram for TrigEDMChecker:

Public Member Functions

virtual StatusCode initialize () override
 Adapted from code by A.Hamilton to check trigger EDM; R.Goncalo 21/11/07.
virtual StatusCode execute (const EventContext &ctx) override
 Execute method.
 AthAnalysisAlgorithm (const std::string &name)
 Constructor taking just a name.
 AthAnalysisAlgorithm (const std::string &name, ISvcLocator *pSvcLocator)
 Constructor with parameters:
virtual StatusCode sysInitialize () override
 Function initialising the tool in the correct way in Athena.
virtual StatusCode sysExecute (const EventContext &) override
 override to do firstEvent method
template<typename T>
StatusCode retrieveMetadata (const std::string &folder, const std::string &key, T &out)
 Helper function to access IOVMetaDataContainer information helped in the MetaDataStore.
template<typename T>
StatusCode retrieveMetadata (const std::string &folder, const std::string &key, T &out, const IOVTime &time, int channel=-1)
 Helper function to access IOVMetaDataContainer information held in InputMetaDataStore, but will check IOVTime.
const ServiceHandle< ITHistSvc > & histSvc () const
 The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a pointer to the THistSvc.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
 Get filter decision:
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 Set filter decision:
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
Functions providing access to the input/output metadata
const ServiceHandle< StoreGateSvc > & inputMetaStore () const
 Const accessor for the input metadata store.
ServiceHandle< StoreGateSvc > & inputMetaStore ()
 Accessor for the input metadata store.
const ServiceHandle< StoreGateSvc > & outputMetaStore () const
 Const accessor for the output metadata store.
ServiceHandle< StoreGateSvc > & outputMetaStore ()
 Accessor for the output metadata store.

Protected Member Functions

void updateEvtStore (Gaudi::Details::PropertyBase &prop)
virtual void handle (const Incident &inc) override
 Function receiving incidents from IncidentSvc/TEvent Experts can override but they should ensure they add AthAnalysisAlgorithm::handle(); to the end of their own implementation.
virtual StatusCode beginInputFile ()
 Function called when a new input file is opened user can read input metadata from inputMetaStore().
virtual StatusCode endInputFile ()
 Function called as an input file is being closed.
virtual StatusCode metaDataStop ()
 Function called before finalize user can read output metadata from outputMetaStore().
virtual StatusCode firstExecute ()
 Function called when first execute is encountered user can read event information with evtStore().
virtual TFile * currentFile (const char *evtSelName="EventSelector") final
 Function returning the TFile pointer of the currently open file of the given EventSelector (in athena jobs this defaults to "EventSelector").
virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.
StatusCode configAthHistogramming (const ServiceHandle< ITHistSvc > &histSvc, const std::string &prefix, const std::string &rootDir, const std::string &histNamePrefix, const std::string &histNamePostfix, const std::string &histTitlePrefix, const std::string &histTitlePostfix)
 To be called by the derived classes to fill the internal configuration.
TH1 * bookGetPointer (const TH1 &hist, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
TH1 * bookGetPointer (TH1 *hist, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
TH1 * bookGetPointer (TH1 &histRef, std::string tDir="", std::string stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
TTree * bookGetPointer (const TTree &treeRef, std::string tDir="", std::string stream="")
 Simplify the booking and registering (into THistSvc) of TTrees.
TGraph * bookGetPointer (const TGraph &graphRef, std::string tDir="", std::string stream="")
 Simplify the booking and registering (into THistSvc) of TGraphs.
TEfficiency * bookGetPointer (const TEfficiency &eff, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
TEfficiency * bookGetPointer (TEfficiency *eff, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
TEfficiency * bookGetPointer (TEfficiency &effRef, std::string tDir="", std::string stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
StatusCode book (const TH1 &hist, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
StatusCode book (TH1 *hist, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
StatusCode book (TH1 &histRef, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
StatusCode book (const TTree &treeRef, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TTrees.
StatusCode book (const TGraph &graphRef, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TGraphs.
StatusCode book (const TEfficiency &eff, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
StatusCode book (TEfficiency *eff, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
StatusCode book (TEfficiency &effRef, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
TH1 * hist (const std::string &histName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered histograms of any type.
TH2 * hist2d (const std::string &histName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered 2-d histograms.
TH3 * hist3d (const std::string &histName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered 3-d histograms.
TTree * tree (const std::string &treeName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered TTrees.
TGraph * graph (const std::string &graphName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered TGraphs.
TEfficiency * efficiency (const std::string &effName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered TEfficiency.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
typedef uint32_t hash_t
 typedef for the internal hash
typedef std::map< const hash_t, TH1 * > HistMap_t
 Typedef for convenience.
typedef std::map< const hash_t, TEfficiency * > EffMap_t
 Typedef for convenience.
typedef std::map< const hash_t, TTree * > TreeMap_t
 Typedef for convenience.
typedef std::map< const hash_t, TGraph * > GraphMap_t
 Typedef for convenience.

Private Member Functions

StatusCode dumpTrigPassBits ()
StatusCode dumpLVL1_ROI ()
StatusCode dumpxAODTrigMissingET ()
StatusCode dumpxAODJetContainer ()
StatusCode dumpTrigL2BphysContainer ()
StatusCode dumpTrigEFBphysContainer ()
StatusCode dumpxAODTrigEMCluster ()
StatusCode dumpxAODTrigEMClusterContainer ()
StatusCode dumpxAODMuonContainer ()
StatusCode dumpxAODTrigElectronContainer ()
StatusCode dumpxAODTrigPhotonContainer ()
StatusCode dumpxAODElectronContainer ()
StatusCode dumpxAODPhotonContainer ()
StatusCode dumpxAODTauJetContainer ()
StatusCode dumpxAODTrackParticle ()
StatusCode dumpxAODVertex ()
StatusCode dumpStoreGate ()
StatusCode dumpTDT (const EventContext &ctx)
StatusCode dumpxAODTrigMinBias ()
void dumpTrigSpacePointCounts ()
void dumpTrigT2MBTSBits ()
void dumpTrigVertexCounts ()
void dumpTrigTrackCounts ()
StatusCode dumpNavigation (const EventContext &ctx)
StatusCode dumpTrigComposite ()
 Dump information on TrigComposite collections.
StatusCode checkTrigCompositeElementLink (const xAOD::TrigComposite *tc, size_t element)
 Dump details on element links within TrigComposites.
StatusCode TrigCompositeNavigationToDot (std::string &returnValue, bool &pass)
 Construct graph of HLT navigation in Run-3.
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>
void buildBookingString (std::string &bookingString, std::string &histName, std::string &tDir, std::string &stream, bool usePrefixPostfix=false)
 Method to build individual booking string.
void myReplace (std::string &str, const std::string &oldStr, const std::string &newStr)
 Helper method to replace sub-string.
hash_t hash (const std::string &histName) const
 Method to calculate a 32-bit hash from a string.

Private Attributes

Gaudi::Property< bool > m_doDumpAll {this, "doDumpAll", true}
Gaudi::Property< bool > m_doDumpTrigPassBits {this, "doDumpTrigPassBits", false}
Gaudi::Property< bool > m_doDumpLVL1_ROI {this, "doDumpLVL1_ROI", false}
Gaudi::Property< bool > m_doDumpxAODTrigMissingET {this, "doDumpxAODTrigMissingET", false}
Gaudi::Property< bool > m_doDumpxAODJetContainer {this, "doDumpxAODJetContainer", false}
Gaudi::Property< bool > m_doDumpTrigL2BphysContainer {this, "doDumpTrigL2BphysContainer", false}
Gaudi::Property< bool > m_doDumpTrigEFBphysContainer {this, "doDumpTrigEFBphysContainer", false}
Gaudi::Property< bool > m_doDumpxAODTrigEMCluster {this, "doDumpxAODTrigEMCluster", false}
Gaudi::Property< bool > m_doDumpxAODTrigEMClusterContainer {this, "doDumpxAODTrigEMClusterContainer", false}
Gaudi::Property< bool > m_doDumpxAODMuonContainer {this, "doDumpxAODMuonContainer", false}
Gaudi::Property< bool > m_doDumpxAODTrigElectronContainer {this, "doDumpxAODTrigElectronContainer", false}
Gaudi::Property< bool > m_doDumpxAODTrigPhotonContainer {this, "doDumpxAODTrigPhotonContainer", false}
Gaudi::Property< bool > m_doDumpxAODElectronContainer {this, "doDumpxAODElectronContainer", false}
Gaudi::Property< bool > m_doDumpxAODPhotonContainer {this, "doDumpxAODPhotonContainer", false}
Gaudi::Property< bool > m_doDumpxAODTauJetContainer {this, "doDumpxAODTauJetContainer", false}
Gaudi::Property< bool > m_doDumpxAODTrackParticle {this, "doDumpxAODTrackParticle", false}
Gaudi::Property< bool > m_doDumpxAODVertex {this, "doDumpxAODVertex", false}
Gaudi::Property< bool > m_doDumpStoreGate {this, "doDumpStoreGate", false }
Gaudi::Property< bool > m_doTDTCheck {this, "doTDTCheck", false }
Gaudi::Property< bool > m_doDumpxAODTrigMinBias {this, "doDumpxAODTrigMinBias", false}
Gaudi::Property< bool > m_doDumpAllTrigComposite {this, "doDumpAllTrigComposite", false }
Gaudi::Property< std::vector< std::string > > m_dumpTrigCompositeContainers {this, "dumpTrigCompositeContainers", false, "List of TCs to dump" }
Gaudi::Property< bool > m_doDumpNavigation {this, "doDumpNavigation", false }
Gaudi::Property< std::string > m_dumpNavForChain {this, "DumpNavigationForChain", "", "Optional chain to restrict navigation dump info."}
Gaudi::Property< bool > m_excludeFailedHypoNodes
Gaudi::Property< bool > m_doDumpTrigCompsiteNavigation {this, "doDumpTrigCompsiteNavigation",false }
ToolHandle< Rec::IMuonPrintingToolm_muonPrinter {this, "MuonPrinter", "Rec::MuonPrintingTool/MuonPrintingTool"}
ServiceHandle< IClassIDSvc > m_clidSvc {this, "ClassIDSvc", "ClassIDSvc", "Service providing CLID info"}
SG::ReadHandleKey< xAOD::TrackParticleContainerm_muonTracksKey { this, "MuonTracksKey", "HLT_IDTrack_Muon_FTF"}
SG::ReadHandleKey< xAOD::TrigNavigationm_navigationHandleKey { this, "TrigNavigation", "TrigNavigation", "" }
SG::WriteHandleKey< TrigCompositeUtils::DecisionContainerm_decisionsKey { this, "Decisions", "RoIDecisions", "Decisions created from TEs" }
ToolHandle< HLT::Navigationm_navigationTool { this, "NavigationTool", "HLT::Navigation/Navigation", "" }
PublicToolHandle< Trig::TrigDecisionToolm_trigDec { this, "TriggerDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool", ""}
ServiceHandle< StoreGateSvcm_inputMetaStore
 Object accessing the input metadata store.
ServiceHandle< StoreGateSvcm_outputMetaStore
 Object accessing the output metadata store.
TFile * m_currentFile {nullptr}
bool m_doneFirstEvent {false}
ServiceHandle< ITHistSvc > m_histSvc
 Default constructor: AthHistogramAlgorithm();.
std::string m_prefix
 Name of the ROOT output stream (file).
std::string m_rootDir
 Name of the ROOT directory.
std::string m_histNamePrefix
 The prefix for the histogram THx name.
std::string m_histNamePostfix
 The postfix for the histogram THx name.
std::string m_histTitlePrefix
 The prefix for the histogram THx title.
std::string m_histTitlePostfix
 The postfix for the histogram THx title.
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared
HistMap_t m_histMap
 The map of histogram names to their pointers.
EffMap_t m_effMap
 The map of histogram names to their pointers.
TreeMap_t m_treeMap
 The map of TTree names to their pointers.
GraphMap_t m_graphMap
 The map of TGraph names to their pointers.
std::string m_streamName
 Name of the ROOT output stream (file).
std::string m_name
 Instance name.
MsgStream m_msg
 Cached Message Stream.

Detailed Description

Definition at line 23 of file TrigEDMChecker.h.

Member Typedef Documentation

◆ EffMap_t

typedef std::map< const hash_t, TEfficiency* > AthHistogramming::EffMap_t
privateinherited

Typedef for convenience.

Definition at line 207 of file AthHistogramming.h.

◆ GraphMap_t

typedef std::map< const hash_t, TGraph* > AthHistogramming::GraphMap_t
privateinherited

Typedef for convenience.

Definition at line 221 of file AthHistogramming.h.

◆ hash_t

typedef uint32_t AthHistogramming::hash_t
privateinherited

typedef for the internal hash

Definition at line 171 of file AthHistogramming.h.

◆ HistMap_t

typedef std::map< const hash_t, TH1* > AthHistogramming::HistMap_t
privateinherited

Typedef for convenience.

Definition at line 200 of file AthHistogramming.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

◆ TreeMap_t

typedef std::map< const hash_t, TTree* > AthHistogramming::TreeMap_t
privateinherited

Typedef for convenience.

Definition at line 214 of file AthHistogramming.h.

Member Function Documentation

◆ AthAnalysisAlgorithm() [1/2]

Constructor taking just a name.

Definition at line 38 of file AthAnalysisAlgorithm.cxx.

20 : AthAnalysisAlgorithm( name, Gaudi::svcLocator() )
21{
22 //we assume this constructor is used outside of the framework
23 //therefore we must increment the ref count so that
24 //any SmartIF doesn't "release" the alg and therefore delete it
25 addRef();
26}
AthAnalysisAlgorithm(const std::string &name)
Constructor taking just a name.

◆ AthAnalysisAlgorithm() [2/2]

AthAnalysisAlgorithm::AthAnalysisAlgorithm ( const std::string & name,
ISvcLocator * pSvcLocator )

Constructor with parameters:

Definition at line 41 of file AthAnalysisAlgorithm.cxx.

29 : AthHistogramAlgorithm(name,pSvcLocator)
30 , m_inputMetaStore( "StoreGateSvc/InputMetaDataStore", name )
31 , m_outputMetaStore( "StoreGateSvc/MetaDataStore", name )
32{
33
34 //declare an update handler for the EvtStore property, to reset the ServiceHandle
35 for(auto prop : getProperties()) {
36 if(prop->name() != "EvtStore") continue;
37 prop->declareUpdateHandler(&AthAnalysisAlgorithm::updateEvtStore, this );
38 break;
39 }
40
41}
ServiceHandle< StoreGateSvc > m_inputMetaStore
Object accessing the input metadata store.
void updateEvtStore(Gaudi::Details::PropertyBase &prop)
ServiceHandle< StoreGateSvc > m_outputMetaStore
Object accessing the output metadata store.
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:

◆ beginInputFile()

StatusCode AthAnalysisAlgorithm::beginInputFile ( )
protectedvirtualinherited

Function called when a new input file is opened user can read input metadata from inputMetaStore().

Dummy implementation that can be overridden by the derived tool.

Reimplemented in MuonVal::MetaDataAlg.

Definition at line 114 of file AthAnalysisAlgorithm.cxx.

114 {
115
116 // Return gracefully:
117 return StatusCode::SUCCESS;
118}

◆ book() [1/8]

StatusCode AthHistogramming::book ( const TEfficiency & eff,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 337 of file AthHistogramming.h.

338{
339 // We need to create a non-const clone
340 TEfficiency* effClone = dynamic_cast< TEfficiency* >( eff.Clone() );
341 if ( !effClone ) {
342 m_msg << MSG::ERROR << "Couldn't create a TEfficiency clone" << endmsg;
343 return StatusCode::FAILURE;
344 }
345 return this->book( *effClone, tDir, stream );
346}
#define endmsg
StatusCode book(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.
MsgStream m_msg
Cached Message Stream.

◆ book() [2/8]

StatusCode AthHistogramming::book ( const TGraph & graphRef,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TGraphs.

◆ book() [3/8]

StatusCode AthHistogramming::book ( const TH1 & hist,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 305 of file AthHistogramming.h.

306{
307 // We need to create a non-const clone
308 TH1* histClone = dynamic_cast< TH1* >( hist.Clone() );
309 if ( !histClone ) {
310 m_msg << MSG::ERROR << "Couldn't create a TH1 clone" << endmsg;
311 return StatusCode::FAILURE;
312 }
313 return this->book( *histClone, tDir, stream );
314}
TH1 * hist(const std::string &histName, const std::string &tDir="", const std::string &stream="")
Simplify the retrieval of registered histograms of any type.

◆ book() [4/8]

StatusCode AthHistogramming::book ( const TTree & treeRef,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TTrees.

Definition at line 405 of file AthHistogramming.h.

406{
407 // Call the other Book method and see if it returns a valid pointer
408 TTree* treePointer = this->bookGetPointer( treeRef, tDir, stream );
409 if ( treePointer )
410 {
411 return StatusCode::SUCCESS;
412 }
413 else
414 {
415 return StatusCode::FAILURE;
416 }
417}
TH1 * bookGetPointer(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.

◆ book() [5/8]

StatusCode AthHistogramming::book ( TEfficiency & effRef,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 358 of file AthHistogramming.h.

359{
360 // Call the other Book method and see if it returns a valid pointer
361 TEfficiency* effPointer = this->bookGetPointer( effRef, tDir, stream );
362 if ( !effPointer ) {
363 m_msg << MSG::ERROR << "Couldn't book a TEfficiency" << endmsg;
364 return StatusCode::FAILURE;
365 }
366 return StatusCode::SUCCESS;
367}

◆ book() [6/8]

StatusCode AthHistogramming::book ( TEfficiency * eff,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 348 of file AthHistogramming.h.

349{
350 if ( !eff ) {
351 m_msg << MSG::ERROR << "Got a zero pointer to a TEfficiency" << endmsg;
352 return StatusCode::FAILURE;
353 }
354 return this->book( *eff, tDir, stream );
355}

◆ book() [7/8]

StatusCode AthHistogramming::book ( TH1 & histRef,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 326 of file AthHistogramming.h.

327{
328 // Call the other Book method and see if it returns a valid pointer
329 TH1* histPointer = this->bookGetPointer( histRef, tDir, stream );
330 if ( !histPointer ) {
331 m_msg << MSG::ERROR << "Couldn't book a TH1" << endmsg;
332 return StatusCode::FAILURE;
333 }
334 return StatusCode::SUCCESS;
335}

◆ book() [8/8]

StatusCode AthHistogramming::book ( TH1 * hist,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 316 of file AthHistogramming.h.

317{
318 if ( !hist ) {
319 m_msg << MSG::ERROR << "Got a zero pointer to a TH1" << endmsg;
320 return StatusCode::FAILURE;
321 }
322 return this->book( *hist, tDir, stream );
323}

◆ bookGetPointer() [1/8]

TEfficiency * AthHistogramming::bookGetPointer ( const TEfficiency & eff,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 283 of file AthHistogramming.h.

284{
285 // We need to create a non-const clone
286 TEfficiency* histClone = dynamic_cast< TEfficiency* >( hist.Clone() );
287 if ( !histClone ) {
288 m_msg << MSG::ERROR << "Couldn't create a TEfficiency clone in bookGetPointer" << endmsg;
289 return 0;
290 }
291 return this->bookGetPointer( *histClone, tDir, stream );
292
293}

◆ bookGetPointer() [2/8]

TGraph * AthHistogramming::bookGetPointer ( const TGraph & graphRef,
std::string tDir = "",
std::string stream = "" )
protectedinherited

Simplify the booking and registering (into THistSvc) of TGraphs.

Definition at line 388 of file AthHistogramming.cxx.

389{
390 // Get a pointer
391 const TGraph* graphPointer = &graphRef;
392
393 // Check that we got a valid pointer
394 if ( !graphPointer )
395 {
396 m_msg << MSG::WARNING
397 << "We got an invalid TGraph pointer in the BookGetPointer(TGraph*) method of the class" << m_name
398 << "!" << endmsg;
399 return NULL;
400 }
401
402 // Modify the name and title according to the prefixes of this classes instance
403 std::string graphName = graphPointer->GetName();
404 const std::string graphTitle = graphPointer->GetTitle();
405
406 // Check if the hash for this graphName already exists, i.e., if we have a hash collision
407 const hash_t graphHash = this->hash(graphName);
408 GraphMap_t::const_iterator it = m_graphMap.find( graphHash );
409 if ( it != m_graphMap.end() ) // It does exist!
410 {
411 m_msg << MSG::WARNING
412 << "Detected a hash collision. The hash for the TGraph with name=" << graphName
413 << " already exists and points to a TGraph with name=" << it->second->GetName()
414 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
415 return NULL;
416 }
417
418 // Create a clone that has the new name
419 TGraph* graphClone = dynamic_cast< TGraph* >( graphPointer->Clone((m_histNamePrefix+graphName+m_histNamePostfix).c_str()) );
420 if( !graphClone )
421 {
422 m_msg << MSG::WARNING
423 << "We couldn't clone the TGraph in the BookGetPointer(TGraph&) method of the class" << m_name
424 << "!" << endmsg;
425 return NULL;
426 }
427 graphClone->SetTitle ((m_histTitlePrefix+graphTitle+m_histTitlePostfix).c_str());
428
429 // Massage the final string to book things
430 std::string bookingString("");
431 this->buildBookingString( bookingString, graphName, tDir, stream );
432
433 // Register the TGraph into the THistSvc
434 if ( !((histSvc()->regGraph(bookingString, graphClone)).isSuccess()) )
435 {
436 m_msg << MSG::WARNING
437 << "Problem registering TGraph with name " << graphName
438 << ", title " << graphTitle
439 << " in " << m_name << "!" << endmsg;
440 return NULL;
441 }
442
443 // Also register it in the local map of string to pointer
444 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphClone ) );
445
446 return graphClone;
447}
const ServiceHandle< ITHistSvc > & histSvc() const
The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a...
std::string m_histNamePostfix
The postfix for the histogram THx name.
hash_t hash(const std::string &histName) const
Method to calculate a 32-bit hash from a string.
uint32_t hash_t
typedef for the internal hash
std::string m_histTitlePostfix
The postfix for the histogram THx title.
std::string m_histTitlePrefix
The prefix for the histogram THx title.
std::string m_name
Instance name.
void buildBookingString(std::string &bookingString, std::string &histName, std::string &tDir, std::string &stream, bool usePrefixPostfix=false)
Method to build individual booking string.
std::string m_histNamePrefix
The prefix for the histogram THx name.
GraphMap_t m_graphMap
The map of TGraph names to their pointers.

◆ bookGetPointer() [3/8]

TH1 * AthHistogramming::bookGetPointer ( const TH1 & hist,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 262 of file AthHistogramming.h.

263{
264 // We need to create a non-const clone
265 TH1* histClone = dynamic_cast< TH1* >( hist.Clone() );
266 if ( !histClone ) {
267 m_msg << MSG::ERROR << "Couldn't create a TH1 clone in bookGetPointer" << endmsg;
268 return 0;
269 }
270 return this->bookGetPointer( *histClone, tDir, stream );
271
272}

◆ bookGetPointer() [4/8]

TTree * AthHistogramming::bookGetPointer ( const TTree & treeRef,
std::string tDir = "",
std::string stream = "" )
protectedinherited

Simplify the booking and registering (into THistSvc) of TTrees.

Definition at line 273 of file AthHistogramming.cxx.

274{
275 // Get a pointer
276 const TTree* treePointer = &treeRef;
277
278 // Check that we got a valid pointer
279 if ( !treePointer )
280 {
281 m_msg << MSG::WARNING
282 << "We got an invalid TTree pointer in the BookGetPointer(TTree*) method of the class" << m_name
283 << "!" << endmsg;
284 return NULL;
285 }
286
287 // Modify the name and title according to the prefixes of this classes instance
288 std::string treeName = treePointer->GetName();
289 const std::string treeTitle = treePointer->GetTitle();
290
291 // Check if the hash for this treeName already exists, i.e., if we have a hash collision
292 const hash_t treeHash = this->hash(treeName);
293 TreeMap_t::const_iterator it = m_treeMap.find( treeHash );
294 if ( it != m_treeMap.end() ) // It does exist!
295 {
296 m_msg << MSG::WARNING
297 << "Detected a hash collision. The hash for the TTree with name=" << treeName
298 << " already exists and points to a TTree with name=" << it->second->GetName()
299 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
300 return NULL;
301 }
302
303 // Create a clone that has the new name
304 TTree* treeClone = dynamic_cast< TTree* >( treePointer->Clone(treeName.c_str()) );
305 if( !treeClone )
306 {
307 m_msg << MSG::WARNING
308 << "We couldn't clone the TTree in the BookGetPointer(TTree&) method of the class" << m_name
309 << "!" << endmsg;
310 return NULL;
311 }
312 treeClone->SetTitle (treeTitle.c_str());
313
314 // Massage the final string to book things
315 std::string bookingString("");
316 this->buildBookingString( bookingString, treeName, tDir, stream );
317
318 // Register the TTree into the THistSvc
319 if ( !((histSvc()->regTree(bookingString, treeClone)).isSuccess()) )
320 {
321 m_msg << MSG::WARNING
322 << "Problem registering TTree with name " << treeName
323 << ", title " << treeTitle
324 << " in " << m_name << "!" << endmsg;
325 return NULL;
326 }
327
328 // Also register it in the local map of string to pointer
329 m_treeMap.insert( m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treeClone ) );
330
331 return treeClone;
332}
TreeMap_t m_treeMap
The map of TTree names to their pointers.

◆ bookGetPointer() [5/8]

TEfficiency * AthHistogramming::bookGetPointer ( TEfficiency & effRef,
std::string tDir = "",
std::string stream = "" )
protectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 123 of file AthHistogramming.cxx.

124{
125 std::string effName(effRef.GetName());
126 const std::string effTitle(effRef.GetTitle());
127 std::string bookingString;
128 this->buildBookingString(bookingString, effName, tDir, stream);
129 const std::string finalEffName = m_histNamePrefix + effName + m_histNamePostfix;
130 effRef.SetTitle((m_histTitlePrefix + effTitle + m_histTitlePostfix).c_str());
131 effRef.SetName(finalEffName.c_str());
132
133 const hash_t effHash = this->hash(effName);
134 EffMap_t::const_iterator it = m_effMap.find(effHash);
135 if (it != m_effMap.end()) {
136 m_msg << MSG::WARNING
137 << "Detected a hash collision. The hash for the TEfficiency with name=" << effName
138 << " already exists and points to a TEfficiency with name=" << it->second->GetName()
139 << " NOT going to book the new TEfficiency and returning a NULL pointer!" << endmsg;
140 return nullptr;
141 }
142
143 if (!histSvc()->regEfficiency(bookingString, &effRef).isSuccess()) {
144 m_msg << MSG::WARNING
145 << "Problem registering TEfficiency with name " << effName
146 << ", name prefix " << m_histNamePrefix
147 << ", title " << effTitle
148 << ", title prefix " << m_histTitlePrefix
149 << ", and title postfix " << m_histTitlePostfix
150 << " in " << m_name << "!" << endmsg;
151 return nullptr;
152 }
153
154 m_effMap.insert(m_effMap.end(), std::pair<const hash_t, TEfficiency*>(effHash, &effRef));
155
156 return &effRef;
157}
EffMap_t m_effMap
The map of histogram names to their pointers.

◆ bookGetPointer() [6/8]

TEfficiency * AthHistogramming::bookGetPointer ( TEfficiency * eff,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 295 of file AthHistogramming.h.

296{
297 if ( !hist ) {
298 m_msg << MSG::ERROR << "Got a zero pointer to a TEfficiency in bookGetPointer" << endmsg;
299 return 0;
300 }
301 return this->bookGetPointer( *hist, tDir, stream );
302}

◆ bookGetPointer() [7/8]

TH1 * AthHistogramming::bookGetPointer ( TH1 & histRef,
std::string tDir = "",
std::string stream = "" )
protectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 83 of file AthHistogramming.cxx.

84{
85 std::string histName(histRef.GetName());
86 const std::string histTitle(histRef.GetTitle());
87 std::string bookingString;
88
89 this->buildBookingString(bookingString, histName, tDir, stream);
90
91 const std::string finalHistName = m_histNamePrefix + histName + m_histNamePostfix;
92
93 histRef.SetTitle((m_histTitlePrefix + histTitle + m_histTitlePostfix).c_str());
94 histRef.SetName(finalHistName.c_str());
95
96 const hash_t histHash = this->hash(histName);
97 HistMap_t::const_iterator it = m_histMap.find(histHash);
98 if (it != m_histMap.end()) {
99 m_msg << MSG::WARNING
100 << "Detected a hash collision. The hash for the histogram with name=" << histName
101 << " already exists and points to a histogram with name=" << it->second->GetName()
102 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
103 return nullptr;
104 }
105
106 if (!histSvc()->regHist(bookingString, &histRef).isSuccess()) {
107 m_msg << MSG::WARNING
108 << "Problem registering histogram with name " << histName
109 << ", name prefix " << m_histNamePrefix
110 << ", title " << histTitle
111 << ", title prefix " << m_histTitlePrefix
112 << ", and title postfix " << m_histTitlePostfix
113 << " in " << m_name << "!" << endmsg;
114 return nullptr;
115 }
116
117 m_histMap.insert(m_histMap.end(), std::pair<const hash_t, TH1*>(histHash, &histRef));
118
119 return &histRef;
120}
HistMap_t m_histMap
The map of histogram names to their pointers.

◆ bookGetPointer() [8/8]

TH1 * AthHistogramming::bookGetPointer ( TH1 * hist,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 274 of file AthHistogramming.h.

275{
276 if ( !hist ) {
277 m_msg << MSG::ERROR << "Got a zero pointer to a TH1 in bookGetPointer" << endmsg;
278 return 0;
279 }
280 return this->bookGetPointer( *hist, tDir, stream );
281}

◆ buildBookingString()

void AthHistogramming::buildBookingString ( std::string & bookingString,
std::string & histName,
std::string & tDir,
std::string & stream,
bool usePrefixPostfix = false )
privateinherited

Method to build individual booking string.

Definition at line 521 of file AthHistogramming.cxx.

526{
527 // Massage the final string to book things
528 if(tDir.empty()) tDir = m_rootDir;
529 size_t pos = histName.rfind('/');
530 if(pos != std::string::npos){
531 tDir+='/';
532 tDir.append(histName, 0,pos);
533 histName.erase(0,pos+1);
534 };
535 if(stream.empty()) stream = m_streamName;
536
537 if(usePrefixPostfix){
538 bookingString = "/"+stream+"/"+tDir+"/"+m_histNamePrefix+histName+m_histNamePostfix;
539 } else {
540 bookingString = "/"+stream+"/"+tDir+"/"+histName;
541 }
542 while(bookingString.find("//") != std::string::npos){
543 this->myReplace(bookingString,"//","/");
544 }
545
546 return;
547}
std::string m_rootDir
Name of the ROOT directory.
std::string m_streamName
Name of the ROOT output stream (file).
void myReplace(std::string &str, const std::string &oldStr, const std::string &newStr)
Helper method to replace sub-string.

◆ checkTrigCompositeElementLink()

StatusCode TrigEDMChecker::checkTrigCompositeElementLink ( const xAOD::TrigComposite * tc,
size_t element )
private

Dump details on element links within TrigComposites.

With specific checking of the Run-3 relationships

Definition at line 2086 of file TrigEDMChecker.cxx.

2086 {
2087
2088 const std::string name = tc->linkColNames().at(element);
2089 const CLID clid = static_cast<CLID>(tc->linkColClids().at(element));
2090
2092
2093 const ElementLink<TrigRoiDescriptorCollection> elementLink = tc->objectLink<TrigRoiDescriptorCollection>(name);
2094 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to TrigRoiDescriptorCollection, link name:'" << name << "'");
2095 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "'' to TrigRoiDescriptor:" << *elementLink);
2096
2097 } else if (clid == ClassID_traits< DataVector< LVL1::RecEmTauRoI > >::ID()) { // There could be a few ROI types....
2098 // CLASS_DEF( DataVector< LVL1::RecEmTauRoI >, 6256, 1 )
2099
2100 const ElementLink<DataVector< LVL1::RecEmTauRoI >> elementLink = tc->objectLink<DataVector< LVL1::RecEmTauRoI >>(name);
2101 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to LVL1::RecEmTauRoI, link name:'" << name << "'");
2102 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to LVL1::RecEmTauRoI:" << *elementLink);
2103
2105
2107 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to TrigComposite, link name:'" << name << "'");
2108 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to TrigComposite, TC name:'" << (*elementLink)->name() << "'");
2109
2110 } else if (clid == ClassID_traits< ViewContainer >::ID()) {
2111
2112 const ElementLink<ViewContainer> elementLink = tc->objectLink<ViewContainer>(name);
2113 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to View, link name:'" << name << "'");
2114 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to View:'" << *elementLink);
2115
2116 } else if (name == "feature") {
2117
2119
2121 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to xAOD::TrigEMClusterContainer 'feature'");
2122 else ATH_MSG_DEBUG(" Dereferenced xAOD::TrigEMClusterContainer link 'feature', Energy:" << (*elementLink)->energy());
2123
2125
2127 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to xAOD::TrigMissingETContainer 'feature'");
2128 else ATH_MSG_DEBUG(" Dereferenced xAOD::TrigMissingETContainer link 'feature', ex:" << (*elementLink)->ex() << " ey:" << (*elementLink)->ey());
2129
2130 } else {
2131
2132 try {
2133 const ElementLink<xAOD::IParticleContainer> elementLink = tc->objectLink<xAOD::IParticleContainer>(name);
2134 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to 'feature'");
2135 else ATH_MSG_DEBUG(" Dereferenced IParticle link 'feature', pt:" << (*elementLink)->pt() << " eta:" << (*elementLink)->eta() << " phi:" << (*elementLink)->phi());
2136 } catch(std::runtime_error& e) {
2137 ATH_MSG_WARNING(" Cannot dereference 'feature' as IParticle: '" << e.what() << "'");
2138 }
2139
2140 }
2141
2142 } else {
2143 ATH_MSG_DEBUG(" Ignoring link to '" << name << "' with link CLID " << clid);
2144 }
2145
2146 return StatusCode::SUCCESS;
2147
2148}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
uint32_t CLID
The Class ID type.
static Double_t tc
Athena::TPCnvVers::Current Athena::TPCnvVers::Old TrigRoiDescriptorCollection
DataVector< SG::View > ViewContainer
View container for recording in StoreGate.
Definition View.h:290
mapped_type at(key_type key) const
Look up an element in the map.
TrigMissingETContainer_v1 TrigMissingETContainer
DataVector of TrigMissingET - the current version.
TrigCompositeContainer_v1 TrigCompositeContainer
Declare the latest version of the container.
TrigEMClusterContainer_v1 TrigEMClusterContainer
Define the latest version of the trigger EM cluster container.
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.

◆ configAthHistogramming()

StatusCode AthHistogramming::configAthHistogramming ( const ServiceHandle< ITHistSvc > & histSvc,
const std::string & prefix,
const std::string & rootDir,
const std::string & histNamePrefix,
const std::string & histNamePostfix,
const std::string & histTitlePrefix,
const std::string & histTitlePostfix )
protectedinherited

To be called by the derived classes to fill the internal configuration.

Definition at line 51 of file AthHistogramming.cxx.

55{
58 m_rootDir = rootDir;
59 m_histNamePrefix = histNamePrefix;
60 m_histNamePostfix = histNamePostfix;
61 m_histTitlePrefix = histTitlePrefix;
62 m_histTitlePostfix = histTitlePostfix;
63
64 return StatusCode::SUCCESS;
65}
ServiceHandle< ITHistSvc > m_histSvc
Pointer to the THistSvc (event store by default).

◆ currentFile()

TFile * AthAnalysisAlgorithm::currentFile ( const char * evtSelName = "EventSelector")
finalprotectedvirtualinherited

Function returning the TFile pointer of the currently open file of the given EventSelector (in athena jobs this defaults to "EventSelector").

Definition at line 147 of file AthAnalysisAlgorithm.cxx.

147 {
148 if(m_currentFile) return m_currentFile;
149
150 //get the EventSelector so we can get it's list of input files
151 //dont get it with a ServiceHandle, because that invokes initialize, can get into init loop
152
153 SmartIF<IProperty> evtSelector{service(evtSelName, false)};
154 if(!evtSelector) {
155 ATH_MSG_ERROR("currentFile(): Couldn't find the service: " << evtSelName);return 0;
156 }
157
158 try {
159 //get the list of input files - use this to determine which open file is the current input file
160 const StringArrayProperty& inputCollectionsName = dynamic_cast<const StringArrayProperty&>(evtSelector->getProperty("InputCollections"));
161
162 ATH_MSG_VERBOSE("nOpenFile=" << gROOT->GetListOfFiles()->GetSize() << ". nFilesInInputCollection=" << inputCollectionsName.value().size());
163 if(msgLvl(MSG::VERBOSE)) {
164 for(int i=0;i<gROOT->GetListOfFiles()->GetSize();i++) {
165 ATH_MSG_VERBOSE("Open file: " << gROOT->GetListOfFiles()->At(i)->GetName());
166 }
167 }
168
169 //look through list of files and find the one from the input collection that is currently open
170
171 for(int i=0;i<gROOT->GetListOfFiles()->GetSize();i++) {
172 TFile *g = (TFile*)gROOT->GetListOfFiles()->At(i);
173 //see if this file is in the input file list
174 //strip everything except stuff either side of last /
175 TString s(g->GetName());
176 TObjArray* tokens = s.Tokenize("/");
177 TObjString* lastToken = static_cast<TObjString*>(tokens->Last());
178 TString sToCompare("");
179 bool shortComparison(false);
180 if(tokens->GetEntries()>1) {
181 TString beforeSlash((static_cast<TObjString*>(tokens->At(tokens->GetEntries()-2)))->GetString());
182 if(beforeSlash.Length()>0) sToCompare += beforeSlash;
183 sToCompare += "/";
184 } else {
185 shortComparison=true;
186 }
187 sToCompare += lastToken->GetString();
188 TString sToCompare_short(lastToken->GetString()); //short versions search
189 delete tokens;
190
191 for(unsigned int j=0;j<inputCollectionsName.value().size();j++) {
192 TString t(inputCollectionsName.value()[j].c_str());
193 //try perfect match first
194 if(s.EqualTo(t)) {
195 ATH_MSG_VERBOSE("Current File is: " << inputCollectionsName.value()[j]);
197 return g;
198 }
199 TObjArray* tokens = t.Tokenize("/");
200 TObjString* lastToken = dynamic_cast<TObjString*>(tokens->Last());
201 if (!lastToken) {
202 ATH_MSG_ERROR("Cannot cast token string to TObjString");
203 return nullptr;
204 }
205 TString tToCompare = "";
206 bool shortComparison2(false);
207 if(tokens->GetEntries()>1) {
208 TObjString* beforeSlashStr = dynamic_cast<TObjString*>(tokens->At(tokens->GetEntries()-2));
209 if (!beforeSlashStr) {
210 ATH_MSG_ERROR("Cannot cast token string to TObjString");
211 return nullptr;
212 }
213 TString beforeSlash(beforeSlashStr->GetString());
214 if(beforeSlash.Length()>0) tToCompare += beforeSlash;
215 tToCompare += "/";
216 } else {
217 shortComparison2=true;
218 }
219 tToCompare += lastToken->GetString();
220 TString tToCompare_short(lastToken->GetString());
221 delete tokens;
222
223 if(shortComparison || shortComparison2) { //doing short version search, no directories to distinguish files!
224 if(sToCompare_short.EqualTo(tToCompare_short)) {
225 ATH_MSG_VERBOSE("Current File is: " << inputCollectionsName.value()[j]);
227 return g;
228 }
229 } else
230 if(sToCompare.EqualTo(tToCompare)) {
231 ATH_MSG_VERBOSE("Current File is: " << inputCollectionsName.value()[j]);
233 return g;
234 }
235 }
236 }
237
238 } catch(...) {
239 ATH_MSG_ERROR("currentFile(): Couldn't load InputCollections property of " << evtSelName); return 0;
240 }
241
242 ATH_MSG_ERROR("currentFile(): Could not find the current file!");
243 return 0; //something went wrong :-(
244
245}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_VERBOSE(x)
size_t size() const
Number of registered mappings.
bool msgLvl(const MSG::Level lvl) const
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ dumpLVL1_ROI()

StatusCode TrigEDMChecker::dumpLVL1_ROI ( )
private

Definition at line 599 of file TrigEDMChecker.cxx.

599 {
600
601 ATH_MSG_DEBUG("in dumpLVL1_ROI()");
602
603 ATH_MSG_INFO("REGTEST ==========START of LVL1_ROI DUMP===========");
604
605 const LVL1_ROI * lvl1ROI;
606 StatusCode sc = evtStore()->retrieve(lvl1ROI);
607 if (sc.isFailure() ) {
608 ATH_MSG_INFO("REGTEST No LVL1_ROI found");
609 return StatusCode::SUCCESS;
610 }
611
612 ATH_MSG_INFO("REGTEST LVL1_ROI retrieved");
613
614 LVL1_ROI::emtaus_type::const_iterator itEMTau =
615 (lvl1ROI->getEmTauROIs()).begin();
616 LVL1_ROI::emtaus_type::const_iterator itEMTau_e =
617 (lvl1ROI->getEmTauROIs()).end();
618 int j = 0;
619 for( ; itEMTau != itEMTau_e; ++itEMTau, ++j) {
620 ATH_MSG_INFO("REGTEST Looking at LVL1_ROI " << j);
621 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Eta is " << itEMTau->getEta());
622 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Phi is " << itEMTau->getPhi());
623 ATH_MSG_INFO("REGTEST LVL1 EmTauROI EMClus is " << itEMTau->getEMClus());
624 ATH_MSG_INFO("REGTEST LVL1 EmTauROI TauClus is " << itEMTau->getTauClus());
625 ATH_MSG_INFO("REGTEST LVL1 EmTauROI EMIsol is " << itEMTau->getEMIsol());
626 ATH_MSG_INFO("REGTEST LVL1 EmTauROI HadIsol is " << itEMTau->getHadIsol());
627 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Core is " << itEMTau->getCore());
628 ATH_MSG_INFO("REGTEST LVL1 EmTauROI HadCore is " << itEMTau->getHadCore());
629 ATH_MSG_INFO("REGTEST LVL1 EmTauROI roiWord is " << itEMTau->getROIWord());
630 }
631
632 ATH_MSG_INFO("REGTEST ==========END of LVL1_ROI DUMP===========");
633 ATH_MSG_DEBUG("dumpLVL1_ROI() succeeded");
634 return StatusCode::SUCCESS;
635}
#define ATH_MSG_INFO(x)
static Double_t sc
ServiceHandle< StoreGateSvc > & evtStore()
const emtaus_type & getEmTauROIs() const
Get all the em/tau RoIs in the event.
Definition LVL1_ROI.h:65
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ dumpNavigation()

StatusCode TrigEDMChecker::dumpNavigation ( const EventContext & ctx)
private

Definition at line 2377 of file TrigEDMChecker.cxx.

2378{
2379 // Get object from store
2380 const xAOD::TrigNavigation * navigationHandle = nullptr;
2381 ATH_CHECK( evtStore()->retrieve( navigationHandle, m_navigationHandleKey.key() ) );
2382 // Proper version doesn't work - conversion issue?
2383 //SG::ReadHandle< xAOD::TrigNavigation > navigationHandle = SG::ReadHandle< xAOD::TrigNavigation >( m_navigationHandleKey );
2384 //if ( !navigationHandle.isValid() ) ATH_MSG_FATAL( "Could not retrieve navigation" );
2385
2386 // Get serialised navigation info
2387 const std::vector< unsigned int > serialisedNavigation = navigationHandle->serialized();
2388 ATH_MSG_INFO( "Serialised navigation size: " << serialisedNavigation.size() );
2389
2390 // Convert the input
2391 HLT::Navigation* testNav = m_navigationTool.get();
2392 testNav->deserialize( serialisedNavigation );
2393
2394 // Make a map of TE name hashes
2395 const xAOD::TriggerMenuContainer * testMenu = nullptr;
2396 ATH_CHECK( inputMetaStore()->retrieve( testMenu, "TriggerMenu" ) );
2397 std::map< int, std::string > hash2string;
2398 for ( auto const& sequence : testMenu->front()->sequenceInputTEs() ) {
2399 for ( auto const& name : sequence ) {
2401 hash2string[ hash ] = name;
2402 }
2403 }
2404
2405 // Map TE names to chain names
2406 unsigned int chainCounter = 0;
2407 std::map< int, std::string > hash2chain;
2408 for ( auto const& chain : testMenu->front()->chainSignatureOutputTEs() ) {
2409
2410 // Find the chain name
2411 std::string chainName = testMenu->front()->chainNames()[ chainCounter ];
2412 ++chainCounter;
2413
2414 // Find all associated TEs
2415 for ( auto const& signature : chain ) {
2416 for ( auto const& name : signature ) {
2418 hash2string[ hash ] = name; // for decoding
2419 hash2chain[ hash ] = chainName;
2420 }
2421 }
2422 }
2423
2424 // Define a map of TE features, to the TEs that use them. Needs a custom sort lambda
2425 auto cmpLambda = []( const HLT::TriggerElement::FeatureAccessHelper &lhs, const HLT::TriggerElement::FeatureAccessHelper &rhs) {
2426
2427 // Compare indices if CLID matches
2428 if ( lhs.getCLID() == rhs.getCLID() ) return ( lhs.getIndex() < rhs.getIndex() );
2429
2430 // Compare CLIDs
2431 else return ( lhs.getCLID() < rhs.getCLID() );
2432 };
2433 std::map< HLT::TriggerElement::FeatureAccessHelper, std::vector< HLT::TriggerElement* >, decltype(cmpLambda) > feature2element(cmpLambda);
2434
2435 // Retrieve all TE features and add them to the map
2436 std::vector< HLT::TriggerElement* > allTEs;
2437 testNav->getAll( allTEs, false );
2438 for ( auto element : allTEs ) {
2439
2440 // Add TE features to the big map
2441 for ( auto helper : element->getFeatureAccessHelpers() ) {
2442 feature2element[ helper ].push_back( element );
2443 }
2444 }
2445
2446 // Debug - output all TEs and their ancestors
2447 // No duplication - only print terminal nodes
2448 for ( auto element : allTEs ) {
2449 if ( testNav->isTerminalNode( element ) ) {
2450 ATH_MSG_INFO( "+++++++++++ " << hash2string[ element->getId() ] << " is terminal node" );
2451 ATH_MSG_INFO( "ptr: " << element );
2452 std::queue< HLT::TriggerElement* > allAncestors;
2453 allAncestors.push( element );
2454 while ( allAncestors.size() ) {
2455
2456 HLT::TriggerElement * thisElement = allAncestors.front();
2457 allAncestors.pop();
2458 auto theseAncestors = thisElement->getRelated( HLT::TriggerElement::Relation::seededByRelation );
2459
2460 // Dump TE
2461 ATH_MSG_INFO( "te: " << thisElement->getId() << " " << hash2string[ thisElement->getId() ] );
2462 ATH_MSG_INFO( " chain: " << hash2chain[ thisElement->getId() ] );
2463 for ( const auto& helper : thisElement->getFeatureAccessHelpers() ) {
2464 ATH_MSG_INFO( " feat: " << helper );
2465 }
2466 ATH_MSG_INFO( theseAncestors.size() << " ancestors" );
2467
2468 // Examine ancestors
2469 for ( auto ancestor : theseAncestors ) {
2470 allAncestors.push( ancestor );
2471 }
2472 }
2473 }
2474 }
2475
2476 // Make the decision container
2477 SG::WriteHandle< TrigCompositeUtils::DecisionContainer > outputNavigation = TrigCompositeUtils::createAndStore( m_decisionsKey, ctx );
2478 auto decisionOutput = outputNavigation.ptr();
2479
2480 // Find unique chains associated with a feature
2481 std::map< HLT::TriggerElement const*, std::vector< int > > element2decisions;
2482 for ( const auto& pair : feature2element ) {
2483
2484 // Get the feature info
2485 std::string featureName = testNav->label( pair.first.getCLID(), pair.first.getIndex().subTypeIndex() );
2486 auto sgKey = evtStore()->stringToKey( featureName, pair.first.getCLID() );
2487
2488 // Store RoIs with appropriate label ?
2489 std::string storeFeatureName = "feature";
2490/* if ( pair.first.getCLID() == ClassID_traits< TrigRoiDescriptor >::ID() ) {
2491 storeFeatureName = "roi";
2492 }*/
2493
2494 // Make a decision object for the feature
2495 auto decision = TrigCompositeUtils::newDecisionIn( decisionOutput );
2496 decision->typelessSetObjectLink( storeFeatureName, sgKey, pair.first.getCLID(), pair.first.getIndex().objectsBegin(), pair.first.getIndex().objectsEnd() );
2497
2498 // Examine associated TEs, look for chains
2499 std::set< std::string > passedChains;
2500 for ( HLT::TriggerElement const* element : pair.second ) {
2501
2502 // TODO - find out what chains actually passed!
2503 passedChains.insert( hash2chain[ element->getId() ] );
2504
2505 // Index the TE
2506 int decisionNumber = decisionOutput->size() - 1;
2507 element2decisions[ element ].push_back( decisionNumber );
2508 }
2509
2510 // Store unique chains in the decision
2511 for ( auto& chain : passedChains ) {
2513 }
2514 }
2515
2516 // Store decision ancestry (had to go through once before to ensure indices populated)
2517 unsigned int decisionCounter = 0;
2518 for ( const auto& pair : feature2element ) {
2519
2520 // Get current decision
2521 auto decision = decisionOutput->at( decisionCounter );
2522 ++decisionCounter;
2523
2524 // Find ancestor TEs
2525 for ( auto element : pair.second ) {
2526 auto theseAncestors = element->getRelated( HLT::TriggerElement::Relation::seededByRelation );
2527 for ( auto ancestor : theseAncestors ) {
2528 for ( int decisionIndex : element2decisions[ ancestor ] ) {
2529 TrigCompositeUtils::linkToPrevious( decision, m_decisionsKey.key(), decisionIndex );
2530 }
2531 }
2532 }
2533 }
2534
2535 return StatusCode::SUCCESS;
2536}
#define ATH_CHECK
Evaluate an expression and check for errors.
ServiceHandle< StoreGateSvc > & inputMetaStore()
Accessor for the input metadata store.
bool deserialize(const std::vector< uint32_t > &input)
void getAll(std::vector< TriggerElement * > &output, const bool activeOnly=true) const
The query returning a collection of all TriggerElements.
static bool isTerminalNode(const TriggerElement *te)
queries if node is terminal (no more TriggerElement are seeded by it)
std::string label(class_id_type clid, const index_or_label_type &sti_or_label) const
const ObjectIndex & getIndex() const
index in the external ojects array
const std::vector< TriggerElement * > & getRelated(Relation rel) const
returns reference to the likns to other TriggerElements related by relation r
const std::vector< FeatureAccessHelper > & getFeatureAccessHelpers() const
returns all features which ara attached to this TE
pointer_type ptr()
Dereference the pointer.
static HLTHash string2hash(const std::string &, const std::string &category="TE")
hash function translating TE names into identifiers
SG::WriteHandleKey< TrigCompositeUtils::DecisionContainer > m_decisionsKey
SG::ReadHandleKey< xAOD::TrigNavigation > m_navigationHandleKey
ToolHandle< HLT::Navigation > m_navigationTool
const std::vector< unsigned int > & serialized() const
expose the navigation information (in serialized form)
Decision * newDecisionIn(DecisionContainer *dc, const std::string &name)
Helper method to create a Decision object, place it in the container and return a pointer to it.
SG::WriteHandle< DecisionContainer > createAndStore(const SG::WriteHandleKey< DecisionContainer > &key, const EventContext &ctx)
Creates and right away records the DecisionContainer with the key.
void linkToPrevious(Decision *d, const std::string &previousCollectionKey, size_t previousIndex)
Links to the previous object, location of previous 'seed' decision supplied by hand.
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.
TriggerMenuContainer_v1 TriggerMenuContainer
Define the latest version of the trigger menu container class.
TrigNavigation_v1 TrigNavigation
Define the latest version of the trigger navigation class.

◆ dumpStoreGate()

StatusCode TrigEDMChecker::dumpStoreGate ( )
private

◆ dumpTDT()

StatusCode TrigEDMChecker::dumpTDT ( const EventContext & ctx)
private

Definition at line 1954 of file TrigEDMChecker.cxx.

1954 {
1955 using namespace TrigCompositeUtils; // LinkInfo
1956 ATH_MSG_INFO( "REGTEST ==========START of TDT DUMP===========" );
1957 // Note: This minimal TDT dumper is for use during run-3 dev
1958 std::string chain = m_dumpNavForChain;
1959 if (chain.empty()) {
1960 chain = "HLT_.*";
1961 }
1962 std::vector<std::string> confChains = m_trigDec->getListOfTriggers(chain);
1963 for (const auto& item : confChains) {
1964 bool passed = m_trigDec->isPassed(item);
1965 ATH_MSG_INFO(" HLT Item " << item << " (numeric ID " << TrigConf::HLTUtils::string2hash(item, "Identifier") << ") passed raw? " << passed);
1966 if (m_trigDec->getNavigationFormat() == "TriggerElement") {
1967 ATH_MSG_DEBUG(" Skipping Run 2 features in this dumper");
1968 continue;
1969 }
1970 std::vector< LinkInfo<xAOD::IParticleContainer> > passFeatures = m_trigDec->features<xAOD::IParticleContainer>(item);
1971 if (passFeatures.size()) {
1972 ATH_MSG_INFO(" " << item << " Passed Final IParticle features size: " << passFeatures.size());
1973 for (const LinkInfo<xAOD::IParticleContainer>& li : passFeatures) {
1974 if (!li.isValid()) {
1975 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
1976 } else {
1977 try {
1978 std::string state = "ACTIVE";
1979 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
1980 else if (li.state == ActiveState::UNSET) state = "UNSET";
1981 ATH_MSG_INFO(" IParticle Feature from " << li.link.dataID() << " index:" << li.link.index() << " pt:" << (*li.link)->pt() << " eta:" << (*li.link)->eta() << " phi:" << (*li.link)->phi() << " state:" << state);
1982 } catch (const std::exception& e) {
1983 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
1984 }
1985 }
1986 }
1987 }
1988 std::vector< LinkInfo<xAOD::IParticleContainer> > passAndFailFeatures = m_trigDec->features<xAOD::IParticleContainer>(item, TrigDefs::includeFailedDecisions);
1989 if (passAndFailFeatures.size()) {
1990 ATH_MSG_INFO(" " << item << " Passed+Failed Final IParticle features size: " << passAndFailFeatures.size());
1991 for (const LinkInfo<xAOD::IParticleContainer>& li : passAndFailFeatures) {
1992 if (!li.isValid()) {
1993 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
1994 } else {
1995 try {
1996 std::string state = "ACTIVE";
1997 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
1998 else if (li.state == ActiveState::UNSET) state = "UNSET";
1999 ATH_MSG_INFO(" IParticle Feature from " << li.link.dataID() << " index:" << li.link.index() << " pt:" << (*li.link)->pt() << " eta:" << (*li.link)->eta() << " phi:" << (*li.link)->phi() << " state:" << state);
2000 } catch (const std::exception& e) {
2001 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
2002 }
2003 }
2004 }
2005 }
2006 std::vector< LinkInfo<xAOD::IParticleContainer> > allFeatures = m_trigDec->features<xAOD::IParticleContainer>(item, TrigDefs::includeFailedDecisions, "", TrigDefs::allFeaturesOfType);
2007 if (allFeatures.size()) {
2008 ATH_MSG_INFO(" " << item << " Passed+Failed ALL IParticle features size: " << allFeatures.size());
2009 for (const LinkInfo<xAOD::IParticleContainer>& li : allFeatures) {
2010 if (!li.isValid()) {
2011 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
2012 } else {
2013 try {
2014 std::string state = "ACTIVE";
2015 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
2016 else if (li.state == ActiveState::UNSET) state = "UNSET";
2017 ATH_MSG_INFO(" IParticle Feature from " << li.link.dataID() << " index:" << li.link.index() << " pt:" << (*li.link)->pt() << " eta:" << (*li.link)->eta() << " phi:" << (*li.link)->phi() << " state:" << state);
2018 } catch (const std::exception& e) {
2019 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
2020 }
2021 }
2022 }
2023 }
2024 }
2025
2026 if (m_trigDec->getNavigationFormat() == "TrigComposite") {
2027 // Check associateToEventView helper function
2028 std::vector< LinkInfo<xAOD::IParticleContainer> > muons = m_trigDec->features<xAOD::IParticleContainer>("HLT_mu24_idperf_L1MU20", TrigDefs::Physics, "HLT_MuonL2CBInfo");
2029 SG::ReadHandle<xAOD::TrackParticleContainer> muonTracksReadHandle(m_muonTracksKey, ctx);
2030 for (const LinkInfo<xAOD::IParticleContainer>& mu : muons) {
2031 // Note: auto here refers to type std::pair< xAOD::TrackParticleContainer::const_iterator, xAOD::TrackParticleContainer::const_iterator>
2032 const auto roiTrackItPair = m_trigDec->associateToEventView<xAOD::TrackParticleContainer>(muonTracksReadHandle, mu, "roi");
2033 const xAOD::TrackParticleContainer::const_iterator startIt = roiTrackItPair.first;
2034 const xAOD::TrackParticleContainer::const_iterator stopIt = roiTrackItPair.second;
2035 ATH_MSG_INFO("Muon pT: " << (*mu.link)->pt() << " is from the same ROI as tracks with index "
2036 << std::distance(muonTracksReadHandle->begin(), startIt) << "-" << std::distance(muonTracksReadHandle->begin(), stopIt)
2037 << ", which is " << std::distance(startIt, stopIt) << " tracks, out of " << muonTracksReadHandle->size() << " total tracks.");
2038 for (xAOD::TrackParticleContainer::const_iterator it = startIt; it != stopIt; ++it) {
2039 ATH_MSG_VERBOSE(" -- Track " << std::distance(startIt, it) << " in this ROI, pT: " << (*it)->pt() );
2040 }
2041 }
2042 }
2043
2044 ATH_MSG_INFO( "REGTEST ==========END of TDT DUMP===========" );
2045 return StatusCode::SUCCESS;
2046}
bool passed(DecisionID id, const DecisionIDContainer &)
checks if required decision ID is in the set of IDs in the container
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_muonTracksKey
Gaudi::Property< std::string > m_dumpNavForChain
static const unsigned int includeFailedDecisions
Run3 synonym of alsoDeactivateTEs.
static const unsigned int allFeaturesOfType
Run 3 "enum". Return all features along legs (still with type and container checks).
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".

◆ dumpTrigComposite()

StatusCode TrigEDMChecker::dumpTrigComposite ( )
private

Dump information on TrigComposite collections.

Only dumpTrigCompositeContainers are dumped unless doDumpAllTrigComposite is set

Definition at line 2048 of file TrigEDMChecker.cxx.

2048 {
2049 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigCompositeContainer DUMP===========" );
2050
2053 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
2054 evtStore()->keys(TrigCompositeCLID, m_dumpTrigCompositeContainers.value());
2055 std::string typeNameTC;
2056 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
2057 ATH_MSG_DEBUG("dumpTrigComposite got " << m_dumpTrigCompositeContainers.size() << " keys for " << typeNameTC);
2058 } else {
2059 ATH_MSG_DEBUG("Using supplied " << m_dumpTrigCompositeContainers.size() << " keys");
2060 }
2061
2062 for ( const std::string & key: m_dumpTrigCompositeContainers ) {
2063 // get the collection
2065 ATH_MSG_WARNING("Absent TrigCompositeContainer: " << key );
2066 continue;
2067 }
2068 ATH_MSG_DEBUG( "#################### Dumping container of : " << key );
2069 const xAOD::TrigCompositeContainer* cont= nullptr;
2070 ATH_CHECK( evtStore()->retrieve( cont, key ) );
2071
2072 size_t count = 0;
2073 for ( auto tc: *cont ) {
2074 ATH_MSG_DEBUG("########## ELEMENT " << count++);
2075 ATH_MSG_DEBUG(*tc);
2076 // Get the objects we know of
2077 for (size_t i = 0; i < tc->linkColNames().size(); ++i) ATH_CHECK(checkTrigCompositeElementLink(tc, i));
2078 }
2079 }
2080 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigCompositeContainer DUMP===========" );
2081 return StatusCode::SUCCESS;
2082}
Gaudi::Property< std::vector< std::string > > m_dumpTrigCompositeContainers
StatusCode checkTrigCompositeElementLink(const xAOD::TrigComposite *tc, size_t element)
Dump details on element links within TrigComposites.
ServiceHandle< IClassIDSvc > m_clidSvc
Gaudi::Property< bool > m_doDumpAllTrigComposite
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition hcg.cxx:116
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:148

◆ dumpTrigEFBphysContainer()

StatusCode TrigEDMChecker::dumpTrigEFBphysContainer ( )
private

Definition at line 1013 of file TrigEDMChecker.cxx.

1013 {
1014
1015 ATH_MSG_DEBUG("in dumpTrigEFBphysContainer()");
1016
1017 ATH_MSG_INFO("REGTEST ==========START of TrigEFBphysContainer DUMP===========");
1018
1019 std::string EFBphysTags[]={"HLT_xAOD__TrigBphysContainer_EFBMuMuFex",
1020 "HLT_xAOD__TrigBphysContainer_EFBMuMuXFex",
1021 "HLT_xAOD__TrigBphysContainer_EFDsPhiPiFex",
1022 "HLT_xAOD__TrigBphysContainer_EFMuPairs",
1023 "HLT_xAOD__TrigBphysContainer_EFMultiMuFex",
1024 "HLT_xAOD__TrigBphysContainer_EFTrackMass"
1025 };
1026
1027 int ntag= (int) sizeof(EFBphysTags) / sizeof(EFBphysTags[0]);
1028
1029
1030 for (int itag=0; itag<ntag; itag++){
1031 const xAOD::TrigBphysContainer* trigEFBphys;
1032 StatusCode sc = evtStore()->retrieve(trigEFBphys, EFBphysTags[itag]);
1033 if (sc.isFailure()) {
1034 ATH_MSG_INFO("REGTEST No TrigEFBphysContainer found with tag " << EFBphysTags[itag]);
1035 continue;
1036 }
1037
1038 ATH_MSG_INFO("REGTEST TrigEFBphysContainer found with tag " << EFBphysTags[itag]
1039 << " and size " << trigEFBphys->size());
1040
1041 // for (int i=0; trigEFBphys != lastTrigEFBphys; ++trigEFBphys, ++i) {
1042
1043 //mLog << MSG::INFO << "REGTEST Looking at TrigEFBphysContainer " << i << endmsg;
1044
1045 xAOD::TrigBphysContainer::const_iterator EFBphysItr = trigEFBphys->begin();
1046 xAOD::TrigBphysContainer::const_iterator EFBphysItrE = trigEFBphys->end();
1047
1048 for (int j=0; EFBphysItr != EFBphysItrE; ++EFBphysItr, ++j ) {
1049
1050 ATH_MSG_INFO("REGTEST Looking at TrigEFBphys " << j);
1051
1052 ATH_MSG_INFO("REGTEST TrigEFBphys->eta() returns " << (*EFBphysItr)->eta());
1053 ATH_MSG_INFO("REGTEST TrigEFBphys->phi() returns " << (*EFBphysItr)->phi());
1054 ATH_MSG_INFO("REGTEST TrigEFBphys->mass() returns " << (*EFBphysItr)->mass());
1055 ATH_MSG_INFO("REGTEST TrigEFBphys->fitmass() returns " << (*EFBphysItr)->fitmass());
1056 // ATH_MSG_INFO("REGTEST TrigEFBphys->isValid() returns " << (*EFBphysItr)->isValid());
1057 ATH_MSG_INFO("REGTEST TrigEFBphys->roiId() returns " << (*EFBphysItr)->roiId());
1058 ATH_MSG_INFO("REGTEST TrigEFBphys->particleType() returns " << (*EFBphysItr)->particleType());
1059
1060 if( (*EFBphysItr)->secondaryDecay() != NULL){
1061 const xAOD::TrigBphys * psecond =(*EFBphysItr)->secondaryDecay();
1062 ATH_MSG_INFO("REGTEST Secondary decay info: ");
1063 ATH_MSG_INFO("REGTEST pSecondDecay->eta() returns " << psecond->eta());
1064 ATH_MSG_INFO("REGTEST pSecondDecay->phi() returns " << psecond->phi());
1065 ATH_MSG_INFO("REGTEST pSecondDecay->mass() returns " << psecond->mass());
1066 ATH_MSG_INFO("REGTEST pSecondDecay->fitmass() returns " << psecond->fitmass());
1067 // ATH_MSG_INFO("REGTEST pSecondDecay->isValid() returns " << (*EFBphysItr)->secondaryDecayLink()->isValid());
1068 ATH_MSG_INFO("REGTEST pSecondDecay->roiId() returns " << psecond->roiId());
1069 ATH_MSG_INFO("REGTEST pSecondDecay->particleType() returns " << psecond->particleType());
1070
1071 } // end if secondary exists
1072
1073
1074
1075 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*EFBphysItr)->trackParticleLinks();
1076 if (trackVector.size() != 0) {
1077 ATH_MSG_INFO(" REGTEST got track vector size: " << trackVector.size());
1078 } else {
1079 ATH_MSG_INFO(" REGTEST no track vector!!! " );
1080 }
1081 std::vector<ElementLink<xAOD::TrackParticleContainer> >::const_iterator trkIt=trackVector.begin();
1082 for (int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
1083 if (!(trkIt->isValid())) {
1084 ATH_MSG_WARNING("TrackParticleContainer::Invalid ElementLink to track ");
1085 continue;
1086 }
1087 //const Trk::Perigee* trackPerigee=(*(*trkIt))->measuredPerigee();
1088 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
1089
1090 // msg() << MSG::VERBOSE << "track, iterator, pointer " << itrk << " " << *trkIt << " " << *(*trkIt) << endmsg;
1091 double phi = trackPerigee->parameters()[Trk::phi];
1092 double theta = trackPerigee->parameters()[Trk::theta];
1093 double px = trackPerigee->momentum()[Trk::px];
1094 double py = trackPerigee->momentum()[Trk::py];
1095 double pt = sqrt(px*px + py*py);
1096 double eta = -std::log(tan(theta/2));
1097
1098 ATH_MSG_INFO("track " << itrk << " pt phi eta " << pt << " " <<
1099 phi << " " << eta);
1100 }
1101
1102 }
1103 }
1104 ATH_MSG_INFO("REGTEST ==========END of TrigEFBphysContainer DUMP===========");
1105 ATH_MSG_DEBUG("dumpTrigEFBphysContainer() succeeded");
1106
1107 return StatusCode::SUCCESS;
1108}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Scalar theta() const
theta method
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const Amg::Vector3D & momentum() const
Access method for the momentum.
uint32_t roiId() const
accessor method: ID of L1 RoI
float eta() const
accessor method: eta
pType particleType() const
accessor method: particle Type
const TrigBphys_v1 * secondaryDecay() const
accessor method: secondary decay particle
float phi() const
accessor method: phi
float fitmass() const
accessor method: mass from vertex fit
float mass() const
accessor method: mass
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ theta
Definition ParamDefs.h:66
@ phi
Definition ParamDefs.h:75
@ px
Definition ParamDefs.h:59
@ py
Definition ParamDefs.h:60
TrigBphys_v1 TrigBphys
Definition TrigBphys.h:18
TrigBphysContainer_v1 TrigBphysContainer

◆ dumpTrigL2BphysContainer()

StatusCode TrigEDMChecker::dumpTrigL2BphysContainer ( )
private

Definition at line 1111 of file TrigEDMChecker.cxx.

1111 {
1112
1113 ATH_MSG_DEBUG("in dumpTrigL2BphysContainer()");
1114 ATH_MSG_INFO("REGTEST ==========START of TrigL2BphysContainer DUMP===========");
1115
1116 std::string L2BphysTags[]={"HLT_xAOD__TrigBphysContainer_L2BMuMuFex",
1117 "HLT_xAOD__TrigBphysContainer_L2BMuMuXFex",
1118 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexDs",
1119 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexPhi",
1120 "HLT_xAOD__TrigBphysContainer_L2JpsieeFex",
1121 "HLT_xAOD__TrigBphysContainer_L2MultiMuFex",
1122 "HLT_xAOD__TrigBphysContainer_L2TrackMass",
1123 };
1124 const int ntag = (int) sizeof(L2BphysTags) / sizeof(L2BphysTags[0]);
1125
1126
1127 for (int itag=0; itag<ntag; itag++){
1128 const xAOD::TrigBphysContainer* trigL2Bphys;
1129 StatusCode sc = evtStore()->retrieve(trigL2Bphys, L2BphysTags[itag]);
1130 if (sc.isFailure()) {
1131 ATH_MSG_INFO("REGTEST No TrigL2BphysContainer found with tag " << L2BphysTags[itag]);
1132 continue;
1133 }
1134
1135 ATH_MSG_INFO("REGTEST TrigL2BphysContainer found with tag " << L2BphysTags[itag]
1136 << " and size " << trigL2Bphys->size());
1137
1138 // for (int i=0; trigL2Bphys != lastTrigL2Bphys; ++trigL2Bphys, ++i) {
1139
1140 // mLog << MSG::INFO << "REGTEST Looking at TrigL2BphysContainer " << i << endmsg;
1141
1142 xAOD::TrigBphysContainer::const_iterator L2BphysItr = trigL2Bphys->begin();
1143 xAOD::TrigBphysContainer::const_iterator L2BphysItrE = trigL2Bphys->end();
1144
1145 for (int j=0; L2BphysItr != L2BphysItrE; ++L2BphysItr, ++j ) {
1146
1147 ATH_MSG_INFO("REGTEST Looking at TrigL2Bphys " << j);
1148
1149 ATH_MSG_INFO("REGTEST TrigL2Bphys->eta() returns " << (*L2BphysItr)->eta());
1150 ATH_MSG_INFO("REGTEST TrigL2Bphys->phi() returns " << (*L2BphysItr)->phi());
1151 ATH_MSG_INFO("REGTEST TrigL2Bphys->mass() returns " << (*L2BphysItr)->mass());
1152 ATH_MSG_INFO("REGTEST TrigL2Bphys->fitmass() returns " << (*L2BphysItr)->fitmass());
1153 // ATH_MSG_INFO("REGTEST TrigL2Bphys->isValid() returns " << (*L2BphysItr)->isValid());
1154 ATH_MSG_INFO("REGTEST TrigL2Bphys->roiId() returns " << (*L2BphysItr)->roiId());
1155 ATH_MSG_INFO("REGTEST TrigL2Bphys->particleType() returns " << (*L2BphysItr)->particleType());
1156
1157 if( (*L2BphysItr)->secondaryDecay() != NULL){
1158 const xAOD::TrigBphys * psecond =(*L2BphysItr)->secondaryDecay();
1159 ATH_MSG_INFO("REGTEST Secondary decay info: ");
1160 ATH_MSG_INFO("REGTEST pSecondDecay->eta() returns " << psecond->eta());
1161 ATH_MSG_INFO("REGTEST pSecondDecay->phi() returns " << psecond->phi());
1162 ATH_MSG_INFO("REGTEST pSecondDecay->mass() returns " << psecond->mass());
1163 ATH_MSG_INFO("REGTEST pSecondDecay->fitmass() returns " << psecond->fitmass());
1164 // ATH_MSG_INFO("REGTEST pSecondDecay->isValid() returns " << (*L2BphysItr)->secondaryDecayLink()->isValid());
1165 ATH_MSG_INFO("REGTEST pSecondDecay->roiId() returns " << psecond->roiId());
1166 ATH_MSG_INFO("REGTEST pSecondDecay->particleType() returns " << psecond->particleType());
1167 } // end if secondary exists
1168
1169 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*L2BphysItr)->trackParticleLinks();
1170 if (trackVector.size() != 0) {
1171 ATH_MSG_INFO(" REGTEST got track vector size: " << trackVector.size());
1172 } else {
1173 ATH_MSG_INFO(" REGTEST no track vector!!! " );
1174 }
1175 std::vector<ElementLink<xAOD::TrackParticleContainer> >::const_iterator trkIt=trackVector.begin();
1176 for (int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
1177 if (!(trkIt->isValid())) {
1178 ATH_MSG_WARNING("TrackParticleContainer::Invalid ElementLink to track ");
1179 continue;
1180 }
1181 //const Trk::Perigee* trackPerigee=(*(*trkIt))->measuredPerigee();
1182 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
1183
1184 // msg() << MSG::VERBOSE << "track, iterator, pointer " << itrk << " " << *trkIt << " " << *(*trkIt) << endmsg;
1185 double phi = trackPerigee->parameters()[Trk::phi];
1186 double theta = trackPerigee->parameters()[Trk::theta];
1187 double px = trackPerigee->momentum()[Trk::px];
1188 double py = trackPerigee->momentum()[Trk::py];
1189 double pt = sqrt(px*px + py*py);
1190 double eta = -std::log(tan(theta/2));
1191
1192 ATH_MSG_INFO("track " << itrk << " pt phi eta " << pt << " " <<
1193 phi << " " << eta);
1194 }
1195 }
1196 }
1197
1198 ATH_MSG_INFO("REGTEST ==========END of TrigL2BphysContainer DUMP===========");
1199 ATH_MSG_DEBUG("dumpTrigL2BphysContainer() succeeded");
1200
1201 return StatusCode::SUCCESS;
1202}

◆ dumpTrigPassBits()

StatusCode TrigEDMChecker::dumpTrigPassBits ( )
private

Definition at line 279 of file TrigEDMChecker.cxx.

279 {
280 const std::string name="HLT_xAOD__TrigPassBitsContainer_passbits";
281 const xAOD::TrigPassBitsContainer *xbitscont=nullptr;
282 StatusCode sc = evtStore()->retrieve(xbitscont,name);
283 if (sc.isFailure() ){
284 ATH_MSG_INFO("Cannot retrieve TrigPassBits");
285 }
286 else {
287 ATH_MSG_INFO("Size of PassBits container : " << xbitscont->size());
288 for(const auto bits:*xbitscont){
289 if(bits==nullptr){
290 ATH_MSG_INFO("TrigPassBits point nullptr ");
291 continue;
292 }
293 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
294 }
295
296 for(const xAOD::TrigPassBits* bits : *xbitscont){
297 if(bits==nullptr){
298 ATH_MSG_INFO("TrigPassBits point nullptr ");
299 continue;
300 }
301 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
302 }
303 }
304 return StatusCode::SUCCESS;
305}
TrigPassBitsContainer_v1 TrigPassBitsContainer
Define the latest version of the trig pass bits container class.
TrigPassBits_v1 TrigPassBits
Define the latest version of the trigger pass bits class.

◆ dumpTrigSpacePointCounts()

void TrigEDMChecker::dumpTrigSpacePointCounts ( )
private

Definition at line 307 of file TrigEDMChecker.cxx.

308{
309 ATH_MSG_INFO("MinBias in dumpTrigSpacePointCounts()");
310
311 std::string METTag="HLT_xAOD__TrigSpacePointCountsContainer_spacepoints";
312
313 const xAOD::TrigSpacePointCountsContainer* SpacePointCountsCont=0;
314 StatusCode sc = evtStore()->retrieve(SpacePointCountsCont,METTag);
315
316 if (sc.isFailure())
317 ATH_MSG_INFO("failed to retrieve " << METTag);
318 else {
319 ATH_MSG_INFO("Accessing " << METTag << " with " << SpacePointCountsCont->size() << " elements");
320
321 std::string s; char buff[128];
322 std::vector<float> getVec;
323 float sum;
324
325 // Loop over container content
326 for(uint i = 0; i < SpacePointCountsCont->size(); i++) {
327 getVec = SpacePointCountsCont->at(i)->contentsPixelClusEndcapC();
328 sum = 0.;
329 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
330 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusEndcapC() = %10.2f ", s.c_str(), sum );
331 ATH_MSG_INFO(buff);
332
333 getVec = SpacePointCountsCont->at(i)->contentsPixelClusBarrel();
334 sum = 0.;
335 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
336 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusBarrel() = %10.2f ", s.c_str(), sum );
337 ATH_MSG_INFO(buff);
338
339 getVec = SpacePointCountsCont->at(i)->contentsPixelClusEndcapA();
340 sum = 0.;
341 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
342 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusEndcapA() = %10.2f ", s.c_str(), sum );
343 ATH_MSG_INFO(buff);
344
345 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotBins() = %u ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotBins() );
346 ATH_MSG_INFO(buff);
347
348 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotMin() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotMin() );
349 ATH_MSG_INFO(buff);
350
351 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotMax() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotMax() );
352 ATH_MSG_INFO(buff);
353
354 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeBins() = %u ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeBins() );
355 ATH_MSG_INFO(buff);
356
357 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeMin() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeMin() );
358 ATH_MSG_INFO(buff);
359
360 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeMax() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeMax() );
361 ATH_MSG_INFO(buff);
362
363 snprintf(buff, sizeof(buff), "REGTEST %s sctSpEndcapC() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpEndcapC() );
364 ATH_MSG_INFO(buff);
365
366 snprintf(buff, sizeof(buff), "REGTEST %s sctSpBarrel() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpBarrel() );
367 ATH_MSG_INFO(buff);
368
369 snprintf(buff, sizeof(buff), "REGTEST %s sctSpEndcapA() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpEndcapA() );
370 ATH_MSG_INFO(buff);
371 }
372 }
373}
unsigned int uint
const T * at(size_type n) const
Access an element, as an rvalue.
unsigned int sctSpEndcapA() const
unsigned int pixelClusTotBins() const
unsigned int sctSpBarrel() const
unsigned int pixelClusSizeBins() const
const std::vector< float > & contentsPixelClusEndcapC() const
getters
const std::vector< float > & contentsPixelClusEndcapA() const
unsigned int sctSpEndcapC() const
const std::vector< float > & contentsPixelClusBarrel() const
TrigSpacePointCountsContainer_v1 TrigSpacePointCountsContainer

◆ dumpTrigT2MBTSBits()

void TrigEDMChecker::dumpTrigT2MBTSBits ( )
private

Definition at line 375 of file TrigEDMChecker.cxx.

375 {
376 ATH_MSG_INFO("MinBias in dumpTrigT2MBTSBits()");
377
378 std::string METTag="HLT_xAOD__TrigT2MbtsBitsContainer_T2Mbts";
379
380 const xAOD::TrigT2MbtsBitsContainer* T2MbtsBitsCont=0;
381 StatusCode sc = evtStore()->retrieve(T2MbtsBitsCont,METTag);
382
383 if (sc.isFailure())
384 ATH_MSG_INFO("failed to retrieve " << METTag);
385 else {
386 ATH_MSG_INFO("Accessing " << METTag << " with " << T2MbtsBitsCont->size() << " elements");
387
388 std::string s; char buff[380];
389 std::vector<float> getVec;
390 float sum;
391
392 // Loop over container content
393 for(uint i = 0; i < T2MbtsBitsCont->size(); i++) {
394 getVec = T2MbtsBitsCont->at(i)->triggerEnergies();
395 sum = 0.;
396 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
397 snprintf(buff, sizeof(buff), "REGTEST %s SUM of triggerEnergies() = %10.2f ", s.c_str(), sum );
398 ATH_MSG_INFO(buff);
399
400 getVec = T2MbtsBitsCont->at(i)->triggerTimes();
401 sum = 0.;
402 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
403 snprintf(buff, sizeof(buff), "REGTEST %s SUM of triggerTimes() = %10.2f ", s.c_str(), sum );
404 ATH_MSG_INFO(buff);
405 }
406 }
407}
const std::vector< float > & triggerEnergies() const
Return the trigger energies of each counter.
const std::vector< float > & triggerTimes() const
Return the relative times of the triggers.

◆ dumpTrigTrackCounts()

void TrigEDMChecker::dumpTrigTrackCounts ( )
private

Definition at line 443 of file TrigEDMChecker.cxx.

443 {
444 ATH_MSG_INFO("MinBias in dumpTrigTrackCounts()");
445
446 std::string METTag="HLT_xAOD__TrigTrackCountsContainer_trackcounts";
447
448 const xAOD::TrigTrackCountsContainer* T2TrackCountsCont=0;
449 StatusCode sc = evtStore()->retrieve(T2TrackCountsCont,METTag);
450
451 if (sc.isFailure())
452 ATH_MSG_INFO("failed to retrieve " << METTag);
453 else {
454 ATH_MSG_INFO("Accessing " << METTag << " with " << T2TrackCountsCont->size() << " elements");
455
456 std::string s; char buff[380];
457 std::vector<float> getVec;
458 float sum;
459
460 // Loop over container content
461 for(uint i = 0; i < T2TrackCountsCont->size(); i++) {
462 getVec = T2TrackCountsCont->at(i)->z0_pt();
463 sum = 0.;
464 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
465 snprintf(buff, sizeof(buff), "REGTEST %s SUM of z0_pt = %10.2f ", s.c_str(), sum );
466 ATH_MSG_INFO(buff);
467
468 getVec = T2TrackCountsCont->at(i)->eta_phi();
469 sum = 0.;
470 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
471 snprintf(buff, sizeof(buff), "REGTEST %s SUM of eta_phi() = %10.2f ", s.c_str(), sum );
472 ATH_MSG_INFO(buff);
473
474 snprintf(buff, sizeof(buff), "REGTEST %s z0Bins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->z0Bins() );
475 ATH_MSG_INFO(buff);
476
477 snprintf(buff, sizeof(buff), "REGTEST %s z0Min() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->z0Min() );
478 ATH_MSG_INFO(buff);
479
480 snprintf(buff, sizeof(buff), "REGTEST %s z0Max() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->z0Max() );
481 ATH_MSG_INFO(buff);
482
483 snprintf(buff, sizeof(buff), "REGTEST %s ptBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->ptBins() );
484 ATH_MSG_INFO(buff);
485
486 snprintf(buff, sizeof(buff), "REGTEST %s ptMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->ptMin() );
487 ATH_MSG_INFO(buff);
488
489 snprintf(buff, sizeof(buff), "REGTEST %s ptMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->ptMax() );
490 ATH_MSG_INFO(buff);
491
492 snprintf(buff, sizeof(buff), "REGTEST %s etaBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->etaBins() );
493 ATH_MSG_INFO(buff);
494
495 snprintf(buff, sizeof(buff), "REGTEST %s etaMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->etaMin() );
496 ATH_MSG_INFO(buff);
497
498 snprintf(buff, sizeof(buff), "REGTEST %s etaMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->etaMax() );
499 ATH_MSG_INFO(buff);
500
501 snprintf(buff, sizeof(buff), "REGTEST %s phiBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->phiBins() );
502 ATH_MSG_INFO(buff);
503
504 snprintf(buff, sizeof(buff), "REGTEST %s phiMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->phiMin() );
505 ATH_MSG_INFO(buff);
506
507 snprintf(buff, sizeof(buff), "REGTEST %s phiMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->phiMax() );
508 ATH_MSG_INFO(buff);
509 }
510 }
511}
const std::vector< float > & eta_phi() const
unsigned int phiBins() const
unsigned int etaBins() const
const std::vector< float > & z0_pt() const
getters
unsigned int z0Bins() const
unsigned int ptBins() const
TrigTrackCountsContainer_v1 TrigTrackCountsContainer

◆ dumpTrigVertexCounts()

void TrigEDMChecker::dumpTrigVertexCounts ( )
private

Definition at line 409 of file TrigEDMChecker.cxx.

409 {
410 ATH_MSG_INFO("MinBias in dumpTrigVertexCounts()");
411
412 std::string METTag="HLT_xAOD__TrigVertexCountsContainer_vertexcounts";
413
414 const xAOD::TrigVertexCountsContainer* T2VertexCountsCont=0;
415 StatusCode sc = evtStore()->retrieve(T2VertexCountsCont,METTag);
416
417 if (sc.isFailure())
418 ATH_MSG_INFO("failed to retrieve " << METTag);
419 else {
420 ATH_MSG_INFO("Accessing " << METTag << " with " << T2VertexCountsCont->size() << " elements");
421
422 std::string s; char buff[380];
423 std::vector<float> fgetVec;
424 float fsum(0.);
425 std::vector<unsigned int> ugetVec;
426 unsigned int usum(0);
427
428 // Loop over container content
429 for(uint i = 0; i < T2VertexCountsCont->size(); i++) {
430 ugetVec = T2VertexCountsCont->at(i)->vtxNtrks();
431 for (uint j = 0; j < ugetVec.size(); ++j) usum += ugetVec[j];
432 snprintf(buff, sizeof(buff), "REGTEST %s SUM of vtxNtrks() = %u ", s.c_str(), usum );
433 ATH_MSG_INFO(buff);
434
435 fgetVec = T2VertexCountsCont->at(i)->vtxTrkPtSqSum();
436 for (uint j = 0; j < fgetVec.size(); ++j) fsum += fgetVec[j];
437 snprintf(buff, sizeof(buff), "REGTEST %s SUM of vtxTrkPtSqSum() = %10.2f ", s.c_str(), fsum );
438 ATH_MSG_INFO(buff);
439 }
440 }
441}
const std::vector< float > & vtxTrkPtSqSum() const
const std::vector< unsigned int > & vtxNtrks() const
getters
TrigVertexCountsContainer_v1 TrigVertexCountsContainer

◆ dumpxAODElectronContainer()

StatusCode TrigEDMChecker::dumpxAODElectronContainer ( )
private

Definition at line 764 of file TrigEDMChecker.cxx.

764 {
765
766 ATH_MSG_DEBUG("In dumpxAODElectronContainer");
767
768 ATH_MSG_INFO( "REGTEST ==========START of xAOD::ElectronContainer DUMP===========" );
769
770 const xAOD::ElectronContainer* elCont=0;
771 StatusCode sc = evtStore()->retrieve(elCont,"HLT_xAOD__ElectronContainer_egamma_Electrons");
772 if (sc.isFailure()) {
773 ATH_MSG_INFO("REGTEST No Electron container HLT_xAOD__ElectronContainer_egamma_Electrons");
774 return StatusCode::SUCCESS;
775 }
776 float val_float=-99;
777 unsigned int isEMbit=0;
778 bool pid=false;
779 //DEBUG output for Egamma container
780 ATH_MSG_INFO(" REGTEST: xAOD Reconstruction variables: ");
781 // //Cluster and ShowerShape info
782 //
783 static const SG::AuxElement::Accessor< float > accLH("LHValue");
784 static const SG::AuxElement::Accessor< float > accLHCalo("LHCaloValue");
785 static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
786 for (const auto eg : *elCont){
787 //REGTEST printout
788 if (eg) {
789 ATH_MSG_INFO(" REGTEST: egamma energy: " << eg->e() );
790 ATH_MSG_INFO(" REGTEST: egamma eta: " << eg->eta() );
791 ATH_MSG_INFO(" REGTEST: egamma phi: " << eg->phi() );
792 if(eg->selectionisEM(isEMbit,"isEMVLoose"))
793 ATH_MSG_INFO(" REGTEST: isEMVLoose " << std::hex << isEMbit << std::dec);
794 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
795 if(eg->selectionisEM(isEMbit,"isEMLoose"))
796 ATH_MSG_INFO(" REGTEST: isEMLoose " << std::hex << isEMbit << std::dec);
797 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
798 if(eg->selectionisEM(isEMbit,"isEMMedium"))
799 ATH_MSG_INFO(" REGTEST: isEMMedium " << std::hex << isEMbit << std::dec);
800 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
801 if(eg->selectionisEM(isEMbit,"isEMTight"))
802 ATH_MSG_INFO(" REGTEST: isEMTight " << std::hex << isEMbit << std::dec);
803 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
804 if(eg->selectionisEM(isEMbit,"isEMLHVLoose"))
805 ATH_MSG_INFO(" REGTEST: isEMLHVLoose " << std::hex << isEMbit << std::dec);
806 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
807 if(eg->selectionisEM(isEMbit,"isEMLHLoose"))
808 ATH_MSG_INFO(" REGTEST: isEMLHLoose " << std::hex << isEMbit << std::dec);
809 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
810 if(eg->selectionisEM(isEMbit,"isEMLHMedium"))
811 ATH_MSG_INFO(" REGTEST: isEMLHMedium " << std::hex << isEMbit << std::dec);
812 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
813 if(eg->selectionisEM(isEMbit,"isEMLHTight"))
814 ATH_MSG_INFO(" REGTEST: isEMLHTight " << std::hex << isEMbit << std::dec);
815 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
816 if(accLH.isAvailable(*eg))
817 ATH_MSG_INFO(" REGTEST: LHValue " << accLH(*eg));
818 else
819 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
820 if(accLHCalo.isAvailable(*eg))
821 ATH_MSG_INFO(" REGTEST: LHValue " << accLHCalo(*eg));
822 else
823 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
824 if(eg->passSelection(pid,"LHVLoose"))
825 ATH_MSG_INFO(" REGTEST: LHVLoose " << pid);
826 else
827 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
828 if(eg->passSelection(pid,"LHLoose"))
829 ATH_MSG_INFO(" REGTEST: LHLoose " << pid);
830 else
831 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
832 if(eg->passSelection(pid,"LHMedium"))
833 ATH_MSG_INFO(" REGTEST: LHMedium " << pid);
834 else
835 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
836 if(eg->passSelection(pid,"LHTight"))
837 ATH_MSG_INFO(" REGTEST: LHTight " << pid);
838 else
839 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
840 } else{
841 ATH_MSG_INFO(" REGTEST: problems with egamma pointer" );
842 return StatusCode::SUCCESS;
843 }
844 ATH_MSG_INFO(" REGTEST: caloCluster variables ");
845 if (eg->caloCluster()) {
846 ATH_MSG_INFO(" REGTEST: egamma cluster transverse energy: " << eg->caloCluster()->et() );
847 ATH_MSG_INFO(" REGTEST: egamma cluster eta: " << eg->caloCluster()->eta() );
848 ATH_MSG_INFO(" REGTEST: egamma cluster phi: " << eg->caloCluster()->phi() );
849 double tmpeta = -999.;
850 double tmpphi = -999.;
851 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::ETACALOFRAME,tmpeta);
852 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::PHICALOFRAME,tmpphi);
853 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. etaCalo = " << tmpeta);
854 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. phiCalo = " << tmpphi);
855 } else{
856 ATH_MSG_INFO(" REGTEST: problems with egamma cluster pointer" );
857 }
858 ATH_MSG_INFO("REGTEST: Check the original (uncalibrated)");
859 if (!orig.isAvailable(*eg->caloCluster()) || !orig(*eg->caloCluster()).isValid()){
860 ATH_MSG_INFO("Problem with original cluster link");
861 }
862 else {
863 const xAOD::CaloCluster *origClus = *orig(*eg->caloCluster());
864 ATH_MSG_INFO("REGTEST:: Compare new and old clusters");
865 ATH_MSG_INFO("REGTEST:: Original Cluster e,eta,phi" << origClus->e() << " " << origClus->eta() << " " << origClus->phi());
866 ATH_MSG_INFO("REGTEST:: MVA Cluster e,eta,phi" << eg->caloCluster()->e() << " " << eg->caloCluster()->eta() << " " << eg->caloCluster()->phi());
867 }
868 ATH_MSG_INFO(" REGTEST: trackmatch variables ");
869 if(eg->trackParticle()){
870 ATH_MSG_INFO(" REGTEST: pt= " << eg->trackParticle()->pt());
871 ATH_MSG_INFO(" REGTEST: charge= " << eg->trackParticle()->charge());
872 ATH_MSG_INFO(" REGTEST: E/p= " << eg->caloCluster()->et() / eg->trackParticle()->pt() );
873 eg->trackCaloMatchValue(val_float,xAOD::EgammaParameters::deltaEta1);
874 ATH_MSG_INFO(" REGTEST: Delta eta 1st sampling= " << val_float);
875 eg->trackCaloMatchValue(val_float,xAOD::EgammaParameters::deltaPhi2);
876 ATH_MSG_INFO(" REGTEST: Delta phi 2nd sampling= " << val_float);
877 } else{
878 ATH_MSG_INFO(" REGTEST: no electron eg->trackParticle() pointer");
879 }
880
881 //msg() << MSG::VERBOSE << " REGTEST: cluster variables " << endmsg;
882 //clus = eg->caloCluster();
883 ATH_MSG_INFO(" REGTEST: EMShower variables ");
884 eg->showerShapeValue(val_float,xAOD::EgammaParameters::ethad);
885 ATH_MSG_INFO(" REGTEST: ethad = " << val_float);
886 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e011);
887 ATH_MSG_INFO(" REGTEST: e011 = " << val_float);
888 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e132);
889 ATH_MSG_INFO(" REGTEST: e132 = " << val_float);
890 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e237);
891 ATH_MSG_INFO(" REGTEST: e237 = " << val_float);
892 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e335);
893 ATH_MSG_INFO(" REGTEST: e335 = " << val_float);
894 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2ts1);
895 ATH_MSG_INFO(" REGTEST: e2ts1 = " << val_float);
896 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2tsts1);
897 ATH_MSG_INFO(" REGTEST: e2tsts1 = " << val_float);
898 eg->isolationValue(val_float,xAOD::Iso::ptcone20);
899 ATH_MSG_INFO(" REGTEST: ptcone20 = " << val_float);
900 eg->isolationValue(val_float,xAOD::Iso::ptcone30);
901 ATH_MSG_INFO(" REGTEST: ptcone30 = " << val_float);
902 eg->isolationValue(val_float,xAOD::Iso::ptcone40);
903 ATH_MSG_INFO(" REGTEST: ptcone40 = " << val_float);
904 eg->isolationValue(val_float,xAOD::Iso::etcone20);
905 ATH_MSG_INFO(" REGTEST: etcone20 = " << val_float);
906 eg->isolationValue(val_float,xAOD::Iso::etcone30);
907 ATH_MSG_INFO(" REGTEST: etcone30 = " << val_float);
908 eg->isolationValue(val_float,xAOD::Iso::etcone40);
909 ATH_MSG_INFO(" REGTEST: etcone40 = " << val_float);
910 //DEBUG info for Electrons which by definition have a track match
911
912 }
913 ATH_MSG_INFO( "REGTEST ==========END of xAOD::ElectronContainer DUMP===========" );
914
915 return StatusCode::SUCCESS;
916
917}
virtual double eta() const
The pseudorapidity ( ) of the particle.
virtual double e() const
The total energy of the particle.
virtual double phi() const
The azimuthal angle ( ) of the particle.
@ ETACALOFRAME
Eta in the calo frame (for egamma).
@ PHICALOFRAME
Phi in the calo frame (for egamma).
@ deltaPhi2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
@ deltaEta1
difference between the cluster eta (first sampling) and the eta of the track extrapolated to the firs...
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
Definition EgammaEnums.h:78
@ ethad
ET leakage into hadronic calorimeter with exclusion of energy in CaloSampling::TileGap3.
Definition EgammaEnums.h:46
@ e2ts1
2nd max in strips calc by summing 3 strips
@ e335
uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x5
Definition EgammaEnums.h:87
@ e132
uncalibrated energy (sum of cells) in strips in a 3x2 window in cells in eta X phi
Definition EgammaEnums.h:37
@ e011
uncalibrated energy (sum of cells) in presampler in a 1x1 window in cells in eta X phi
Definition EgammaEnums.h:31
@ e2tsts1
energy of the cell corresponding to second energy maximum in the first sampling
@ etcone20
Calorimeter isolation.
@ ptcone20
Track isolation.
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.

◆ dumpxAODJetContainer()

StatusCode TrigEDMChecker::dumpxAODJetContainer ( )
private

Definition at line 1208 of file TrigEDMChecker.cxx.

1208 {
1209
1210 ATH_MSG_DEBUG("in dumpxAODJetContainer()");
1211
1212 ATH_MSG_INFO("REGTEST ==========START of xAOD::JetContainer DUMP===========");
1213
1214 std::string containerName[30] = {"HLT_xAOD__JetContainer_a4tcemjesFS",
1215 "HLT_xAOD__JetContainer_a4tcemsubFS",
1216 "HLT_xAOD__JetContainer_a4tcemsubjesFS",
1217 "HLT_xAOD__JetContainer_a4tcemnojcalibFS",
1218 "HLT_xAOD__JetContainer_a4tcemjesPS",
1219 "HLT_xAOD__JetContainer_a4tcemnojcalibPS",
1220 "HLT_xAOD__JetContainer_a4tclcwjesFS",
1221 "HLT_xAOD__JetContainer_a4tclcwsubFS",
1222 "HLT_xAOD__JetContainer_a4tclcwsubjesFS",
1223 "HLT_xAOD__JetContainer_a4tclcwnojcalibFS",
1224 "HLT_xAOD__JetContainer_a4tclcwjesPS",
1225 "HLT_xAOD__JetContainer_a4tclcwnojcalibPS",
1226 "HLT_xAOD__JetContainer_a4TTemnojcalibFS",
1227 "HLT_xAOD__JetContainer_a4TThadnojcalibFS",
1228 "HLT_xAOD__JetContainer_a10tcemjesFS",
1229 "HLT_xAOD__JetContainer_a10tcemsubFS",
1230 "HLT_xAOD__JetContainer_a10tcemsubjesFS",
1231 "HLT_xAOD__JetContainer_a10tcemnojcalibFS",
1232 "HLT_xAOD__JetContainer_a10tcemjesPS",
1233 "HLT_xAOD__JetContainer_a10tcemnojcalibPS",
1234 "HLT_xAOD__JetContainer_a10tclcwjesFS",
1235 "HLT_xAOD__JetContainer_a10tclcwsubFS",
1236 "HLT_xAOD__JetContainer_a10tclcwsubjesFS",
1237 "HLT_xAOD__JetContainer_a10tclcwnojcalibFS",
1238 "HLT_xAOD__JetContainer_a10tclcwjesPS",
1239 "HLT_xAOD__JetContainer_a10tclcwnojcalibPS",
1240 "HLT_xAOD__JetContainer_a10TTemnojcalibFS",
1241 "HLT_xAOD__JetContainer_a10TThadnojcalibFS",
1242 "HLT_xAOD__JetContainer_a10r_tcemsubjesFS",
1243 "HLT_xAOD__JetContainer_TrigHLTJetDSSelectorCollection"};
1244 float containerSizeParameter[30] = {0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
1245 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.4};
1246 int containerInputType[30] = {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2,
1247 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1};
1248 int containerSignalState[30] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
1249 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0};
1250 bool onefilled = false;
1251
1252 for (int icont=0; icont<30; ++icont) {
1253 //retrieve jet collection
1254 const xAOD::JetContainer* jetCont = 0;
1255 StatusCode sc = evtStore()->retrieve(jetCont, containerName[icont]) ;
1256
1257 if (sc.isFailure()) {
1258 ATH_MSG_WARNING("REGTEST Cannot retrieve jet container");
1259 continue;
1260 }
1261
1262 int jetContsize = jetCont->size();
1263 ATH_MSG_INFO("REGTEST Got jet container " << containerName[icont] << ", size: " << jetContsize);
1264 if (jetContsize != 0) {
1265 onefilled = true;
1266 int i = 0;
1267 for(const auto thisjet : *jetCont) {
1268 ++i;
1269 ATH_MSG_INFO( "REGTEST Looking at jet " << i);
1270 if (thisjet) {
1271 //checks jet variables
1272 ATH_MSG_DEBUG("REGTEST Checking jet variables");
1273 ATH_MSG_INFO( "REGTEST pt: " << thisjet->pt() );
1274 ATH_MSG_INFO( "REGTEST eta: " << thisjet->eta() );
1275 ATH_MSG_INFO( "REGTEST phi: " << thisjet->phi() );
1276 ATH_MSG_INFO( "REGTEST m: " << thisjet->m() );
1277 ATH_MSG_INFO( "REGTEST e: " << thisjet->e() );
1278 ATH_MSG_INFO( "REGTEST rapidity: " << thisjet->rapidity() );
1279 ATH_MSG_INFO( "REGTEST px: " << thisjet->px() );
1280 ATH_MSG_INFO( "REGTEST py: " << thisjet->py() );
1281 ATH_MSG_INFO( "REGTEST pz: " << thisjet->pz() );
1282 ATH_MSG_INFO( "REGTEST type: " << thisjet->type() );
1283 ATH_MSG_INFO( "REGTEST algorithm (kt: 0, cam: 1, antikt: 2, ...): " << thisjet->getAlgorithmType() << "; should be 2");
1284 if(thisjet->getAlgorithmType() != 2) ATH_MSG_WARNING("Jet algorithm different from container");
1285 ATH_MSG_INFO( "REGTEST size parameter: " << thisjet->getSizeParameter() << "; should be " << containerSizeParameter[icont]);
1286 if(thisjet->getSizeParameter() != containerSizeParameter[icont]) ATH_MSG_WARNING("Jet size different from container");
1287 ATH_MSG_INFO( "REGTEST input (LCTopo: 0, EMTopo: 1, TopoTower: 2, ...): " << thisjet->getInputType() << "; should be " << containerInputType[icont]);
1288 if(thisjet->getInputType() != containerInputType[icont]) ATH_MSG_WARNING("Jet input different from container");
1289 ATH_MSG_INFO( "REGTEST constituents signal state (uncalibrated: 0, calibrated: 1): " << thisjet->getConstituentsSignalState() << "; should be " << containerSignalState[icont]);
1290 if(thisjet->getConstituentsSignalState() != containerSignalState[icont]) ATH_MSG_WARNING("Jet constituents' signal state different from container");
1291 ATH_MSG_INFO( "REGTEST number of constituents: " << thisjet->numConstituents() );
1292
1293
1294 //checks the constituents
1295 ATH_MSG_DEBUG("REGTEST Checking jet constituents");
1296
1297 xAOD::JetConstituentVector constitCont = thisjet->getConstituents();
1298 unsigned int constitContsize = constitCont.size();
1299 ATH_MSG_INFO("REGTEST Got constituent vector, size: " << constitContsize << "; should be " << thisjet->numConstituents());
1300 if(constitContsize != thisjet->numConstituents()) ATH_MSG_WARNING("Constituents container size different from number of constituents");
1301
1302 if (constitContsize != 0) {
1303// int j = 0;
1304 // for (const auto thisconstit : constitCont) {
1305 // ++j;
1306 // ATH_MSG_INFO( "REGTEST Looking at constituent " << j);
1307 // if(thisconstit){
1308 // ATH_MSG_INFO( "REGTEST constituent pt: " << thisconstit->pt() );
1309 // ATH_MSG_INFO( "REGTEST constituent eta: " << thisconstit->eta() );
1310 // ATH_MSG_INFO( "REGTEST constituent phi: " << thisconstit->phi() );
1311 // ATH_MSG_INFO( "REGTEST constituent m: " << thisconstit->m() );
1312 // ATH_MSG_INFO( "REGTEST constituent e: " << thisconstit->e() );
1313 // ATH_MSG_INFO( "REGTEST constituent type (CaloCluster: 1, Jet: 2, ...): " << thisconstit->type() );
1314 // }
1315 // else{
1316 // ATH_MSG_WARNING("REGTEST Problem with constituent pointer");
1317 // return StatusCode::SUCCESS;
1318 // }
1319 // }
1320 // ATH_MSG_INFO("REGTEST size of constituent vector == number of displayed constituents: "<< (constitContsize == j) );
1321 // if (constitContsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1322 }
1323 // else ATH_MSG_WARNING("REGTEST This jet has 0 constituents!");
1324
1325 //checks int attributes
1326 ATH_MSG_DEBUG("REGTEST Checking int attributes");
1327 int valueint;
1328 if( thisjet->getAttribute(xAOD::JetAttribute::GhostMuonSegmentCount, valueint)) ATH_MSG_INFO("REGTEST GhostMuonSegmentCount: " << valueint);
1329 if( thisjet->getAttribute(xAOD::JetAttribute::GhostTrackCount, valueint)) ATH_MSG_INFO("REGTEST GhostTrackCount: " << valueint);
1330 if( thisjet->getAttribute(xAOD::JetAttribute::GhostTruthParticleCount, valueint)) ATH_MSG_INFO("REGTEST GhostTruthParticleCount: " << valueint);
1331 if( thisjet->getAttribute(xAOD::JetAttribute::FracSamplingMaxIndex, valueint)) ATH_MSG_INFO( "REGTEST FracSamplingMaxIndex: " << valueint);
1332
1333
1334 //checks float attributes
1335 ATH_MSG_DEBUG("REGTEST Checking float attributes");
1336 float value;
1337 if( thisjet->getAttribute(xAOD::JetAttribute::ActiveArea, value)) ATH_MSG_INFO( "REGTEST ActiveArea: " << value );
1338 // Four-vector type if( thisjet->getAttribute(xAOD::JetAttribute::ActiveArea4vec, value)) ATH_MSG_INFO( "REGTEST ActiveArea4vec: " << value );
1339 if( thisjet->getAttribute(xAOD::JetAttribute::AverageLArQF, value)) ATH_MSG_INFO( "REGTEST AverageLArQF: " << value );
1340 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrCell, value)) ATH_MSG_INFO( "REGTEST BchCorrCell: " << value );
1341 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrDotx, value)) ATH_MSG_INFO( "REGTEST BchCorrDotx: " << value );
1342 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrJet, value)) ATH_MSG_INFO( "REGTEST BchCorrJet: " << value );
1343 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrJetForCell, value)) ATH_MSG_INFO( "REGTEST BchCorrJetForCell: " << value );
1344 if( thisjet->getAttribute(xAOD::JetAttribute::CentroidR, value)) ATH_MSG_INFO( "REGTEST CentroidR: " << value );
1345 if( thisjet->getAttribute(xAOD::JetAttribute::HECQuality, value)) ATH_MSG_INFO( "REGTEST HECQuality: " << value );
1346 if( thisjet->getAttribute(xAOD::JetAttribute::IsoKR20Par, value)) ATH_MSG_INFO( "REGTEST IsoKR20Par: " << value );
1347 if( thisjet->getAttribute(xAOD::JetAttribute::IsoKR20Perp, value)) ATH_MSG_INFO( "REGTEST IsoKR20Perp: " << value );
1348 // ElementLink<DataVector<xAOD::Vertex> > type if( thisjet->getAttribute(xAOD::JetAttribute::HighestJVFVtx, value)) ATH_MSG_INFO( "REGTEST HighestJVFVtx: " << value );
1349 // ??? type if( thisjet->getAttribute(xAOD::JetAttribute::JetLabel, value)) ATH_MSG_INFO( "REGTEST JetLabel: " << value );
1350 if( thisjet->getAttribute(xAOD::JetAttribute::KtDR, value)) ATH_MSG_INFO( "REGTEST KtDR: " << value );
1351 if( thisjet->getAttribute(xAOD::JetAttribute::LArBadHVEnergy, value)) ATH_MSG_INFO( "REGTEST LArBadHVEnergy: " << value );
1352 if( thisjet->getAttribute(xAOD::JetAttribute::LArBadHVRatio, value)) ATH_MSG_INFO( "REGTEST LArBadHVRatio: " << value );
1353 if( thisjet->getAttribute(xAOD::JetAttribute::LArQuality, value)) ATH_MSG_INFO( "REGTEST LArQuality: " << value );
1354 if( thisjet->getAttribute(xAOD::JetAttribute::NegativeE, value)) ATH_MSG_INFO( "REGTEST NegativeE: " << value );
1355 // no tools available yet if( thisjet->getAttribute(xAOD::JetAttribute::NumTowers, value)) ATH_MSG_INFO( "REGTEST NumTowers: " << value );
1356 if( thisjet->getAttribute(xAOD::JetAttribute::SamplingMax, value)) ATH_MSG_INFO( "REGTEST SamplingMax: " << value );
1357 if( thisjet->getAttribute(xAOD::JetAttribute::Timing, value)) ATH_MSG_INFO( "REGTEST Timing: " << value );
1358 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiArea, value)) ATH_MSG_INFO( "REGTEST VoronoiArea: " << value );
1359 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaE, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaE: " << value );
1360 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPx, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPx: " << value );
1361 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPy, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPy: " << value );
1362 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPz, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPz: " << value );
1363 if( thisjet->getAttribute(xAOD::JetAttribute::Width, value)) ATH_MSG_INFO( "REGTEST WIDTH: " << value );
1364 if( thisjet->getAttribute(xAOD::JetAttribute::FracSamplingMax, value)) ATH_MSG_INFO( "REGTEST FracSamplingMax: " << value );
1365 if( thisjet->getAttribute(xAOD::JetAttribute::EMFrac, value)) ATH_MSG_INFO( "REGTEST EMFrac: " << value );
1366 if( thisjet->getAttribute(xAOD::JetAttribute::HECFrac, value)) ATH_MSG_INFO( "REGTEST HECFrac: " << value );
1367 if( thisjet->getAttribute(xAOD::JetAttribute::isBadLoose, value)) ATH_MSG_INFO( "REGTEST isBadLoose: " << value );
1368 if( thisjet->getAttribute(xAOD::JetAttribute::isBadMedium, value)) ATH_MSG_INFO( "REGTEST isBadMedium: " << value );
1369 if( thisjet->getAttribute(xAOD::JetAttribute::isBadTight, value)) ATH_MSG_INFO( "REGTEST isBadTight: " << value );
1370 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::isUgly, value)) ATH_MSG_INFO( "REGTEST isUgly: " << value );
1371 if( thisjet->getAttribute(xAOD::JetAttribute::N90Constituents, value)) ATH_MSG_INFO( "REGTEST N90Constituents: " << value );
1372 if( thisjet->getAttribute(xAOD::JetAttribute::N90Cells, value)) ATH_MSG_INFO( "REGTEST N90Cells: " << value );
1373 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracClusters10, value)) ATH_MSG_INFO( "REGTEST OotFracClusters10: " << value );
1374 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracClusters5, value)) ATH_MSG_INFO( "REGTEST OotFracClusters5: " << value );
1375 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracCells5, value)) ATH_MSG_INFO( "REGTEST OotFracCells5: " << value );
1376 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracCells10, value)) ATH_MSG_INFO( "REGTEST OotFracCells10: " << value );
1377 if( thisjet->getAttribute(xAOD::JetAttribute::PtTruth, value)) ATH_MSG_INFO( "REGTEST PtTruth: " << value );
1378 if( thisjet->getAttribute(xAOD::JetAttribute::Tau1, value)) ATH_MSG_INFO( "REGTEST Tau1: " << value );
1379 if( thisjet->getAttribute(xAOD::JetAttribute::Tau2, value)) ATH_MSG_INFO( "REGTEST Tau2: " << value );
1380 if( thisjet->getAttribute(xAOD::JetAttribute::Tau3, value)) ATH_MSG_INFO( "REGTEST Tau3: " << value );
1381 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split12, value)) ATH_MSG_INFO( "REGTEST Split12: " << value );
1382 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split23, value)) ATH_MSG_INFO( "REGTEST Split23: " << value );
1383 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split34, value)) ATH_MSG_INFO( "REGTEST Split34: " << value );
1384 if( thisjet->getAttribute(xAOD::JetAttribute::Dip12, value)) ATH_MSG_INFO( "REGTEST Dip12: " << value );
1385 if( thisjet->getAttribute(xAOD::JetAttribute::Dip13, value)) ATH_MSG_INFO( "REGTEST Dip13: " << value );
1386 if( thisjet->getAttribute(xAOD::JetAttribute::Dip23, value)) ATH_MSG_INFO( "REGTEST Dip23: " << value );
1387 if( thisjet->getAttribute(xAOD::JetAttribute::DipExcl12, value)) ATH_MSG_INFO( "REGTEST DipExcl12: " << value );
1388 if( thisjet->getAttribute(xAOD::JetAttribute::ThrustMin, value)) ATH_MSG_INFO( "REGTEST ThrustMin: " << value );
1389 if( thisjet->getAttribute(xAOD::JetAttribute::ThrustMaj, value)) ATH_MSG_INFO( "REGTEST ThrustMaj: " << value );
1390 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram0, value)) ATH_MSG_INFO( "REGTEST FoxWolfram0: " << value );
1391 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram1, value)) ATH_MSG_INFO( "REGTEST FoxWolfram1: " << value );
1392 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram2, value)) ATH_MSG_INFO( "REGTEST FoxWolfram2: " << value );
1393 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram3, value)) ATH_MSG_INFO( "REGTEST FoxWolfram3: " << value );
1394 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram4, value)) ATH_MSG_INFO( "REGTEST FoxWolfram4: " << value );
1395 if( thisjet->getAttribute(xAOD::JetAttribute::Sphericity, value)) ATH_MSG_INFO( "REGTEST Sphericity: " << value );
1396 if( thisjet->getAttribute(xAOD::JetAttribute::Aplanarity, value)) ATH_MSG_INFO( "REGTEST Aplanarity: " << value );
1397
1398 //checks vector<int> attributes
1399 ATH_MSG_DEBUG("REGTEST Checking vector<int> attributes");
1400 std::vector<int> vecvalueint;
1401 if (thisjet->getAttribute(xAOD::JetAttribute::NumTrkPt1000, vecvalueint)) {
1402 int vecsize = vecvalueint.size();
1403 ATH_MSG_INFO("REGTEST Got NumTrkPt1000 vector, size: " << vecsize);
1404 if (vecsize != 0) {
1405 int j = 0;
1406 for(const auto & thisvalue : vecvalueint){
1407 ++j;
1408 ATH_MSG_INFO("REGTEST NumTrkPt1000 #" << j << ": " << thisvalue);
1409 }
1410 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1411 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1412 }
1413 }
1414 if (thisjet->getAttribute(xAOD::JetAttribute::NumTrkPt500, vecvalueint)) {
1415 int vecsize = vecvalueint.size();
1416 ATH_MSG_INFO("REGTEST Got Got NumTrkPt500 vector, size: " << vecsize);
1417 if (vecsize != 0) {
1418 int j = 0;
1419 for(const auto & thisvalue : vecvalueint){
1420 ++j;
1421 ATH_MSG_INFO("REGTEST NumTrkPt500 #" << j << ": " << thisvalue);
1422 }
1423 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1424 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1425 }
1426 }
1427
1428 //checks vector<float> attributes
1429 ATH_MSG_DEBUG("REGTEST Checking vector<float> attributes");
1430 std::vector<float> vecvalue;
1431 if (thisjet->getAttribute(xAOD::JetAttribute::JVF, vecvalue)) {
1432 int vecsize = vecvalue.size();
1433 ATH_MSG_INFO("REGTEST Got JVF vector, size: " << vecsize);
1434 if (vecsize != 0) {
1435 int j = 0;
1436 for(const auto & thisvalue : vecvalue){
1437 ++j;
1438 ATH_MSG_INFO("REGTEST JVF #" << j << ": " << thisvalue);
1439 }
1440 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1441 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1442 }
1443 }
1444 if (thisjet->getAttribute(xAOD::JetAttribute::SumPtTrkPt1000, vecvalue)) {
1445 int vecsize = vecvalue.size();
1446 ATH_MSG_INFO("REGTEST Got SumPtTrkPt1000 vector, size: " << vecsize);
1447 if (vecsize != 0) {
1448 int j = 0;
1449 for(const auto & thisvalue : vecvalue){
1450 ++j;
1451 ATH_MSG_INFO("REGTEST SumPtTrkPt1000 #" << j << ": " << thisvalue);
1452 }
1453 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1454 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1455 }
1456 }
1457 if (thisjet->getAttribute(xAOD::JetAttribute::SumPtTrkPt500, vecvalue)) {
1458 int vecsize = vecvalue.size();
1459 ATH_MSG_INFO("REGTEST Got SumPtTrkPt500 vector, size: " << vecsize);
1460 if (vecsize != 0) {
1461 int j = 0;
1462 for(const auto & thisvalue : vecvalue){
1463 ++j;
1464 ATH_MSG_INFO("REGTEST SumPtTrkPt500 #" << j << ": " << thisvalue);
1465 }
1466 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1467 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1468 }
1469 }
1470 if (thisjet->getAttribute(xAOD::JetAttribute::TrackWidthPt1000, vecvalue)) {
1471 int vecsize = vecvalue.size();
1472 ATH_MSG_INFO("REGTEST Got TrackWidthPt1000 vector, size: " << vecsize);
1473 if (vecsize != 0) {
1474 int j = 0;
1475 for(const auto & thisvalue : vecvalue){
1476 ++j;
1477 ATH_MSG_INFO("REGTEST TrackWidthPt1000 #" << j << ": " << thisvalue);
1478 }
1479 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1480 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1481 }
1482 }
1483 if (thisjet->getAttribute(xAOD::JetAttribute::TrackWidthPt500, vecvalue)) {
1484 int vecsize = vecvalue.size();
1485 ATH_MSG_INFO("REGTEST Got TrackWidthPt500 vector, size: " << vecsize);
1486 if (vecsize != 0) {
1487 int j = 0;
1488 for(const auto & thisvalue : vecvalue){
1489 ++j;
1490 ATH_MSG_INFO("REGTEST TrackWidthPt500 #" << j << ": " << thisvalue);
1491 }
1492 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1493 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1494 }
1495 }
1496 if (thisjet->getAttribute(xAOD::JetAttribute::EnergyPerSampling, vecvalue)) {
1497 int vecsize = vecvalue.size();
1498 ATH_MSG_INFO("REGTEST Got EnergyPerSampling vector, size: " << vecsize);
1499 if (vecsize != 0) {
1500 int j = 0;
1501 for(const auto & thisvalue : vecvalue){
1502 ++j;
1503 ATH_MSG_INFO("REGTEST EnergyPerSampling #" << j << ": " << thisvalue);
1504 }
1505 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1506 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
1507 }
1508 }
1509
1510
1511 //checks associated objects
1512 // ATH_MSG_DEBUG("REGTEST Checking associated objects");
1513 // std::vector<const xAOD::TrackParticle*> track;
1514 // if( thisjet->getAssociatedObjects(xAOD::JetAttribute::GhostTrack, track) ){
1515 // int vecsize = track.size();
1516 // ATH_MSG_INFO("REGTEST Got GhostTrack vector, size: " << vecsize);
1517 // if (vecsize != 0) {
1518 // int j = 0;
1519 // for(const auto & thistrack : track){
1520 // ++j;
1521 // //checks only one associated variable, just making sure getting the object worked
1522 // if (thistrack) ATH_MSG_INFO("REGTEST z0 for GhostTrack #" << j << ": " << thistrack->z0());
1523 // else{
1524 // ATH_MSG_WARNING("REGTEST Problem with attribute pointer");
1525 // return StatusCode::SUCCESS;
1526 // }
1527 // }
1528 // ATH_MSG_INFO("REGTEST size of associated object vector == number of displayed attributes: " << (vecsize == j) );
1529 // if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this associated object");
1530 // }
1531 // }
1532 }
1533 else{
1534 ATH_MSG_WARNING("REGTEST Problem with jet pointer");
1535 return StatusCode::SUCCESS;
1536 }
1537 }
1538
1539 if (jetContsize == i) ATH_MSG_INFO("REGTEST size of jet container == number of displayed jets: " << (jetContsize == i) );
1540 else ATH_MSG_WARNING("REGTEST Problem with displaying jets");
1541 }
1542 }
1543
1544 if (!onefilled) ATH_MSG_DEBUG("There was no filled jet containers");
1545
1546 ATH_MSG_INFO("REGTEST ==========END of xAOD::JetContainer DUMP===========");
1547
1548 ATH_MSG_DEBUG("leaving dumpxAODJetContainer()");
1549
1550 return StatusCode::SUCCESS;
1551}
size_t size() const
number of constituents
JetContainer_v1 JetContainer
Definition of the current "jet container version".

◆ dumpxAODMuonContainer()

StatusCode TrigEDMChecker::dumpxAODMuonContainer ( )
private

Definition at line 639 of file TrigEDMChecker.cxx.

639 {
640
641 ATH_MSG_DEBUG("In dumpxAODMuonContainer");
642
643 ATH_MSG_INFO( "REGTEST ==========START of xAOD::MuonContainer DUMP===========" );
644
645 const xAOD::MuonContainer* muonCont=0;
646 StatusCode sc = evtStore()->retrieve(muonCont,"HLT_xAOD__MuonContainer_MuonEFInfo");
647 if (sc.isFailure()) {
648 ATH_MSG_INFO("REGTEST No muon container HLT_xAOD__MuonContainer_MuonEFInfo");
649 return StatusCode::SUCCESS;
650 }
651
652 std::string output = m_muonPrinter->print( *muonCont );
653 msg(MSG::INFO) << output << endmsg;
654
655 ATH_MSG_INFO( "REGTEST ==========END of xAOD::MuonContainer DUMP===========" );
656
657 return StatusCode::SUCCESS;
658
659}
ToolHandle< Rec::IMuonPrintingTool > m_muonPrinter
output
Definition merge.py:16
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
MsgStream & msg
Definition testRead.cxx:32

◆ dumpxAODPhotonContainer()

StatusCode TrigEDMChecker::dumpxAODPhotonContainer ( )
private

Definition at line 920 of file TrigEDMChecker.cxx.

920 {
921
922 ATH_MSG_DEBUG("In dumpxAODPhotonContainer");
923
924 ATH_MSG_INFO( "REGTEST ==========START of xAOD::PhotonContainer DUMP===========" );
925
926 const xAOD::PhotonContainer* phCont=0;
927 StatusCode sc = evtStore()->retrieve(phCont,"HLT_xAOD__PhotonContainer_egamma_Photons");
928 if (sc.isFailure()) {
929 ATH_MSG_INFO("REGTEST No Photon container HLT_xAOD__PhotonContainer_egamma_Photons");
930 return StatusCode::SUCCESS;
931 }
932
933 float val_float=-99;
934 unsigned int isEMbit=0;
935 //DEBUG output for xAOD::PhotonContainer
936 ATH_MSG_INFO(" REGTEST: xAOD Reconstruction variables: ");
937 //Cluster and ShowerShape info
938 static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
939 for (const auto eg : *phCont){
940 //REGTEST printout
941 if (eg) {
942 ATH_MSG_INFO(" REGTEST: egamma energy: " << eg->e() );
943 ATH_MSG_INFO(" REGTEST: egamma eta: " << eg->eta() );
944 ATH_MSG_INFO(" REGTEST: egamma phi: " << eg->phi() );
945 ATH_MSG_INFO(" REGTEST: isEMLoose " << eg->selectionisEM(isEMbit,"isEMLoose"));
946 ATH_MSG_INFO(" REGTEST: isEMLoose bit " << std::hex << isEMbit << std::dec);
947 ATH_MSG_INFO(" REGTEST: isEMMedium " << eg->selectionisEM(isEMbit,"isEMMedium"));
948 ATH_MSG_INFO(" REGTEST: isEMMedium bit " << std::hex << isEMbit << std::dec);
949 ATH_MSG_INFO(" REGTEST: isEMTight " << eg->selectionisEM(isEMbit,"isEMTight"));
950 ATH_MSG_INFO(" REGTEST: isEMTight bit " << std::hex << isEMbit << std::dec);
951 } else{
952 ATH_MSG_INFO(" REGTEST: problems with egamma pointer" );
953 return StatusCode::SUCCESS;
954 }
955 ATH_MSG_INFO(" REGTEST: caloCluster variables ");
956 if (eg->caloCluster()) {
957 ATH_MSG_INFO(" REGTEST: egamma cluster transverse energy: " << eg->caloCluster()->et() );
958 ATH_MSG_INFO(" REGTEST: egamma cluster eta: " << eg->caloCluster()->eta() );
959 ATH_MSG_INFO(" REGTEST: egamma cluster phi: " << eg->caloCluster()->phi() );
960 double tmpeta = -999.;
961 double tmpphi = -999.;
962 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::ETACALOFRAME,tmpeta);
963 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::PHICALOFRAME,tmpphi);
964 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. etaCalo = " << tmpeta);
965 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. phiCalo = " << tmpphi);
966 } else{
967 ATH_MSG_INFO(" REGTEST: problems with egamma cluster pointer" );
968 }
969 ATH_MSG_INFO("REGTEST: Check the original (uncalibrated)");
970 if (!orig.isAvailable(*eg->caloCluster()) || !orig(*eg->caloCluster()).isValid()){
971 ATH_MSG_INFO("Problem with original cluster link");
972 }
973 else {
974 const xAOD::CaloCluster *origClus = *orig(*eg->caloCluster());
975 ATH_MSG_INFO("REGTEST:: Compare new and old clusters");
976 ATH_MSG_INFO("REGTEST:: Original Cluster e,eta,phi" << origClus->e() << " " << origClus->eta() << " " << origClus->phi());
977 ATH_MSG_INFO("REGTEST:: MVA Cluster e,eta,phi" << eg->caloCluster()->e() << " " << eg->caloCluster()->eta() << " " << eg->caloCluster()->phi());
978 }
979 //msg() << MSG::VERBOSE << " REGTEST: cluster variables " << endmsg;
980 //clus = eg->caloCluster();
981 ATH_MSG_INFO(" REGTEST: EMShower variables ");
982 eg->showerShapeValue(val_float,xAOD::EgammaParameters::ethad);
983 ATH_MSG_INFO(" REGTEST: ethad = " << val_float);
984 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e011);
985 ATH_MSG_INFO(" REGTEST: e011 = " << val_float);
986 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e132);
987 ATH_MSG_INFO(" REGTEST: e132 = " << val_float);
988 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e237);
989 ATH_MSG_INFO(" REGTEST: e237 = " << val_float);
990 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e335);
991 ATH_MSG_INFO(" REGTEST: e335 = " << val_float);
992 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2ts1);
993 ATH_MSG_INFO(" REGTEST: e2ts1 = " << val_float);
994 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2tsts1);
995 ATH_MSG_INFO(" REGTEST: e2tsts1 = " << val_float);
996 eg->isolationValue(val_float,xAOD::Iso::etcone20);
997 ATH_MSG_INFO(" REGTEST: etcone20 = " << val_float);
998 eg->isolationValue(val_float,xAOD::Iso::etcone30);
999 ATH_MSG_INFO(" REGTEST: etcone30 = " << val_float);
1000 eg->isolationValue(val_float,xAOD::Iso::etcone40);
1001 ATH_MSG_INFO(" REGTEST: etcone40 = " << val_float);
1002 //DEBUG info for Electrons which by definition have a track match
1003
1004 }
1005 ATH_MSG_INFO( "REGTEST ==========END of xAOD::PhotonContainer DUMP===========" );
1006
1007 return StatusCode::SUCCESS;
1008
1009}
PhotonContainer_v1 PhotonContainer
Definition of the current "photon container version".

◆ dumpxAODTauJetContainer()

StatusCode TrigEDMChecker::dumpxAODTauJetContainer ( )
private

Definition at line 1646 of file TrigEDMChecker.cxx.

1646 {
1647
1648 ATH_MSG_DEBUG("In dumpxAODTauJetContainer");
1649 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TauJetContainer DUMP===========" );
1650 const xAOD::TauJetContainer * TauJetcont = 0;
1651 StatusCode sc = evtStore() -> retrieve (TauJetcont, "HLT_xAOD__TauJetContainer_TrigTauRecMerged");
1652
1653 if (sc.isFailure()) {
1654
1655 ATH_MSG_INFO("REGTEST No Tau container HLT_xAOD__TauJetContainer_TrigTauRecMerged");
1656
1657
1658 return StatusCode::SUCCESS;
1659 }
1660
1661
1662 for(xAOD::TauJetContainer::const_iterator tauIt = TauJetcont->begin(); tauIt != TauJetcont->end();++tauIt){
1663
1664 ATH_MSG_INFO( "REGTEST (*tauIt)->eta() returns " << (*tauIt)->eta() );
1665 ATH_MSG_INFO( "REGTEST (*tauIt)->phi() returns " << (*tauIt)->phi() );
1666 ATH_MSG_INFO( "REGTEST (*tauIt)->pt() returns " << (*tauIt)->pt() );
1667
1668 // for numTracks()
1669 int EFnTracks = -1;
1670 #ifndef XAODTAU_VERSIONS_TAUJET_V3_H
1671 EFnTracks = (*tauIt)->nTracks();
1672 #else
1673 (*tauIt)->detail(xAOD::TauJetParameters::nChargedTracks, EFnTracks);
1674 #endif
1675
1676 ATH_MSG_INFO( "REGTEST (*tauIt)->nTracks() returns " << EFnTracks );
1677
1678 // for nTracksIsolation()
1679 int EFWidenTrack = -1;
1680 #ifndef XAODTAU_VERSIONS_TAUJET_V3_H
1681 EFWidenTrack = (*tauIt)->nWideTracks();
1682 #else
1683 (*tauIt)->detail(xAOD::TauJetParameters::nIsolatedTracks, EFWidenTrack);
1684 #endif
1685
1686 ATH_MSG_INFO( "REGTEST (*tauIt)->nWideTracks() returns " << EFWidenTrack );
1687
1688 //bool test = false;
1689 float trkAvgDist=0;
1690 float etOvPtLead=0;
1691 float emRadius=0;
1692 float hadRadius=0;
1693 float IsoFrac=0;
1694 float centFrac=0;
1695 float ipSigLeadTrk=0;
1696 float trFlightPathSig=0;
1697 float dRmax=0;
1698 float massTrkSys=0;
1699 float PSSFraction=0;
1700 float EMPOverTrkSysP=0;
1701 float ChPiEMEOverCaloEME=0;
1702 float EtEm=0;
1703 float EtHad=0;
1704
1705 if ( (*tauIt)->detail(xAOD::TauJetParameters::trkAvgDist,trkAvgDist))
1706 ATH_MSG_INFO( "REGTEST TauDetails->trkAvgDist() returns " << trkAvgDist);
1707
1708 if ( (*tauIt)->detail(xAOD::TauJetParameters::etOverPtLeadTrk,etOvPtLead))
1709 ATH_MSG_INFO( "REGTEST TauDetails->etOverPtLeadTrk() returns " << etOvPtLead);
1710
1711 if ( (*tauIt)->detail(xAOD::TauJetParameters::EMRadius,emRadius))
1712 ATH_MSG_INFO( "REGTEST TauDetails->EMRadius() returns " << emRadius);
1713
1714 if ( (*tauIt)->detail(xAOD::TauJetParameters::hadRadius,hadRadius))
1715 ATH_MSG_INFO( "REGTEST TauDetails->hadRadius() returns " << hadRadius);
1716
1717 if ( (*tauIt)->detail(xAOD::TauJetParameters::isolFrac,IsoFrac))
1718 ATH_MSG_INFO( "REGTEST TauDetails->isolFrac() returns " << IsoFrac);
1719
1720 if ( (*tauIt)->detail(xAOD::TauJetParameters::centFrac,centFrac))
1721 ATH_MSG_INFO( "REGTEST TauDetails->centFrac() returns " << centFrac);
1722
1723 if ( (*tauIt)->detail(xAOD::TauJetParameters::ipSigLeadTrk,ipSigLeadTrk))
1724 ATH_MSG_INFO( "REGTEST TauDetails->ipSigLeadTrk() returns " << ipSigLeadTrk);
1725
1726 if ( (*tauIt)->detail(xAOD::TauJetParameters::trFlightPathSig,trFlightPathSig))
1727 ATH_MSG_INFO( "REGTEST TauDetails->trFlightPathSig() returns " << trFlightPathSig);
1728
1729 if ( (*tauIt)->detail(xAOD::TauJetParameters::dRmax,dRmax))
1730 ATH_MSG_INFO( "REGTEST TauDetails->dRmax() returns " << dRmax);
1731
1732 if ( (*tauIt)->detail(xAOD::TauJetParameters::massTrkSys,massTrkSys)){
1733 massTrkSys /=1000;
1734 ATH_MSG_INFO( "REGTEST TauDetails->massTrkSys() returns " << massTrkSys);}
1735
1736 if ( (*tauIt)->detail(xAOD::TauJetParameters::PSSFraction,PSSFraction))
1737 ATH_MSG_INFO( "REGTEST TauDetails->PSSFraction() returns " << PSSFraction);
1738
1739 if ( (*tauIt)->detail(xAOD::TauJetParameters::EMPOverTrkSysP,EMPOverTrkSysP))
1740 ATH_MSG_INFO( "REGTEST TauDetails->EMPOverTrkSysP() returns " << EMPOverTrkSysP);
1741
1742 if ( (*tauIt)->detail(xAOD::TauJetParameters::ChPiEMEOverCaloEME,ChPiEMEOverCaloEME))
1743 ATH_MSG_INFO( "REGTEST TauDetails->ChPiEMEOverCaloEME() returns " << ChPiEMEOverCaloEME);
1744
1745 if ( (*tauIt)->detail(xAOD::TauJetParameters::etEMAtEMScale,EtEm)){
1746 EtEm /=1000;
1747 ATH_MSG_INFO( "REGTEST TauDetails->etEMAtEMScale() returns " << EtEm);}
1748
1749 if ( (*tauIt)->detail(xAOD::TauJetParameters::etHadAtEMScale,EtHad)){
1750 EtHad /=1000;
1751 ATH_MSG_INFO( "REGTEST TauDetails->etHadAtEMScale() returns " << EtHad);}
1752
1753
1754 if( !(*tauIt)->jetLink().isValid() ) {
1755 ATH_MSG_WARNING("tau does not have jet seed");
1756 return StatusCode::SUCCESS;
1757 }
1758
1759 const xAOD::Jet* pJetSeed = *((*tauIt)->jetLink());
1760
1763
1764 for (int clusCount = 0; clusItr != clusItrE; ++clusItr, ++clusCount) {
1765
1766 ATH_MSG_INFO( "REGTEST Tau Cluster " << clusCount << " pt = " << (*clusItr)->pt()
1767 << " eta = " << (*clusItr)->eta()
1768 << " phi = " << (*clusItr)->phi() );
1769
1770 }
1771
1772
1773 for (unsigned int trackNum = 0; trackNum < (*tauIt)->nTracks(); ++trackNum) {
1774
1775 const xAOD::TrackParticle *linkTrack = (*tauIt)->track(trackNum)->track();
1776 if (!linkTrack) {
1777 ATH_MSG_WARNING("can't get tau linked track");
1778 return StatusCode::SUCCESS;
1779 } else {
1780 ATH_MSG_DEBUG("Got the tau linked track");
1781 }
1782
1783 ATH_MSG_INFO( "REGTEST Tau linked track " << trackNum << " pt = " << linkTrack->pt()
1784 << " eta = " << linkTrack->eta()
1785 << " phi = " << linkTrack->phi() );
1786
1787 }
1788
1789
1790 }// end for
1791
1792 return StatusCode::SUCCESS;
1793
1794}
ElementLink< xAOD::TrackParticleContainer > linkTrack(const xAOD::TrackParticle *trk)
iterator begin() const
iterator on the first constituent
iterator end() const
iterator after the last constituent
JetConstituentVector getConstituents() const
Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentV...
Definition Jet_v1.cxx:149
@ hadRadius
Get hadron calorimeter radius.
Definition TauDefs.h:192
@ EMRadius
Get E_T radius.
Definition TauDefs.h:190
@ etHadAtEMScale
Get Hadronic energy at EM scale.
Definition TauDefs.h:196
@ isolFrac
Get isolation fraction.
Definition TauDefs.h:198
@ trkAvgDist
Get calibrated EM transverse energy (DEPRECATED since r19).
Definition TauDefs.h:214
@ etEMAtEMScale
Get EM energy at EM scale.
Definition TauDefs.h:194
@ centFrac
Get centrality fraction.
Definition TauDefs.h:200
@ dRmax
Get maximal dR of tracks associated to calo-seeded tau.
Definition TauDefs.h:226
Jet_v1 Jet
Definition of the current "jet version".
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TauJetContainer_v3 TauJetContainer
Definition of the current "taujet container version".

◆ dumpxAODTrackParticle()

StatusCode TrigEDMChecker::dumpxAODTrackParticle ( )
private

Definition at line 1798 of file TrigEDMChecker.cxx.

1798 {
1799
1800 ATH_MSG_DEBUG("In dumpxAODTrackParticle()");
1801
1802 ATH_MSG_INFO("REGTEST ==========START of xAOD::TrackParticle DUMP===========");
1803
1804 std::vector<std::string> SGkeys;
1805 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_EFID");
1806 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_EFID");
1807 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_EFID");
1808 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_FullScan_EFID");
1809 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_EFID");
1810 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Photon_EFID");
1811 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_EFID");
1812
1813 StatusCode returnsc = StatusCode::SUCCESS;
1814
1815 for (unsigned int SGkey = 0; SGkey < SGkeys.size(); ++SGkey) {
1816 const xAOD::TrackParticleContainer* trackParticleContainer=0;
1817 StatusCode sc = evtStore()->retrieve(trackParticleContainer,SGkeys.at(SGkey));
1818 if (sc.isFailure()) {
1819 ATH_MSG_INFO("REGTEST No track particle container found with key " << SGkeys.at(SGkey));
1820 continue;
1821 }
1822 ATH_MSG_INFO("REGTEST TrackParticleContainer retrieved with key " << SGkeys.at(SGkey)
1823 << " and size " << trackParticleContainer->size());
1824
1825 xAOD::TrackParticleContainer::const_iterator trackParticleItr = trackParticleContainer->begin();
1826 xAOD::TrackParticleContainer::const_iterator trackParticleLast = trackParticleContainer->end();
1827
1828 for (int index = 0; trackParticleItr != trackParticleLast; ++trackParticleItr, ++index) {
1829 ATH_MSG_INFO("REGTEST Looking at Track Particle " << index);
1830
1831 ATH_MSG_INFO("REGTEST IParticle functions:");
1832 ATH_MSG_INFO("REGTEST pt: " << (*trackParticleItr)->pt()
1833 << "/eta: " << (*trackParticleItr)->eta()
1834 << "/phi: " << (*trackParticleItr)->phi()
1835 << "/m: " << (*trackParticleItr)->m()
1836 << "/e: " << (*trackParticleItr)->e()
1837 << "/rapidity: " << (*trackParticleItr)->rapidity());
1838
1839 ATH_MSG_INFO("REGTEST Defining parameters functions:");
1840 ATH_MSG_INFO("REGTEST charge: " << (*trackParticleItr)->charge()
1841 << "/d0: " << (*trackParticleItr)->d0()
1842 << "/z0: " << (*trackParticleItr)->z0()
1843 << "/phi0: " << (*trackParticleItr)->phi0()
1844 << "/theta: " << (*trackParticleItr)->theta()
1845 << "/qOverP: " << (*trackParticleItr)->qOverP()
1846 << "/vx: " << (*trackParticleItr)->vx()
1847 << "/vy: " << (*trackParticleItr)->vy()
1848 << "/vz: " << (*trackParticleItr)->vz());
1849
1850 // Curvilinear functions skipped
1851
1852 ATH_MSG_INFO("REGTEST Fit quality functions:");
1853 ATH_MSG_INFO("REGTEST chiSquared: " << (*trackParticleItr)->chiSquared()
1854 << "/numberDoF: " << (*trackParticleItr)->numberDoF());
1855
1856 // TrackInfo functions skipped
1857
1858 ATH_MSG_INFO("REGTEST summaryValue variables:");
1859 msg() << MSG::INFO << "REGTEST ";
1861 if ( (*trackParticleItr)->summaryValue(numberOfBLayerHits, xAOD::numberOfBLayerHits) ) {
1862 msg() << "/numberOfBLayerHits: " << static_cast<int>(numberOfBLayerHits);
1863 } else {
1864 msg() << "/numberOfBLayerHits not found";
1865 }
1866
1868 if ( (*trackParticleItr)->summaryValue(numberOfPixelHits, xAOD::numberOfPixelHits) ) {
1869 msg() << "/numberOfPixelHits: " << static_cast<int>(numberOfPixelHits);
1870 } else {
1871 msg() << "/numberOfPixelHits not found";
1872 }
1873
1875 if ( (*trackParticleItr)->summaryValue(numberOfPixelHoles, xAOD::numberOfPixelHoles) ) {
1876 msg() << "/numberOfPixelHoles: " << static_cast<int>(numberOfPixelHoles);
1877 } else {
1878 msg() << "/numberOfPixelHoles not found";
1879 }
1880
1882 if ( (*trackParticleItr)->summaryValue(numberOfSCTHits, xAOD::numberOfSCTHits) ) {
1883 msg() << "/numberOfSCTHits: " << static_cast<int>(numberOfSCTHits);
1884 } else {
1885 msg() << "/numberOfSCTHits not found";
1886 }
1887
1889 if ( (*trackParticleItr)->summaryValue(numberOfSCTHoles, xAOD::numberOfSCTHoles) ) {
1890 msg() << "/numberOfSCTHoles: " << static_cast<int>(numberOfSCTHoles);
1891 } else {
1892 msg() << "/numberOfSCTHoles not found";
1893 }
1894
1896 if ( (*trackParticleItr)->summaryValue(numberOfTRTHits, xAOD::numberOfTRTHits) ) {
1897 msg() << "/numberOfTRTHits: " << static_cast<int>(numberOfTRTHits);
1898 } else {
1899 msg() << "/numberOfTRTHits not found";
1900 }
1901
1903 if ( (*trackParticleItr)->summaryValue(numberOfTRTHoles, xAOD::numberOfTRTHoles) ) {
1904 msg() << "/numberOfTRTHoles: " << static_cast<int>(numberOfTRTHoles);
1905 } else {
1906 msg() << "/numberOfTRTHoles not found";
1907 }
1908 msg() << endmsg;
1909 }
1910 }
1911
1912 ATH_MSG_INFO("REGTEST ==========END of xAOD::TrackParticle DUMP===========");
1913 ATH_MSG_DEBUG("dumpxAODTrackParticles() succeeded");
1914
1915 return returnsc;
1916}
str index
Definition DeMoScan.py:362
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfTRTHoles
number of TRT holes [unit8_t].
@ numberOfBLayerHits
these are the hits in the first pixel layer, i.e.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfSCTHoles
number of SCT holes [unit8_t].

◆ dumpxAODTrigElectronContainer()

StatusCode TrigEDMChecker::dumpxAODTrigElectronContainer ( )
private

Definition at line 663 of file TrigEDMChecker.cxx.

663 {
664
665 ATH_MSG_DEBUG("In dumpxAODElectronContainer");
666
667 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigElectronContainer DUMP===========" );
668
669 const xAOD::TrigElectronContainer* elCont=0;
670 StatusCode sc = evtStore()->retrieve(elCont,"HLT_xAOD__TrigElectronContainer_L2ElectronFex");
671 if (sc.isFailure()) {
672 ATH_MSG_INFO("REGTEST No TrigElectron container HLT_xAOD__TrigElectronContainer_L2ElectronFex");
673 return StatusCode::SUCCESS;
674 }
675
676 for (const auto eg : *elCont){
677 ATH_MSG_INFO("REGTEST TrigElectron->Phi() returns " << eg->phi());
678 ATH_MSG_INFO("REGTEST TrigElectron->Eta() returns " << eg->eta());
679 ATH_MSG_INFO("REGTEST TrigElectron->rEta returns " << eg->rcore());
680 ATH_MSG_INFO("REGTEST TrigElectron->eratio() returns " << eg->eratio());
681 ATH_MSG_INFO("REGTEST TrigElectron->pt() returns " << eg->pt());
682 ATH_MSG_INFO("REGTEST TrigElectron->etHad() returns " << eg->etHad());
683 ATH_MSG_INFO("REGTEST TrigElectron->f1() returns " << eg->f1());
684 ATH_MSG_INFO("REGTEST TrigElectron caloEta = " << eg->caloEta());
685 ATH_MSG_INFO("REGTEST TrigElectron dPhiCalo" << eg->trkClusDphi());
686 ATH_MSG_INFO("REGTEST TrigElectron dEtaCalo" << eg->trkClusDeta());
687 ATH_MSG_INFO("REGTEST TrigElectron pTcalo" << eg->pt());
688 ATH_MSG_INFO("REGTEST TrigElectron eTOverPt" << eg->etOverPt());
689 ATH_MSG_INFO("REGTEST TrigElectron nTRTHits" << eg->nTRTHits());
690 ATH_MSG_INFO("REGTEST TrigElectron nStrawHits" << eg->nTRTHiThresholdHits());
691 ATH_MSG_INFO("REGTEST TrigElectron Check EMCluster");
692 if(eg->emCluster()){
693 ATH_MSG_INFO("REGTEST TrigElectron EMCluster retrieved");
694 ATH_MSG_INFO("REGTEST TrigElectron emCluster->energy() returns " << eg->emCluster()->energy());
695 ATH_MSG_INFO("REGTEST TrigElectron emCluster->phi() returns " << eg->emCluster()->phi());
696 ATH_MSG_INFO("REGTEST TrigElectron emCluster->eta() returns " << eg->emCluster()->eta());
697 ATH_MSG_INFO("REGTEST TrigElectron emCluster check Element Link");
698 ATH_MSG_INFO("REGTEST TrigElectron emCluster energy = " << eg->emCluster()->energy());
699 ATH_MSG_INFO("REGTEST TrigElectron ElementLink emCluster energy = " << (*eg->emClusterLink())->energy());
700 }
701 else ATH_MSG_INFO("REGTEST TrigElectron No EMCluster retrieved!");
702 ATH_MSG_INFO("REGTEST TrigElectron Check TrackParticle");
703 if(eg->trackParticle()){
704 ATH_MSG_INFO("REGTEST TrigElectron TrackParticle retrieved");
705 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->pt() returns " << eg->trackParticle()->pt());
706 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->phi() returns " << eg->trackParticle()->phi());
707 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->eta() returns " << eg->trackParticle()->eta());
708 ATH_MSG_INFO("REGTEST TrigElectron check TrackParticle Element Link");
709 ATH_MSG_INFO("REGTEST TrigElectron TrackParticle pt = " << eg->trackParticle()->pt());
710 ATH_MSG_INFO("REGTEST TrigElectron ElementLink TrackParticle pt = " << (*eg->trackParticleLink())->pt());
711 }
712 else ATH_MSG_INFO("REGTEST TrigElectron No TrackParticle retrieved!");
713 }
714 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigElectronContainer DUMP===========" );
715
716 return StatusCode::SUCCESS;
717
718}
TrigElectronContainer_v1 TrigElectronContainer
Declare the latest version of the container.

◆ dumpxAODTrigEMCluster()

StatusCode TrigEDMChecker::dumpxAODTrigEMCluster ( )
private

Definition at line 1555 of file TrigEDMChecker.cxx.

1555 {
1556
1557 ATH_MSG_DEBUG("in dumpxAODTrigEMCluster()");
1558
1559 ATH_MSG_INFO("REGTEST ==========START of TrigEMCluster DUMP===========");
1560
1561 SG::ConstIterator< xAOD::TrigEMCluster > EMCluster;
1562 SG::ConstIterator< xAOD::TrigEMCluster > lastEMCluster;
1563
1564 StatusCode sc = evtStore()->retrieve(EMCluster,lastEMCluster);
1565 if (sc.isFailure()) {
1566 ATH_MSG_INFO("REGTEST No xAOD::TrigEMCluster found");
1567 return StatusCode::SUCCESS;
1568 }
1569 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster retrieved");
1570
1571
1572 for (int i=0; EMCluster != lastEMCluster; ++EMCluster, ++i) {
1573
1574 const xAOD::TrigEMCluster* thisEMCluster = &(*EMCluster);
1575
1576 ATH_MSG_INFO("REGTEST Looking at xAOD::TrigEMCluster " << i);
1577
1578 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->energy() returns " << thisEMCluster->energy());
1579 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->e() returns " << thisEMCluster->energy());
1580 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->phi() returns " << thisEMCluster->phi());
1581
1582 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->eta() returns " << thisEMCluster->eta());
1583 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->e237() returns " << thisEMCluster->e237());
1584 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->e277() returns " << thisEMCluster->e277());
1585 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->fracs1() returns " << thisEMCluster->fracs1());
1586 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->weta2() returns " << thisEMCluster->weta2());
1587 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->ehad1() returns " << thisEMCluster->ehad1());
1588 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->Eta1() returns " << thisEMCluster->eta1());
1589 }
1590
1591 ATH_MSG_INFO("REGTEST ==========END of xAOD::TrigEMCluster DUMP===========");
1592 ATH_MSG_DEBUG("dumpxAODTrigEMCluster() succeeded");
1593
1594 return StatusCode::SUCCESS;
1595}
float eta() const
get Eta (calibrated)
float phi() const
get Phi (calibrated)
float e237() const
get Energy in a 3x7 cluster (no calibration) around hottest cell
float eta1() const
get Eta sampling 1 (strip layer)
float e277() const
get Energy in a 7x7 cluster (no calibration) around hottest cell
float ehad1() const
get hadronic Energy (first hadronic layer)
float weta2() const
get cluster width (based on a 3x5 cluster - 2nd layer)
float energy() const
get Energy (calibrated)
float fracs1() const
get Energy in a 7 strips (around hottest strip) minus energy in 3 strips divided by energy in 3 strip...
TrigEMCluster_v1 TrigEMCluster
Define the latest version of the trigger EM cluster class.

◆ dumpxAODTrigEMClusterContainer()

StatusCode TrigEDMChecker::dumpxAODTrigEMClusterContainer ( )
private

Definition at line 1599 of file TrigEDMChecker.cxx.

1599 {
1600
1601 ATH_MSG_DEBUG("in dumpxAODTrigEMClusterContainer()");
1602
1603 ATH_MSG_INFO("REGTEST ==========START of xAODTrigEMClusterContainer DUMP===========");
1604
1605 SG::ConstIterator< xAOD::TrigEMClusterContainer > EMCluster;
1606 SG::ConstIterator< xAOD::TrigEMClusterContainer > lastEMCluster;
1607
1608 StatusCode sc = evtStore()->retrieve(EMCluster,lastEMCluster);
1609 if (sc.isFailure()) {
1610 ATH_MSG_INFO("REGTEST No xAOD::TrigEMClusterContainer found");
1611 return StatusCode::SUCCESS;
1612 }
1613 ATH_MSG_INFO("REGTEST xAOD::TrigEMClusterContainer retrieved");
1614
1615
1616 for (int i=0; EMCluster != lastEMCluster; ++EMCluster, ++i) {
1617
1618 ATH_MSG_INFO("REGTEST Looking at xAOD::TrigEMClusterContainer " << i);
1619
1620 xAOD::TrigEMClusterContainer::const_iterator EMClusterItr = EMCluster->begin();
1621 xAOD::TrigEMClusterContainer::const_iterator EMClusterItrE = EMCluster->end();
1622
1623 for (int j=0; EMClusterItr != EMClusterItrE; ++EMClusterItr, ++j ) {
1624
1625 ATH_MSG_INFO("REGTEST Looking at xAOD::TrigEMCluster " << j);
1626 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->energy() returns " << (*EMClusterItr)->energy());
1627 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->et() returns " << (*EMClusterItr)->et());
1628 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->eta() returns " << (*EMClusterItr)->eta());
1629 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->phi() returns " << (*EMClusterItr)->phi());
1630 //msg() <<MSG::INFO << "REGTEST xAOD::TrigEMCluster->print() gives" << endmsg;
1631 //int level = msg().level();
1632 // little trick to print out stuff
1633 //msg().setLevel(MSG::DEBUG);
1634 //(*EMClusterItr)->print(msg());
1635 //msg().setLevel(level);
1636 }
1637 }
1638
1639 ATH_MSG_INFO("REGTEST ==========END of TrigEMClusterContainer DUMP===========");
1640 ATH_MSG_DEBUG("dumpTrigEMClusterContainer() succeeded");
1641
1642 return StatusCode::SUCCESS;
1643}

◆ dumpxAODTrigMinBias()

StatusCode TrigEDMChecker::dumpxAODTrigMinBias ( )
private

Definition at line 513 of file TrigEDMChecker.cxx.

513 {
514
519
520 return StatusCode::SUCCESS;
521}
void dumpTrigSpacePointCounts()

◆ dumpxAODTrigMissingET()

StatusCode TrigEDMChecker::dumpxAODTrigMissingET ( )
private

Definition at line 527 of file TrigEDMChecker.cxx.

527 {
528
529 ATH_MSG_INFO("dumpxAODTrigMissingET()");
530
531 int ntag=4;
532 std::string METTags[]={"HLT_xAOD__TrigMissingETContainer_EFJetEtSum","HLT_xAOD__TrigMissingETContainer_TrigEFMissingET", "HLT_xAOD__TrigMissingETContainer_TrigL2MissingET_FEB","HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl"};
533
534 for(int itag=0; itag <ntag; itag++) {
535
536 const xAOD::TrigMissingETContainer* MissingETCont=0;
537 StatusCode sc = evtStore()->retrieve(MissingETCont,METTags[itag]);
538 if (sc.isFailure())
539 ATH_MSG_INFO("failed to retrieve " << METTags[itag]);
540 else {
541 ATH_MSG_INFO("Accessing " << METTags[itag] << " with " << MissingETCont->size() << " elements");
542
543 // Loop over container content
544 for(uint i = 0; i < MissingETCont->size(); i++) {
545
546 std::string s; char buff[3000];
547
548 snprintf(buff, sizeof(buff), "REGTEST %s Ex = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ex() );
549 ATH_MSG_INFO(buff);
550 snprintf(buff, sizeof(buff), "REGTEST %s Ey = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ey() );
551 ATH_MSG_INFO(buff);
552 snprintf(buff, sizeof(buff), "REGTEST %s Ez = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ez() );
553 ATH_MSG_INFO(buff);
554 snprintf(buff, sizeof(buff), "REGTEST %s SumET = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->sumEt() );
555 ATH_MSG_INFO(buff);
556 snprintf(buff, sizeof(buff), "REGTEST %s SumE = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->sumE() );
557 ATH_MSG_INFO(buff);
558 snprintf(buff, sizeof(buff), "REGTEST %s Flag = %d", s.c_str(), MissingETCont->at(i)->flag() );
559 ATH_MSG_INFO(buff);
560 snprintf(buff, sizeof(buff), "REGTEST %s Flag = %d", s.c_str(), MissingETCont->at(i)->roiWord() );
561 ATH_MSG_INFO(buff);
562
563 unsigned int Nc = MissingETCont->at(i)->getNumberOfComponents();
564 if (Nc > 0) {
565 s="REGTEST __name____status_usedChannels__sumOfSigns__calib1_calib0";
566 s+="/MeV__ex/MeV_____ey/MeV_____ez/MeV___sumE/MeV__sumEt/CLHEP::MeV";
567 ATH_MSG_INFO(s);
568 }
569
570 for(uint j = 0; j < Nc; j++) {
571
572 std::string name = MissingETCont->at(i)->nameOfComponent(j);
573 const short status = MissingETCont->at(i)->statusComponent(j);
574 const unsigned short usedChan = MissingETCont->at(i)->usedChannelsComponent(j);
575 const short sumOfSigns = MissingETCont->at(i)->sumOfSignsComponent(j);
576 const float calib0 = MissingETCont->at(i)->calib0Component(j);
577 const float calib1 = MissingETCont->at(i)->calib1Component(j);
578 const float ex = MissingETCont->at(i)->exComponent(j);
579 const float ey = MissingETCont->at(i)->eyComponent(j);
580 const float ez = MissingETCont->at(i)->ezComponent(j);
581 const float sumE = MissingETCont->at(i)->sumEComponent(j);
582 const float sumEt = MissingETCont->at(i)->sumEtComponent(j);
583
584 snprintf(buff, sizeof(buff),
585 "REGTEST %s %6d %12d %10d %6.2f %6.3f %10.2f %10.2f %10.2f %10.2f %10.2f",
586 name.c_str(), status, usedChan, sumOfSigns, calib1, calib0,
587 ex, ey, ez, sumE, sumEt);
588 ATH_MSG_INFO(buff);
589 }
590 }
591 }
592 }
593
594 return StatusCode::SUCCESS;
595}
int flag() const
Get the status flag.
float ex() const
Get the x component of the missing energy.
float exComponent(unsigned int index) const
Get the x component fo the energy of a component.
const std::string & nameOfComponent(unsigned int index) const
Get the name of a component.
float eyComponent(unsigned int index) const
Get the y component fo the energy of a component.
uint32_t roiWord() const
Get the ROI word.
float sumE() const
Get the sum of the E of the missing energy.
float calib0Component(unsigned int index) const
Get Calib0.
float calib1Component(unsigned int index) const
Get Calib1.
unsigned int getNumberOfComponents() const
Get the number of components.
float ezComponent(unsigned int index) const
Get the z component fo the energy of a component.
float sumEt() const
Get the sum of the ET of the missing energy.
short statusComponent(unsigned int index) const
Get Status.
float ez() const
Get the z component of the missing energy.
float sumOfSignsComponent(unsigned int index) const
Get SumOfSigns.
float sumEComponent(unsigned int index) const
Get SumE.
float ey() const
Get the y component of the missing energy.
float sumEtComponent(unsigned int index) const
Get SumEt.
unsigned short usedChannelsComponent(unsigned int index) const
Get used Channels.
status
Definition merge.py:16

◆ dumpxAODTrigPhotonContainer()

StatusCode TrigEDMChecker::dumpxAODTrigPhotonContainer ( )
private

Definition at line 721 of file TrigEDMChecker.cxx.

721 {
722
723 ATH_MSG_DEBUG("In dumpxAODTrigPhotonContainer");
724
725 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigPhotonContainer DUMP===========" );
726
727 const xAOD::TrigPhotonContainer* phCont=0;
728 StatusCode sc = evtStore()->retrieve(phCont,"HLT_xAOD__TrigPhotonContainer_L2PhotonFex");
729 if (sc.isFailure()) {
730 ATH_MSG_INFO("REGTEST No TrigPhoton container HLT_xAOD__TrigPhotonContainer_L2PhotonFex");
731 return StatusCode::SUCCESS;
732 }
733
734 for (const auto eg : *phCont){
735
736 ATH_MSG_INFO("REGTEST TrigPhoton->Phi() returns " << eg->phi());
737 ATH_MSG_INFO("REGTEST TrigPhoton->Eta() returns " << eg->eta());
738 ATH_MSG_INFO("REGTEST TrigPhoton->dPhi() returns " << eg->dPhi());
739 ATH_MSG_INFO("REGTEST TrigPhoton->dEta() returns " << eg->dEta());
740 ATH_MSG_INFO("REGTEST TrigPhoton->rEta returns " << eg->rcore());
741 ATH_MSG_INFO("REGTEST TrigPhoton->eratio() returns " << eg->eratio());
742 ATH_MSG_INFO("REGTEST TrigPhoton->pt() returns " << eg->pt());
743 ATH_MSG_INFO("REGTEST TrigPhoton->etHad() returns " << eg->etHad());
744 ATH_MSG_INFO("REGTEST TrigPhoton->f1() returns " << eg->f1());
745 ATH_MSG_INFO("REGTEST TrigPhoton Check EMCluster");
746 if(eg->emCluster()){
747 ATH_MSG_INFO("REGTEST TrigPhoton EMCluster retrieved");
748 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->energy() returns " << eg->emCluster()->energy());
749 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->phi() returns " << eg->emCluster()->phi());
750 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->eta() returns " << eg->emCluster()->eta());
751 ATH_MSG_INFO("REGTEST TrigPhoton emCluster check Element Link");
752 ATH_MSG_INFO("REGTEST TrigPhoton emCluster energy = " << eg->emCluster()->energy());
753 ATH_MSG_INFO("REGTEST TrigPhoton ElementLink emCluster energy = " << (*eg->emClusterLink())->energy());
754 }
755 else ATH_MSG_INFO("REGTEST TrigPhoton No EMCluster retrieved!");
756 }
757 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigPhotonContainer DUMP===========" );
758
759 return StatusCode::SUCCESS;
760
761}
TrigPhotonContainer_v1 TrigPhotonContainer
Declare the latest version of the container.

◆ dumpxAODVertex()

StatusCode TrigEDMChecker::dumpxAODVertex ( )
private

Definition at line 1918 of file TrigEDMChecker.cxx.

1918 {
1919
1920 ATH_MSG_DEBUG("In dumpxAODVertex()");
1921
1922 ATH_MSG_INFO("REGTEST ==========START of xAOD::Vertex DUMP===========");
1923
1924 const xAOD::VertexContainer* vertexContainer=0;
1925 StatusCode sc = evtStore()->retrieve(vertexContainer,"HLT_xAOD__VertexContainer_xPrimVx");
1926 if (sc.isFailure()) {
1927 ATH_MSG_INFO("REGTEST No vertex container");
1928 return StatusCode::FAILURE;
1929 }
1930 ATH_MSG_INFO("REGTEST VertexContainer retrieved");
1931
1932 xAOD::VertexContainer::const_iterator vertexItr = vertexContainer->begin();
1933 xAOD::VertexContainer::const_iterator vertexLast = vertexContainer->end();
1934
1935 for (int index = 0; vertexItr != vertexLast; ++vertexItr, ++index) {
1936 ATH_MSG_INFO("REGTEST Looking at Vertex " << index);
1937
1938 ATH_MSG_INFO("REGTEST Public Member Functions:");
1939 ATH_MSG_INFO("REGTEST x: " << (*vertexItr)->x()
1940 << "/y: " << (*vertexItr)->y()
1941 << "/z: " << (*vertexItr)->z());
1942
1943 ATH_MSG_INFO("REGTEST Public Member Functions:");
1944 ATH_MSG_INFO("REGTEST chiSquared: " << (*vertexItr)->chiSquared()
1945 << "/numberDoF: " << (*vertexItr)->numberDoF());
1946 }
1947
1948 ATH_MSG_INFO("REGTEST ==========END of xAOD::Vertex DUMP===========");
1949 ATH_MSG_DEBUG("dumpxAODVertex() succeeded");
1950
1951 return StatusCode::SUCCESS;
1952}
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".

◆ efficiency()

TEfficiency * AthHistogramming::efficiency ( const std::string & effName,
const std::string & tDir = "",
const std::string & stream = "" )
protectedinherited

Simplify the retrieval of registered TEfficiency.

Definition at line 211 of file AthHistogramming.cxx.

212{
213 // Build a 32 bit hash out of the name
214 const hash_t effHash = this->hash(effName);
215
216 // See if this entry exists in the map
217 EffMap_t::const_iterator it = m_effMap.find( effHash );
218 if ( it == m_effMap.end() ) // It doesn't exist!
219 { // Let's see into the THistSvc if somebody else has registered the TEfficiency...
220
221 // Need to copy the strings as we will massage them from here on
222 std::string effNameCopy = effName;
223 std::string tDirCopy = tDir;
224 std::string streamCopy = stream;
225
226 // Massage the final string to book things
227 std::string bookingString("");
228 this->buildBookingString( bookingString, effNameCopy, tDirCopy, streamCopy ,false);
229
230 TEfficiency* effPointer(NULL);
231 if ( !((histSvc()->getEfficiency(bookingString, effPointer)).isSuccess()) )
232 {
233 // Massage the final string to book things
234 std::string bookingString("");
235 this->buildBookingString( bookingString, effNameCopy, tDirCopy, streamCopy, true );
236
237 if ( !((histSvc()->getEfficiency(bookingString, effPointer)).isSuccess()) )
238 {
239 m_msg << MSG::WARNING
240 << "Problem retrieving the TEfficiency with name (including pre- and post-fixes) "
241 << m_histNamePrefix + effNameCopy + m_histNamePostfix
242 << " or with name " << effNameCopy
243 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
244 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
245 return NULL;
246 }
247 // If we get to here, we actually found the TEfficiency in the THistSvc.
248 // So let's add it to the local cache map and return its pointer
249 m_effMap.insert( m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
250 return effPointer;
251 }
252 // If we get to here, we actually found the TEfficiency in the THistSvc.
253 // So let's add it to the local cache map and return its pointer
254 m_effMap.insert( m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
255 return effPointer;
256 }
257
258 // Return the pointer to the TEfficiency that we got from the local cache map
259 return it->second;
260}
std::pair< StatusCode, TEfficiency * > getEfficiency(ITHistSvc &svc, const std::string &name)

◆ endInputFile()

StatusCode AthAnalysisAlgorithm::endInputFile ( )
protectedvirtualinherited

Function called as an input file is being closed.

Dummy implementation that can be overridden by the derived tool.

Definition at line 122 of file AthAnalysisAlgorithm.cxx.

122 {
123
124 // Return gracefully:
125 return StatusCode::SUCCESS;
126}

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode TrigEDMChecker::execute ( const EventContext & ctx)
overridevirtual

Execute method.

Implements AthAlgorithm.

Definition at line 119 of file TrigEDMChecker.cxx.

119 {
120
121 ATH_MSG_INFO( " ==========START of event===========" );
122
125 if (sc.isFailure()) {
126 ATH_MSG_ERROR("The method dumpLVL1_ROI() failed");
127 }
128 }
129
132 if (sc.isFailure()) {
133 ATH_MSG_ERROR("The method dumpxAODTrigMissingET() failed");
134 }
135 }
136
139 if (sc.isFailure()) {
140 ATH_MSG_ERROR("The method dumpxAODTrigEMCluster() failed");
141 }
142 }
143
146 if (sc.isFailure()) {
147 ATH_MSG_ERROR("The method dumpxAODTrigEMClusterContainer() failed");
148 }
149 }
150
153 if (sc.isFailure()) {
154 ATH_MSG_ERROR("The method dumpxAODJetContainer() failed");
155 }
156 }
157
160 if (sc.isFailure()) {
161 ATH_MSG_ERROR("The method dumpTrigL2BphysContainer() failed");
162 }
163 }
164
167 if (sc.isFailure()) {
168 ATH_MSG_ERROR("The method dumpTrigEFBphysContainer() failed");
169 }
170 }
171
174 if(sc.isFailure()) {
175 ATH_MSG_ERROR("The method dumpxAODMuonContainer() failed");
176 }
177 }
178
181 if (sc.isFailure()) {
182 ATH_MSG_ERROR("The method dumpxAODTrigElectronContainer() failed");
183 }
184 }
185
188 if (sc.isFailure()) {
189 ATH_MSG_ERROR("The method dumpxAODTrigElectronContainer() failed");
190 }
191 }
192
195 if (sc.isFailure()) {
196 ATH_MSG_ERROR("The method dumpxAODTrigElectronContainer() failed");
197 }
198 }
199
202 if (sc.isFailure()) {
203 ATH_MSG_ERROR("The method dumpxAODTrigElectronContainer() failed");
204 }
205 }
206
209 if (sc.isFailure()) {
210 ATH_MSG_ERROR("The method dumpxAODTauJetContainer() failed");
211 }
212 }
213
216 if (sc.isFailure()) {
217 ATH_MSG_ERROR("The method dumpxAODTrackParticle() failed");
218 }
219 }
220
223 if (sc.isFailure()) {
224 ATH_MSG_ERROR("The method dumpxAODVertex() failed");
225 }
226 }
227
230 if (sc.isFailure()) {
231 ATH_MSG_ERROR("The method dumpxAODTrigMinBias() failed");
232 }
233 }
234
237 if (sc.isFailure()) {
238 ATH_MSG_ERROR("The method dumpTrigPassBits() failed");
239 }
240 }
241
244 }
245
248 if ( sc.isFailure() ) {
249 ATH_MSG_ERROR("The method dumpNavigation() failed");
250 }
251 }
252
253 if (m_doDumpAll || m_doTDTCheck) {
254 ATH_CHECK(dumpTDT(ctx));
255 }
256
259 }
260
262 std::string trigCompositeSteering;
263 bool pass;
264 ATH_CHECK(TrigCompositeNavigationToDot(trigCompositeSteering, pass));
265 const std::string evtNumber = std::to_string(ctx.eventID().event_number());
266 const std::string passStr = (pass ? "Pass" : "Fail");
267 std::ofstream ofile(std::string("NavGraph_" + m_dumpNavForChain + "_Ev" + evtNumber + "_" + passStr + ".dot").c_str());
268 ofile << trigCompositeSteering;
269 }
270
271
272
273 ATH_MSG_INFO( " ==========END of event===========" );
274 return StatusCode::SUCCESS;
275
276}
void dump() const
Debugging dump.
Gaudi::Property< bool > m_doDumpxAODElectronContainer
StatusCode dumpxAODTrigEMClusterContainer()
Gaudi::Property< bool > m_doTDTCheck
StatusCode dumpTrigPassBits()
StatusCode dumpTrigEFBphysContainer()
StatusCode dumpxAODTrackParticle()
StatusCode dumpNavigation(const EventContext &ctx)
Gaudi::Property< bool > m_doDumpxAODPhotonContainer
Gaudi::Property< bool > m_doDumpxAODMuonContainer
StatusCode dumpTrigComposite()
Dump information on TrigComposite collections.
Gaudi::Property< bool > m_doDumpxAODJetContainer
StatusCode dumpxAODTrigMinBias()
StatusCode dumpTrigL2BphysContainer()
Gaudi::Property< bool > m_doDumpLVL1_ROI
StatusCode TrigCompositeNavigationToDot(std::string &returnValue, bool &pass)
Construct graph of HLT navigation in Run-3.
StatusCode dumpxAODTauJetContainer()
Gaudi::Property< bool > m_doDumpTrigPassBits
Gaudi::Property< bool > m_doDumpTrigEFBphysContainer
StatusCode dumpxAODTrigEMCluster()
StatusCode dumpLVL1_ROI()
StatusCode dumpxAODTrigMissingET()
Gaudi::Property< bool > m_doDumpxAODVertex
Gaudi::Property< bool > m_doDumpxAODTrackParticle
StatusCode dumpxAODElectronContainer()
StatusCode dumpxAODPhotonContainer()
Gaudi::Property< bool > m_doDumpTrigL2BphysContainer
Gaudi::Property< bool > m_doDumpxAODTrigElectronContainer
StatusCode dumpxAODVertex()
StatusCode dumpxAODTrigPhotonContainer()
Gaudi::Property< bool > m_doDumpAll
Gaudi::Property< bool > m_doDumpStoreGate
Gaudi::Property< bool > m_doDumpTrigCompsiteNavigation
StatusCode dumpTDT(const EventContext &ctx)
Gaudi::Property< bool > m_doDumpxAODTrigEMClusterContainer
StatusCode dumpxAODMuonContainer()
Gaudi::Property< bool > m_doDumpxAODTrigMinBias
Gaudi::Property< bool > m_doDumpxAODTauJetContainer
StatusCode dumpxAODTrigElectronContainer()
StatusCode dumpxAODJetContainer()
Gaudi::Property< bool > m_doDumpNavigation
Gaudi::Property< bool > m_doDumpxAODTrigPhotonContainer
Gaudi::Property< bool > m_doDumpxAODTrigMissingET
Gaudi::Property< bool > m_doDumpxAODTrigEMCluster

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthCommonAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 89 of file AthCommonAlgorithm.cxx.

54{
55 // If we didn't find any symlinks to add, just return the collection
56 // from the base class. Otherwise, return the extended collection.
57 if (!m_extendedExtraObjects.empty()) {
59 }
61}
Common base class for algorithms.

◆ filterPassed()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Get filter decision:

Definition at line 93 of file AthCommonAlgorithm.h.

93 {
94 return execState( ctx ).filterPassed();
95 }
virtual bool filterPassed(const EventContext &ctx) const
Get filter decision:

◆ firstExecute()

StatusCode AthAnalysisAlgorithm::firstExecute ( )
protectedvirtualinherited

Function called when first execute is encountered user can read event information with evtStore().

Dummy implementation that can be overridden by the derived tool.

Reimplemented in CP::JetTileCorrectionAlg.

Definition at line 139 of file AthAnalysisAlgorithm.cxx.

139 {
140
141 // Return gracefully:
142 return StatusCode::SUCCESS;
143}

◆ graph()

TGraph * AthHistogramming::graph ( const std::string & graphName,
const std::string & tDir = "",
const std::string & stream = "" )
protectedinherited

Simplify the retrieval of registered TGraphs.

Definition at line 453 of file AthHistogramming.cxx.

454{
455 // Build a 32 bit hash out of the name
456 const hash_t graphHash = this->hash(graphName);
457
458 // See if this entry exists in the map
459 GraphMap_t::const_iterator it = m_graphMap.find( graphHash );
460 if ( it == m_graphMap.end() ) // It doesn't exist!
461 { // Let's see into the THistSvc if somebody else has registered the TGraph...
462
463 // Need to copy the strings as we will massage them from here on
464 std::string graphNameCopy = graphName;
465 std::string tDirCopy = tDir;
466 std::string streamCopy = stream;
467
468 // Massage the final string to book things
469 std::string bookingString("");
470 this->buildBookingString( bookingString, graphNameCopy, tDirCopy, streamCopy, false);
471
472 TGraph* graphPointer(nullptr);
473 if ( !((histSvc()->getGraph(bookingString, graphPointer)).isSuccess()) )
474 {
475 // Massage the final string to book things
476 std::string bookingString("");
477 this->buildBookingString( bookingString, graphNameCopy, tDirCopy, streamCopy, true );
478
479 if ( !((histSvc()->getGraph(bookingString, graphPointer)).isSuccess()) )
480 {
481 m_msg << MSG::WARNING
482 << "Problem retrieving the TGraph with name (including pre- and post-fixes) "
483 << m_histNamePrefix + graphNameCopy + m_histNamePostfix
484 << " or with name " << graphNameCopy
485 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
486 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
487 return nullptr;
488 }
489 // If we get to here, we actually found the TGraph in the THistSvc.
490 // So let's add it to the local cache map and return its pointer
491 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
492 return graphPointer;
493 }
494 // If we get to here, we actually found the TGraph in the THistSvc.
495 // So let's add it to the local cache map and return its pointer
496 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
497 return graphPointer;
498 }
499
500
501 // Return the pointer to the TGraph that we got from the local cache map
502 return it->second;
503}
std::pair< StatusCode, TGraph * > getGraph(ITHistSvc &svc, const std::string &name)

◆ handle()

void AthAnalysisAlgorithm::handle ( const Incident & inc)
overrideprotectedvirtualinherited

Function receiving incidents from IncidentSvc/TEvent Experts can override but they should ensure they add AthAnalysisAlgorithm::handle(); to the end of their own implementation.

Definition at line 83 of file AthAnalysisAlgorithm.cxx.

83 {
84
85 // Tell the user what's happening:
86 ATH_MSG_VERBOSE( "Callback received with incident: " << inc.type() );
87
88 // Call the appropriate member function:
89 if( inc.type() == IncidentType::BeginInputFile ) {
91 if( beginInputFile().isFailure() ) {
92 ATH_MSG_FATAL( "Failed to call beginInputFile()" );
93 throw std::runtime_error( "Couldn't call beginInputFile()" );
94 }
95 } else if(inc.type() == IncidentType::EndInputFile ) {
96 if( endInputFile().isFailure() ) {
97 ATH_MSG_FATAL( "Failed to call endInputFile()" );
98 throw std::runtime_error( "Couldn't call endInputFile()" );
99 }
100 } else if(inc.type() == "MetaDataStop" ) {
101 if( metaDataStop().isFailure() ) {
102 ATH_MSG_FATAL( "Failed to call metaDataStop()" );
103 throw std::runtime_error( "Couldn't call metaDataStop()" );
104 }
105 } else {
106 ATH_MSG_WARNING( "Unknown incident type received: " << inc.type() );
107 }
108
109 return;
110}
#define ATH_MSG_FATAL(x)
virtual StatusCode beginInputFile()
Function called when a new input file is opened user can read input metadata from inputMetaStore().
virtual StatusCode endInputFile()
Function called as an input file is being closed.
virtual StatusCode metaDataStop()
Function called before finalize user can read output metadata from outputMetaStore().

◆ hash()

AthHistogramming::hash_t AthHistogramming::hash ( const std::string & histName) const
inlineprivateinherited

Method to calculate a 32-bit hash from a string.

Definition at line 430 of file AthHistogramming.h.

431{
432 const uint64_t hash64 = CxxUtils::crc64( histName );
433 return (hash_t)(hash64 & 0xFFFFFFFF);
434}
uint64_t crc64(const CRCTable &table, const char *data, size_t data_len)
Find the CRC-64 of a string,.
Definition crc64.cxx:696
std::uint64_t hash64(const void *data, std::size_t size)
Passthrough to XXH3_64bits.
Definition XXH.cxx:9

◆ hist()

TH1 * AthHistogramming::hist ( const std::string & histName,
const std::string & tDir = "",
const std::string & stream = "" )
protectedinherited

Simplify the retrieval of registered histograms of any type.

Definition at line 164 of file AthHistogramming.cxx.

167{
168 std::string histNameCopy = histName;
169 std::string tDirCopy = tDir;
170 std::string streamCopy = stream;
171
172 std::string bookingString;
173 this->buildBookingString(bookingString, histNameCopy, tDirCopy, streamCopy, false);
174
175 const hash_t histHash = this->hash(histNameCopy);
176
177 HistMap_t::const_iterator it = m_histMap.find(histHash);
178 if (it == m_histMap.end()) {
179 TH1* histPointer(nullptr);
180
181 if (!histSvc()->getHist(bookingString, histPointer).isSuccess()) {
182 std::string prefixedHistNameCopy = histName;
183 std::string prefixedTDirCopy = tDir;
184 std::string prefixedStreamCopy = stream;
185
186 std::string prefixedBookingString;
187 this->buildBookingString(prefixedBookingString,
188 prefixedHistNameCopy,
189 prefixedTDirCopy,
190 prefixedStreamCopy,
191 true);
192
193 if (!histSvc()->getHist(prefixedBookingString, histPointer).isSuccess()) {
194 m_msg << MSG::WARNING
195 << "Problem retrieving the histogram with name (including pre- and post-fixes) "
196 << m_histNamePrefix + histNameCopy + m_histNamePostfix
197 << " or with name " << histNameCopy
198 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
199 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
200 return nullptr;
201 }
202 }
203
204 m_histMap.insert(m_histMap.end(), std::pair<const hash_t, TH1*>(histHash, histPointer));
205 return histPointer;
206 }
207
208 return it->second;
209}
std::pair< StatusCode, TH1 * > getHist(ITHistSvc &svc, const std::string &name, size_t index=0)

◆ hist2d()

TH2 * AthHistogramming::hist2d ( const std::string & histName,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the retrieval of registered 2-d histograms.

Definition at line 371 of file AthHistogramming.h.

372{
373 // Get the TH1 pointer
374 TH1* th1Pointer = this->hist(histName, tDir, stream);
375 if ( !th1Pointer )
376 {
377 m_msg << MSG::ERROR
378 << "Cannot get a 2-d histogram with name " << histName
379 << "... will probably seg-fault!" << endmsg;
380 return NULL;
381 }
382 // If the TH1 pointer is valid, simply return the dynamic_cast
383 return dynamic_cast<TH2*>( th1Pointer );
384}

◆ hist3d()

TH3 * AthHistogramming::hist3d ( const std::string & histName,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the retrieval of registered 3-d histograms.

Definition at line 388 of file AthHistogramming.h.

389{
390 // Get the TH1 pointer
391 TH1* th1Pointer = this->hist(histName, tDir, stream);
392 if ( !th1Pointer )
393 {
394 m_msg << MSG::ERROR
395 << "Cannot get a 3-d histogram with name " << histName
396 << "... will probably seg-fault!" << endmsg;
397 return NULL;
398 }
399 // If the TH1 pointer is valid, simply return the dynamic_cast
400 return dynamic_cast<TH3*>( th1Pointer );
401}

◆ histSvc()

const ServiceHandle< ITHistSvc > & AthHistogramAlgorithm::histSvc ( ) const
inlineinherited

The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a pointer to the THistSvc.

Definition at line 113 of file AthHistogramAlgorithm.h.

114{
115 return m_histSvc;
116}
ServiceHandle< ITHistSvc > m_histSvc
Default constructor: AthHistogramAlgorithm();.

◆ initialize()

StatusCode TrigEDMChecker::initialize ( )
overridevirtual

Adapted from code by A.Hamilton to check trigger EDM; R.Goncalo 21/11/07.

Definition at line 70 of file TrigEDMChecker.cxx.

70 {
71
72 ATH_CHECK( m_navigationHandleKey.initialize() );
73 ATH_CHECK( m_decisionsKey.initialize() );
74 ATH_CHECK( m_navigationTool.retrieve() );
75
76 ATH_MSG_DEBUG("Initializing TrigEDMChecker");
77
78 ATH_MSG_INFO("REGTEST Initializing...");
79 ATH_MSG_INFO("REGTEST m_doDumpAll = " << m_doDumpAll );
80 ATH_MSG_INFO("REGTEST m_doDumpLVL1_ROI = " << m_doDumpLVL1_ROI);
81 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigMissingET = " << m_doDumpxAODTrigMissingET );
82 ATH_MSG_INFO("REGTEST m_doDumpTrigL2BphysContainer = " << m_doDumpTrigL2BphysContainer );
83 ATH_MSG_INFO("REGTEST m_doDumpTrigEFBphysContainer = " << m_doDumpTrigEFBphysContainer );
84 ATH_MSG_INFO("REGTEST m_doDumpxAODJetContainer = " << m_doDumpxAODJetContainer );
85 ATH_MSG_INFO("REGTEST m_doDumpxAODMuonContainer = " << m_doDumpxAODMuonContainer );
86 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigElectronContainer= " << m_doDumpxAODTrigElectronContainer );
87 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigPhotonContainer = " << m_doDumpxAODTrigPhotonContainer );
88 ATH_MSG_INFO("REGTEST m_doDumpxAODElectronContainer = " << m_doDumpxAODElectronContainer );
89 ATH_MSG_INFO("REGTEST m_doDumpxAODPhotonContainer = " << m_doDumpxAODPhotonContainer );
90 ATH_MSG_INFO("REGTEST m_doDumpxAODTrackParticle = " << m_doDumpxAODTrackParticle );
91 ATH_MSG_INFO("REGTEST m_doDumpxAODVertex = " << m_doDumpxAODVertex );
92 ATH_MSG_INFO("REGTEST m_doDumpxAODTauJetContainer = " << m_doDumpxAODTauJetContainer );
93 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigMinBias = " << m_doDumpxAODTrigMinBias );
94 ATH_MSG_INFO("REGTEST m_doDumpStoreGate = " << m_doDumpStoreGate );
95 ATH_MSG_INFO("REGTEST m_doDumpAllTrigComposite = " << m_doDumpAllTrigComposite );
96 ATH_MSG_INFO("REGTEST m_dumpTrigCompositeContainers = " << m_dumpTrigCompositeContainers );
97 ATH_MSG_INFO("REGTEST m_doDumpTrigCompsiteNavigation = " << m_doDumpTrigCompsiteNavigation );
98 ATH_MSG_INFO("REGTEST m_doTDTCheck = " << m_doTDTCheck );
99
101 ATH_CHECK( m_muonPrinter.retrieve() );
102 }
103 else m_muonPrinter.disable(); // to avoid auto-retrieval
104
106 ATH_CHECK( m_clidSvc.retrieve() );
107 }
108
110 ATH_CHECK( m_trigDec.retrieve() );
111 ATH_MSG_INFO("TDT Executing with navigation format: " << m_trigDec->getNavigationFormat());
112 }
114
115 return StatusCode::SUCCESS;
116}

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ inputMetaStore() [1/2]

ServiceHandle< StoreGateSvc > & AthAnalysisAlgorithm::inputMetaStore ( )
inlineinherited

Accessor for the input metadata store.

Definition at line 51 of file AthAnalysisAlgorithm.h.

51{ return m_inputMetaStore; }

◆ inputMetaStore() [2/2]

const ServiceHandle< StoreGateSvc > & AthAnalysisAlgorithm::inputMetaStore ( ) const
inlineinherited

Const accessor for the input metadata store.

Definition at line 49 of file AthAnalysisAlgorithm.h.

49{ return m_inputMetaStore; }

◆ isClonable()

virtual bool AthCommonAlgorithm< Gaudi::Algorithm >::isClonable ( ) const
inlineoverridevirtualinherited

Specify if the algorithm is clonable.

Only relevant for non-reentrant algorithms. Actual number of clones needs to be set via the "Cardinality" property.

Reimplemented in AFP_DigiTop, AlgB, AlgT, BCM_Digitization, CscDigitBuilder, CscDigitToCscRDO, G4AtlasAlg, G4RunAlg, HGTD_Digitization, HiveAlgBase, InDet::GNNSeedingTrackMaker, InDet::SCT_Clusterization, InDet::SiSPGNNTrackMaker, InDet::SiSPSeededTrackFinder, InDet::SiTrackerSpacePointFinder, ISF::SimKernelMT, ITk::StripDigitization, ITkPixelCablingAlg, ITkStripCablingAlg, LArHitEMapMaker, LArTTL1Maker, LUCID_DigiTop, LVL1::L1TopoSimulation, MergeCalibHits, MergeGenericMuonSimHitColl, MergeHijingPars, MergeMcEventCollection, MergeTrackRecordCollection, MergeTruthJets, MergeTruthParticles, MuonDigitizer, PileUpMTAlg, PixelDigitization, RoIBResultToxAOD, SCT_ByteStreamErrorsTestAlg, SCT_CablingCondAlgFromCoraCool, SCT_CablingCondAlgFromText, SCT_ConditionsParameterTestAlg, SCT_ConditionsSummaryTestAlg, SCT_ConfigurationConditionsTestAlg, SCT_Digitization, SCT_FlaggedConditionTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_PrepDataToxAOD, SCT_RawDataToxAOD, SCT_ReadCalibChipDataTestAlg, SCT_ReadCalibDataTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_SiliconConditionsTestAlg, SCT_StripVetoTestAlg, SCT_TdaqEnabledTestAlg, SCT_TestCablingAlg, SCTEventFlagWriter, SCTRawDataProvider, SCTSiLorentzAngleTestAlg, SCTSiPropertiesTestAlg, SGInputLoader, Simulation::BeamEffectsAlg, TileHitVecToCnt, TileMuonFitter, TilePulseForTileMuonReceiver, TileRawChannelMaker, TRTDigitization, and ZDC_DigiTop.

Definition at line 68 of file AthCommonAlgorithm.h.

68 {
69 return true;
70 }

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 47 of file AthAlgorithm.h.

47{ return false; }

◆ metaDataStop()

StatusCode AthAnalysisAlgorithm::metaDataStop ( )
protectedvirtualinherited

Function called before finalize user can read output metadata from outputMetaStore().

Dummy implementation that can be overridden by the derived tool.

Definition at line 130 of file AthAnalysisAlgorithm.cxx.

130 {
131
132 // Return gracefully:
133 return StatusCode::SUCCESS;
134}

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ myReplace()

void AthHistogramming::myReplace ( std::string & str,
const std::string & oldStr,
const std::string & newStr )
privateinherited

Helper method to replace sub-string.

Definition at line 551 of file AthHistogramming.cxx.

554{
555 size_t pos = 0;
556 while((pos = str.find(oldStr, pos)) != std::string::npos)
557 {
558 str.replace(pos, oldStr.length(), newStr);
559 pos += newStr.length();
560 }
561}

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ outputMetaStore() [1/2]

ServiceHandle< StoreGateSvc > & AthAnalysisAlgorithm::outputMetaStore ( )
inlineinherited

Accessor for the output metadata store.

Definition at line 55 of file AthAnalysisAlgorithm.h.

55{ return m_outputMetaStore; }

◆ outputMetaStore() [2/2]

const ServiceHandle< StoreGateSvc > & AthAnalysisAlgorithm::outputMetaStore ( ) const
inlineinherited

Const accessor for the output metadata store.

Definition at line 53 of file AthAnalysisAlgorithm.h.

53{ return m_outputMetaStore; }

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ retrieveMetadata() [1/2]

template<typename T>
StatusCode AthAnalysisAlgorithm::retrieveMetadata ( const std::string & folder,
const std::string & key,
T & out )
inlineinherited

Helper function to access IOVMetaDataContainer information helped in the MetaDataStore.

Definition at line 65 of file AthAnalysisAlgorithm.h.

65 {
66 try {
68 } catch(std::exception& e) {
69 ATH_MSG_WARNING(e.what());
70 return StatusCode::FAILURE;
71 }
72 }
static std::string retrieveMetadata(const std::string &folder, const std::string &key, const ServiceHandle< StoreGateSvc > &inputMetaStore)
method that always returns as a string you can use from, e.g, pyROOT with evt = ROOT....

◆ retrieveMetadata() [2/2]

template<typename T>
StatusCode AthAnalysisAlgorithm::retrieveMetadata ( const std::string & folder,
const std::string & key,
T & out,
const IOVTime & time,
int channel = -1 )
inlineinherited

Helper function to access IOVMetaDataContainer information held in InputMetaDataStore, but will check IOVTime.

Also can give a channel (leave as -1 to take first available) IOVTime(runNumber, eventNumber) is a valid constructor for example

Definition at line 76 of file AthAnalysisAlgorithm.h.

76 {
77 try {
78 return AthAnalysisHelper::retrieveMetadata(folder,key,out,inputMetaStore(),time,channel);
79 } catch(std::exception& e) {
80 ATH_MSG_WARNING(e.what());
81 return StatusCode::FAILURE;
82 }
83 }

◆ setFilterPassed()

virtual void AthCommonAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Set filter decision:

Reimplemented in AthFilterAlgorithm.

Definition at line 99 of file AthCommonAlgorithm.h.

99 {
101 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Set filter decision:

◆ sysExecute()

StatusCode AthAnalysisAlgorithm::sysExecute ( const EventContext & ctx)
overridevirtualinherited

override to do firstEvent method

Reimplemented from AthCommonAlgorithm< Gaudi::Algorithm >.

Definition at line 72 of file AthAnalysisAlgorithm.cxx.

72 {
73 if(!m_doneFirstEvent) {
75 if( firstExecute().isFailure() ) {
76 ATH_MSG_FATAL("Failure in firstEvent method");
77 return StatusCode::FAILURE;
78 }
79 }
81}
virtual StatusCode firstExecute()
Function called when first execute is encountered user can read event information with evtStore().
virtual StatusCode sysExecute(const EventContext &ctx) override

◆ sysInitialize()

StatusCode AthAnalysisAlgorithm::sysInitialize ( )
overridevirtualinherited

Function initialising the tool in the correct way in Athena.

Reimplemented from AthHistogramAlgorithm.

Definition at line 50 of file AthAnalysisAlgorithm.cxx.

50 {
51
52 // Connect to the IncidentSvc:
53 ServiceHandle< IIncidentSvc > incSvc( "IncidentSvc", name() );
54 ATH_CHECK( incSvc.retrieve() );
55
56 // Set up the right callbacks: //but ensure we don't double-register if sysInitialize called twice (appears to be the case)
57 incSvc->removeListener( this, IncidentType::BeginInputFile );
58 incSvc->addListener( this, IncidentType::BeginInputFile, 0, true );
59 incSvc->removeListener( this, IncidentType::EndInputFile );
60 incSvc->addListener( this, IncidentType::EndInputFile, 0, true );
61 incSvc->removeListener( this, "MetaDataStop" );
62 incSvc->addListener( this, "MetaDataStop", 0, true );
63
64
65 // Let the base class do its thing:
67
68 // Return gracefully:
69 return StatusCode::SUCCESS;
70}
virtual StatusCode sysInitialize()
Initialization method invoked by the framework.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ tree()

TTree * AthHistogramming::tree ( const std::string & treeName,
const std::string & tDir = "",
const std::string & stream = "" )
protectedinherited

Simplify the retrieval of registered TTrees.

Definition at line 339 of file AthHistogramming.cxx.

340{
341 // Build a 32 bit hash out of the name
342 const hash_t treeHash = this->hash(treeName);
343
344 // See if this entry exists in the map
345 TreeMap_t::const_iterator it = m_treeMap.find( treeHash );
346 if ( it == m_treeMap.end() ) // It doesn't exist!
347 { // Let's see into the THistSvc if somebody else has registered the TTree...
348
349 // Need to copy the strings as we will massage them from here on
350 std::string treeNameCopy = treeName;
351 std::string tDirCopy = tDir;
352 std::string streamCopy = stream;
353
354 // Massage the final string to book things
355 std::string bookingString("");
356 this->buildBookingString( bookingString, treeNameCopy, tDirCopy, streamCopy );
357
358 TTree* treePointer(NULL);
359 if ( !((histSvc()->getTree(bookingString, treePointer)).isSuccess()) )
360 {
361 m_msg << MSG::WARNING
362 << "Problem retrieving the TTree with name " << treeNameCopy
363 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
364 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
365 return NULL;
366 }
367 // If we get to here, we actually found the TTree in the THistSvc.
368 // So let's add it to the local cache map and return its pointer
369 m_treeMap.insert( m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treePointer ) );
370 return treePointer;
371 }
372
373 // Return the pointer to the TTree that we got from the local cache map
374 return it->second;
375}
std::pair< StatusCode, TTree * > getTree(ITHistSvc &svc, const std::string &name)

◆ TrigCompositeNavigationToDot()

StatusCode TrigEDMChecker::TrigCompositeNavigationToDot ( std::string & returnValue,
bool & pass )
private

Construct graph of HLT navigation in Run-3.

Parameters
returnValueString to populate with dot graph.
passWhen using a chain filter, if the chain group passed raw.

Navigates all TrigComposite objects in store gate and forms a relational graph in the dot format

Definition at line 2151 of file TrigEDMChecker.cxx.

2151 {
2152
2153 using namespace TrigCompositeUtils;
2154
2155 // This constexpr is evaluated at compile time
2156 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
2157 std::vector<std::string> keys;
2158 if ( m_dumpTrigCompositeContainers.size() == 0 ) {
2159 evtStore()->keys(TrigCompositeCLID, keys);
2160 }
2161 else {
2163 }
2164 std::string typeNameTC;
2165 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
2166 ATH_MSG_DEBUG("Got " << keys.size() << " keys for " << typeNameTC);
2167
2168 HLT::Identifier chainID(m_dumpNavForChain);
2169 DecisionIDContainer chainIDs;
2170 chainIDs.insert( chainID.numeric() );
2171
2172 std::set<int> converted;
2173
2174 const Trig::ChainGroup* cg = m_trigDec->getChainGroup(m_dumpNavForChain);
2176 std::vector<std::string> chains = cg->getListOfTriggers();
2177 for (const std::string& chain : chains) {
2178 const TrigConf::HLTChain* hltChain = m_trigDec->ExperimentalAndExpertMethods().getChainConfigurationDetails(chain);
2179 const HLT::Identifier chainID_tmp( hltChain->chain_name() );
2180 chainIDs.insert( chainID_tmp.numeric() );
2181 const std::vector<size_t> legMultiplicites = hltChain->leg_multiplicities();
2182 if (legMultiplicites.size() == 0) {
2183 ATH_MSG_ERROR("chain " << chainID_tmp << " has invalid configuration, no multiplicity data.");
2184 } else if (legMultiplicites.size() > 1) {
2185 // For multi-leg chains, the DecisionIDs are handled per leg.
2186 // We don't care here exactly how many objects are required per leg, just that there are two-or-more legs
2187 for (size_t legNumeral = 0; legNumeral < legMultiplicites.size(); ++legNumeral) {
2188 const HLT::Identifier legID = TrigCompositeUtils::createLegName(chainID_tmp, legNumeral);
2189 chainIDs.insert( legID.numeric() );
2190 }
2191 }
2192 }
2193
2194 // First retrieve them all (this should not be needed in future)
2195 const DecisionContainer* container = nullptr;
2196 for (const std::string& key : keys) ATH_CHECK( evtStore()->retrieve( container, key ) );
2197
2198 std::stringstream ss;
2199 ss << "digraph {" << std::endl;
2200 ss << " node [shape=rectangle]" << std::endl;
2201 ss << " rankdir = BT" << std::endl;
2202
2203 // Now process them
2204 for (const std::string& key : keys) {
2205 if ( not m_doDumpAllTrigComposite ) {
2206 if ( not key.starts_with( "HLTNav_") ) { // Nav containers should always start with HLTNav_
2207 continue;
2208 }
2209 }
2210 ATH_CHECK( evtStore()->retrieve( container, key ) );
2211 ATH_MSG_DEBUG("Processing collection " << key << " to be added to the navigation graph");
2212 // ss << " rank=same" << std::endl; // dot cannot handle this is seems
2213 bool writtenHeader = false;
2214 for (const Decision* tc : *container ) {
2215 // Output my ID in the graph.
2216 const DecisionContainer* container = dynamic_cast<const DecisionContainer*>( tc->container() );
2217 const ElementLink<DecisionContainer> selfEL = ElementLink<DecisionContainer>(*container, tc->index());
2218 std::vector<ElementLink<DecisionContainer>> seedELs = tc->objectCollectionLinks<DecisionContainer>("seed");
2219 const bool isHypoAlgNode = tc->name() == "H";
2220 const bool isComboHypoAlgNode = tc->name() == "CH";
2221 const std::vector<DecisionID>& decisions = tc->decisions();
2222 const uint32_t selfKey = selfEL.key();
2223 const uint32_t selfIndex = selfEL.index();
2224 if (m_dumpNavForChain != "") {
2225 bool doDump = false;
2226 // Check me
2227 for (DecisionID id : decisions) {
2228 if (chainIDs.count(id) == 1) {
2229 doDump = true;
2230 break;
2231 }
2232 }
2233 // Check my seeds
2234 if (!doDump and (isHypoAlgNode or isComboHypoAlgNode) and not m_excludeFailedHypoNodes) {
2235 for (const ElementLink<DecisionContainer>& s : seedELs) {
2236 const std::vector<DecisionID>& seedDecisions = (*s)->decisions();
2237 for (DecisionID id : seedDecisions) {
2238 if (chainIDs.count(id) == 1) {
2239 doDump = true;
2240 break;
2241 }
2242 }
2243 }
2244 }
2245 if (!doDump) {
2246 continue;
2247 }
2248 }
2249 if (!writtenHeader) {
2250 writtenHeader = true;
2251 ss << " subgraph " << key << " {" << std::endl;
2252 ss << " label=\"" << key << "\"" << std::endl;
2253 }
2254 const std::string scheme = "rdpu9";
2255 std::string color = "1";
2256 if (tc->name() == "L1") { color = "1"; }
2257 else if (tc->name() == "F") { color = "2"; }
2258 else if (tc->name() == "IM") { color = "3"; }
2259 else if (tc->name() == "H") { color = "4"; }
2260 else if (tc->name() == "CH") { color = "5"; }
2261 else if (tc->name() == "SF") { color = "6"; }
2262 else if (tc->name() == "HLTPassRaw") { color = "7"; }
2263 ss << " \"" << selfKey << "_" << selfIndex << "\" [colorscheme="<<scheme<<",style=filled,fillcolor="<<color<<",label=<<B>Container</B>=" << typeNameTC;
2264 if (tc->name() != "") ss << " <B>Name</B>=" << tc->name();
2265 ss << "<BR/><B>Key</B>=" << key << "<BR/><B>Index</B>=" << selfIndex;
2266 const bool isRemapped = tc->isRemapped();
2267 if (isHypoAlgNode) ss << " <B>linksRemapped</B>=" << (isRemapped ? "Y" : "N");
2268 if (decisions.size() > 0) {
2269 ss << "<BR/><B>Pass</B>=";
2270 size_t c = 0;
2271 for (unsigned decisionID : decisions) {
2272 HLT::Identifier dID(decisionID);
2273 std::string highlight = (dID.numeric() == chainID.numeric() ? "<B>[CHAIN:" : "");
2274 if (highlight == "" and chainIDs.count(dID.numeric()) == 1 and TrigCompositeUtils::isLegId(dID)) {
2275 highlight = "<B>[LEG" + std::to_string(TrigCompositeUtils::getIndexFromLeg(dID)) + ":";
2276 }
2277 ss << std::hex << highlight << decisionID << (!highlight.empty() ? "]</B>" : "") << std::dec << ",";
2278 if (c++ == 5) {
2279 ss << "<BR/>";
2280 c = 0;
2281 }
2282 }
2283 }
2284 ss << ">]" << std::endl;
2285 // Output all the things I link to
2286 size_t seedCount = 0;
2287 for (size_t i = 0; i < tc->linkColNames().size(); ++i) {
2288 const std::string link = tc->linkColNames().at(i);
2289 if (link == "seed" || link == "seed__COLL") {
2290 ElementLink<DecisionContainer> seedEL = seedELs.at(seedCount++);
2291 const uint32_t seedKey = tc->linkColKeys().at(i);
2292 const uint32_t seedIndex = tc->linkColIndices().at(i);
2293 ATH_CHECK( seedKey == seedEL.key() );
2294 ATH_CHECK( seedIndex == seedEL.index() );
2295 if (m_dumpNavForChain != "") { // Only print "seed" link to nodes we include in our search
2296 const std::vector<DecisionID> seedDecisions = (*seedEL)->decisions();
2297 bool doSeedLink = false;
2298 for (DecisionID id : seedDecisions) {
2299 if (chainIDs.count(id) == 1) {
2300 doSeedLink = true;
2301 break;
2302 }
2303 }
2304 if (!doSeedLink) {
2305 continue;
2306 }
2307 }
2308 ss << " \"" << selfKey << "_" << selfIndex << "\" -> \"" << seedKey << "_" << seedIndex << "\" [colorscheme="<<scheme<<",color=9,fontcolor=8,label=\"seed\"]" << std::endl;
2309 } else {
2310 // Start with my class ID
2311 std::string linkColour = "12";
2312 std::string linkBackground = "11";
2313 const std::string extScheme = "paired12";
2314 if (link == "roi") { linkColour="2"; linkBackground="1"; }
2315 else if (link == "initialRoI") { linkColour="2"; linkBackground="1"; }
2316 else if (link == "initialRecRoI") { linkColour="8"; linkBackground="7"; }
2317 else if (link == "feature") { linkColour="4"; linkBackground="3"; }
2318 else if (link == "view") { linkColour="10"; linkBackground="9"; }
2319 const CLID linkCLID = static_cast<CLID>( tc->linkColClids().at(i) );
2320 // Use it to get my class name
2321 std::string tname;
2322 ATH_CHECK(m_clidSvc->getTypeNameOfID(linkCLID, tname));
2323 // Now get the sgkey I'm linking to & the index
2324 const SG::sgkey_t key = (isRemapped ? static_cast<SG::sgkey_t>( tc->linkColKeysRemap().at(i) ) : static_cast<SG::sgkey_t>( tc->linkColKeys().at(i) ));
2325 const unsigned index = (isRemapped ? tc->linkColIndicesRemap().at(i) : tc->linkColIndices().at(i));
2326 // Look it up
2327 CLID checkCLID;
2328 const std::string* keyStr = evtStore()->keyToString(key, checkCLID); // I don't own this str
2329 if (keyStr != nullptr && checkCLID != linkCLID) {
2330 std::string tnameOfCheck;
2331 m_clidSvc->getTypeNameOfID(checkCLID, tnameOfCheck).ignore(); // Might be invalid. But we don't care.
2332 ATH_MSG_ERROR("Inconsistent CLID " << checkCLID << " [" << tnameOfCheck << "] stored in storegate for key " << key
2333 << ". We were expecting " << linkCLID << " [" << tname << "]");
2334 }
2335
2336 std::string tnameEscape;
2337 for (std::string::const_iterator i = tname.begin(); i != tname.end(); ++i) {
2338 unsigned char c = *i;
2339 if (c == '<') {
2340 tnameEscape += "&lt;";
2341 } else if (c == '>') {
2342 tnameEscape += "&gt;";
2343 } else {
2344 tnameEscape += c;
2345 }
2346 }
2347
2348 // Print
2349 ss << " \"" << selfKey << "_" << selfIndex << "\" -> \"" << key << "_" << index << "\" ";
2350 ss << "[colorscheme="<<extScheme<<",color="<<linkColour<<",fontcolor="<<linkColour<<",arrowhead=empty,label=\"" << link << "\"]" << std::endl;
2351
2352 // Check if we are linking to self (e.g. a dummy-feature), don't output a new box for this
2353 const bool linkToSelf = (selfKey == key and selfIndex == index);
2354
2355 if (converted.count(key + index) == 0 and not linkToSelf) {
2356 ss << " \"" << key << "_" << index << "\" [colorscheme="<<extScheme<<",style=filled,fillcolor="<<linkBackground<<",label=<<B>Container</B>=" << tnameEscape << "<BR/><B>Key</B>=";
2357 if (keyStr != nullptr) ss << *keyStr;
2358 else ss << "[<I>KEY "<< key <<" NOT IN STORE</I>] ";
2359 ss << "<BR/><B>Index</B>=" << index << ">]";
2360 }
2361
2362 converted.insert(key + index);
2363 }
2364 }
2365 }
2366 if (writtenHeader) {
2367 ss << " }" << std::endl;
2368 }
2369 }
2370
2371 ss << "}" << std::endl;
2372
2373 returnValue.assign( ss.str() );
2374 return StatusCode::SUCCESS;
2375}
static Double_t ss
unsigned int DecisionID
xAOD::TrigComposite Decision
std::set< DecisionID > DecisionIDContainer
xAOD::TrigCompositeContainer DecisionContainer
TrigCompositeUtils::DecisionID numeric() const
numeric ID
const std::vector< size_t > & leg_multiplicities() const
Gaudi::Property< bool > m_excludeFailedHypoNodes
bool isPassed(unsigned int condition=TrigDefs::Physics) const
tells if chain group passed
std::vector< std::string > getListOfTriggers() const
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition sgkey_t.h:32
pointer & link(pointer p) const
Return a reference to the link for an element.
const SG::AuxVectorData * container() const
Return the container holding this element.
HLT::Identifier createLegName(const HLT::Identifier &chainIdentifier, size_t counter)
Generate the HLT::Identifier which corresponds to a specific leg of a given chain.
int32_t getIndexFromLeg(const HLT::Identifier &legIdentifier)
Extract the numeric index of a leg identifier.
bool isLegId(const HLT::Identifier &legIdentifier)
Recognise whether the chain ID is a leg ID.
setEventNumber uint32_t

◆ updateEvtStore()

void AthAnalysisAlgorithm::updateEvtStore ( Gaudi::Details::PropertyBase & prop)
protectedinherited

Definition at line 45 of file AthAnalysisAlgorithm.cxx.

45 {
46 evtStore().release().ignore();
47 evtStore().setTypeAndName(prop.toString());
48}

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

Member Data Documentation

◆ m_clidSvc

ServiceHandle<IClassIDSvc > TrigEDMChecker::m_clidSvc {this, "ClassIDSvc", "ClassIDSvc", "Service providing CLID info"}
private

Definition at line 131 of file TrigEDMChecker.h.

131{this, "ClassIDSvc", "ClassIDSvc", "Service providing CLID info"};

◆ m_currentFile

TFile* AthAnalysisAlgorithm::m_currentFile {nullptr}
privateinherited

Definition at line 120 of file AthAnalysisAlgorithm.h.

120{nullptr}; //used to cache the current file

◆ m_decisionsKey

SG::WriteHandleKey<TrigCompositeUtils::DecisionContainer> TrigEDMChecker::m_decisionsKey { this, "Decisions", "RoIDecisions", "Decisions created from TEs" }
private

Definition at line 135 of file TrigEDMChecker.h.

135{ this, "Decisions", "RoIDecisions", "Decisions created from TEs" };

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doDumpAll

Gaudi::Property<bool> TrigEDMChecker::m_doDumpAll {this, "doDumpAll", true}
private

Definition at line 32 of file TrigEDMChecker.h.

32{this, "doDumpAll", true};

◆ m_doDumpAllTrigComposite

Gaudi::Property<bool> TrigEDMChecker::m_doDumpAllTrigComposite {this, "doDumpAllTrigComposite", false }
private

Definition at line 95 of file TrigEDMChecker.h.

95{this, "doDumpAllTrigComposite", false };

◆ m_doDumpLVL1_ROI

Gaudi::Property<bool> TrigEDMChecker::m_doDumpLVL1_ROI {this, "doDumpLVL1_ROI", false}
private

Definition at line 37 of file TrigEDMChecker.h.

37{this, "doDumpLVL1_ROI", false};

◆ m_doDumpNavigation

Gaudi::Property<bool> TrigEDMChecker::m_doDumpNavigation {this, "doDumpNavigation", false }
private

Definition at line 98 of file TrigEDMChecker.h.

98{this, "doDumpNavigation", false };

◆ m_doDumpStoreGate

Gaudi::Property<bool> TrigEDMChecker::m_doDumpStoreGate {this, "doDumpStoreGate", false }
private

Definition at line 82 of file TrigEDMChecker.h.

82{this, "doDumpStoreGate", false };

◆ m_doDumpTrigCompsiteNavigation

Gaudi::Property<bool> TrigEDMChecker::m_doDumpTrigCompsiteNavigation {this, "doDumpTrigCompsiteNavigation",false }
private

Definition at line 119 of file TrigEDMChecker.h.

119{this, "doDumpTrigCompsiteNavigation",false };

◆ m_doDumpTrigEFBphysContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpTrigEFBphysContainer {this, "doDumpTrigEFBphysContainer", false}
private

Definition at line 49 of file TrigEDMChecker.h.

49{this, "doDumpTrigEFBphysContainer", false};

◆ m_doDumpTrigL2BphysContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpTrigL2BphysContainer {this, "doDumpTrigL2BphysContainer", false}
private

Definition at line 46 of file TrigEDMChecker.h.

46{this, "doDumpTrigL2BphysContainer", false};

◆ m_doDumpTrigPassBits

Gaudi::Property<bool> TrigEDMChecker::m_doDumpTrigPassBits {this, "doDumpTrigPassBits", false}
private

Definition at line 34 of file TrigEDMChecker.h.

34{this, "doDumpTrigPassBits", false};

◆ m_doDumpxAODElectronContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODElectronContainer {this, "doDumpxAODElectronContainer", false}
private

Definition at line 67 of file TrigEDMChecker.h.

67{this, "doDumpxAODElectronContainer", false};

◆ m_doDumpxAODJetContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODJetContainer {this, "doDumpxAODJetContainer", false}
private

Definition at line 43 of file TrigEDMChecker.h.

43{this, "doDumpxAODJetContainer", false};

◆ m_doDumpxAODMuonContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODMuonContainer {this, "doDumpxAODMuonContainer", false}
private

Definition at line 58 of file TrigEDMChecker.h.

58{this, "doDumpxAODMuonContainer", false};

◆ m_doDumpxAODPhotonContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODPhotonContainer {this, "doDumpxAODPhotonContainer", false}
private

Definition at line 70 of file TrigEDMChecker.h.

70{this, "doDumpxAODPhotonContainer", false};

◆ m_doDumpxAODTauJetContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODTauJetContainer {this, "doDumpxAODTauJetContainer", false}
private

Definition at line 73 of file TrigEDMChecker.h.

73{this, "doDumpxAODTauJetContainer", false};

◆ m_doDumpxAODTrackParticle

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODTrackParticle {this, "doDumpxAODTrackParticle", false}
private

Definition at line 76 of file TrigEDMChecker.h.

76{this, "doDumpxAODTrackParticle", false};

◆ m_doDumpxAODTrigElectronContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODTrigElectronContainer {this, "doDumpxAODTrigElectronContainer", false}
private

Definition at line 61 of file TrigEDMChecker.h.

61{this, "doDumpxAODTrigElectronContainer", false};

◆ m_doDumpxAODTrigEMCluster

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODTrigEMCluster {this, "doDumpxAODTrigEMCluster", false}
private

Definition at line 52 of file TrigEDMChecker.h.

52{this, "doDumpxAODTrigEMCluster", false};

◆ m_doDumpxAODTrigEMClusterContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODTrigEMClusterContainer {this, "doDumpxAODTrigEMClusterContainer", false}
private

Definition at line 55 of file TrigEDMChecker.h.

55{this, "doDumpxAODTrigEMClusterContainer", false};

◆ m_doDumpxAODTrigMinBias

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODTrigMinBias {this, "doDumpxAODTrigMinBias", false}
private

Definition at line 88 of file TrigEDMChecker.h.

88{this, "doDumpxAODTrigMinBias", false};

◆ m_doDumpxAODTrigMissingET

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODTrigMissingET {this, "doDumpxAODTrigMissingET", false}
private

Definition at line 40 of file TrigEDMChecker.h.

40{this, "doDumpxAODTrigMissingET", false};

◆ m_doDumpxAODTrigPhotonContainer

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODTrigPhotonContainer {this, "doDumpxAODTrigPhotonContainer", false}
private

Definition at line 64 of file TrigEDMChecker.h.

64{this, "doDumpxAODTrigPhotonContainer", false};

◆ m_doDumpxAODVertex

Gaudi::Property<bool> TrigEDMChecker::m_doDumpxAODVertex {this, "doDumpxAODVertex", false}
private

Definition at line 79 of file TrigEDMChecker.h.

79{this, "doDumpxAODVertex", false};

◆ m_doneFirstEvent

bool AthAnalysisAlgorithm::m_doneFirstEvent {false}
privateinherited

Definition at line 122 of file AthAnalysisAlgorithm.h.

122{false};

◆ m_doTDTCheck

Gaudi::Property<bool> TrigEDMChecker::m_doTDTCheck {this, "doTDTCheck", false }
private

Definition at line 85 of file TrigEDMChecker.h.

85{this, "doTDTCheck", false };

◆ m_dumpNavForChain

Gaudi::Property<std::string> TrigEDMChecker::m_dumpNavForChain {this, "DumpNavigationForChain", "", "Optional chain to restrict navigation dump info."}
private

Definition at line 101 of file TrigEDMChecker.h.

101{this, "DumpNavigationForChain", "", "Optional chain to restrict navigation dump info."};

◆ m_dumpTrigCompositeContainers

Gaudi::Property<std::vector<std::string> > TrigEDMChecker::m_dumpTrigCompositeContainers {this, "dumpTrigCompositeContainers", false, "List of TCs to dump" }
private

Definition at line 96 of file TrigEDMChecker.h.

96{this, "dumpTrigCompositeContainers", false, "List of TCs to dump" };

◆ m_effMap

EffMap_t AthHistogramming::m_effMap
privateinherited

The map of histogram names to their pointers.

Definition at line 210 of file AthHistogramming.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_excludeFailedHypoNodes

Gaudi::Property<bool> TrigEDMChecker::m_excludeFailedHypoNodes
private
Initial value:
{this, "excludeFailedHypoNodes", false,
"Optional flag to exclude nodes which fail the hypothesis tool for a chain when dumping navigation graphs."}

Definition at line 102 of file TrigEDMChecker.h.

102 {this, "excludeFailedHypoNodes", false,
103 "Optional flag to exclude nodes which fail the hypothesis tool for a chain when dumping navigation graphs."};

◆ m_extendedExtraObjects

DataObjIDColl AthCommonAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 108 of file AthCommonAlgorithm.h.

◆ m_graphMap

GraphMap_t AthHistogramming::m_graphMap
privateinherited

The map of TGraph names to their pointers.

Definition at line 224 of file AthHistogramming.h.

◆ m_histMap

HistMap_t AthHistogramming::m_histMap
privateinherited

The map of histogram names to their pointers.

Definition at line 203 of file AthHistogramming.h.

◆ m_histNamePostfix

std::string AthHistogramAlgorithm::m_histNamePostfix
privateinherited

The postfix for the histogram THx name.

Definition at line 97 of file AthHistogramAlgorithm.h.

◆ m_histNamePrefix

std::string AthHistogramAlgorithm::m_histNamePrefix
privateinherited

The prefix for the histogram THx name.

Definition at line 94 of file AthHistogramAlgorithm.h.

◆ m_histSvc

ServiceHandle<ITHistSvc> AthHistogramAlgorithm::m_histSvc
privateinherited

Default constructor: AthHistogramAlgorithm();.

a handle on the Hist/TTree registration service

Definition at line 83 of file AthHistogramAlgorithm.h.

◆ m_histTitlePostfix

std::string AthHistogramAlgorithm::m_histTitlePostfix
privateinherited

The postfix for the histogram THx title.

Definition at line 103 of file AthHistogramAlgorithm.h.

◆ m_histTitlePrefix

std::string AthHistogramAlgorithm::m_histTitlePrefix
privateinherited

The prefix for the histogram THx title.

Definition at line 100 of file AthHistogramAlgorithm.h.

◆ m_inputMetaStore

ServiceHandle< StoreGateSvc > AthAnalysisAlgorithm::m_inputMetaStore
privateinherited

Object accessing the input metadata store.

Definition at line 116 of file AthAnalysisAlgorithm.h.

◆ m_msg

MsgStream AthHistogramming::m_msg
privateinherited

Cached Message Stream.

Definition at line 250 of file AthHistogramming.h.

◆ m_muonPrinter

ToolHandle<Rec::IMuonPrintingTool> TrigEDMChecker::m_muonPrinter {this, "MuonPrinter", "Rec::MuonPrintingTool/MuonPrintingTool"}
private

Definition at line 130 of file TrigEDMChecker.h.

130{this, "MuonPrinter", "Rec::MuonPrintingTool/MuonPrintingTool"};

◆ m_muonTracksKey

SG::ReadHandleKey< xAOD::TrackParticleContainer > TrigEDMChecker::m_muonTracksKey { this, "MuonTracksKey", "HLT_IDTrack_Muon_FTF"}
private

Definition at line 133 of file TrigEDMChecker.h.

133{ this, "MuonTracksKey", "HLT_IDTrack_Muon_FTF"};

◆ m_name

std::string AthHistogramming::m_name
privateinherited

Instance name.

Definition at line 247 of file AthHistogramming.h.

◆ m_navigationHandleKey

SG::ReadHandleKey< xAOD::TrigNavigation > TrigEDMChecker::m_navigationHandleKey { this, "TrigNavigation", "TrigNavigation", "" }
private

Definition at line 134 of file TrigEDMChecker.h.

134{ this, "TrigNavigation", "TrigNavigation", "" };

◆ m_navigationTool

ToolHandle< HLT::Navigation > TrigEDMChecker::m_navigationTool { this, "NavigationTool", "HLT::Navigation/Navigation", "" }
private

Definition at line 136 of file TrigEDMChecker.h.

136{ this, "NavigationTool", "HLT::Navigation/Navigation", "" };

◆ m_outputMetaStore

ServiceHandle< StoreGateSvc > AthAnalysisAlgorithm::m_outputMetaStore
privateinherited

Object accessing the output metadata store.

Definition at line 118 of file AthAnalysisAlgorithm.h.

◆ m_prefix

std::string AthHistogramAlgorithm::m_prefix
privateinherited

Name of the ROOT output stream (file).

Definition at line 88 of file AthHistogramAlgorithm.h.

◆ m_rootDir

std::string AthHistogramAlgorithm::m_rootDir
privateinherited

Name of the ROOT directory.

Definition at line 91 of file AthHistogramAlgorithm.h.

◆ m_streamName

std::string AthHistogramming::m_streamName
privateinherited

Name of the ROOT output stream (file).

Definition at line 228 of file AthHistogramming.h.

◆ m_treeMap

TreeMap_t AthHistogramming::m_treeMap
privateinherited

The map of TTree names to their pointers.

Definition at line 217 of file AthHistogramming.h.

◆ m_trigDec

PublicToolHandle< Trig::TrigDecisionTool > TrigEDMChecker::m_trigDec { this, "TriggerDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool", ""}
private

Definition at line 137 of file TrigEDMChecker.h.

137{ this, "TriggerDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool", ""};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: