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

#include <TrigEDMChecker.h>

Inheritance diagram for TrigEDMChecker:
Collaboration diagram for TrigEDMChecker:

Public Member Functions

 TrigEDMChecker (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~TrigEDMChecker ()
virtual StatusCode initialize () override
virtual StatusCode execute (const EventContext &ctx) override
 Execute method.
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 do_execute ATLAS_NOT_THREAD_SAFE (const EventContext &ctx)
StatusCode dumpTrigPassBits ()
StatusCode dumpLVL1_ROI ()
StatusCode dumpTrackParticleContainer ()
StatusCode dumpTrigMissingET ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpxAODTrigMissingET ()
StatusCode dumpxAODJetContainer ()
StatusCode dumpTrigL2BphysContainer ()
StatusCode dumpTrigEFBphysContainer ()
StatusCode dumpTrigEFBjetContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigL2BjetContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigTauClusterContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigEMCluster ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigEMClusterContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpxAODTrigEMCluster ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpxAODTrigEMClusterContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpCombinedMuonFeature ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpCombinedMuonFeatureContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpMuonFeature ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTileMuFeatureContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTileTrackMuFeatureContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigPhotonContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigMuonEFContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigMuonEFInfoContainer ATLAS_NOT_THREAD_SAFE ()
void printMuonTrk (const TrigMuonEFTrack *muonTrack)
void printMuonTrk (const TrigMuonEFCbTrack *muonTrack)
StatusCode dumpxAODMuonContainer ()
StatusCode dumpTrigMuonEFIsolationContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigElectronContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpxAODTrigElectronContainer ()
StatusCode dumpxAODTrigPhotonContainer ()
StatusCode dumpxAODElectronContainer ()
StatusCode dumpxAODPhotonContainer ()
StatusCode dumpTrigTauContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTrigTauTracksInfo ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpHLTResult ()
StatusCode dumpTrigVertexCollection ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpxAODTauJetContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpTauJetContainer ATLAS_NOT_THREAD_SAFE ()
StatusCode dumpxAODTrackParticle ()
StatusCode dumpxAODVertex ()
StatusCode dumpStoreGate ()
StatusCode dumpTDT ()
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

bool m_doDumpAll
 a handle on Store Gate for access to the Event Store
bool m_doDumpTrigPassBits
bool m_doDumpLVL1_ROI
bool m_doDumpTrackParticleContainer
bool m_doDumpTrigMissingET
bool m_doDumpxAODTrigMissingET
bool m_doDumpxAODJetContainer
bool m_doDumpTrigL2BphysContainer
bool m_doDumpTrigEFBphysContainer
bool m_doDumpTrigEFBjetContainer
bool m_doDumpTrigL2BjetContainer
bool m_doDumpTrigTauClusterContainer
bool m_doDumpTrigEMCluster
bool m_doDumpTrigEMClusterContainer
bool m_doDumpxAODTrigEMCluster
bool m_doDumpxAODTrigEMClusterContainer
bool m_doDumpCombinedMuonFeature
bool m_doDumpMuonFeature
bool m_doDumpTileMuFeature
bool m_doDumpTileTrackMuFeature
bool m_doDumpTrigPhotonContainer
bool m_doDumpTrigMuonEFContainer
bool m_doDumpTrigMuonEFInfoContainer
bool m_doDumpxAODMuonContainer
bool m_doDumpTrigMuonEFIsolationContainer
bool m_doDumpTrigElectronContainer
bool m_doDumpxAODTrigElectronContainer
bool m_doDumpxAODTrigPhotonContainer
bool m_doDumpxAODElectronContainer
bool m_doDumpxAODPhotonContainer
bool m_doDumpTrigTauContainer
bool m_doDumpTrigTauTracksInfo
bool m_doDumpHLTResult
bool m_doDumpTrigVertexCollection
bool m_doDumpxAODTauJetContainer
bool m_doDumpTauJetContainer
bool m_doDumpxAODTrackParticle
bool m_doDumpxAODVertex
bool m_doDumpStoreGate
bool m_doTDTCheck
bool m_doDumpxAODTrigMinBias
bool m_doDumpAllTrigComposite
std::vector< std::string > m_dumpTrigCompositeContainers
bool m_doDumpNavigation
Gaudi::Property< std::string > m_dumpNavForChain {this, "DumpNavigationForChain", "", "Optional chain to restrict navigation dump info."}
Gaudi::Property< bool > m_excludeFailedHypoNodes
bool m_doDumpTrigCompsiteNavigation
ToolHandle< Rec::IMuonPrintingToolm_muonPrinter {this, "MuonPrinter", "Rec::MuonPrintingTool/MuonPrintingTool"}
ServiceHandle< ::IClassIDSvc > m_clidSvc
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", ""}
int m_trackWarningNum {0}
int m_vertexWarningNum {0}
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 34 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.

Constructor & Destructor Documentation

◆ TrigEDMChecker()

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

switches to control the analysis through job options

Definition at line 110 of file TrigEDMChecker.cxx.

111 : AthAnalysisAlgorithm(name, pSvcLocator),
112 m_clidSvc( "ClassIDSvc", name )
113{
115
116 declareProperty("doDumpAll", m_doDumpAll = true);
117 declareProperty("doDumpTrigPassBits", m_doDumpTrigPassBits = false);
118 declareProperty("doDumpLVL1_ROI", m_doDumpLVL1_ROI = false);
119 declareProperty("doDumpTrigMissingET", m_doDumpTrigMissingET = false);
120 declareProperty("doDumpxAODTrigMissingET", m_doDumpxAODTrigMissingET = false);
121 declareProperty("doDumpMuonFeature", m_doDumpMuonFeature = false);
122 declareProperty("doDumpCombinedMuonFeature", m_doDumpCombinedMuonFeature = false);
123 declareProperty("doDumpTileMuFeature", m_doDumpTileMuFeature = false);
124 declareProperty("doDumpTileTrackMuFeature", m_doDumpTileTrackMuFeature = false);
125 declareProperty("doDumpTrigPhotonContainer", m_doDumpTrigPhotonContainer = false);
126 declareProperty("doDumpTrigL2BphysContainer", m_doDumpTrigL2BphysContainer = false);
127 declareProperty("doDumpTrigEFBphysContainer", m_doDumpTrigEFBphysContainer = false);
128 declareProperty("doDumpTrigEFBjetContainer", m_doDumpTrigEFBjetContainer = false);
129 declareProperty("doDumpTrigL2BjetContainer", m_doDumpTrigL2BjetContainer = false);
130 declareProperty("doDumpxAODJetContainer", m_doDumpxAODJetContainer = false);
131 declareProperty("doDumpTrigMuonEFContainer", m_doDumpTrigMuonEFContainer = false);
132 declareProperty("doDumpTrigMuonEFInfoContainer", m_doDumpTrigMuonEFInfoContainer = false);
133 declareProperty("doDumpTrigMuonEFIsolationContainer", m_doDumpTrigMuonEFIsolationContainer = false);
134 declareProperty("doDumpxAODMuonContainer", m_doDumpxAODMuonContainer = false);
135 declareProperty("doDumpTrigElectronContainer", m_doDumpTrigElectronContainer = false);
136 declareProperty("doDumpxAODTrigElectronContainer", m_doDumpxAODTrigElectronContainer = false);
137 declareProperty("doDumpxAODTrigPhotonContainer", m_doDumpxAODTrigPhotonContainer = false);
138 declareProperty("doDumpxAODElectronContainer", m_doDumpxAODElectronContainer = false);
139 declareProperty("doDumpxAODPhotonContainer", m_doDumpxAODPhotonContainer = false);
140 declareProperty("doDumpHLTResult", m_doDumpHLTResult = false);
141 declareProperty("doDumpTrigTauContainer", m_doDumpTrigTauContainer = false);
142 declareProperty("doDumpTrigTauTracksInfo", m_doDumpTrigTauTracksInfo = false);
143 declareProperty("doDumpTrigVertexCollection", m_doDumpTrigVertexCollection = false);
144 declareProperty("doDumpTrigEMCluster", m_doDumpTrigEMCluster = false);
145 declareProperty("doDumpTrigEMClusterContainer", m_doDumpTrigEMClusterContainer = false);
146 declareProperty("doDumpxAODTrigEMCluster", m_doDumpxAODTrigEMCluster = false);
147 declareProperty("doDumpxAODTrigEMClusterContainer", m_doDumpxAODTrigEMClusterContainer = false);
148 declareProperty("doDumpTrigTauClusterContainer", m_doDumpTrigTauClusterContainer = false);
149 declareProperty("doDumpTrackParticleContainer", m_doDumpTrackParticleContainer = false);
150 declareProperty("doDumpTauJetContainer", m_doDumpTauJetContainer = false);
151 declareProperty("doDumpxAODTrackParticle", m_doDumpxAODTrackParticle = false);
152 declareProperty("doDumpxAODVertex", m_doDumpxAODVertex = false);
153 declareProperty("doDumpxAODTauJetContainer", m_doDumpxAODTauJetContainer = false);
154 declareProperty("doDumpxAODTrigMinBias", m_doDumpxAODTrigMinBias = false);
155 declareProperty("doDumpStoreGate", m_doDumpStoreGate = false );
156 declareProperty("doDumpAllTrigComposite", m_doDumpAllTrigComposite = false );
157 declareProperty("dumpTrigCompositeContainers", m_dumpTrigCompositeContainers, "List of TC to dump" );
158 declareProperty("doDumpTrigCompsiteNavigation", m_doDumpTrigCompsiteNavigation = false );
159 declareProperty("doDumpNavigation", m_doDumpNavigation = false );
160 declareProperty("doTDTCheck", m_doTDTCheck = false );
161 declareProperty( "ClassIDSvc", m_clidSvc, "Service providing CLID info" );
162}
AthAnalysisAlgorithm(const std::string &name)
Constructor taking just a name.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
bool m_doDumpxAODTrigMissingET
bool m_doDumpTrigTauContainer
bool m_doDumpTrigVertexCollection
bool m_doDumpTrigEFBphysContainer
bool m_doDumpTrigPhotonContainer
bool m_doDumpxAODTrigEMClusterContainer
bool m_doDumpTrigMuonEFContainer
bool m_doDumpxAODTrigElectronContainer
ServiceHandle< ::IClassIDSvc > m_clidSvc
bool m_doDumpxAODElectronContainer
bool m_doDumpTrigL2BjetContainer
bool m_doDumpTrigElectronContainer
bool m_doDumpTrigEMClusterContainer
bool m_doDumpxAODTauJetContainer
bool m_doDumpTrigL2BphysContainer
bool m_doDumpAll
a handle on Store Gate for access to the Event Store
std::vector< std::string > m_dumpTrigCompositeContainers
bool m_doDumpTrigEFBjetContainer
bool m_doDumpTrigMuonEFIsolationContainer
bool m_doDumpTrigTauTracksInfo
bool m_doDumpTrackParticleContainer
bool m_doDumpTrigMuonEFInfoContainer
bool m_doDumpCombinedMuonFeature
bool m_doDumpTileTrackMuFeature
bool m_doDumpTrigCompsiteNavigation
bool m_doDumpxAODTrigPhotonContainer
bool m_doDumpxAODPhotonContainer
bool m_doDumpxAODTrackParticle
bool m_doDumpxAODJetContainer
bool m_doDumpTrigTauClusterContainer
bool m_doDumpxAODTrigEMCluster
bool m_doDumpAllTrigComposite
bool m_doDumpxAODMuonContainer

◆ ~TrigEDMChecker()

TrigEDMChecker::~TrigEDMChecker ( )
virtual

Definition at line 166 of file TrigEDMChecker.cxx.

166{}

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE() [1/24]

StatusCode dumpTauJetContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [2/24]

StatusCode dumpxAODTauJetContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [3/24]

StatusCode dumpTrigVertexCollection TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [4/24]

StatusCode dumpTrigTauTracksInfo TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [5/24]

StatusCode dumpTrigTauContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [6/24]

StatusCode dumpTrigElectronContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [7/24]

StatusCode dumpTrigMuonEFIsolationContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [8/24]

StatusCode dumpTrigMuonEFInfoContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [9/24]

StatusCode dumpTrigMuonEFContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [10/24]

StatusCode dumpTrigPhotonContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [11/24]

StatusCode dumpTileTrackMuFeatureContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [12/24]

StatusCode dumpTileMuFeatureContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [13/24]

StatusCode dumpMuonFeature TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [14/24]

StatusCode dumpCombinedMuonFeatureContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [15/24]

StatusCode dumpCombinedMuonFeature TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [16/24]

StatusCode dumpxAODTrigEMClusterContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [17/24]

StatusCode dumpxAODTrigEMCluster TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [18/24]

StatusCode dumpTrigEMClusterContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [19/24]

StatusCode dumpTrigEMCluster TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [20/24]

StatusCode dumpTrigTauClusterContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [21/24]

StatusCode dumpTrigL2BjetContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [22/24]

StatusCode dumpTrigEFBjetContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [23/24]

StatusCode dumpTrigMissingET TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [24/24]

StatusCode do_execute TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( const EventContext & ctx)
private

◆ 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 3990 of file TrigEDMChecker.cxx.

3990 {
3991
3992 const std::string name = tc->linkColNames().at(element);
3993 const CLID clid = static_cast<CLID>(tc->linkColClids().at(element));
3994
3996
3997 const ElementLink<TrigRoiDescriptorCollection> elementLink = tc->objectLink<TrigRoiDescriptorCollection>(name);
3998 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to TrigRoiDescriptorCollection, link name:'" << name << "'");
3999 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "'' to TrigRoiDescriptor:" << *elementLink);
4000
4001 } else if (clid == ClassID_traits< DataVector< LVL1::RecEmTauRoI > >::ID()) { // There could be a few ROI types....
4002 // CLASS_DEF( DataVector< LVL1::RecEmTauRoI >, 6256, 1 )
4003
4004 const ElementLink<DataVector< LVL1::RecEmTauRoI >> elementLink = tc->objectLink<DataVector< LVL1::RecEmTauRoI >>(name);
4005 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to LVL1::RecEmTauRoI, link name:'" << name << "'");
4006 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to LVL1::RecEmTauRoI:" << *elementLink);
4007
4009
4011 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to TrigComposite, link name:'" << name << "'");
4012 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to TrigComposite, TC name:'" << (*elementLink)->name() << "'");
4013
4014 } else if (clid == ClassID_traits< ViewContainer >::ID()) {
4015
4016 const ElementLink<ViewContainer> elementLink = tc->objectLink<ViewContainer>(name);
4017 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to View, link name:'" << name << "'");
4018 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to View:'" << *elementLink);
4019
4020 } else if (name == "feature") {
4021
4023
4025 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to xAOD::TrigEMClusterContainer 'feature'");
4026 else ATH_MSG_DEBUG(" Dereferenced xAOD::TrigEMClusterContainer link 'feature', Energy:" << (*elementLink)->energy());
4027
4029
4031 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to xAOD::TrigMissingETContainer 'feature'");
4032 else ATH_MSG_DEBUG(" Dereferenced xAOD::TrigMissingETContainer link 'feature', ex:" << (*elementLink)->ex() << " ey:" << (*elementLink)->ey());
4033
4034 } else {
4035
4036 try {
4037 const ElementLink<xAOD::IParticleContainer> elementLink = tc->objectLink<xAOD::IParticleContainer>(name);
4038 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to 'feature'");
4039 else ATH_MSG_DEBUG(" Dereferenced IParticle link 'feature', pt:" << (*elementLink)->pt() << " eta:" << (*elementLink)->eta() << " phi:" << (*elementLink)->phi());
4040 } catch(std::runtime_error& e) {
4041 ATH_MSG_WARNING(" Cannot dereference 'feature' as IParticle: '" << e.what() << "'");
4042 }
4043
4044 }
4045
4046 } else {
4047 ATH_MSG_DEBUG(" Ignoring link to '" << name << "' with link CLID " << clid);
4048 }
4049
4050 return StatusCode::SUCCESS;
4051
4052}
#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 }

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

◆ dumpHLTResult()

StatusCode TrigEDMChecker::dumpHLTResult ( )
private

Definition at line 2088 of file TrigEDMChecker.cxx.

2088 {
2089
2090 ATH_MSG_DEBUG("in dumpHLTResult()");
2091
2092 ATH_MSG_INFO("REGTEST ==========START of HLTResult DUMP===========");
2093
2094 const HLT::HLTResult* hltResult = 0;
2095 StatusCode sc=evtStore()->retrieve( hltResult, "HLTResult_L2");
2096 if( sc.isFailure() || !hltResult ) {
2097 ATH_MSG_INFO("No HLTResult_L2 found in TDS");
2098 return StatusCode::SUCCESS;
2099 }
2100 ATH_MSG_INFO("REGTEST HLTResult_L2 Successfully Retrieved");
2101
2102 ATH_MSG_INFO("REGTEST HLTResult_L2->isEmpty() returns " << hltResult->isEmpty());
2103 ATH_MSG_INFO("REGTEST HLTResult_L2->size() returns " << hltResult->size());
2104 ATH_MSG_INFO("REGTEST HLTResult_L2->isPassThrough() returns " << hltResult->isPassThrough());
2105 ATH_MSG_INFO("REGTEST HLTResult_L2->isAccepted() returns " << hltResult->isAccepted());
2106
2107 ATH_MSG_INFO("REGTEST ==========END of HLTResult DUMP===========");
2108
2109 ATH_MSG_DEBUG("dumpHLTResult() succeeded");
2110
2111 return StatusCode::SUCCESS;
2112}
#define ATH_MSG_INFO(x)
static Double_t sc
ServiceHandle< StoreGateSvc > & evtStore()
bool isAccepted() const
gets HLT decision
Definition HLTResult.h:129
bool isPassThrough() const
forced-accepted (FA) event configuration the FA request(s) are set per chain and hlt level by the tig...
Definition HLTResult.h:144
bool isEmpty() const
true if result is empty
unsigned int size() const
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ dumpLVL1_ROI()

StatusCode TrigEDMChecker::dumpLVL1_ROI ( )
private

Definition at line 1153 of file TrigEDMChecker.cxx.

1153 {
1154
1155 ATH_MSG_DEBUG("in dumpLVL1_ROI()");
1156
1157 ATH_MSG_INFO("REGTEST ==========START of LVL1_ROI DUMP===========");
1158
1159 const LVL1_ROI * lvl1ROI;
1160 StatusCode sc = evtStore()->retrieve(lvl1ROI);
1161 if (sc.isFailure() ) {
1162 ATH_MSG_INFO("REGTEST No LVL1_ROI found");
1163 return StatusCode::SUCCESS;
1164 }
1165
1166 ATH_MSG_INFO("REGTEST LVL1_ROI retrieved");
1167
1168 LVL1_ROI::emtaus_type::const_iterator itEMTau =
1169 (lvl1ROI->getEmTauROIs()).begin();
1170 LVL1_ROI::emtaus_type::const_iterator itEMTau_e =
1171 (lvl1ROI->getEmTauROIs()).end();
1172 int j = 0;
1173 for( ; itEMTau != itEMTau_e; ++itEMTau, ++j) {
1174 ATH_MSG_INFO("REGTEST Looking at LVL1_ROI " << j);
1175 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Eta is " << itEMTau->getEta());
1176 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Phi is " << itEMTau->getPhi());
1177 ATH_MSG_INFO("REGTEST LVL1 EmTauROI EMClus is " << itEMTau->getEMClus());
1178 ATH_MSG_INFO("REGTEST LVL1 EmTauROI TauClus is " << itEMTau->getTauClus());
1179 ATH_MSG_INFO("REGTEST LVL1 EmTauROI EMIsol is " << itEMTau->getEMIsol());
1180 ATH_MSG_INFO("REGTEST LVL1 EmTauROI HadIsol is " << itEMTau->getHadIsol());
1181 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Core is " << itEMTau->getCore());
1182 ATH_MSG_INFO("REGTEST LVL1 EmTauROI HadCore is " << itEMTau->getHadCore());
1183 ATH_MSG_INFO("REGTEST LVL1 EmTauROI roiWord is " << itEMTau->getROIWord());
1184 }
1185
1186 ATH_MSG_INFO("REGTEST ==========END of LVL1_ROI DUMP===========");
1187 ATH_MSG_DEBUG("dumpLVL1_ROI() succeeded");
1188 return StatusCode::SUCCESS;
1189}
const emtaus_type & getEmTauROIs() const
Get all the em/tau RoIs in the event.
Definition LVL1_ROI.h:65

◆ dumpNavigation()

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

Definition at line 4281 of file TrigEDMChecker.cxx.

4282{
4283 // Get object from store
4284 const xAOD::TrigNavigation * navigationHandle = nullptr;
4285 ATH_CHECK( evtStore()->retrieve( navigationHandle, m_navigationHandleKey.key() ) );
4286 // Proper version doesn't work - conversion issue?
4287 //SG::ReadHandle< xAOD::TrigNavigation > navigationHandle = SG::ReadHandle< xAOD::TrigNavigation >( m_navigationHandleKey );
4288 //if ( !navigationHandle.isValid() ) ATH_MSG_FATAL( "Could not retrieve navigation" );
4289
4290 // Get serialised navigation info
4291 const std::vector< unsigned int > serialisedNavigation = navigationHandle->serialized();
4292 ATH_MSG_INFO( "Serialised navigation size: " << serialisedNavigation.size() );
4293
4294 // Convert the input
4295 HLT::Navigation* testNav = m_navigationTool.get();
4296 testNav->deserialize( serialisedNavigation );
4297
4298 // Make a map of TE name hashes
4299 const xAOD::TriggerMenuContainer * testMenu = nullptr;
4300 ATH_CHECK( inputMetaStore()->retrieve( testMenu, "TriggerMenu" ) );
4301 std::map< int, std::string > hash2string;
4302 for ( auto const& sequence : testMenu->front()->sequenceInputTEs() ) {
4303 for ( auto const& name : sequence ) {
4305 hash2string[ hash ] = name;
4306 }
4307 }
4308
4309 // Map TE names to chain names
4310 unsigned int chainCounter = 0;
4311 std::map< int, std::string > hash2chain;
4312 for ( auto const& chain : testMenu->front()->chainSignatureOutputTEs() ) {
4313
4314 // Find the chain name
4315 std::string chainName = testMenu->front()->chainNames()[ chainCounter ];
4316 ++chainCounter;
4317
4318 // Find all associated TEs
4319 for ( auto const& signature : chain ) {
4320 for ( auto const& name : signature ) {
4322 hash2string[ hash ] = name; // for decoding
4323 hash2chain[ hash ] = chainName;
4324 }
4325 }
4326 }
4327
4328 // Define a map of TE features, to the TEs that use them. Needs a custom sort lambda
4329 auto cmpLambda = []( const HLT::TriggerElement::FeatureAccessHelper &lhs, const HLT::TriggerElement::FeatureAccessHelper &rhs) {
4330
4331 // Compare indices if CLID matches
4332 if ( lhs.getCLID() == rhs.getCLID() ) return ( lhs.getIndex() < rhs.getIndex() );
4333
4334 // Compare CLIDs
4335 else return ( lhs.getCLID() < rhs.getCLID() );
4336 };
4337 std::map< HLT::TriggerElement::FeatureAccessHelper, std::vector< HLT::TriggerElement* >, decltype(cmpLambda) > feature2element(cmpLambda);
4338
4339 // Retrieve all TE features and add them to the map
4340 std::vector< HLT::TriggerElement* > allTEs;
4341 testNav->getAll( allTEs, false );
4342 for ( auto element : allTEs ) {
4343
4344 // Add TE features to the big map
4345 for ( auto helper : element->getFeatureAccessHelpers() ) {
4346 feature2element[ helper ].push_back( element );
4347 }
4348 }
4349
4350 // Debug - output all TEs and their ancestors
4351 // No duplication - only print terminal nodes
4352 for ( auto element : allTEs ) {
4353 if ( testNav->isTerminalNode( element ) ) {
4354 ATH_MSG_INFO( "+++++++++++ " << hash2string[ element->getId() ] << " is terminal node" );
4355 ATH_MSG_INFO( "ptr: " << element );
4356 std::queue< HLT::TriggerElement* > allAncestors;
4357 allAncestors.push( element );
4358 while ( allAncestors.size() ) {
4359
4360 HLT::TriggerElement * thisElement = allAncestors.front();
4361 allAncestors.pop();
4362 auto theseAncestors = thisElement->getRelated( HLT::TriggerElement::Relation::seededByRelation );
4363
4364 // Dump TE
4365 ATH_MSG_INFO( "te: " << thisElement->getId() << " " << hash2string[ thisElement->getId() ] );
4366 ATH_MSG_INFO( " chain: " << hash2chain[ thisElement->getId() ] );
4367 for ( const auto& helper : thisElement->getFeatureAccessHelpers() ) {
4368 ATH_MSG_INFO( " feat: " << helper );
4369 }
4370 ATH_MSG_INFO( theseAncestors.size() << " ancestors" );
4371
4372 // Examine ancestors
4373 for ( auto ancestor : theseAncestors ) {
4374 allAncestors.push( ancestor );
4375 }
4376 }
4377 }
4378 }
4379
4380 // Make the decision container
4381 SG::WriteHandle< TrigCompositeUtils::DecisionContainer > outputNavigation = TrigCompositeUtils::createAndStore( m_decisionsKey, ctx );
4382 auto decisionOutput = outputNavigation.ptr();
4383
4384 // Find unique chains associated with a feature
4385 std::map< HLT::TriggerElement const*, std::vector< int > > element2decisions;
4386 for ( const auto& pair : feature2element ) {
4387
4388 // Get the feature info
4389 std::string featureName = testNav->label( pair.first.getCLID(), pair.first.getIndex().subTypeIndex() );
4390 auto sgKey = evtStore()->stringToKey( featureName, pair.first.getCLID() );
4391
4392 // Store RoIs with appropriate label ?
4393 std::string storeFeatureName = "feature";
4394/* if ( pair.first.getCLID() == ClassID_traits< TrigRoiDescriptor >::ID() ) {
4395 storeFeatureName = "roi";
4396 }*/
4397
4398 // Make a decision object for the feature
4399 auto decision = TrigCompositeUtils::newDecisionIn( decisionOutput );
4400 decision->typelessSetObjectLink( storeFeatureName, sgKey, pair.first.getCLID(), pair.first.getIndex().objectsBegin(), pair.first.getIndex().objectsEnd() );
4401
4402 // Examine associated TEs, look for chains
4403 std::set< std::string > passedChains;
4404 for ( HLT::TriggerElement const* element : pair.second ) {
4405
4406 // TODO - find out what chains actually passed!
4407 passedChains.insert( hash2chain[ element->getId() ] );
4408
4409 // Index the TE
4410 int decisionNumber = decisionOutput->size() - 1;
4411 element2decisions[ element ].push_back( decisionNumber );
4412 }
4413
4414 // Store unique chains in the decision
4415 for ( auto& chain : passedChains ) {
4417 }
4418 }
4419
4420 // Store decision ancestry (had to go through once before to ensure indices populated)
4421 unsigned int decisionCounter = 0;
4422 for ( const auto& pair : feature2element ) {
4423
4424 // Get current decision
4425 auto decision = decisionOutput->at( decisionCounter );
4426 ++decisionCounter;
4427
4428 // Find ancestor TEs
4429 for ( auto element : pair.second ) {
4430 auto theseAncestors = element->getRelated( HLT::TriggerElement::Relation::seededByRelation );
4431 for ( auto ancestor : theseAncestors ) {
4432 for ( int decisionIndex : element2decisions[ ancestor ] ) {
4433 TrigCompositeUtils::linkToPrevious( decision, m_decisionsKey.key(), decisionIndex );
4434 }
4435 }
4436 }
4437 }
4438
4439 return StatusCode::SUCCESS;
4440}
#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 ( )
private

Definition at line 3858 of file TrigEDMChecker.cxx.

3858 {
3859 using namespace TrigCompositeUtils; // LinkInfo
3860 ATH_MSG_INFO( "REGTEST ==========START of TDT DUMP===========" );
3861 // Note: This minimal TDT dumper is for use during run-3 dev
3862 std::string chain = m_dumpNavForChain;
3863 if (chain.empty()) {
3864 chain = "HLT_.*";
3865 }
3866 std::vector<std::string> confChains = m_trigDec->getListOfTriggers(chain);
3867 for (const auto& item : confChains) {
3868 bool passed = m_trigDec->isPassed(item);
3869 ATH_MSG_INFO(" HLT Item " << item << " (numeric ID " << TrigConf::HLTUtils::string2hash(item, "Identifier") << ") passed raw? " << passed);
3870 if (m_trigDec->getNavigationFormat() == "TriggerElement") {
3871 ATH_MSG_DEBUG(" Skipping Run 2 features in this dumper");
3872 continue;
3873 }
3874 std::vector< LinkInfo<xAOD::IParticleContainer> > passFeatures = m_trigDec->features<xAOD::IParticleContainer>(item);
3875 if (passFeatures.size()) {
3876 ATH_MSG_INFO(" " << item << " Passed Final IParticle features size: " << passFeatures.size());
3877 for (const LinkInfo<xAOD::IParticleContainer>& li : passFeatures) {
3878 if (!li.isValid()) {
3879 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
3880 } else {
3881 try {
3882 std::string state = "ACTIVE";
3883 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
3884 else if (li.state == ActiveState::UNSET) state = "UNSET";
3885 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);
3886 } catch (const std::exception& e) {
3887 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
3888 }
3889 }
3890 }
3891 }
3892 std::vector< LinkInfo<xAOD::IParticleContainer> > passAndFailFeatures = m_trigDec->features<xAOD::IParticleContainer>(item, TrigDefs::includeFailedDecisions);
3893 if (passAndFailFeatures.size()) {
3894 ATH_MSG_INFO(" " << item << " Passed+Failed Final IParticle features size: " << passAndFailFeatures.size());
3895 for (const LinkInfo<xAOD::IParticleContainer>& li : passAndFailFeatures) {
3896 if (!li.isValid()) {
3897 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
3898 } else {
3899 try {
3900 std::string state = "ACTIVE";
3901 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
3902 else if (li.state == ActiveState::UNSET) state = "UNSET";
3903 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);
3904 } catch (const std::exception& e) {
3905 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
3906 }
3907 }
3908 }
3909 }
3910 std::vector< LinkInfo<xAOD::IParticleContainer> > allFeatures = m_trigDec->features<xAOD::IParticleContainer>(item, TrigDefs::includeFailedDecisions, "", TrigDefs::allFeaturesOfType);
3911 if (allFeatures.size()) {
3912 ATH_MSG_INFO(" " << item << " Passed+Failed ALL IParticle features size: " << allFeatures.size());
3913 for (const LinkInfo<xAOD::IParticleContainer>& li : allFeatures) {
3914 if (!li.isValid()) {
3915 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
3916 } else {
3917 try {
3918 std::string state = "ACTIVE";
3919 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
3920 else if (li.state == ActiveState::UNSET) state = "UNSET";
3921 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);
3922 } catch (const std::exception& e) {
3923 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
3924 }
3925 }
3926 }
3927 }
3928 }
3929
3930 if (m_trigDec->getNavigationFormat() == "TrigComposite") {
3931 // Check associateToEventView helper function
3932 std::vector< LinkInfo<xAOD::IParticleContainer> > muons = m_trigDec->features<xAOD::IParticleContainer>("HLT_mu24_idperf_L1MU20", TrigDefs::Physics, "HLT_MuonL2CBInfo");
3933 SG::ReadHandle<xAOD::TrackParticleContainer> muonTracksReadHandle(m_muonTracksKey, Gaudi::Hive::currentContext());
3934 for (const LinkInfo<xAOD::IParticleContainer>& mu : muons) {
3935 // Note: auto here refers to type std::pair< xAOD::TrackParticleContainer::const_iterator, xAOD::TrackParticleContainer::const_iterator>
3936 const auto roiTrackItPair = m_trigDec->associateToEventView<xAOD::TrackParticleContainer>(muonTracksReadHandle, mu, "roi");
3937 const xAOD::TrackParticleContainer::const_iterator startIt = roiTrackItPair.first;
3938 const xAOD::TrackParticleContainer::const_iterator stopIt = roiTrackItPair.second;
3939 ATH_MSG_INFO("Muon pT: " << (*mu.link)->pt() << " is from the same ROI as tracks with index "
3940 << std::distance(muonTracksReadHandle->begin(), startIt) << "-" << std::distance(muonTracksReadHandle->begin(), stopIt)
3941 << ", which is " << std::distance(startIt, stopIt) << " tracks, out of " << muonTracksReadHandle->size() << " total tracks.");
3942 for (xAOD::TrackParticleContainer::const_iterator it = startIt; it != stopIt; ++it) {
3943 ATH_MSG_VERBOSE(" -- Track " << std::distance(startIt, it) << " in this ROI, pT: " << (*it)->pt() );
3944 }
3945 }
3946 }
3947
3948 ATH_MSG_INFO( "REGTEST ==========END of TDT DUMP===========" );
3949 return StatusCode::SUCCESS;
3950}
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".

◆ dumpTrackParticleContainer()

StatusCode TrigEDMChecker::dumpTrackParticleContainer ( )
private

track

track vertex position

access to TrackSummary information

Definition at line 1046 of file TrigEDMChecker.cxx.

1046 {
1047
1048 ATH_MSG_DEBUG("in dumpTrackParticleContainer()");
1049
1050 ATH_MSG_INFO("REGTEST ==========START of TrackParticleContainer DUMP===========");
1051
1052 std::string trackPtags[]={"HLT_InDetTrigParticleCreation_Bjet_EFID",
1053 "HLT_InDetTrigParticleCreation_Bphysics_EFID",
1054 "HLT_InDetTrigParticleCreation_Electron_EFID",
1055 "HLT_InDetTrigParticleCreation_FullScan_EFID",
1056 "HLT_InDetTrigParticleCreation_Muon_EFID",
1057 "HLT_InDetTrigParticleCreation_Photon_EFID",
1058 "HLT_InDetTrigParticleCreation_Tau_EFID"};
1059
1060 int ntag=7;
1061
1062 StatusCode returnsc=StatusCode::SUCCESS;
1063
1064 for (int itag=0; itag<ntag; itag++){
1065 const Rec::TrackParticleContainer* pTrackParticleC = nullptr;
1066 StatusCode sc = evtStore()->retrieve(pTrackParticleC, trackPtags[itag]);
1067 if (sc.isFailure()) {
1068 ATH_MSG_INFO("REGTEST No TrackParticleContainer found with tag " << trackPtags[itag]);
1069 continue;
1070 }
1071 ATH_MSG_INFO("TrackParticleContainer found with tag " << trackPtags[itag]
1072 << " and size " << pTrackParticleC->size());
1073
1074 Rec::TrackParticleContainer::const_iterator trackItr = pTrackParticleC->begin();
1075 Rec::TrackParticleContainer::const_iterator trackItrE = pTrackParticleC->end();
1076 for (int ind=1; trackItr != trackItrE; ++trackItr, ind++) {
1077 const Rec::TrackParticle * trackParticle = (*trackItr);
1078 ATH_MSG_INFO(" TrackParticle " << ind << " charge "
1079 << trackParticle->charge() << " p "
1080 << trackParticle->p()<< " eta " << trackParticle->eta()
1081 << " phi " << trackParticle->phi());
1082
1084 const Trk::Track * track = trackParticle->originalTrack();
1085 if ( track ) {
1086 ATH_MSG_INFO(" Got attached track");
1087 const Trk::TrackParameters* perigee = track->perigeeParameters();
1088 if (perigee) {
1089 const auto& parameterVector = perigee->parameters();
1090 ATH_MSG_INFO(" q/P " << parameterVector[Trk::qOverP] <<
1091 " theta " << parameterVector[Trk::theta] <<
1092 " phi " <<parameterVector[Trk::phi]);
1093 } else {
1094 ATH_MSG_INFO(" No perigee attached to track");
1095 }
1096
1097 } else {
1099 ATH_MSG_DEBUG(" No attached track");
1101 ATH_MSG_WARNING(" Max attached track warning reached, no further warnings given");
1102 }
1104 }
1105 }
1106
1108 const Trk::VxCandidate * vertex = trackParticle->reconstructedVertex();
1109 if ( vertex ) {
1110 const Trk::RecVertex& vtx = vertex->recVertex();
1111 const Amg::Vector3D& position = vtx.position();
1112 ATH_MSG_INFO(" vertex position (" << position[0] << ", " <<
1113 position[1] << ", " << position[2] << ") ");
1114 } else {
1116 ATH_MSG_DEBUG(" No attached vertex");
1118 ATH_MSG_WARNING(" Max attached vertex warning reached, no further warnings given");
1119 }
1121 }
1122 }
1123
1124 const Trk::Perigee* perigee = trackParticle->measuredPerigee();
1125 if (perigee) {
1126 const auto& parameters = perigee->parameters();
1127 ATH_MSG_INFO("Trk::Perigee parameters:");
1128 ATH_MSG_INFO(" * d_0 : "<< parameters[Trk::d0] );
1129 ATH_MSG_INFO(" * z_0 : "<< parameters[Trk::z0] );
1130 ATH_MSG_INFO(" * phi : "<< parameters[Trk::phi] );
1131 ATH_MSG_INFO(" * Theta : "<< parameters[Trk::theta] );
1132 ATH_MSG_INFO(" * q/p : "<< parameters[Trk::qOverP] );
1133 } else {
1134 ATH_MSG_WARNING(" No attached perigee");
1135 }
1137 const Trk::TrackSummary* summary = trackParticle->trackSummary();
1138 if (summary) {
1139 ATH_MSG_DEBUG("Track summary information:");
1140 ATH_MSG_DEBUG(" * Number of B layer hits : "<<summary->get(Trk::numberOfBLayerHits));
1141 ATH_MSG_DEBUG(" * Number of pixel hits : "<<summary->get(Trk::numberOfPixelHits));
1142 ATH_MSG_DEBUG(" * Number of SCT hits : "<<summary->get(Trk::numberOfSCTHits));
1143 ATH_MSG_DEBUG(" * Number of TRT hits : "<<summary->get(Trk::numberOfTRTHits));
1144 }
1145 }
1146 }
1147 return returnsc;
1148}
static const int maxRepWarnings
Adapted from code by A.Hamilton to check trigger EDM; R.Goncalo 21/11/07.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
virtual double phi() const =0
phi in [-pi,pi[
virtual double p() const =0
momentum magnitude
virtual double eta() const =0
pseudo rapidity
const Trk::Perigee * measuredPerigee() const
Accessor method for Perigee.
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
const Track * originalTrack() const
Return pointer to associated track.
double charge() const
Return charge of the particle.
const VxCandidate * reconstructedVertex() const
Get a pointer to the primary vertex.
const Amg::Vector3D & position() const
return position of vertex
Definition Vertex.cxx:63
Eigen::Matrix< double, 3, 1 > Vector3D
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
@ phi
Definition ParamDefs.h:75
@ d0
Definition ParamDefs.h:63
@ z0
Definition ParamDefs.h:64
const Amg::Vector3D & position() const
Method to retrieve the position of the Intersection.
ParametersBase< TrackParametersDim, Charged > TrackParameters
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfBLayerHits
these are the hits in the 0th pixel layer?

◆ dumpTrigComposite()

StatusCode TrigEDMChecker::dumpTrigComposite ( )
private

Dump information on TrigComposite collections.

Only dumpTrigCompositeContainers are dumped unless doDumpAllTrigComposite is set

Definition at line 3952 of file TrigEDMChecker.cxx.

3952 {
3953 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigCompositeContainer DUMP===========" );
3954
3957 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
3958 evtStore()->keys(TrigCompositeCLID, m_dumpTrigCompositeContainers);
3959 std::string typeNameTC;
3960 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
3961 ATH_MSG_DEBUG("dumpTrigComposite got " << m_dumpTrigCompositeContainers.size() << " keys for " << typeNameTC);
3962 } else {
3963 ATH_MSG_DEBUG("Using supplied " << m_dumpTrigCompositeContainers.size() << " keys");
3964 }
3965
3966 for ( const std::string & key: m_dumpTrigCompositeContainers ) {
3967 // get the collection
3969 ATH_MSG_WARNING("Absent TrigCompositeContainer: " << key );
3970 continue;
3971 }
3972 ATH_MSG_DEBUG( "#################### Dumping container of : " << key );
3973 const xAOD::TrigCompositeContainer* cont= nullptr;
3974 ATH_CHECK( evtStore()->retrieve( cont, key ) );
3975
3976 size_t count = 0;
3977 for ( auto tc: *cont ) {
3978 ATH_MSG_DEBUG("########## ELEMENT " << count++);
3979 ATH_MSG_DEBUG(*tc);
3980 // Get the objects we know of
3981 for (size_t i = 0; i < tc->linkColNames().size(); ++i) ATH_CHECK(checkTrigCompositeElementLink(tc, i));
3982 }
3983 }
3984 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigCompositeContainer DUMP===========" );
3985 return StatusCode::SUCCESS;
3986}
StatusCode checkTrigCompositeElementLink(const xAOD::TrigComposite *tc, size_t element)
Dump details on element links within TrigComposites.
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 2179 of file TrigEDMChecker.cxx.

2179 {
2180
2181 ATH_MSG_DEBUG("in dumpTrigEFBphysContainer()");
2182
2183 ATH_MSG_INFO("REGTEST ==========START of TrigEFBphysContainer DUMP===========");
2184
2185 std::string EFBphysTags[]={"HLT_xAOD__TrigBphysContainer_EFBMuMuFex",
2186 "HLT_xAOD__TrigBphysContainer_EFBMuMuXFex",
2187 "HLT_xAOD__TrigBphysContainer_EFDsPhiPiFex",
2188 "HLT_xAOD__TrigBphysContainer_EFMuPairs",
2189 "HLT_xAOD__TrigBphysContainer_EFMultiMuFex",
2190 "HLT_xAOD__TrigBphysContainer_EFTrackMass"
2191 };
2192
2193 int ntag= (int) sizeof(EFBphysTags) / sizeof(EFBphysTags[0]);
2194
2195
2196 for (int itag=0; itag<ntag; itag++){
2197 const xAOD::TrigBphysContainer* trigEFBphys;
2198 StatusCode sc = evtStore()->retrieve(trigEFBphys, EFBphysTags[itag]);
2199 if (sc.isFailure()) {
2200 ATH_MSG_INFO("REGTEST No TrigEFBphysContainer found with tag " << EFBphysTags[itag]);
2201 continue;
2202 }
2203
2204 ATH_MSG_INFO("REGTEST TrigEFBphysContainer found with tag " << EFBphysTags[itag]
2205 << " and size " << trigEFBphys->size());
2206
2207 // for (int i=0; trigEFBphys != lastTrigEFBphys; ++trigEFBphys, ++i) {
2208
2209 //mLog << MSG::INFO << "REGTEST Looking at TrigEFBphysContainer " << i << endmsg;
2210
2211 xAOD::TrigBphysContainer::const_iterator EFBphysItr = trigEFBphys->begin();
2212 xAOD::TrigBphysContainer::const_iterator EFBphysItrE = trigEFBphys->end();
2213
2214 for (int j=0; EFBphysItr != EFBphysItrE; ++EFBphysItr, ++j ) {
2215
2216 ATH_MSG_INFO("REGTEST Looking at TrigEFBphys " << j);
2217
2218 ATH_MSG_INFO("REGTEST TrigEFBphys->eta() returns " << (*EFBphysItr)->eta());
2219 ATH_MSG_INFO("REGTEST TrigEFBphys->phi() returns " << (*EFBphysItr)->phi());
2220 ATH_MSG_INFO("REGTEST TrigEFBphys->mass() returns " << (*EFBphysItr)->mass());
2221 ATH_MSG_INFO("REGTEST TrigEFBphys->fitmass() returns " << (*EFBphysItr)->fitmass());
2222 // ATH_MSG_INFO("REGTEST TrigEFBphys->isValid() returns " << (*EFBphysItr)->isValid());
2223 ATH_MSG_INFO("REGTEST TrigEFBphys->roiId() returns " << (*EFBphysItr)->roiId());
2224 ATH_MSG_INFO("REGTEST TrigEFBphys->particleType() returns " << (*EFBphysItr)->particleType());
2225
2226 if( (*EFBphysItr)->secondaryDecay() != NULL){
2227 const xAOD::TrigBphys * psecond =(*EFBphysItr)->secondaryDecay();
2228 ATH_MSG_INFO("REGTEST Secondary decay info: ");
2229 ATH_MSG_INFO("REGTEST pSecondDecay->eta() returns " << psecond->eta());
2230 ATH_MSG_INFO("REGTEST pSecondDecay->phi() returns " << psecond->phi());
2231 ATH_MSG_INFO("REGTEST pSecondDecay->mass() returns " << psecond->mass());
2232 ATH_MSG_INFO("REGTEST pSecondDecay->fitmass() returns " << psecond->fitmass());
2233 // ATH_MSG_INFO("REGTEST pSecondDecay->isValid() returns " << (*EFBphysItr)->secondaryDecayLink()->isValid());
2234 ATH_MSG_INFO("REGTEST pSecondDecay->roiId() returns " << psecond->roiId());
2235 ATH_MSG_INFO("REGTEST pSecondDecay->particleType() returns " << psecond->particleType());
2236
2237 } // end if secondary exists
2238
2239
2240
2241 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*EFBphysItr)->trackParticleLinks();
2242 if (trackVector.size() != 0) {
2243 ATH_MSG_INFO(" REGTEST got track vector size: " << trackVector.size());
2244 } else {
2245 ATH_MSG_INFO(" REGTEST no track vector!!! " );
2246 }
2247 std::vector<ElementLink<xAOD::TrackParticleContainer> >::const_iterator trkIt=trackVector.begin();
2248 for (int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
2249 if (!(trkIt->isValid())) {
2250 ATH_MSG_WARNING("TrackParticleContainer::Invalid ElementLink to track ");
2251 continue;
2252 }
2253 //const Trk::Perigee* trackPerigee=(*(*trkIt))->measuredPerigee();
2254 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
2255
2256 // msg() << MSG::VERBOSE << "track, iterator, pointer " << itrk << " " << *trkIt << " " << *(*trkIt) << endmsg;
2257 double phi = trackPerigee->parameters()[Trk::phi];
2258 double theta = trackPerigee->parameters()[Trk::theta];
2259 double px = trackPerigee->momentum()[Trk::px];
2260 double py = trackPerigee->momentum()[Trk::py];
2261 double pt = sqrt(px*px + py*py);
2262 double eta = -std::log(tan(theta/2));
2263
2264 ATH_MSG_INFO("track " << itrk << " pt phi eta " << pt << " " <<
2265 phi << " " << eta);
2266 }
2267
2268 }
2269 }
2270 ATH_MSG_INFO("REGTEST ==========END of TrigEFBphysContainer DUMP===========");
2271 ATH_MSG_DEBUG("dumpTrigEFBphysContainer() succeeded");
2272
2273 return StatusCode::SUCCESS;
2274}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Scalar theta() const
theta method
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
@ 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 2277 of file TrigEDMChecker.cxx.

2277 {
2278
2279 ATH_MSG_DEBUG("in dumpTrigL2BphysContainer()");
2280 ATH_MSG_INFO("REGTEST ==========START of TrigL2BphysContainer DUMP===========");
2281
2282 std::string L2BphysTags[]={"HLT_xAOD__TrigBphysContainer_L2BMuMuFex",
2283 "HLT_xAOD__TrigBphysContainer_L2BMuMuXFex",
2284 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexDs",
2285 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexPhi",
2286 "HLT_xAOD__TrigBphysContainer_L2JpsieeFex",
2287 "HLT_xAOD__TrigBphysContainer_L2MultiMuFex",
2288 "HLT_xAOD__TrigBphysContainer_L2TrackMass",
2289 };
2290 const int ntag = (int) sizeof(L2BphysTags) / sizeof(L2BphysTags[0]);
2291
2292
2293 for (int itag=0; itag<ntag; itag++){
2294 const xAOD::TrigBphysContainer* trigL2Bphys;
2295 StatusCode sc = evtStore()->retrieve(trigL2Bphys, L2BphysTags[itag]);
2296 if (sc.isFailure()) {
2297 ATH_MSG_INFO("REGTEST No TrigL2BphysContainer found with tag " << L2BphysTags[itag]);
2298 continue;
2299 }
2300
2301 ATH_MSG_INFO("REGTEST TrigL2BphysContainer found with tag " << L2BphysTags[itag]
2302 << " and size " << trigL2Bphys->size());
2303
2304 // for (int i=0; trigL2Bphys != lastTrigL2Bphys; ++trigL2Bphys, ++i) {
2305
2306 // mLog << MSG::INFO << "REGTEST Looking at TrigL2BphysContainer " << i << endmsg;
2307
2308 xAOD::TrigBphysContainer::const_iterator L2BphysItr = trigL2Bphys->begin();
2309 xAOD::TrigBphysContainer::const_iterator L2BphysItrE = trigL2Bphys->end();
2310
2311 for (int j=0; L2BphysItr != L2BphysItrE; ++L2BphysItr, ++j ) {
2312
2313 ATH_MSG_INFO("REGTEST Looking at TrigL2Bphys " << j);
2314
2315 ATH_MSG_INFO("REGTEST TrigL2Bphys->eta() returns " << (*L2BphysItr)->eta());
2316 ATH_MSG_INFO("REGTEST TrigL2Bphys->phi() returns " << (*L2BphysItr)->phi());
2317 ATH_MSG_INFO("REGTEST TrigL2Bphys->mass() returns " << (*L2BphysItr)->mass());
2318 ATH_MSG_INFO("REGTEST TrigL2Bphys->fitmass() returns " << (*L2BphysItr)->fitmass());
2319 // ATH_MSG_INFO("REGTEST TrigL2Bphys->isValid() returns " << (*L2BphysItr)->isValid());
2320 ATH_MSG_INFO("REGTEST TrigL2Bphys->roiId() returns " << (*L2BphysItr)->roiId());
2321 ATH_MSG_INFO("REGTEST TrigL2Bphys->particleType() returns " << (*L2BphysItr)->particleType());
2322
2323 if( (*L2BphysItr)->secondaryDecay() != NULL){
2324 const xAOD::TrigBphys * psecond =(*L2BphysItr)->secondaryDecay();
2325 ATH_MSG_INFO("REGTEST Secondary decay info: ");
2326 ATH_MSG_INFO("REGTEST pSecondDecay->eta() returns " << psecond->eta());
2327 ATH_MSG_INFO("REGTEST pSecondDecay->phi() returns " << psecond->phi());
2328 ATH_MSG_INFO("REGTEST pSecondDecay->mass() returns " << psecond->mass());
2329 ATH_MSG_INFO("REGTEST pSecondDecay->fitmass() returns " << psecond->fitmass());
2330 // ATH_MSG_INFO("REGTEST pSecondDecay->isValid() returns " << (*L2BphysItr)->secondaryDecayLink()->isValid());
2331 ATH_MSG_INFO("REGTEST pSecondDecay->roiId() returns " << psecond->roiId());
2332 ATH_MSG_INFO("REGTEST pSecondDecay->particleType() returns " << psecond->particleType());
2333 } // end if secondary exists
2334
2335 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*L2BphysItr)->trackParticleLinks();
2336 if (trackVector.size() != 0) {
2337 ATH_MSG_INFO(" REGTEST got track vector size: " << trackVector.size());
2338 } else {
2339 ATH_MSG_INFO(" REGTEST no track vector!!! " );
2340 }
2341 std::vector<ElementLink<xAOD::TrackParticleContainer> >::const_iterator trkIt=trackVector.begin();
2342 for (int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
2343 if (!(trkIt->isValid())) {
2344 ATH_MSG_WARNING("TrackParticleContainer::Invalid ElementLink to track ");
2345 continue;
2346 }
2347 //const Trk::Perigee* trackPerigee=(*(*trkIt))->measuredPerigee();
2348 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
2349
2350 // msg() << MSG::VERBOSE << "track, iterator, pointer " << itrk << " " << *trkIt << " " << *(*trkIt) << endmsg;
2351 double phi = trackPerigee->parameters()[Trk::phi];
2352 double theta = trackPerigee->parameters()[Trk::theta];
2353 double px = trackPerigee->momentum()[Trk::px];
2354 double py = trackPerigee->momentum()[Trk::py];
2355 double pt = sqrt(px*px + py*py);
2356 double eta = -std::log(tan(theta/2));
2357
2358 ATH_MSG_INFO("track " << itrk << " pt phi eta " << pt << " " <<
2359 phi << " " << eta);
2360 }
2361 }
2362 }
2363
2364 ATH_MSG_INFO("REGTEST ==========END of TrigL2BphysContainer DUMP===========");
2365 ATH_MSG_DEBUG("dumpTrigL2BphysContainer() succeeded");
2366
2367 return StatusCode::SUCCESS;
2368}

◆ dumpTrigPassBits()

StatusCode TrigEDMChecker::dumpTrigPassBits ( )
private

Definition at line 570 of file TrigEDMChecker.cxx.

570 {
571 const std::string name="HLT_xAOD__TrigPassBitsContainer_passbits";
572 const xAOD::TrigPassBitsContainer *xbitscont=nullptr;
573 StatusCode sc = evtStore()->retrieve(xbitscont,name);
574 if (sc.isFailure() ){
575 ATH_MSG_INFO("Cannot retrieve TrigPassBits");
576 }
577 else {
578 ATH_MSG_INFO("Size of PassBits container : " << xbitscont->size());
579 for(const auto bits:*xbitscont){
580 if(bits==nullptr){
581 ATH_MSG_INFO("TrigPassBits point nullptr ");
582 continue;
583 }
584 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
585 }
586
587 for(const xAOD::TrigPassBits* bits : *xbitscont){
588 if(bits==nullptr){
589 ATH_MSG_INFO("TrigPassBits point nullptr ");
590 continue;
591 }
592 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
593 }
594 }
595 return StatusCode::SUCCESS;
596}
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 598 of file TrigEDMChecker.cxx.

599{
600 ATH_MSG_INFO("MinBias in dumpTrigSpacePointCounts()");
601
602 std::string METTag="HLT_xAOD__TrigSpacePointCountsContainer_spacepoints";
603
604 const xAOD::TrigSpacePointCountsContainer* SpacePointCountsCont=0;
605 StatusCode sc = evtStore()->retrieve(SpacePointCountsCont,METTag);
606
607 if (sc.isFailure())
608 ATH_MSG_INFO("failed to retrieve " << METTag);
609 else {
610 ATH_MSG_INFO("Accessing " << METTag << " with " << SpacePointCountsCont->size() << " elements");
611
612 std::string s; char buff[128];
613 std::vector<float> getVec;
614 float sum;
615
616 // Loop over container content
617 for(uint i = 0; i < SpacePointCountsCont->size(); i++) {
618 getVec = SpacePointCountsCont->at(i)->contentsPixelClusEndcapC();
619 sum = 0.;
620 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
621 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusEndcapC() = %10.2f ", s.c_str(), sum );
622 ATH_MSG_INFO(buff);
623
624 getVec = SpacePointCountsCont->at(i)->contentsPixelClusBarrel();
625 sum = 0.;
626 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
627 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusBarrel() = %10.2f ", s.c_str(), sum );
628 ATH_MSG_INFO(buff);
629
630 getVec = SpacePointCountsCont->at(i)->contentsPixelClusEndcapA();
631 sum = 0.;
632 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
633 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusEndcapA() = %10.2f ", s.c_str(), sum );
634 ATH_MSG_INFO(buff);
635
636 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotBins() = %u ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotBins() );
637 ATH_MSG_INFO(buff);
638
639 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotMin() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotMin() );
640 ATH_MSG_INFO(buff);
641
642 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotMax() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotMax() );
643 ATH_MSG_INFO(buff);
644
645 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeBins() = %u ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeBins() );
646 ATH_MSG_INFO(buff);
647
648 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeMin() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeMin() );
649 ATH_MSG_INFO(buff);
650
651 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeMax() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeMax() );
652 ATH_MSG_INFO(buff);
653
654 snprintf(buff, sizeof(buff), "REGTEST %s sctSpEndcapC() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpEndcapC() );
655 ATH_MSG_INFO(buff);
656
657 snprintf(buff, sizeof(buff), "REGTEST %s sctSpBarrel() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpBarrel() );
658 ATH_MSG_INFO(buff);
659
660 snprintf(buff, sizeof(buff), "REGTEST %s sctSpEndcapA() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpEndcapA() );
661 ATH_MSG_INFO(buff);
662 }
663 }
664}
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 666 of file TrigEDMChecker.cxx.

666 {
667 ATH_MSG_INFO("MinBias in dumpTrigT2MBTSBits()");
668
669 std::string METTag="HLT_xAOD__TrigT2MbtsBitsContainer_T2Mbts";
670
671 const xAOD::TrigT2MbtsBitsContainer* T2MbtsBitsCont=0;
672 StatusCode sc = evtStore()->retrieve(T2MbtsBitsCont,METTag);
673
674 if (sc.isFailure())
675 ATH_MSG_INFO("failed to retrieve " << METTag);
676 else {
677 ATH_MSG_INFO("Accessing " << METTag << " with " << T2MbtsBitsCont->size() << " elements");
678
679 std::string s; char buff[380];
680 std::vector<float> getVec;
681 float sum;
682
683 // Loop over container content
684 for(uint i = 0; i < T2MbtsBitsCont->size(); i++) {
685 getVec = T2MbtsBitsCont->at(i)->triggerEnergies();
686 sum = 0.;
687 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
688 snprintf(buff, sizeof(buff), "REGTEST %s SUM of triggerEnergies() = %10.2f ", s.c_str(), sum );
689 ATH_MSG_INFO(buff);
690
691 getVec = T2MbtsBitsCont->at(i)->triggerTimes();
692 sum = 0.;
693 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
694 snprintf(buff, sizeof(buff), "REGTEST %s SUM of triggerTimes() = %10.2f ", s.c_str(), sum );
695 ATH_MSG_INFO(buff);
696 }
697 }
698}
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 734 of file TrigEDMChecker.cxx.

734 {
735 ATH_MSG_INFO("MinBias in dumpTrigTrackCounts()");
736
737 std::string METTag="HLT_xAOD__TrigTrackCountsContainer_trackcounts";
738
739 const xAOD::TrigTrackCountsContainer* T2TrackCountsCont=0;
740 StatusCode sc = evtStore()->retrieve(T2TrackCountsCont,METTag);
741
742 if (sc.isFailure())
743 ATH_MSG_INFO("failed to retrieve " << METTag);
744 else {
745 ATH_MSG_INFO("Accessing " << METTag << " with " << T2TrackCountsCont->size() << " elements");
746
747 std::string s; char buff[380];
748 std::vector<float> getVec;
749 float sum;
750
751 // Loop over container content
752 for(uint i = 0; i < T2TrackCountsCont->size(); i++) {
753 getVec = T2TrackCountsCont->at(i)->z0_pt();
754 sum = 0.;
755 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
756 snprintf(buff, sizeof(buff), "REGTEST %s SUM of z0_pt = %10.2f ", s.c_str(), sum );
757 ATH_MSG_INFO(buff);
758
759 getVec = T2TrackCountsCont->at(i)->eta_phi();
760 sum = 0.;
761 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
762 snprintf(buff, sizeof(buff), "REGTEST %s SUM of eta_phi() = %10.2f ", s.c_str(), sum );
763 ATH_MSG_INFO(buff);
764
765 snprintf(buff, sizeof(buff), "REGTEST %s z0Bins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->z0Bins() );
766 ATH_MSG_INFO(buff);
767
768 snprintf(buff, sizeof(buff), "REGTEST %s z0Min() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->z0Min() );
769 ATH_MSG_INFO(buff);
770
771 snprintf(buff, sizeof(buff), "REGTEST %s z0Max() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->z0Max() );
772 ATH_MSG_INFO(buff);
773
774 snprintf(buff, sizeof(buff), "REGTEST %s ptBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->ptBins() );
775 ATH_MSG_INFO(buff);
776
777 snprintf(buff, sizeof(buff), "REGTEST %s ptMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->ptMin() );
778 ATH_MSG_INFO(buff);
779
780 snprintf(buff, sizeof(buff), "REGTEST %s ptMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->ptMax() );
781 ATH_MSG_INFO(buff);
782
783 snprintf(buff, sizeof(buff), "REGTEST %s etaBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->etaBins() );
784 ATH_MSG_INFO(buff);
785
786 snprintf(buff, sizeof(buff), "REGTEST %s etaMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->etaMin() );
787 ATH_MSG_INFO(buff);
788
789 snprintf(buff, sizeof(buff), "REGTEST %s etaMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->etaMax() );
790 ATH_MSG_INFO(buff);
791
792 snprintf(buff, sizeof(buff), "REGTEST %s phiBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->phiBins() );
793 ATH_MSG_INFO(buff);
794
795 snprintf(buff, sizeof(buff), "REGTEST %s phiMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->phiMin() );
796 ATH_MSG_INFO(buff);
797
798 snprintf(buff, sizeof(buff), "REGTEST %s phiMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->phiMax() );
799 ATH_MSG_INFO(buff);
800 }
801 }
802}
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 700 of file TrigEDMChecker.cxx.

700 {
701 ATH_MSG_INFO("MinBias in dumpTrigVertexCounts()");
702
703 std::string METTag="HLT_xAOD__TrigVertexCountsContainer_vertexcounts";
704
705 const xAOD::TrigVertexCountsContainer* T2VertexCountsCont=0;
706 StatusCode sc = evtStore()->retrieve(T2VertexCountsCont,METTag);
707
708 if (sc.isFailure())
709 ATH_MSG_INFO("failed to retrieve " << METTag);
710 else {
711 ATH_MSG_INFO("Accessing " << METTag << " with " << T2VertexCountsCont->size() << " elements");
712
713 std::string s; char buff[380];
714 std::vector<float> fgetVec;
715 float fsum(0.);
716 std::vector<unsigned int> ugetVec;
717 unsigned int usum(0);
718
719 // Loop over container content
720 for(uint i = 0; i < T2VertexCountsCont->size(); i++) {
721 ugetVec = T2VertexCountsCont->at(i)->vtxNtrks();
722 for (uint j = 0; j < ugetVec.size(); ++j) usum += ugetVec[j];
723 snprintf(buff, sizeof(buff), "REGTEST %s SUM of vtxNtrks() = %u ", s.c_str(), usum );
724 ATH_MSG_INFO(buff);
725
726 fgetVec = T2VertexCountsCont->at(i)->vtxTrkPtSqSum();
727 for (uint j = 0; j < fgetVec.size(); ++j) fsum += fgetVec[j];
728 snprintf(buff, sizeof(buff), "REGTEST %s SUM of vtxTrkPtSqSum() = %10.2f ", s.c_str(), fsum );
729 ATH_MSG_INFO(buff);
730 }
731 }
732}
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 1749 of file TrigEDMChecker.cxx.

1749 {
1750
1751 ATH_MSG_DEBUG("In dumpxAODElectronContainer");
1752
1753 ATH_MSG_INFO( "REGTEST ==========START of xAOD::ElectronContainer DUMP===========" );
1754
1755 const xAOD::ElectronContainer* elCont=0;
1756 StatusCode sc = evtStore()->retrieve(elCont,"HLT_xAOD__ElectronContainer_egamma_Electrons");
1757 if (sc.isFailure()) {
1758 ATH_MSG_INFO("REGTEST No Electron container HLT_xAOD__ElectronContainer_egamma_Electrons");
1759 return StatusCode::SUCCESS;
1760 }
1761 float val_float=-99;
1762 unsigned int isEMbit=0;
1763 bool pid=false;
1764 //DEBUG output for Egamma container
1765 ATH_MSG_INFO(" REGTEST: xAOD Reconstruction variables: ");
1766 // //Cluster and ShowerShape info
1767 //
1768 static const SG::AuxElement::Accessor< float > accLH("LHValue");
1769 static const SG::AuxElement::Accessor< float > accLHCalo("LHCaloValue");
1770 for (const auto eg : *elCont){
1771 //REGTEST printout
1772 if (eg) {
1773 ATH_MSG_INFO(" REGTEST: egamma energy: " << eg->e() );
1774 ATH_MSG_INFO(" REGTEST: egamma eta: " << eg->eta() );
1775 ATH_MSG_INFO(" REGTEST: egamma phi: " << eg->phi() );
1776 if(eg->selectionisEM(isEMbit,"isEMVLoose"))
1777 ATH_MSG_INFO(" REGTEST: isEMVLoose " << std::hex << isEMbit << std::dec);
1778 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1779 if(eg->selectionisEM(isEMbit,"isEMLoose"))
1780 ATH_MSG_INFO(" REGTEST: isEMLoose " << std::hex << isEMbit << std::dec);
1781 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1782 if(eg->selectionisEM(isEMbit,"isEMMedium"))
1783 ATH_MSG_INFO(" REGTEST: isEMMedium " << std::hex << isEMbit << std::dec);
1784 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1785 if(eg->selectionisEM(isEMbit,"isEMTight"))
1786 ATH_MSG_INFO(" REGTEST: isEMTight " << std::hex << isEMbit << std::dec);
1787 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1788 if(eg->selectionisEM(isEMbit,"isEMLHVLoose"))
1789 ATH_MSG_INFO(" REGTEST: isEMLHVLoose " << std::hex << isEMbit << std::dec);
1790 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1791 if(eg->selectionisEM(isEMbit,"isEMLHLoose"))
1792 ATH_MSG_INFO(" REGTEST: isEMLHLoose " << std::hex << isEMbit << std::dec);
1793 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1794 if(eg->selectionisEM(isEMbit,"isEMLHMedium"))
1795 ATH_MSG_INFO(" REGTEST: isEMLHMedium " << std::hex << isEMbit << std::dec);
1796 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1797 if(eg->selectionisEM(isEMbit,"isEMLHTight"))
1798 ATH_MSG_INFO(" REGTEST: isEMLHTight " << std::hex << isEMbit << std::dec);
1799 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1800 if(accLH.isAvailable(*eg))
1801 ATH_MSG_INFO(" REGTEST: LHValue " << accLH(*eg));
1802 else
1803 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1804 if(accLHCalo.isAvailable(*eg))
1805 ATH_MSG_INFO(" REGTEST: LHValue " << accLHCalo(*eg));
1806 else
1807 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1808 if(eg->passSelection(pid,"LHVLoose"))
1809 ATH_MSG_INFO(" REGTEST: LHVLoose " << pid);
1810 else
1811 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1812 if(eg->passSelection(pid,"LHLoose"))
1813 ATH_MSG_INFO(" REGTEST: LHLoose " << pid);
1814 else
1815 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1816 if(eg->passSelection(pid,"LHMedium"))
1817 ATH_MSG_INFO(" REGTEST: LHMedium " << pid);
1818 else
1819 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1820 if(eg->passSelection(pid,"LHTight"))
1821 ATH_MSG_INFO(" REGTEST: LHTight " << pid);
1822 else
1823 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1824 } else{
1825 ATH_MSG_INFO(" REGTEST: problems with egamma pointer" );
1826 return StatusCode::SUCCESS;
1827 }
1828 ATH_MSG_INFO(" REGTEST: caloCluster variables ");
1829 if (eg->caloCluster()) {
1830 ATH_MSG_INFO(" REGTEST: egamma cluster transverse energy: " << eg->caloCluster()->et() );
1831 ATH_MSG_INFO(" REGTEST: egamma cluster eta: " << eg->caloCluster()->eta() );
1832 ATH_MSG_INFO(" REGTEST: egamma cluster phi: " << eg->caloCluster()->phi() );
1833 double tmpeta = -999.;
1834 double tmpphi = -999.;
1835 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::ETACALOFRAME,tmpeta);
1836 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::PHICALOFRAME,tmpphi);
1837 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. etaCalo = " << tmpeta);
1838 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. phiCalo = " << tmpphi);
1839 } else{
1840 ATH_MSG_INFO(" REGTEST: problems with egamma cluster pointer" );
1841 }
1842 ATH_MSG_INFO("REGTEST: Check the original (uncalibrated)");
1843 static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
1844 if (!orig.isAvailable(*eg->caloCluster()) || !orig(*eg->caloCluster()).isValid()){
1845 ATH_MSG_INFO("Problem with original cluster link");
1846 }
1847 else {
1848 const xAOD::CaloCluster *origClus = *orig(*eg->caloCluster());
1849 ATH_MSG_INFO("REGTEST:: Compare new and old clusters");
1850 ATH_MSG_INFO("REGTEST:: Original Cluster e,eta,phi" << origClus->e() << " " << origClus->eta() << " " << origClus->phi());
1851 ATH_MSG_INFO("REGTEST:: MVA Cluster e,eta,phi" << eg->caloCluster()->e() << " " << eg->caloCluster()->eta() << " " << eg->caloCluster()->phi());
1852 }
1853 ATH_MSG_INFO(" REGTEST: trackmatch variables ");
1854 if(eg->trackParticle()){
1855 ATH_MSG_INFO(" REGTEST: pt= " << eg->trackParticle()->pt());
1856 ATH_MSG_INFO(" REGTEST: charge= " << eg->trackParticle()->charge());
1857 ATH_MSG_INFO(" REGTEST: E/p= " << eg->caloCluster()->et() / eg->trackParticle()->pt() );
1858 eg->trackCaloMatchValue(val_float,xAOD::EgammaParameters::deltaEta1);
1859 ATH_MSG_INFO(" REGTEST: Delta eta 1st sampling= " << val_float);
1860 eg->trackCaloMatchValue(val_float,xAOD::EgammaParameters::deltaPhi2);
1861 ATH_MSG_INFO(" REGTEST: Delta phi 2nd sampling= " << val_float);
1862 } else{
1863 ATH_MSG_INFO(" REGTEST: no electron eg->trackParticle() pointer");
1864 }
1865
1866 //msg() << MSG::VERBOSE << " REGTEST: cluster variables " << endmsg;
1867 //clus = eg->caloCluster();
1868 ATH_MSG_INFO(" REGTEST: EMShower variables ");
1869 eg->showerShapeValue(val_float,xAOD::EgammaParameters::ethad);
1870 ATH_MSG_INFO(" REGTEST: ethad = " << val_float);
1871 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e011);
1872 ATH_MSG_INFO(" REGTEST: e011 = " << val_float);
1873 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e132);
1874 ATH_MSG_INFO(" REGTEST: e132 = " << val_float);
1875 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e237);
1876 ATH_MSG_INFO(" REGTEST: e237 = " << val_float);
1877 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e335);
1878 ATH_MSG_INFO(" REGTEST: e335 = " << val_float);
1879 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2ts1);
1880 ATH_MSG_INFO(" REGTEST: e2ts1 = " << val_float);
1881 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2tsts1);
1882 ATH_MSG_INFO(" REGTEST: e2tsts1 = " << val_float);
1883 eg->isolationValue(val_float,xAOD::Iso::ptcone20);
1884 ATH_MSG_INFO(" REGTEST: ptcone20 = " << val_float);
1885 eg->isolationValue(val_float,xAOD::Iso::ptcone30);
1886 ATH_MSG_INFO(" REGTEST: ptcone30 = " << val_float);
1887 eg->isolationValue(val_float,xAOD::Iso::ptcone40);
1888 ATH_MSG_INFO(" REGTEST: ptcone40 = " << val_float);
1889 eg->isolationValue(val_float,xAOD::Iso::etcone20);
1890 ATH_MSG_INFO(" REGTEST: etcone20 = " << val_float);
1891 eg->isolationValue(val_float,xAOD::Iso::etcone30);
1892 ATH_MSG_INFO(" REGTEST: etcone30 = " << val_float);
1893 eg->isolationValue(val_float,xAOD::Iso::etcone40);
1894 ATH_MSG_INFO(" REGTEST: etcone40 = " << val_float);
1895 //DEBUG info for Electrons which by definition have a track match
1896
1897 }
1898 ATH_MSG_INFO( "REGTEST ==========END of xAOD::ElectronContainer DUMP===========" );
1899
1900 return StatusCode::SUCCESS;
1901
1902}
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 2374 of file TrigEDMChecker.cxx.

2374 {
2375
2376 ATH_MSG_DEBUG("in dumpxAODJetContainer()");
2377
2378 ATH_MSG_INFO("REGTEST ==========START of xAOD::JetContainer DUMP===========");
2379
2380 std::string containerName[30] = {"HLT_xAOD__JetContainer_a4tcemjesFS",
2381 "HLT_xAOD__JetContainer_a4tcemsubFS",
2382 "HLT_xAOD__JetContainer_a4tcemsubjesFS",
2383 "HLT_xAOD__JetContainer_a4tcemnojcalibFS",
2384 "HLT_xAOD__JetContainer_a4tcemjesPS",
2385 "HLT_xAOD__JetContainer_a4tcemnojcalibPS",
2386 "HLT_xAOD__JetContainer_a4tclcwjesFS",
2387 "HLT_xAOD__JetContainer_a4tclcwsubFS",
2388 "HLT_xAOD__JetContainer_a4tclcwsubjesFS",
2389 "HLT_xAOD__JetContainer_a4tclcwnojcalibFS",
2390 "HLT_xAOD__JetContainer_a4tclcwjesPS",
2391 "HLT_xAOD__JetContainer_a4tclcwnojcalibPS",
2392 "HLT_xAOD__JetContainer_a4TTemnojcalibFS",
2393 "HLT_xAOD__JetContainer_a4TThadnojcalibFS",
2394 "HLT_xAOD__JetContainer_a10tcemjesFS",
2395 "HLT_xAOD__JetContainer_a10tcemsubFS",
2396 "HLT_xAOD__JetContainer_a10tcemsubjesFS",
2397 "HLT_xAOD__JetContainer_a10tcemnojcalibFS",
2398 "HLT_xAOD__JetContainer_a10tcemjesPS",
2399 "HLT_xAOD__JetContainer_a10tcemnojcalibPS",
2400 "HLT_xAOD__JetContainer_a10tclcwjesFS",
2401 "HLT_xAOD__JetContainer_a10tclcwsubFS",
2402 "HLT_xAOD__JetContainer_a10tclcwsubjesFS",
2403 "HLT_xAOD__JetContainer_a10tclcwnojcalibFS",
2404 "HLT_xAOD__JetContainer_a10tclcwjesPS",
2405 "HLT_xAOD__JetContainer_a10tclcwnojcalibPS",
2406 "HLT_xAOD__JetContainer_a10TTemnojcalibFS",
2407 "HLT_xAOD__JetContainer_a10TThadnojcalibFS",
2408 "HLT_xAOD__JetContainer_a10r_tcemsubjesFS",
2409 "HLT_xAOD__JetContainer_TrigHLTJetDSSelectorCollection"};
2410 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,
2411 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};
2412 int containerInputType[30] = {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2,
2413 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1};
2414 int containerSignalState[30] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
2415 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0};
2416 bool onefilled = false;
2417
2418 for (int icont=0; icont<30; ++icont) {
2419 //retrieve jet collection
2420 const xAOD::JetContainer* jetCont = 0;
2421 StatusCode sc = evtStore()->retrieve(jetCont, containerName[icont]) ;
2422
2423 if (sc.isFailure()) {
2424 ATH_MSG_WARNING("REGTEST Cannot retrieve jet container");
2425 continue;
2426 }
2427
2428 int jetContsize = jetCont->size();
2429 ATH_MSG_INFO("REGTEST Got jet container " << containerName[icont] << ", size: " << jetContsize);
2430 if (jetContsize != 0) {
2431 onefilled = true;
2432 int i = 0;
2433 for(const auto thisjet : *jetCont) {
2434 ++i;
2435 ATH_MSG_INFO( "REGTEST Looking at jet " << i);
2436 if (thisjet) {
2437 //checks jet variables
2438 ATH_MSG_DEBUG("REGTEST Checking jet variables");
2439 ATH_MSG_INFO( "REGTEST pt: " << thisjet->pt() );
2440 ATH_MSG_INFO( "REGTEST eta: " << thisjet->eta() );
2441 ATH_MSG_INFO( "REGTEST phi: " << thisjet->phi() );
2442 ATH_MSG_INFO( "REGTEST m: " << thisjet->m() );
2443 ATH_MSG_INFO( "REGTEST e: " << thisjet->e() );
2444 ATH_MSG_INFO( "REGTEST rapidity: " << thisjet->rapidity() );
2445 ATH_MSG_INFO( "REGTEST px: " << thisjet->px() );
2446 ATH_MSG_INFO( "REGTEST py: " << thisjet->py() );
2447 ATH_MSG_INFO( "REGTEST pz: " << thisjet->pz() );
2448 ATH_MSG_INFO( "REGTEST type: " << thisjet->type() );
2449 ATH_MSG_INFO( "REGTEST algorithm (kt: 0, cam: 1, antikt: 2, ...): " << thisjet->getAlgorithmType() << "; should be 2");
2450 if(thisjet->getAlgorithmType() != 2) ATH_MSG_WARNING("Jet algorithm different from container");
2451 ATH_MSG_INFO( "REGTEST size parameter: " << thisjet->getSizeParameter() << "; should be " << containerSizeParameter[icont]);
2452 if(thisjet->getSizeParameter() != containerSizeParameter[icont]) ATH_MSG_WARNING("Jet size different from container");
2453 ATH_MSG_INFO( "REGTEST input (LCTopo: 0, EMTopo: 1, TopoTower: 2, ...): " << thisjet->getInputType() << "; should be " << containerInputType[icont]);
2454 if(thisjet->getInputType() != containerInputType[icont]) ATH_MSG_WARNING("Jet input different from container");
2455 ATH_MSG_INFO( "REGTEST constituents signal state (uncalibrated: 0, calibrated: 1): " << thisjet->getConstituentsSignalState() << "; should be " << containerSignalState[icont]);
2456 if(thisjet->getConstituentsSignalState() != containerSignalState[icont]) ATH_MSG_WARNING("Jet constituents' signal state different from container");
2457 ATH_MSG_INFO( "REGTEST number of constituents: " << thisjet->numConstituents() );
2458
2459
2460 //checks the constituents
2461 ATH_MSG_DEBUG("REGTEST Checking jet constituents");
2462
2463 xAOD::JetConstituentVector constitCont = thisjet->getConstituents();
2464 unsigned int constitContsize = constitCont.size();
2465 ATH_MSG_INFO("REGTEST Got constituent vector, size: " << constitContsize << "; should be " << thisjet->numConstituents());
2466 if(constitContsize != thisjet->numConstituents()) ATH_MSG_WARNING("Constituents container size different from number of constituents");
2467
2468 if (constitContsize != 0) {
2469// int j = 0;
2470 // for (const auto thisconstit : constitCont) {
2471 // ++j;
2472 // ATH_MSG_INFO( "REGTEST Looking at constituent " << j);
2473 // if(thisconstit){
2474 // ATH_MSG_INFO( "REGTEST constituent pt: " << thisconstit->pt() );
2475 // ATH_MSG_INFO( "REGTEST constituent eta: " << thisconstit->eta() );
2476 // ATH_MSG_INFO( "REGTEST constituent phi: " << thisconstit->phi() );
2477 // ATH_MSG_INFO( "REGTEST constituent m: " << thisconstit->m() );
2478 // ATH_MSG_INFO( "REGTEST constituent e: " << thisconstit->e() );
2479 // ATH_MSG_INFO( "REGTEST constituent type (CaloCluster: 1, Jet: 2, ...): " << thisconstit->type() );
2480 // }
2481 // else{
2482 // ATH_MSG_WARNING("REGTEST Problem with constituent pointer");
2483 // return StatusCode::SUCCESS;
2484 // }
2485 // }
2486 // ATH_MSG_INFO("REGTEST size of constituent vector == number of displayed constituents: "<< (constitContsize == j) );
2487 // if (constitContsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2488 }
2489 // else ATH_MSG_WARNING("REGTEST This jet has 0 constituents!");
2490
2491 //checks int attributes
2492 ATH_MSG_DEBUG("REGTEST Checking int attributes");
2493 int valueint;
2494 if( thisjet->getAttribute(xAOD::JetAttribute::GhostMuonSegmentCount, valueint)) ATH_MSG_INFO("REGTEST GhostMuonSegmentCount: " << valueint);
2495 if( thisjet->getAttribute(xAOD::JetAttribute::GhostTrackCount, valueint)) ATH_MSG_INFO("REGTEST GhostTrackCount: " << valueint);
2496 if( thisjet->getAttribute(xAOD::JetAttribute::GhostTruthParticleCount, valueint)) ATH_MSG_INFO("REGTEST GhostTruthParticleCount: " << valueint);
2497 if( thisjet->getAttribute(xAOD::JetAttribute::FracSamplingMaxIndex, valueint)) ATH_MSG_INFO( "REGTEST FracSamplingMaxIndex: " << valueint);
2498
2499
2500 //checks float attributes
2501 ATH_MSG_DEBUG("REGTEST Checking float attributes");
2502 float value;
2503 if( thisjet->getAttribute(xAOD::JetAttribute::ActiveArea, value)) ATH_MSG_INFO( "REGTEST ActiveArea: " << value );
2504 // Four-vector type if( thisjet->getAttribute(xAOD::JetAttribute::ActiveArea4vec, value)) ATH_MSG_INFO( "REGTEST ActiveArea4vec: " << value );
2505 if( thisjet->getAttribute(xAOD::JetAttribute::AverageLArQF, value)) ATH_MSG_INFO( "REGTEST AverageLArQF: " << value );
2506 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrCell, value)) ATH_MSG_INFO( "REGTEST BchCorrCell: " << value );
2507 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrDotx, value)) ATH_MSG_INFO( "REGTEST BchCorrDotx: " << value );
2508 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrJet, value)) ATH_MSG_INFO( "REGTEST BchCorrJet: " << value );
2509 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrJetForCell, value)) ATH_MSG_INFO( "REGTEST BchCorrJetForCell: " << value );
2510 if( thisjet->getAttribute(xAOD::JetAttribute::CentroidR, value)) ATH_MSG_INFO( "REGTEST CentroidR: " << value );
2511 if( thisjet->getAttribute(xAOD::JetAttribute::HECQuality, value)) ATH_MSG_INFO( "REGTEST HECQuality: " << value );
2512 if( thisjet->getAttribute(xAOD::JetAttribute::IsoKR20Par, value)) ATH_MSG_INFO( "REGTEST IsoKR20Par: " << value );
2513 if( thisjet->getAttribute(xAOD::JetAttribute::IsoKR20Perp, value)) ATH_MSG_INFO( "REGTEST IsoKR20Perp: " << value );
2514 // ElementLink<DataVector<xAOD::Vertex> > type if( thisjet->getAttribute(xAOD::JetAttribute::HighestJVFVtx, value)) ATH_MSG_INFO( "REGTEST HighestJVFVtx: " << value );
2515 // ??? type if( thisjet->getAttribute(xAOD::JetAttribute::JetLabel, value)) ATH_MSG_INFO( "REGTEST JetLabel: " << value );
2516 if( thisjet->getAttribute(xAOD::JetAttribute::KtDR, value)) ATH_MSG_INFO( "REGTEST KtDR: " << value );
2517 if( thisjet->getAttribute(xAOD::JetAttribute::LArBadHVEnergy, value)) ATH_MSG_INFO( "REGTEST LArBadHVEnergy: " << value );
2518 if( thisjet->getAttribute(xAOD::JetAttribute::LArBadHVRatio, value)) ATH_MSG_INFO( "REGTEST LArBadHVRatio: " << value );
2519 if( thisjet->getAttribute(xAOD::JetAttribute::LArQuality, value)) ATH_MSG_INFO( "REGTEST LArQuality: " << value );
2520 if( thisjet->getAttribute(xAOD::JetAttribute::NegativeE, value)) ATH_MSG_INFO( "REGTEST NegativeE: " << value );
2521 // no tools available yet if( thisjet->getAttribute(xAOD::JetAttribute::NumTowers, value)) ATH_MSG_INFO( "REGTEST NumTowers: " << value );
2522 if( thisjet->getAttribute(xAOD::JetAttribute::SamplingMax, value)) ATH_MSG_INFO( "REGTEST SamplingMax: " << value );
2523 if( thisjet->getAttribute(xAOD::JetAttribute::Timing, value)) ATH_MSG_INFO( "REGTEST Timing: " << value );
2524 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiArea, value)) ATH_MSG_INFO( "REGTEST VoronoiArea: " << value );
2525 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaE, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaE: " << value );
2526 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPx, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPx: " << value );
2527 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPy, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPy: " << value );
2528 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPz, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPz: " << value );
2529 if( thisjet->getAttribute(xAOD::JetAttribute::Width, value)) ATH_MSG_INFO( "REGTEST WIDTH: " << value );
2530 if( thisjet->getAttribute(xAOD::JetAttribute::FracSamplingMax, value)) ATH_MSG_INFO( "REGTEST FracSamplingMax: " << value );
2531 if( thisjet->getAttribute(xAOD::JetAttribute::EMFrac, value)) ATH_MSG_INFO( "REGTEST EMFrac: " << value );
2532 if( thisjet->getAttribute(xAOD::JetAttribute::HECFrac, value)) ATH_MSG_INFO( "REGTEST HECFrac: " << value );
2533 if( thisjet->getAttribute(xAOD::JetAttribute::isBadLoose, value)) ATH_MSG_INFO( "REGTEST isBadLoose: " << value );
2534 if( thisjet->getAttribute(xAOD::JetAttribute::isBadMedium, value)) ATH_MSG_INFO( "REGTEST isBadMedium: " << value );
2535 if( thisjet->getAttribute(xAOD::JetAttribute::isBadTight, value)) ATH_MSG_INFO( "REGTEST isBadTight: " << value );
2536 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::isUgly, value)) ATH_MSG_INFO( "REGTEST isUgly: " << value );
2537 if( thisjet->getAttribute(xAOD::JetAttribute::N90Constituents, value)) ATH_MSG_INFO( "REGTEST N90Constituents: " << value );
2538 if( thisjet->getAttribute(xAOD::JetAttribute::N90Cells, value)) ATH_MSG_INFO( "REGTEST N90Cells: " << value );
2539 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracClusters10, value)) ATH_MSG_INFO( "REGTEST OotFracClusters10: " << value );
2540 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracClusters5, value)) ATH_MSG_INFO( "REGTEST OotFracClusters5: " << value );
2541 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracCells5, value)) ATH_MSG_INFO( "REGTEST OotFracCells5: " << value );
2542 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracCells10, value)) ATH_MSG_INFO( "REGTEST OotFracCells10: " << value );
2543 if( thisjet->getAttribute(xAOD::JetAttribute::PtTruth, value)) ATH_MSG_INFO( "REGTEST PtTruth: " << value );
2544 if( thisjet->getAttribute(xAOD::JetAttribute::Tau1, value)) ATH_MSG_INFO( "REGTEST Tau1: " << value );
2545 if( thisjet->getAttribute(xAOD::JetAttribute::Tau2, value)) ATH_MSG_INFO( "REGTEST Tau2: " << value );
2546 if( thisjet->getAttribute(xAOD::JetAttribute::Tau3, value)) ATH_MSG_INFO( "REGTEST Tau3: " << value );
2547 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split12, value)) ATH_MSG_INFO( "REGTEST Split12: " << value );
2548 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split23, value)) ATH_MSG_INFO( "REGTEST Split23: " << value );
2549 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split34, value)) ATH_MSG_INFO( "REGTEST Split34: " << value );
2550 if( thisjet->getAttribute(xAOD::JetAttribute::Dip12, value)) ATH_MSG_INFO( "REGTEST Dip12: " << value );
2551 if( thisjet->getAttribute(xAOD::JetAttribute::Dip13, value)) ATH_MSG_INFO( "REGTEST Dip13: " << value );
2552 if( thisjet->getAttribute(xAOD::JetAttribute::Dip23, value)) ATH_MSG_INFO( "REGTEST Dip23: " << value );
2553 if( thisjet->getAttribute(xAOD::JetAttribute::DipExcl12, value)) ATH_MSG_INFO( "REGTEST DipExcl12: " << value );
2554 if( thisjet->getAttribute(xAOD::JetAttribute::ThrustMin, value)) ATH_MSG_INFO( "REGTEST ThrustMin: " << value );
2555 if( thisjet->getAttribute(xAOD::JetAttribute::ThrustMaj, value)) ATH_MSG_INFO( "REGTEST ThrustMaj: " << value );
2556 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram0, value)) ATH_MSG_INFO( "REGTEST FoxWolfram0: " << value );
2557 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram1, value)) ATH_MSG_INFO( "REGTEST FoxWolfram1: " << value );
2558 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram2, value)) ATH_MSG_INFO( "REGTEST FoxWolfram2: " << value );
2559 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram3, value)) ATH_MSG_INFO( "REGTEST FoxWolfram3: " << value );
2560 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram4, value)) ATH_MSG_INFO( "REGTEST FoxWolfram4: " << value );
2561 if( thisjet->getAttribute(xAOD::JetAttribute::Sphericity, value)) ATH_MSG_INFO( "REGTEST Sphericity: " << value );
2562 if( thisjet->getAttribute(xAOD::JetAttribute::Aplanarity, value)) ATH_MSG_INFO( "REGTEST Aplanarity: " << value );
2563
2564 //checks vector<int> attributes
2565 ATH_MSG_DEBUG("REGTEST Checking vector<int> attributes");
2566 std::vector<int> vecvalueint;
2567 if (thisjet->getAttribute(xAOD::JetAttribute::NumTrkPt1000, vecvalueint)) {
2568 int vecsize = vecvalueint.size();
2569 ATH_MSG_INFO("REGTEST Got NumTrkPt1000 vector, size: " << vecsize);
2570 if (vecsize != 0) {
2571 int j = 0;
2572 for(const auto & thisvalue : vecvalueint){
2573 ++j;
2574 ATH_MSG_INFO("REGTEST NumTrkPt1000 #" << j << ": " << thisvalue);
2575 }
2576 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2577 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2578 }
2579 }
2580 if (thisjet->getAttribute(xAOD::JetAttribute::NumTrkPt500, vecvalueint)) {
2581 int vecsize = vecvalueint.size();
2582 ATH_MSG_INFO("REGTEST Got Got NumTrkPt500 vector, size: " << vecsize);
2583 if (vecsize != 0) {
2584 int j = 0;
2585 for(const auto & thisvalue : vecvalueint){
2586 ++j;
2587 ATH_MSG_INFO("REGTEST NumTrkPt500 #" << j << ": " << thisvalue);
2588 }
2589 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2590 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2591 }
2592 }
2593
2594 //checks vector<float> attributes
2595 ATH_MSG_DEBUG("REGTEST Checking vector<float> attributes");
2596 std::vector<float> vecvalue;
2597 if (thisjet->getAttribute(xAOD::JetAttribute::JVF, vecvalue)) {
2598 int vecsize = vecvalue.size();
2599 ATH_MSG_INFO("REGTEST Got JVF vector, size: " << vecsize);
2600 if (vecsize != 0) {
2601 int j = 0;
2602 for(const auto & thisvalue : vecvalue){
2603 ++j;
2604 ATH_MSG_INFO("REGTEST JVF #" << j << ": " << thisvalue);
2605 }
2606 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2607 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2608 }
2609 }
2610 if (thisjet->getAttribute(xAOD::JetAttribute::SumPtTrkPt1000, vecvalue)) {
2611 int vecsize = vecvalue.size();
2612 ATH_MSG_INFO("REGTEST Got SumPtTrkPt1000 vector, size: " << vecsize);
2613 if (vecsize != 0) {
2614 int j = 0;
2615 for(const auto & thisvalue : vecvalue){
2616 ++j;
2617 ATH_MSG_INFO("REGTEST SumPtTrkPt1000 #" << j << ": " << thisvalue);
2618 }
2619 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2620 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2621 }
2622 }
2623 if (thisjet->getAttribute(xAOD::JetAttribute::SumPtTrkPt500, vecvalue)) {
2624 int vecsize = vecvalue.size();
2625 ATH_MSG_INFO("REGTEST Got SumPtTrkPt500 vector, size: " << vecsize);
2626 if (vecsize != 0) {
2627 int j = 0;
2628 for(const auto & thisvalue : vecvalue){
2629 ++j;
2630 ATH_MSG_INFO("REGTEST SumPtTrkPt500 #" << j << ": " << thisvalue);
2631 }
2632 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2633 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2634 }
2635 }
2636 if (thisjet->getAttribute(xAOD::JetAttribute::TrackWidthPt1000, vecvalue)) {
2637 int vecsize = vecvalue.size();
2638 ATH_MSG_INFO("REGTEST Got TrackWidthPt1000 vector, size: " << vecsize);
2639 if (vecsize != 0) {
2640 int j = 0;
2641 for(const auto & thisvalue : vecvalue){
2642 ++j;
2643 ATH_MSG_INFO("REGTEST TrackWidthPt1000 #" << j << ": " << thisvalue);
2644 }
2645 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2646 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2647 }
2648 }
2649 if (thisjet->getAttribute(xAOD::JetAttribute::TrackWidthPt500, vecvalue)) {
2650 int vecsize = vecvalue.size();
2651 ATH_MSG_INFO("REGTEST Got TrackWidthPt500 vector, size: " << vecsize);
2652 if (vecsize != 0) {
2653 int j = 0;
2654 for(const auto & thisvalue : vecvalue){
2655 ++j;
2656 ATH_MSG_INFO("REGTEST TrackWidthPt500 #" << j << ": " << thisvalue);
2657 }
2658 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2659 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2660 }
2661 }
2662 if (thisjet->getAttribute(xAOD::JetAttribute::EnergyPerSampling, vecvalue)) {
2663 int vecsize = vecvalue.size();
2664 ATH_MSG_INFO("REGTEST Got EnergyPerSampling vector, size: " << vecsize);
2665 if (vecsize != 0) {
2666 int j = 0;
2667 for(const auto & thisvalue : vecvalue){
2668 ++j;
2669 ATH_MSG_INFO("REGTEST EnergyPerSampling #" << j << ": " << thisvalue);
2670 }
2671 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2672 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2673 }
2674 }
2675
2676
2677 //checks associated objects
2678 // ATH_MSG_DEBUG("REGTEST Checking associated objects");
2679 // std::vector<const xAOD::TrackParticle*> track;
2680 // if( thisjet->getAssociatedObjects(xAOD::JetAttribute::GhostTrack, track) ){
2681 // int vecsize = track.size();
2682 // ATH_MSG_INFO("REGTEST Got GhostTrack vector, size: " << vecsize);
2683 // if (vecsize != 0) {
2684 // int j = 0;
2685 // for(const auto & thistrack : track){
2686 // ++j;
2687 // //checks only one associated variable, just making sure getting the object worked
2688 // if (thistrack) ATH_MSG_INFO("REGTEST z0 for GhostTrack #" << j << ": " << thistrack->z0());
2689 // else{
2690 // ATH_MSG_WARNING("REGTEST Problem with attribute pointer");
2691 // return StatusCode::SUCCESS;
2692 // }
2693 // }
2694 // ATH_MSG_INFO("REGTEST size of associated object vector == number of displayed attributes: " << (vecsize == j) );
2695 // if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this associated object");
2696 // }
2697 // }
2698 }
2699 else{
2700 ATH_MSG_WARNING("REGTEST Problem with jet pointer");
2701 return StatusCode::SUCCESS;
2702 }
2703 }
2704
2705 if (jetContsize == i) ATH_MSG_INFO("REGTEST size of jet container == number of displayed jets: " << (jetContsize == i) );
2706 else ATH_MSG_WARNING("REGTEST Problem with displaying jets");
2707 }
2708 }
2709
2710 if (!onefilled) ATH_MSG_DEBUG("There was no filled jet containers");
2711
2712 ATH_MSG_INFO("REGTEST ==========END of xAOD::JetContainer DUMP===========");
2713
2714 ATH_MSG_DEBUG("leaving dumpxAODJetContainer()");
2715
2716 return StatusCode::SUCCESS;
2717}
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 1326 of file TrigEDMChecker.cxx.

1326 {
1327
1328 ATH_MSG_DEBUG("In dumpxAODMuonContainer");
1329
1330 ATH_MSG_INFO( "REGTEST ==========START of xAOD::MuonContainer DUMP===========" );
1331
1332 const xAOD::MuonContainer* muonCont=0;
1333 StatusCode sc = evtStore()->retrieve(muonCont,"HLT_xAOD__MuonContainer_MuonEFInfo");
1334 if (sc.isFailure()) {
1335 ATH_MSG_INFO("REGTEST No muon container HLT_xAOD__MuonContainer_MuonEFInfo");
1336 return StatusCode::SUCCESS;
1337 }
1338
1339 std::string output = m_muonPrinter->print( *muonCont );
1340 msg(MSG::INFO) << output << endmsg;
1341
1342 ATH_MSG_INFO( "REGTEST ==========END of xAOD::MuonContainer DUMP===========" );
1343
1344 return StatusCode::SUCCESS;
1345
1346}
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 1905 of file TrigEDMChecker.cxx.

1905 {
1906
1907 ATH_MSG_DEBUG("In dumpxAODPhotonContainer");
1908
1909 ATH_MSG_INFO( "REGTEST ==========START of xAOD::PhotonContainer DUMP===========" );
1910
1911 const xAOD::PhotonContainer* phCont=0;
1912 StatusCode sc = evtStore()->retrieve(phCont,"HLT_xAOD__PhotonContainer_egamma_Photons");
1913 if (sc.isFailure()) {
1914 ATH_MSG_INFO("REGTEST No Photon container HLT_xAOD__PhotonContainer_egamma_Photons");
1915 return StatusCode::SUCCESS;
1916 }
1917
1918 float val_float=-99;
1919 unsigned int isEMbit=0;
1920 //DEBUG output for xAOD::PhotonContainer
1921 ATH_MSG_INFO(" REGTEST: xAOD Reconstruction variables: ");
1922 // //Cluster and ShowerShape info
1923 for (const auto eg : *phCont){
1924 //REGTEST printout
1925 if (eg) {
1926 ATH_MSG_INFO(" REGTEST: egamma energy: " << eg->e() );
1927 ATH_MSG_INFO(" REGTEST: egamma eta: " << eg->eta() );
1928 ATH_MSG_INFO(" REGTEST: egamma phi: " << eg->phi() );
1929 ATH_MSG_INFO(" REGTEST: isEMLoose " << eg->selectionisEM(isEMbit,"isEMLoose"));
1930 ATH_MSG_INFO(" REGTEST: isEMLoose bit " << std::hex << isEMbit << std::dec);
1931 ATH_MSG_INFO(" REGTEST: isEMMedium " << eg->selectionisEM(isEMbit,"isEMMedium"));
1932 ATH_MSG_INFO(" REGTEST: isEMMedium bit " << std::hex << isEMbit << std::dec);
1933 ATH_MSG_INFO(" REGTEST: isEMTight " << eg->selectionisEM(isEMbit,"isEMTight"));
1934 ATH_MSG_INFO(" REGTEST: isEMTight bit " << std::hex << isEMbit << std::dec);
1935 } else{
1936 ATH_MSG_INFO(" REGTEST: problems with egamma pointer" );
1937 return StatusCode::SUCCESS;
1938 }
1939 ATH_MSG_INFO(" REGTEST: caloCluster variables ");
1940 if (eg->caloCluster()) {
1941 ATH_MSG_INFO(" REGTEST: egamma cluster transverse energy: " << eg->caloCluster()->et() );
1942 ATH_MSG_INFO(" REGTEST: egamma cluster eta: " << eg->caloCluster()->eta() );
1943 ATH_MSG_INFO(" REGTEST: egamma cluster phi: " << eg->caloCluster()->phi() );
1944 double tmpeta = -999.;
1945 double tmpphi = -999.;
1946 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::ETACALOFRAME,tmpeta);
1947 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::PHICALOFRAME,tmpphi);
1948 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. etaCalo = " << tmpeta);
1949 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. phiCalo = " << tmpphi);
1950 } else{
1951 ATH_MSG_INFO(" REGTEST: problems with egamma cluster pointer" );
1952 }
1953 ATH_MSG_INFO("REGTEST: Check the original (uncalibrated)");
1954 static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
1955 if (!orig.isAvailable(*eg->caloCluster()) || !orig(*eg->caloCluster()).isValid()){
1956 ATH_MSG_INFO("Problem with original cluster link");
1957 }
1958 else {
1959 const xAOD::CaloCluster *origClus = *orig(*eg->caloCluster());
1960 ATH_MSG_INFO("REGTEST:: Compare new and old clusters");
1961 ATH_MSG_INFO("REGTEST:: Original Cluster e,eta,phi" << origClus->e() << " " << origClus->eta() << " " << origClus->phi());
1962 ATH_MSG_INFO("REGTEST:: MVA Cluster e,eta,phi" << eg->caloCluster()->e() << " " << eg->caloCluster()->eta() << " " << eg->caloCluster()->phi());
1963 }
1964 //msg() << MSG::VERBOSE << " REGTEST: cluster variables " << endmsg;
1965 //clus = eg->caloCluster();
1966 ATH_MSG_INFO(" REGTEST: EMShower variables ");
1967 eg->showerShapeValue(val_float,xAOD::EgammaParameters::ethad);
1968 ATH_MSG_INFO(" REGTEST: ethad = " << val_float);
1969 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e011);
1970 ATH_MSG_INFO(" REGTEST: e011 = " << val_float);
1971 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e132);
1972 ATH_MSG_INFO(" REGTEST: e132 = " << val_float);
1973 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e237);
1974 ATH_MSG_INFO(" REGTEST: e237 = " << val_float);
1975 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e335);
1976 ATH_MSG_INFO(" REGTEST: e335 = " << val_float);
1977 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2ts1);
1978 ATH_MSG_INFO(" REGTEST: e2ts1 = " << val_float);
1979 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2tsts1);
1980 ATH_MSG_INFO(" REGTEST: e2tsts1 = " << val_float);
1981 eg->isolationValue(val_float,xAOD::Iso::etcone20);
1982 ATH_MSG_INFO(" REGTEST: etcone20 = " << val_float);
1983 eg->isolationValue(val_float,xAOD::Iso::etcone30);
1984 ATH_MSG_INFO(" REGTEST: etcone30 = " << val_float);
1985 eg->isolationValue(val_float,xAOD::Iso::etcone40);
1986 ATH_MSG_INFO(" REGTEST: etcone40 = " << val_float);
1987 //DEBUG info for Electrons which by definition have a track match
1988
1989 }
1990 ATH_MSG_INFO( "REGTEST ==========END of xAOD::PhotonContainer DUMP===========" );
1991
1992 return StatusCode::SUCCESS;
1993
1994}
PhotonContainer_v1 PhotonContainer
Definition of the current "photon container version".

◆ dumpxAODTrackParticle()

StatusCode TrigEDMChecker::dumpxAODTrackParticle ( )
private

Definition at line 3702 of file TrigEDMChecker.cxx.

3702 {
3703
3704 ATH_MSG_DEBUG("In dumpxAODTrackParticle()");
3705
3706 ATH_MSG_INFO("REGTEST ==========START of xAOD::TrackParticle DUMP===========");
3707
3708 std::vector<std::string> SGkeys;
3709 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_EFID");
3710 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_EFID");
3711 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_EFID");
3712 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_FullScan_EFID");
3713 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_EFID");
3714 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Photon_EFID");
3715 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_EFID");
3716
3717 StatusCode returnsc = StatusCode::SUCCESS;
3718
3719 for (unsigned int SGkey = 0; SGkey < SGkeys.size(); ++SGkey) {
3720 const xAOD::TrackParticleContainer* trackParticleContainer=0;
3721 StatusCode sc = evtStore()->retrieve(trackParticleContainer,SGkeys.at(SGkey));
3722 if (sc.isFailure()) {
3723 ATH_MSG_INFO("REGTEST No track particle container found with key " << SGkeys.at(SGkey));
3724 continue;
3725 }
3726 ATH_MSG_INFO("REGTEST TrackParticleContainer retrieved with key " << SGkeys.at(SGkey)
3727 << " and size " << trackParticleContainer->size());
3728
3729 xAOD::TrackParticleContainer::const_iterator trackParticleItr = trackParticleContainer->begin();
3730 xAOD::TrackParticleContainer::const_iterator trackParticleLast = trackParticleContainer->end();
3731
3732 for (int index = 0; trackParticleItr != trackParticleLast; ++trackParticleItr, ++index) {
3733 ATH_MSG_INFO("REGTEST Looking at Track Particle " << index);
3734
3735 ATH_MSG_INFO("REGTEST IParticle functions:");
3736 ATH_MSG_INFO("REGTEST pt: " << (*trackParticleItr)->pt()
3737 << "/eta: " << (*trackParticleItr)->eta()
3738 << "/phi: " << (*trackParticleItr)->phi()
3739 << "/m: " << (*trackParticleItr)->m()
3740 << "/e: " << (*trackParticleItr)->e()
3741 << "/rapidity: " << (*trackParticleItr)->rapidity());
3742
3743 ATH_MSG_INFO("REGTEST Defining parameters functions:");
3744 ATH_MSG_INFO("REGTEST charge: " << (*trackParticleItr)->charge()
3745 << "/d0: " << (*trackParticleItr)->d0()
3746 << "/z0: " << (*trackParticleItr)->z0()
3747 << "/phi0: " << (*trackParticleItr)->phi0()
3748 << "/theta: " << (*trackParticleItr)->theta()
3749 << "/qOverP: " << (*trackParticleItr)->qOverP()
3750 << "/vx: " << (*trackParticleItr)->vx()
3751 << "/vy: " << (*trackParticleItr)->vy()
3752 << "/vz: " << (*trackParticleItr)->vz());
3753
3754 // Curvilinear functions skipped
3755
3756 ATH_MSG_INFO("REGTEST Fit quality functions:");
3757 ATH_MSG_INFO("REGTEST chiSquared: " << (*trackParticleItr)->chiSquared()
3758 << "/numberDoF: " << (*trackParticleItr)->numberDoF());
3759
3760 // TrackInfo functions skipped
3761
3762 ATH_MSG_INFO("REGTEST summaryValue variables:");
3763 msg() << MSG::INFO << "REGTEST ";
3765 if ( (*trackParticleItr)->summaryValue(numberOfBLayerHits, xAOD::numberOfBLayerHits) ) {
3766 msg() << "/numberOfBLayerHits: " << static_cast<int>(numberOfBLayerHits);
3767 } else {
3768 msg() << "/numberOfBLayerHits not found";
3769 }
3770
3772 if ( (*trackParticleItr)->summaryValue(numberOfPixelHits, xAOD::numberOfPixelHits) ) {
3773 msg() << "/numberOfPixelHits: " << static_cast<int>(numberOfPixelHits);
3774 } else {
3775 msg() << "/numberOfPixelHits not found";
3776 }
3777
3779 if ( (*trackParticleItr)->summaryValue(numberOfPixelHoles, xAOD::numberOfPixelHoles) ) {
3780 msg() << "/numberOfPixelHoles: " << static_cast<int>(numberOfPixelHoles);
3781 } else {
3782 msg() << "/numberOfPixelHoles not found";
3783 }
3784
3786 if ( (*trackParticleItr)->summaryValue(numberOfSCTHits, xAOD::numberOfSCTHits) ) {
3787 msg() << "/numberOfSCTHits: " << static_cast<int>(numberOfSCTHits);
3788 } else {
3789 msg() << "/numberOfSCTHits not found";
3790 }
3791
3793 if ( (*trackParticleItr)->summaryValue(numberOfSCTHoles, xAOD::numberOfSCTHoles) ) {
3794 msg() << "/numberOfSCTHoles: " << static_cast<int>(numberOfSCTHoles);
3795 } else {
3796 msg() << "/numberOfSCTHoles not found";
3797 }
3798
3800 if ( (*trackParticleItr)->summaryValue(numberOfTRTHits, xAOD::numberOfTRTHits) ) {
3801 msg() << "/numberOfTRTHits: " << static_cast<int>(numberOfTRTHits);
3802 } else {
3803 msg() << "/numberOfTRTHits not found";
3804 }
3805
3807 if ( (*trackParticleItr)->summaryValue(numberOfTRTHoles, xAOD::numberOfTRTHoles) ) {
3808 msg() << "/numberOfTRTHoles: " << static_cast<int>(numberOfTRTHoles);
3809 } else {
3810 msg() << "/numberOfTRTHoles not found";
3811 }
3812 msg() << endmsg;
3813 }
3814 }
3815
3816 ATH_MSG_INFO("REGTEST ==========END of xAOD::TrackParticle DUMP===========");
3817 ATH_MSG_DEBUG("dumpxAODTrackParticles() succeeded");
3818
3819 return returnsc;
3820}
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 1648 of file TrigEDMChecker.cxx.

1648 {
1649
1650 ATH_MSG_DEBUG("In dumpxAODElectronContainer");
1651
1652 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigElectronContainer DUMP===========" );
1653
1654 const xAOD::TrigElectronContainer* elCont=0;
1655 StatusCode sc = evtStore()->retrieve(elCont,"HLT_xAOD__TrigElectronContainer_L2ElectronFex");
1656 if (sc.isFailure()) {
1657 ATH_MSG_INFO("REGTEST No TrigElectron container HLT_xAOD__TrigElectronContainer_L2ElectronFex");
1658 return StatusCode::SUCCESS;
1659 }
1660
1661 for (const auto eg : *elCont){
1662 ATH_MSG_INFO("REGTEST TrigElectron->Phi() returns " << eg->phi());
1663 ATH_MSG_INFO("REGTEST TrigElectron->Eta() returns " << eg->eta());
1664 ATH_MSG_INFO("REGTEST TrigElectron->rEta returns " << eg->rcore());
1665 ATH_MSG_INFO("REGTEST TrigElectron->eratio() returns " << eg->eratio());
1666 ATH_MSG_INFO("REGTEST TrigElectron->pt() returns " << eg->pt());
1667 ATH_MSG_INFO("REGTEST TrigElectron->etHad() returns " << eg->etHad());
1668 ATH_MSG_INFO("REGTEST TrigElectron->f1() returns " << eg->f1());
1669 ATH_MSG_INFO("REGTEST TrigElectron caloEta = " << eg->caloEta());
1670 ATH_MSG_INFO("REGTEST TrigElectron dPhiCalo" << eg->trkClusDphi());
1671 ATH_MSG_INFO("REGTEST TrigElectron dEtaCalo" << eg->trkClusDeta());
1672 ATH_MSG_INFO("REGTEST TrigElectron pTcalo" << eg->pt());
1673 ATH_MSG_INFO("REGTEST TrigElectron eTOverPt" << eg->etOverPt());
1674 ATH_MSG_INFO("REGTEST TrigElectron nTRTHits" << eg->nTRTHits());
1675 ATH_MSG_INFO("REGTEST TrigElectron nStrawHits" << eg->nTRTHiThresholdHits());
1676 ATH_MSG_INFO("REGTEST TrigElectron Check EMCluster");
1677 if(eg->emCluster()){
1678 ATH_MSG_INFO("REGTEST TrigElectron EMCluster retrieved");
1679 ATH_MSG_INFO("REGTEST TrigElectron emCluster->energy() returns " << eg->emCluster()->energy());
1680 ATH_MSG_INFO("REGTEST TrigElectron emCluster->phi() returns " << eg->emCluster()->phi());
1681 ATH_MSG_INFO("REGTEST TrigElectron emCluster->eta() returns " << eg->emCluster()->eta());
1682 ATH_MSG_INFO("REGTEST TrigElectron emCluster check Element Link");
1683 ATH_MSG_INFO("REGTEST TrigElectron emCluster energy = " << eg->emCluster()->energy());
1684 ATH_MSG_INFO("REGTEST TrigElectron ElementLink emCluster energy = " << (*eg->emClusterLink())->energy());
1685 }
1686 else ATH_MSG_INFO("REGTEST TrigElectron No EMCluster retrieved!");
1687 ATH_MSG_INFO("REGTEST TrigElectron Check TrackParticle");
1688 if(eg->trackParticle()){
1689 ATH_MSG_INFO("REGTEST TrigElectron TrackParticle retrieved");
1690 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->pt() returns " << eg->trackParticle()->pt());
1691 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->phi() returns " << eg->trackParticle()->phi());
1692 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->eta() returns " << eg->trackParticle()->eta());
1693 ATH_MSG_INFO("REGTEST TrigElectron check TrackParticle Element Link");
1694 ATH_MSG_INFO("REGTEST TrigElectron TrackParticle pt = " << eg->trackParticle()->pt());
1695 ATH_MSG_INFO("REGTEST TrigElectron ElementLink TrackParticle pt = " << (*eg->trackParticleLink())->pt());
1696 }
1697 else ATH_MSG_INFO("REGTEST TrigElectron No TrackParticle retrieved!");
1698 }
1699 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigElectronContainer DUMP===========" );
1700
1701 return StatusCode::SUCCESS;
1702
1703}
TrigElectronContainer_v1 TrigElectronContainer
Declare the latest version of the container.

◆ dumpxAODTrigMinBias()

StatusCode TrigEDMChecker::dumpxAODTrigMinBias ( )
private

Definition at line 804 of file TrigEDMChecker.cxx.

804 {
805
810
811 return StatusCode::SUCCESS;
812}
void dumpTrigSpacePointCounts()

◆ dumpxAODTrigMissingET()

StatusCode TrigEDMChecker::dumpxAODTrigMissingET ( )
private

Definition at line 818 of file TrigEDMChecker.cxx.

818 {
819
820 ATH_MSG_INFO("dumpxAODTrigMissingET()");
821
822 int ntag=4;
823 std::string METTags[]={"HLT_xAOD__TrigMissingETContainer_EFJetEtSum","HLT_xAOD__TrigMissingETContainer_TrigEFMissingET", "HLT_xAOD__TrigMissingETContainer_TrigL2MissingET_FEB","HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl"};
824
825 for(int itag=0; itag <ntag; itag++) {
826
827 const xAOD::TrigMissingETContainer* MissingETCont=0;
828 StatusCode sc = evtStore()->retrieve(MissingETCont,METTags[itag]);
829 if (sc.isFailure())
830 ATH_MSG_INFO("failed to retrieve " << METTags[itag]);
831 else {
832 ATH_MSG_INFO("Accessing " << METTags[itag] << " with " << MissingETCont->size() << " elements");
833
834 // Loop over container content
835 for(uint i = 0; i < MissingETCont->size(); i++) {
836
837 std::string s; char buff[3000];
838
839 snprintf(buff, sizeof(buff), "REGTEST %s Ex = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ex() );
840 ATH_MSG_INFO(buff);
841 snprintf(buff, sizeof(buff), "REGTEST %s Ey = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ey() );
842 ATH_MSG_INFO(buff);
843 snprintf(buff, sizeof(buff), "REGTEST %s Ez = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ez() );
844 ATH_MSG_INFO(buff);
845 snprintf(buff, sizeof(buff), "REGTEST %s SumET = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->sumEt() );
846 ATH_MSG_INFO(buff);
847 snprintf(buff, sizeof(buff), "REGTEST %s SumE = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->sumE() );
848 ATH_MSG_INFO(buff);
849 snprintf(buff, sizeof(buff), "REGTEST %s Flag = %d", s.c_str(), MissingETCont->at(i)->flag() );
850 ATH_MSG_INFO(buff);
851 snprintf(buff, sizeof(buff), "REGTEST %s Flag = %d", s.c_str(), MissingETCont->at(i)->roiWord() );
852 ATH_MSG_INFO(buff);
853
854 unsigned int Nc = MissingETCont->at(i)->getNumberOfComponents();
855 if (Nc > 0) {
856 s="REGTEST __name____status_usedChannels__sumOfSigns__calib1_calib0";
857 s+="/MeV__ex/MeV_____ey/MeV_____ez/MeV___sumE/MeV__sumEt/CLHEP::MeV";
858 ATH_MSG_INFO(s);
859 }
860
861 for(uint j = 0; j < Nc; j++) {
862
863 std::string name = MissingETCont->at(i)->nameOfComponent(j);
864 const short status = MissingETCont->at(i)->statusComponent(j);
865 const unsigned short usedChan = MissingETCont->at(i)->usedChannelsComponent(j);
866 const short sumOfSigns = MissingETCont->at(i)->sumOfSignsComponent(j);
867 const float calib0 = MissingETCont->at(i)->calib0Component(j);
868 const float calib1 = MissingETCont->at(i)->calib1Component(j);
869 const float ex = MissingETCont->at(i)->exComponent(j);
870 const float ey = MissingETCont->at(i)->eyComponent(j);
871 const float ez = MissingETCont->at(i)->ezComponent(j);
872 const float sumE = MissingETCont->at(i)->sumEComponent(j);
873 const float sumEt = MissingETCont->at(i)->sumEtComponent(j);
874
875 snprintf(buff, sizeof(buff),
876 "REGTEST %s %6d %12d %10d %6.2f %6.3f %10.2f %10.2f %10.2f %10.2f %10.2f",
877 name.c_str(), status, usedChan, sumOfSigns, calib1, calib0,
878 ex, ey, ez, sumE, sumEt);
879 ATH_MSG_INFO(buff);
880 }
881 }
882 }
883 }
884
885 return StatusCode::SUCCESS;
886}
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 1706 of file TrigEDMChecker.cxx.

1706 {
1707
1708 ATH_MSG_DEBUG("In dumpxAODTrigPhotonContainer");
1709
1710 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigPhotonContainer DUMP===========" );
1711
1712 const xAOD::TrigPhotonContainer* phCont=0;
1713 StatusCode sc = evtStore()->retrieve(phCont,"HLT_xAOD__TrigPhotonContainer_L2PhotonFex");
1714 if (sc.isFailure()) {
1715 ATH_MSG_INFO("REGTEST No TrigPhoton container HLT_xAOD__TrigPhotonContainer_L2PhotonFex");
1716 return StatusCode::SUCCESS;
1717 }
1718
1719 for (const auto eg : *phCont){
1720
1721 ATH_MSG_INFO("REGTEST TrigPhoton->Phi() returns " << eg->phi());
1722 ATH_MSG_INFO("REGTEST TrigPhoton->Eta() returns " << eg->eta());
1723 ATH_MSG_INFO("REGTEST TrigPhoton->dPhi() returns " << eg->dPhi());
1724 ATH_MSG_INFO("REGTEST TrigPhoton->dEta() returns " << eg->dEta());
1725 ATH_MSG_INFO("REGTEST TrigPhoton->rEta returns " << eg->rcore());
1726 ATH_MSG_INFO("REGTEST TrigPhoton->eratio() returns " << eg->eratio());
1727 ATH_MSG_INFO("REGTEST TrigPhoton->pt() returns " << eg->pt());
1728 ATH_MSG_INFO("REGTEST TrigPhoton->etHad() returns " << eg->etHad());
1729 ATH_MSG_INFO("REGTEST TrigPhoton->f1() returns " << eg->f1());
1730 ATH_MSG_INFO("REGTEST TrigPhoton Check EMCluster");
1731 if(eg->emCluster()){
1732 ATH_MSG_INFO("REGTEST TrigPhoton EMCluster retrieved");
1733 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->energy() returns " << eg->emCluster()->energy());
1734 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->phi() returns " << eg->emCluster()->phi());
1735 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->eta() returns " << eg->emCluster()->eta());
1736 ATH_MSG_INFO("REGTEST TrigPhoton emCluster check Element Link");
1737 ATH_MSG_INFO("REGTEST TrigPhoton emCluster energy = " << eg->emCluster()->energy());
1738 ATH_MSG_INFO("REGTEST TrigPhoton ElementLink emCluster energy = " << (*eg->emClusterLink())->energy());
1739 }
1740 else ATH_MSG_INFO("REGTEST TrigPhoton No EMCluster retrieved!");
1741 }
1742 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigPhotonContainer DUMP===========" );
1743
1744 return StatusCode::SUCCESS;
1745
1746}
TrigPhotonContainer_v1 TrigPhotonContainer
Declare the latest version of the container.

◆ dumpxAODVertex()

StatusCode TrigEDMChecker::dumpxAODVertex ( )
private

Definition at line 3822 of file TrigEDMChecker.cxx.

3822 {
3823
3824 ATH_MSG_DEBUG("In dumpxAODVertex()");
3825
3826 ATH_MSG_INFO("REGTEST ==========START of xAOD::Vertex DUMP===========");
3827
3828 const xAOD::VertexContainer* vertexContainer=0;
3829 StatusCode sc = evtStore()->retrieve(vertexContainer,"HLT_xAOD__VertexContainer_xPrimVx");
3830 if (sc.isFailure()) {
3831 ATH_MSG_INFO("REGTEST No vertex container");
3832 return StatusCode::FAILURE;
3833 }
3834 ATH_MSG_INFO("REGTEST VertexContainer retrieved");
3835
3836 xAOD::VertexContainer::const_iterator vertexItr = vertexContainer->begin();
3837 xAOD::VertexContainer::const_iterator vertexLast = vertexContainer->end();
3838
3839 for (int index = 0; vertexItr != vertexLast; ++vertexItr, ++index) {
3840 ATH_MSG_INFO("REGTEST Looking at Vertex " << index);
3841
3842 ATH_MSG_INFO("REGTEST Public Member Functions:");
3843 ATH_MSG_INFO("REGTEST x: " << (*vertexItr)->x()
3844 << "/y: " << (*vertexItr)->y()
3845 << "/z: " << (*vertexItr)->z());
3846
3847 ATH_MSG_INFO("REGTEST Public Member Functions:");
3848 ATH_MSG_INFO("REGTEST chiSquared: " << (*vertexItr)->chiSquared()
3849 << "/numberDoF: " << (*vertexItr)->numberDoF());
3850 }
3851
3852 ATH_MSG_INFO("REGTEST ==========END of xAOD::Vertex DUMP===========");
3853 ATH_MSG_DEBUG("dumpxAODVertex() succeeded");
3854
3855 return StatusCode::SUCCESS;
3856}
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 239 of file TrigEDMChecker.cxx.

239 {
240
241 /* fwinkl, Mar 20222:
242 Some attempt was made to make the code pass the thread-checker. Methods that
243 are clearly not thread-safe (e.g. use of DataHandle) are marked as such. Calling
244 these methods from within execute would still trigger a thread-checker warning.
245 Since this algorithm is only ever used for validation and in single-threaded athena,
246 we suppress these warnings by the following assignment. This has the advantage
247 (as opposed to disabling the checking for the entire file) that new code is still
248 being checked and will hopefully be written in a thread-safe manner, i.e. using
249 ReadHandleKeys. If someone is very eager they could migrate all uses of DataHandles...
250 */
251 StatusCode sc ATLAS_THREAD_SAFE = do_execute(ctx);
252 return sc;
253}
#define ATLAS_THREAD_SAFE

◆ 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

Definition at line 168 of file TrigEDMChecker.cxx.

168 {
169
170 ATH_CHECK( m_navigationHandleKey.initialize() );
171 ATH_CHECK( m_decisionsKey.initialize() );
172 ATH_CHECK( m_navigationTool.retrieve() );
173
174 ATH_MSG_DEBUG("Initializing TrigEDMChecker");
175
176 ATH_MSG_INFO("REGTEST Initializing...");
177 ATH_MSG_INFO("REGTEST m_doDumpAll = " << m_doDumpAll );
178 ATH_MSG_INFO("REGTEST m_doDumpLVL1_ROI = " << m_doDumpLVL1_ROI);
179 ATH_MSG_INFO("REGTEST m_doDumpTrigMissingET = " << m_doDumpTrigMissingET );
180 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigMissingET = " << m_doDumpxAODTrigMissingET );
181 ATH_MSG_INFO("REGTEST m_doDumpMuonFeature = " << m_doDumpMuonFeature );
182 ATH_MSG_INFO("REGTEST m_doDumpCombinedMuonFeature = " << m_doDumpCombinedMuonFeature );
183 ATH_MSG_INFO("REGTEST m_doDumpTileMuFeature = " << m_doDumpTileMuFeature);
184 ATH_MSG_INFO("REGTEST m_doDumpTileTrackMuFeature = " << m_doDumpTileTrackMuFeature);
185 ATH_MSG_INFO("REGTEST m_doDumpTrigPhotonContainer = " << m_doDumpTrigPhotonContainer );
186 ATH_MSG_INFO("REGTEST m_doDumpTrigL2BphysContainer = " << m_doDumpTrigL2BphysContainer );
187 ATH_MSG_INFO("REGTEST m_doDumpTrigEFBphysContainer = " << m_doDumpTrigEFBphysContainer );
188 ATH_MSG_INFO("REGTEST m_doDumpTrigEFBjetContainer = " << m_doDumpTrigEFBjetContainer );
189 ATH_MSG_INFO("REGTEST m_doDumpTrigL2BjetContainer = " << m_doDumpTrigL2BjetContainer );
190 ATH_MSG_INFO("REGTEST m_doDumpxAODJetContainer = " << m_doDumpxAODJetContainer );
191 ATH_MSG_INFO("REGTEST m_doDumpTrigMuonEFContainer = " << m_doDumpTrigMuonEFContainer );
192 ATH_MSG_INFO("REGTEST m_doDumpTrigMuonEFInfoContainer = " << m_doDumpTrigMuonEFInfoContainer );
193 ATH_MSG_INFO("REGTEST m_doDumpxAODMuonContainer = " << m_doDumpxAODMuonContainer );
194 ATH_MSG_INFO("REGTEST m_doDumpTrigElectronContainer = " << m_doDumpTrigElectronContainer );
195 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigElectronContainer= " << m_doDumpxAODTrigElectronContainer );
196 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigPhotonContainer = " << m_doDumpxAODTrigPhotonContainer );
197 ATH_MSG_INFO("REGTEST m_doDumpxAODElectronContainer = " << m_doDumpxAODElectronContainer );
198 ATH_MSG_INFO("REGTEST m_doDumpxAODPhotonContainer = " << m_doDumpxAODPhotonContainer );
199 ATH_MSG_INFO("REGTEST m_doDumpHLTResult = " << m_doDumpHLTResult );
200 ATH_MSG_INFO("REGTEST m_doDumpTrigTauContainer = " << m_doDumpTrigTauContainer );
201 ATH_MSG_INFO("REGTEST m_doDumpTrigTauTracksInfo = " << m_doDumpTrigTauTracksInfo );
202 ATH_MSG_INFO("REGTEST m_doDumpTrigVertexCollection = " << m_doDumpTrigVertexCollection );
203 ATH_MSG_INFO("REGTEST m_doDumpTrigEMCluster = " << m_doDumpTrigEMCluster );
204 ATH_MSG_INFO("REGTEST m_doDumpTrigEMClusterContainer = " << m_doDumpTrigEMClusterContainer );
205 ATH_MSG_INFO("REGTEST m_doDumpTrigTauClusterContainer = " << m_doDumpTrigTauClusterContainer );
206 ATH_MSG_INFO("REGTEST m_doDumpTrackParticleContainer = " << m_doDumpTrackParticleContainer );
207 ATH_MSG_INFO("REGTEST m_doDumpTauJetContainer = " << m_doDumpTauJetContainer );
208 ATH_MSG_INFO("REGTEST m_doDumpxAODTrackParticle = " << m_doDumpxAODTrackParticle );
209 ATH_MSG_INFO("REGTEST m_doDumpxAODVertex = " << m_doDumpxAODVertex );
210 ATH_MSG_INFO("REGTEST m_doDumpxAODTauJetContainer = " << m_doDumpxAODTauJetContainer );
211 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigMinBias = " << m_doDumpxAODTrigMinBias );
212 ATH_MSG_INFO("REGTEST m_doDumpStoreGate = " << m_doDumpStoreGate );
213 ATH_MSG_INFO("REGTEST m_doDumpAllTrigComposite = " << m_doDumpAllTrigComposite );
214 ATH_MSG_INFO("REGTEST m_dumpTrigCompositeContainers = " << m_dumpTrigCompositeContainers );
215 ATH_MSG_INFO("REGTEST m_doDumpTrigCompsiteNavigation = " << m_doDumpTrigCompsiteNavigation );
216 ATH_MSG_INFO("REGTEST m_doTDTCheck = " << m_doTDTCheck );
217
218 ATH_MSG_INFO("maxRepWarning = " << maxRepWarnings );
219
221 ATH_CHECK( m_muonPrinter.retrieve() );
222 }
223 else m_muonPrinter.disable(); // to avoid auto-retrieval
224
226 ATH_CHECK( m_clidSvc.retrieve() );
227 }
228
230 ATH_CHECK( m_trigDec.retrieve() );
231 ATH_MSG_INFO("TDT Executing with navigation format: " << m_trigDec->getNavigationFormat());
232 }
234
235 return StatusCode::SUCCESS;
236}

◆ 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; }
ServiceHandle< StoreGateSvc > m_inputMetaStore
Object accessing the input metadata store.

◆ 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; }
ServiceHandle< StoreGateSvc > m_outputMetaStore
Object accessing the output metadata store.

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

◆ printMuonTrk() [1/2]

void TrigEDMChecker::printMuonTrk ( const TrigMuonEFCbTrack * muonTrack)
private

Definition at line 1547 of file TrigEDMChecker.cxx.

1547 {
1548 ATH_MSG_INFO(" POINTER TrigMuonEFCbTrack: " << muonTrack);
1549 //if(muonTrack) mLog << MSG::INFO << "REGTEST TrigMuonEFCbTrack: " << *muonTrack << endmsg;
1550
1551// printMuonTrk(mLog,(TrigMuonEFTrack*)muonTrack);
1552// mLog <<MSG::INFO << "REGTEST TrigMuonEFCbTrack " << muonTrack << endmsg;
1553// mLog <<MSG::INFO << "REGTEST NIdPixelHits() returns " << muonTrack->NIdPixelHits() << endmsg;
1554// mLog <<MSG::INFO << "REGTEST NIdSctHits() returns " << muonTrack->NIdSctHits() << endmsg;
1555// mLog <<MSG::INFO << "REGTEST NTrtHits() returns " << muonTrack->NTrtHits() << endmsg;
1556// mLog <<MSG::INFO << "REGTEST matchChi2() returns " << muonTrack->matchChi2() << endmsg;
1557}

◆ printMuonTrk() [2/2]

void TrigEDMChecker::printMuonTrk ( const TrigMuonEFTrack * muonTrack)
private

Definition at line 1521 of file TrigEDMChecker.cxx.

1521 {
1522 ATH_MSG_INFO("POINTER TrigMuonEFTrack: " << muonTrack);
1523 //if(muonTrack) mLog << MSG::INFO << "REGTEST TrigMuonEFTrack: " << *muonTrack << endmsg;
1524
1525// mLog <<MSG::INFO << "REGTEST TrigMuonEFTrack->charge() returns " << muonTrack->Charge() << endmsg;
1526// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->iPt() returns " << muonTrack->iPt() << endmsg;
1527// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->CotTh() returns " << muonTrack->cotTh() << endmsg;
1528// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->Phi() returns " << muonTrack->phi() << endmsg;
1529// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->m() returns " << muonTrack->m() << endmsg;
1530// mLog <<MSG::INFO << "REGTEST chi2() returns " << muonTrack->chi2() << endmsg;
1531// mLog <<MSG::INFO << "REGTEST chi2prob() returns " << muonTrack->chi2prob() << endmsg;
1532// mLog <<MSG::INFO << "REGTEST posX() returns " << muonTrack->posX() << endmsg;
1533// mLog <<MSG::INFO << "REGTEST posY() returns " << muonTrack->posY() << endmsg;
1534// mLog <<MSG::INFO << "REGTEST posZ() returns " << muonTrack->posZ() << endmsg;
1535// mLog <<MSG::INFO << "REGTEST NCscHitsEta() returns " << muonTrack->NCscHitsEta() << endmsg;
1536// mLog <<MSG::INFO << "REGTEST NCscHitsPhi() returns " << muonTrack->NCscHitsPhi() << endmsg;
1537// mLog <<MSG::INFO << "REGTEST NTgcHitsEta() returns " << muonTrack->NTgcHitsEta() << endmsg;
1538// mLog <<MSG::INFO << "REGTEST NTgcHitsPhi() returns " << muonTrack->NTgcHitsPhi() << endmsg;
1539// mLog <<MSG::INFO << "REGTEST NMdtHitsEta() returns " << muonTrack->NMdtHitsEta() << endmsg;
1540// mLog <<MSG::INFO << "REGTEST NMdtHitsPhi() returns " << muonTrack->NMdtHitsPhi() << endmsg;
1541// mLog <<MSG::INFO << "REGTEST NRpcHitsEta() returns " << muonTrack->NRpcHitsEta() << endmsg;
1542// mLog <<MSG::INFO << "REGTEST NRpcHitsPhi() returns " << muonTrack->NRpcHitsPhi() << endmsg;
1543// mLog <<MSG::INFO << "REGTEST d0() returns " << muonTrack->d0() << endmsg;
1544// mLog <<MSG::INFO << "REGTEST z0() returns " << muonTrack->z0() << endmsg;
1545}

◆ 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 4055 of file TrigEDMChecker.cxx.

4055 {
4056
4057 using namespace TrigCompositeUtils;
4058
4059 // This constexpr is evaluated at compile time
4060 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
4061 std::vector<std::string> keys;
4062 if ( m_dumpTrigCompositeContainers.size() == 0 ) {
4063 evtStore()->keys(TrigCompositeCLID, keys);
4064 }
4065 else {
4067 }
4068 std::string typeNameTC;
4069 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
4070 ATH_MSG_DEBUG("Got " << keys.size() << " keys for " << typeNameTC);
4071
4072 HLT::Identifier chainID(m_dumpNavForChain);
4073 DecisionIDContainer chainIDs;
4074 chainIDs.insert( chainID.numeric() );
4075
4076 std::set<int> converted;
4077
4078 const Trig::ChainGroup* cg = m_trigDec->getChainGroup(m_dumpNavForChain);
4080 std::vector<std::string> chains = cg->getListOfTriggers();
4081 for (const std::string& chain : chains) {
4082 const TrigConf::HLTChain* hltChain = m_trigDec->ExperimentalAndExpertMethods().getChainConfigurationDetails(chain);
4083 const HLT::Identifier chainID_tmp( hltChain->chain_name() );
4084 chainIDs.insert( chainID_tmp.numeric() );
4085 const std::vector<size_t> legMultiplicites = hltChain->leg_multiplicities();
4086 if (legMultiplicites.size() == 0) {
4087 ATH_MSG_ERROR("chain " << chainID_tmp << " has invalid configuration, no multiplicity data.");
4088 } else if (legMultiplicites.size() > 1) {
4089 // For multi-leg chains, the DecisionIDs are handled per leg.
4090 // We don't care here exactly how many objects are required per leg, just that there are two-or-more legs
4091 for (size_t legNumeral = 0; legNumeral < legMultiplicites.size(); ++legNumeral) {
4092 const HLT::Identifier legID = TrigCompositeUtils::createLegName(chainID_tmp, legNumeral);
4093 chainIDs.insert( legID.numeric() );
4094 }
4095 }
4096 }
4097
4098 // First retrieve them all (this should not be needed in future)
4099 const DecisionContainer* container = nullptr;
4100 for (const std::string& key : keys) ATH_CHECK( evtStore()->retrieve( container, key ) );
4101
4102 std::stringstream ss;
4103 ss << "digraph {" << std::endl;
4104 ss << " node [shape=rectangle]" << std::endl;
4105 ss << " rankdir = BT" << std::endl;
4106
4107 // Now process them
4108 for (const std::string& key : keys) {
4109 if ( not m_doDumpAllTrigComposite ) {
4110 if ( not key.starts_with( "HLTNav_") ) { // Nav containers should always start with HLTNav_
4111 continue;
4112 }
4113 }
4114 ATH_CHECK( evtStore()->retrieve( container, key ) );
4115 ATH_MSG_DEBUG("Processing collection " << key << " to be added to the navigation graph");
4116 // ss << " rank=same" << std::endl; // dot cannot handle this is seems
4117 bool writtenHeader = false;
4118 for (const Decision* tc : *container ) {
4119 // Output my ID in the graph.
4120 const DecisionContainer* container = dynamic_cast<const DecisionContainer*>( tc->container() );
4121 const ElementLink<DecisionContainer> selfEL = ElementLink<DecisionContainer>(*container, tc->index());
4122 std::vector<ElementLink<DecisionContainer>> seedELs = tc->objectCollectionLinks<DecisionContainer>("seed");
4123 const bool isHypoAlgNode = tc->name() == "H";
4124 const bool isComboHypoAlgNode = tc->name() == "CH";
4125 const std::vector<DecisionID>& decisions = tc->decisions();
4126 const uint32_t selfKey = selfEL.key();
4127 const uint32_t selfIndex = selfEL.index();
4128 if (m_dumpNavForChain != "") {
4129 bool doDump = false;
4130 // Check me
4131 for (DecisionID id : decisions) {
4132 if (chainIDs.count(id) == 1) {
4133 doDump = true;
4134 break;
4135 }
4136 }
4137 // Check my seeds
4138 if (!doDump and (isHypoAlgNode or isComboHypoAlgNode) and not m_excludeFailedHypoNodes) {
4139 for (const ElementLink<DecisionContainer>& s : seedELs) {
4140 const std::vector<DecisionID>& seedDecisions = (*s)->decisions();
4141 for (DecisionID id : seedDecisions) {
4142 if (chainIDs.count(id) == 1) {
4143 doDump = true;
4144 break;
4145 }
4146 }
4147 }
4148 }
4149 if (!doDump) {
4150 continue;
4151 }
4152 }
4153 if (!writtenHeader) {
4154 writtenHeader = true;
4155 ss << " subgraph " << key << " {" << std::endl;
4156 ss << " label=\"" << key << "\"" << std::endl;
4157 }
4158 const std::string scheme = "rdpu9";
4159 std::string color = "1";
4160 if (tc->name() == "L1") { color = "1"; }
4161 else if (tc->name() == "F") { color = "2"; }
4162 else if (tc->name() == "IM") { color = "3"; }
4163 else if (tc->name() == "H") { color = "4"; }
4164 else if (tc->name() == "CH") { color = "5"; }
4165 else if (tc->name() == "SF") { color = "6"; }
4166 else if (tc->name() == "HLTPassRaw") { color = "7"; }
4167 ss << " \"" << selfKey << "_" << selfIndex << "\" [colorscheme="<<scheme<<",style=filled,fillcolor="<<color<<",label=<<B>Container</B>=" << typeNameTC;
4168 if (tc->name() != "") ss << " <B>Name</B>=" << tc->name();
4169 ss << "<BR/><B>Key</B>=" << key << "<BR/><B>Index</B>=" << selfIndex;
4170 const bool isRemapped = tc->isRemapped();
4171 if (isHypoAlgNode) ss << " <B>linksRemapped</B>=" << (isRemapped ? "Y" : "N");
4172 if (decisions.size() > 0) {
4173 ss << "<BR/><B>Pass</B>=";
4174 size_t c = 0;
4175 for (unsigned decisionID : decisions) {
4176 HLT::Identifier dID(decisionID);
4177 std::string highlight = (dID.numeric() == chainID.numeric() ? "<B>[CHAIN:" : "");
4178 if (highlight == "" and chainIDs.count(dID.numeric()) == 1 and TrigCompositeUtils::isLegId(dID)) {
4179 highlight = "<B>[LEG" + std::to_string(TrigCompositeUtils::getIndexFromLeg(dID)) + ":";
4180 }
4181 ss << std::hex << highlight << decisionID << (!highlight.empty() ? "]</B>" : "") << std::dec << ",";
4182 if (c++ == 5) {
4183 ss << "<BR/>";
4184 c = 0;
4185 }
4186 }
4187 }
4188 ss << ">]" << std::endl;
4189 // Output all the things I link to
4190 size_t seedCount = 0;
4191 for (size_t i = 0; i < tc->linkColNames().size(); ++i) {
4192 const std::string link = tc->linkColNames().at(i);
4193 if (link == "seed" || link == "seed__COLL") {
4194 ElementLink<DecisionContainer> seedEL = seedELs.at(seedCount++);
4195 const uint32_t seedKey = tc->linkColKeys().at(i);
4196 const uint32_t seedIndex = tc->linkColIndices().at(i);
4197 ATH_CHECK( seedKey == seedEL.key() );
4198 ATH_CHECK( seedIndex == seedEL.index() );
4199 if (m_dumpNavForChain != "") { // Only print "seed" link to nodes we include in our search
4200 const std::vector<DecisionID> seedDecisions = (*seedEL)->decisions();
4201 bool doSeedLink = false;
4202 for (DecisionID id : seedDecisions) {
4203 if (chainIDs.count(id) == 1) {
4204 doSeedLink = true;
4205 break;
4206 }
4207 }
4208 if (!doSeedLink) {
4209 continue;
4210 }
4211 }
4212 ss << " \"" << selfKey << "_" << selfIndex << "\" -> \"" << seedKey << "_" << seedIndex << "\" [colorscheme="<<scheme<<",color=9,fontcolor=8,label=\"seed\"]" << std::endl;
4213 } else {
4214 // Start with my class ID
4215 std::string linkColour = "12";
4216 std::string linkBackground = "11";
4217 const std::string extScheme = "paired12";
4218 if (link == "roi") { linkColour="2"; linkBackground="1"; }
4219 else if (link == "initialRoI") { linkColour="2"; linkBackground="1"; }
4220 else if (link == "initialRecRoI") { linkColour="8"; linkBackground="7"; }
4221 else if (link == "feature") { linkColour="4"; linkBackground="3"; }
4222 else if (link == "view") { linkColour="10"; linkBackground="9"; }
4223 const CLID linkCLID = static_cast<CLID>( tc->linkColClids().at(i) );
4224 // Use it to get my class name
4225 std::string tname;
4226 ATH_CHECK(m_clidSvc->getTypeNameOfID(linkCLID, tname));
4227 // Now get the sgkey I'm linking to & the index
4228 const SG::sgkey_t key = (isRemapped ? static_cast<SG::sgkey_t>( tc->linkColKeysRemap().at(i) ) : static_cast<SG::sgkey_t>( tc->linkColKeys().at(i) ));
4229 const unsigned index = (isRemapped ? tc->linkColIndicesRemap().at(i) : tc->linkColIndices().at(i));
4230 // Look it up
4231 CLID checkCLID;
4232 const std::string* keyStr = evtStore()->keyToString(key, checkCLID); // I don't own this str
4233 if (keyStr != nullptr && checkCLID != linkCLID) {
4234 std::string tnameOfCheck;
4235 m_clidSvc->getTypeNameOfID(checkCLID, tnameOfCheck).ignore(); // Might be invalid. But we don't care.
4236 ATH_MSG_ERROR("Inconsistent CLID " << checkCLID << " [" << tnameOfCheck << "] stored in storegate for key " << key
4237 << ". We were expecting " << linkCLID << " [" << tname << "]");
4238 }
4239
4240 std::string tnameEscape;
4241 for (std::string::const_iterator i = tname.begin(); i != tname.end(); ++i) {
4242 unsigned char c = *i;
4243 if (c == '<') {
4244 tnameEscape += "&lt;";
4245 } else if (c == '>') {
4246 tnameEscape += "&gt;";
4247 } else {
4248 tnameEscape += c;
4249 }
4250 }
4251
4252 // Print
4253 ss << " \"" << selfKey << "_" << selfIndex << "\" -> \"" << key << "_" << index << "\" ";
4254 ss << "[colorscheme="<<extScheme<<",color="<<linkColour<<",fontcolor="<<linkColour<<",arrowhead=empty,label=\"" << link << "\"]" << std::endl;
4255
4256 // Check if we are linking to self (e.g. a dummy-feature), don't output a new box for this
4257 const bool linkToSelf = (selfKey == key and selfIndex == index);
4258
4259 if (converted.count(key + index) == 0 and not linkToSelf) {
4260 ss << " \"" << key << "_" << index << "\" [colorscheme="<<extScheme<<",style=filled,fillcolor="<<linkBackground<<",label=<<B>Container</B>=" << tnameEscape << "<BR/><B>Key</B>=";
4261 if (keyStr != nullptr) ss << *keyStr;
4262 else ss << "[<I>KEY "<< key <<" NOT IN STORE</I>] ";
4263 ss << "<BR/><B>Index</B>=" << index << ">]";
4264 }
4265
4266 converted.insert(key + index);
4267 }
4268 }
4269 }
4270 if (writtenHeader) {
4271 ss << " }" << std::endl;
4272 }
4273 }
4274
4275 ss << "}" << std::endl;
4276
4277 returnValue.assign( ss.str() );
4278 return StatusCode::SUCCESS;
4279}
static Double_t ss
unsigned int DecisionID
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
private

Definition at line 213 of file TrigEDMChecker.h.

◆ 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 217 of file TrigEDMChecker.h.

217{ 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

bool TrigEDMChecker::m_doDumpAll
private

a handle on Store Gate for access to the Event Store

Definition at line 48 of file TrigEDMChecker.h.

◆ m_doDumpAllTrigComposite

bool TrigEDMChecker::m_doDumpAllTrigComposite
private

Definition at line 177 of file TrigEDMChecker.h.

◆ m_doDumpCombinedMuonFeature

bool TrigEDMChecker::m_doDumpCombinedMuonFeature
private

Definition at line 95 of file TrigEDMChecker.h.

◆ m_doDumpHLTResult

bool TrigEDMChecker::m_doDumpHLTResult
private

Definition at line 146 of file TrigEDMChecker.h.

◆ m_doDumpLVL1_ROI

bool TrigEDMChecker::m_doDumpLVL1_ROI
private

Definition at line 52 of file TrigEDMChecker.h.

◆ m_doDumpMuonFeature

bool TrigEDMChecker::m_doDumpMuonFeature
private

Definition at line 99 of file TrigEDMChecker.h.

◆ m_doDumpNavigation

bool TrigEDMChecker::m_doDumpNavigation
private

Definition at line 180 of file TrigEDMChecker.h.

◆ m_doDumpStoreGate

bool TrigEDMChecker::m_doDumpStoreGate
private

Definition at line 164 of file TrigEDMChecker.h.

◆ m_doDumpTauJetContainer

bool TrigEDMChecker::m_doDumpTauJetContainer
private

Definition at line 155 of file TrigEDMChecker.h.

◆ m_doDumpTileMuFeature

bool TrigEDMChecker::m_doDumpTileMuFeature
private

Definition at line 102 of file TrigEDMChecker.h.

◆ m_doDumpTileTrackMuFeature

bool TrigEDMChecker::m_doDumpTileTrackMuFeature
private

Definition at line 105 of file TrigEDMChecker.h.

◆ m_doDumpTrackParticleContainer

bool TrigEDMChecker::m_doDumpTrackParticleContainer
private

Definition at line 55 of file TrigEDMChecker.h.

◆ m_doDumpTrigCompsiteNavigation

bool TrigEDMChecker::m_doDumpTrigCompsiteNavigation
private

Definition at line 200 of file TrigEDMChecker.h.

◆ m_doDumpTrigEFBjetContainer

bool TrigEDMChecker::m_doDumpTrigEFBjetContainer
private

Definition at line 73 of file TrigEDMChecker.h.

◆ m_doDumpTrigEFBphysContainer

bool TrigEDMChecker::m_doDumpTrigEFBphysContainer
private

Definition at line 70 of file TrigEDMChecker.h.

◆ m_doDumpTrigElectronContainer

bool TrigEDMChecker::m_doDumpTrigElectronContainer
private

Definition at line 125 of file TrigEDMChecker.h.

◆ m_doDumpTrigEMCluster

bool TrigEDMChecker::m_doDumpTrigEMCluster
private

Definition at line 82 of file TrigEDMChecker.h.

◆ m_doDumpTrigEMClusterContainer

bool TrigEDMChecker::m_doDumpTrigEMClusterContainer
private

Definition at line 85 of file TrigEDMChecker.h.

◆ m_doDumpTrigL2BjetContainer

bool TrigEDMChecker::m_doDumpTrigL2BjetContainer
private

Definition at line 76 of file TrigEDMChecker.h.

◆ m_doDumpTrigL2BphysContainer

bool TrigEDMChecker::m_doDumpTrigL2BphysContainer
private

Definition at line 67 of file TrigEDMChecker.h.

◆ m_doDumpTrigMissingET

bool TrigEDMChecker::m_doDumpTrigMissingET
private

Definition at line 58 of file TrigEDMChecker.h.

◆ m_doDumpTrigMuonEFContainer

bool TrigEDMChecker::m_doDumpTrigMuonEFContainer
private

Definition at line 111 of file TrigEDMChecker.h.

◆ m_doDumpTrigMuonEFInfoContainer

bool TrigEDMChecker::m_doDumpTrigMuonEFInfoContainer
private

Definition at line 114 of file TrigEDMChecker.h.

◆ m_doDumpTrigMuonEFIsolationContainer

bool TrigEDMChecker::m_doDumpTrigMuonEFIsolationContainer
private

Definition at line 122 of file TrigEDMChecker.h.

◆ m_doDumpTrigPassBits

bool TrigEDMChecker::m_doDumpTrigPassBits
private

Definition at line 50 of file TrigEDMChecker.h.

◆ m_doDumpTrigPhotonContainer

bool TrigEDMChecker::m_doDumpTrigPhotonContainer
private

Definition at line 108 of file TrigEDMChecker.h.

◆ m_doDumpTrigTauClusterContainer

bool TrigEDMChecker::m_doDumpTrigTauClusterContainer
private

Definition at line 79 of file TrigEDMChecker.h.

◆ m_doDumpTrigTauContainer

bool TrigEDMChecker::m_doDumpTrigTauContainer
private

Definition at line 140 of file TrigEDMChecker.h.

◆ m_doDumpTrigTauTracksInfo

bool TrigEDMChecker::m_doDumpTrigTauTracksInfo
private

Definition at line 143 of file TrigEDMChecker.h.

◆ m_doDumpTrigVertexCollection

bool TrigEDMChecker::m_doDumpTrigVertexCollection
private

Definition at line 149 of file TrigEDMChecker.h.

◆ m_doDumpxAODElectronContainer

bool TrigEDMChecker::m_doDumpxAODElectronContainer
private

Definition at line 134 of file TrigEDMChecker.h.

◆ m_doDumpxAODJetContainer

bool TrigEDMChecker::m_doDumpxAODJetContainer
private

Definition at line 64 of file TrigEDMChecker.h.

◆ m_doDumpxAODMuonContainer

bool TrigEDMChecker::m_doDumpxAODMuonContainer
private

Definition at line 119 of file TrigEDMChecker.h.

◆ m_doDumpxAODPhotonContainer

bool TrigEDMChecker::m_doDumpxAODPhotonContainer
private

Definition at line 137 of file TrigEDMChecker.h.

◆ m_doDumpxAODTauJetContainer

bool TrigEDMChecker::m_doDumpxAODTauJetContainer
private

Definition at line 152 of file TrigEDMChecker.h.

◆ m_doDumpxAODTrackParticle

bool TrigEDMChecker::m_doDumpxAODTrackParticle
private

Definition at line 158 of file TrigEDMChecker.h.

◆ m_doDumpxAODTrigElectronContainer

bool TrigEDMChecker::m_doDumpxAODTrigElectronContainer
private

Definition at line 128 of file TrigEDMChecker.h.

◆ m_doDumpxAODTrigEMCluster

bool TrigEDMChecker::m_doDumpxAODTrigEMCluster
private

Definition at line 89 of file TrigEDMChecker.h.

◆ m_doDumpxAODTrigEMClusterContainer

bool TrigEDMChecker::m_doDumpxAODTrigEMClusterContainer
private

Definition at line 92 of file TrigEDMChecker.h.

◆ m_doDumpxAODTrigMinBias

bool TrigEDMChecker::m_doDumpxAODTrigMinBias
private

Definition at line 170 of file TrigEDMChecker.h.

◆ m_doDumpxAODTrigMissingET

bool TrigEDMChecker::m_doDumpxAODTrigMissingET
private

Definition at line 61 of file TrigEDMChecker.h.

◆ m_doDumpxAODTrigPhotonContainer

bool TrigEDMChecker::m_doDumpxAODTrigPhotonContainer
private

Definition at line 131 of file TrigEDMChecker.h.

◆ m_doDumpxAODVertex

bool TrigEDMChecker::m_doDumpxAODVertex
private

Definition at line 161 of file TrigEDMChecker.h.

◆ m_doneFirstEvent

bool AthAnalysisAlgorithm::m_doneFirstEvent {false}
privateinherited

Definition at line 122 of file AthAnalysisAlgorithm.h.

122{false};

◆ m_doTDTCheck

bool TrigEDMChecker::m_doTDTCheck
private

Definition at line 167 of file TrigEDMChecker.h.

◆ m_dumpNavForChain

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

Definition at line 182 of file TrigEDMChecker.h.

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

◆ m_dumpTrigCompositeContainers

std::vector<std::string> TrigEDMChecker::m_dumpTrigCompositeContainers
private

Definition at line 178 of file TrigEDMChecker.h.

◆ 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 183 of file TrigEDMChecker.h.

183 {this, "excludeFailedHypoNodes", false,
184 "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 211 of file TrigEDMChecker.h.

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

◆ m_muonTracksKey

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

Definition at line 215 of file TrigEDMChecker.h.

215{ 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 216 of file TrigEDMChecker.h.

216{ this, "TrigNavigation", "TrigNavigation", "" };

◆ m_navigationTool

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

Definition at line 218 of file TrigEDMChecker.h.

218{ 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_trackWarningNum

int TrigEDMChecker::m_trackWarningNum {0}
private

Definition at line 221 of file TrigEDMChecker.h.

221{0};

◆ 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 219 of file TrigEDMChecker.h.

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

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertexWarningNum

int TrigEDMChecker::m_vertexWarningNum {0}
private

Definition at line 222 of file TrigEDMChecker.h.

222{0};

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