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 () override
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 const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
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")
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 ()
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 dumpTrigInDetTrackCollection ()
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 ()
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_doDumpTrigInDetTrackCollection
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
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 205 of file AthHistogramming.h.

◆ GraphMap_t

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

Typedef for convenience.

Definition at line 219 of file AthHistogramming.h.

◆ hash_t

typedef uint32_t AthHistogramming::hash_t
privateinherited

typedef for the internal hash

Definition at line 169 of file AthHistogramming.h.

◆ HistMap_t

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

Typedef for convenience.

Definition at line 198 of file AthHistogramming.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< 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 212 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 112 of file TrigEDMChecker.cxx.

113 : AthAnalysisAlgorithm(name, pSvcLocator),
114 m_clidSvc( "ClassIDSvc", name )
115{
117
118 declareProperty("doDumpAll", m_doDumpAll = true);
119 declareProperty("doDumpTrigPassBits", m_doDumpTrigPassBits = false);
120 declareProperty("doDumpLVL1_ROI", m_doDumpLVL1_ROI = false);
121 declareProperty("doDumpTrigMissingET", m_doDumpTrigMissingET = false);
122 declareProperty("doDumpxAODTrigMissingET", m_doDumpxAODTrigMissingET = false);
123 declareProperty("doDumpMuonFeature", m_doDumpMuonFeature = false);
124 declareProperty("doDumpCombinedMuonFeature", m_doDumpCombinedMuonFeature = false);
125 declareProperty("doDumpTileMuFeature", m_doDumpTileMuFeature = false);
126 declareProperty("doDumpTileTrackMuFeature", m_doDumpTileTrackMuFeature = false);
127 declareProperty("doDumpTrigPhotonContainer", m_doDumpTrigPhotonContainer = false);
128 declareProperty("doDumpTrigL2BphysContainer", m_doDumpTrigL2BphysContainer = false);
129 declareProperty("doDumpTrigEFBphysContainer", m_doDumpTrigEFBphysContainer = false);
130 declareProperty("doDumpTrigEFBjetContainer", m_doDumpTrigEFBjetContainer = false);
131 declareProperty("doDumpTrigL2BjetContainer", m_doDumpTrigL2BjetContainer = false);
132 declareProperty("doDumpxAODJetContainer", m_doDumpxAODJetContainer = false);
133 declareProperty("doDumpTrigMuonEFContainer", m_doDumpTrigMuonEFContainer = false);
134 declareProperty("doDumpTrigMuonEFInfoContainer", m_doDumpTrigMuonEFInfoContainer = false);
135 declareProperty("doDumpTrigMuonEFIsolationContainer", m_doDumpTrigMuonEFIsolationContainer = false);
136 declareProperty("doDumpxAODMuonContainer", m_doDumpxAODMuonContainer = false);
137 declareProperty("doDumpTrigElectronContainer", m_doDumpTrigElectronContainer = false);
138 declareProperty("doDumpxAODTrigElectronContainer", m_doDumpxAODTrigElectronContainer = false);
139 declareProperty("doDumpxAODTrigPhotonContainer", m_doDumpxAODTrigPhotonContainer = false);
140 declareProperty("doDumpxAODElectronContainer", m_doDumpxAODElectronContainer = false);
141 declareProperty("doDumpxAODPhotonContainer", m_doDumpxAODPhotonContainer = false);
142 declareProperty("doDumpHLTResult", m_doDumpHLTResult = false);
143 declareProperty("doDumpTrigTauContainer", m_doDumpTrigTauContainer = false);
144 declareProperty("doDumpTrigTauTracksInfo", m_doDumpTrigTauTracksInfo = false);
145 declareProperty("doDumpTrigInDetTrackCollection", m_doDumpTrigInDetTrackCollection = false);
146 declareProperty("doDumpTrigVertexCollection", m_doDumpTrigVertexCollection = false);
147 declareProperty("doDumpTrigEMCluster", m_doDumpTrigEMCluster = false);
148 declareProperty("doDumpTrigEMClusterContainer", m_doDumpTrigEMClusterContainer = false);
149 declareProperty("doDumpxAODTrigEMCluster", m_doDumpxAODTrigEMCluster = false);
150 declareProperty("doDumpxAODTrigEMClusterContainer", m_doDumpxAODTrigEMClusterContainer = false);
151 declareProperty("doDumpTrigTauClusterContainer", m_doDumpTrigTauClusterContainer = false);
152 declareProperty("doDumpTrackParticleContainer", m_doDumpTrackParticleContainer = false);
153 declareProperty("doDumpTauJetContainer", m_doDumpTauJetContainer = false);
154 declareProperty("doDumpxAODTrackParticle", m_doDumpxAODTrackParticle = false);
155 declareProperty("doDumpxAODVertex", m_doDumpxAODVertex = false);
156 declareProperty("doDumpxAODTauJetContainer", m_doDumpxAODTauJetContainer = false);
157 declareProperty("doDumpxAODTrigMinBias", m_doDumpxAODTrigMinBias = false);
158 declareProperty("doDumpStoreGate", m_doDumpStoreGate = false );
159 declareProperty("doDumpAllTrigComposite", m_doDumpAllTrigComposite = false );
160 declareProperty("dumpTrigCompositeContainers", m_dumpTrigCompositeContainers, "List of TC to dump" );
161 declareProperty("doDumpTrigCompsiteNavigation", m_doDumpTrigCompsiteNavigation = false );
162 declareProperty("doDumpNavigation", m_doDumpNavigation = false );
163 declareProperty("doTDTCheck", m_doTDTCheck = false );
164 declareProperty( "ClassIDSvc", m_clidSvc, "Service providing CLID info" );
165}
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_doDumpTrigInDetTrackCollection
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 169 of file TrigEDMChecker.cxx.

169{}

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE() [1/24]

StatusCode do_execute TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [2/24]

StatusCode dumpTrigMissingET TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [3/24]

StatusCode dumpTrigEFBjetContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [4/24]

StatusCode dumpTrigL2BjetContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [5/24]

StatusCode dumpTrigTauClusterContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [6/24]

StatusCode dumpTrigEMCluster TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [7/24]

StatusCode dumpTrigEMClusterContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [8/24]

StatusCode dumpxAODTrigEMCluster TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [9/24]

StatusCode dumpxAODTrigEMClusterContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [10/24]

StatusCode dumpCombinedMuonFeature TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [11/24]

StatusCode dumpCombinedMuonFeatureContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [12/24]

StatusCode dumpMuonFeature TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [13/24]

StatusCode dumpTileMuFeatureContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [14/24]

StatusCode dumpTileTrackMuFeatureContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [15/24]

StatusCode dumpTrigPhotonContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [16/24]

StatusCode dumpTrigMuonEFContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [17/24]

StatusCode dumpTrigMuonEFInfoContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [18/24]

StatusCode dumpTrigMuonEFIsolationContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [19/24]

StatusCode dumpTrigElectronContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [20/24]

StatusCode dumpTrigTauContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [21/24]

StatusCode dumpTrigTauTracksInfo TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [22/24]

StatusCode dumpTrigVertexCollection TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [23/24]

StatusCode dumpxAODTauJetContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [24/24]

StatusCode dumpTauJetContainer TrigEDMChecker::ATLAS_NOT_THREAD_SAFE ( )
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 335 of file AthHistogramming.h.

336{
337 // We need to create a non-const clone
338 TEfficiency* effClone = dynamic_cast< TEfficiency* >( eff.Clone() );
339 if ( !effClone ) {
340 m_msg << MSG::ERROR << "Couldn't create a TEfficiency clone" << endmsg;
341 return StatusCode::FAILURE;
342 }
343 return this->book( *effClone, tDir, stream );
344}
#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 303 of file AthHistogramming.h.

304{
305 // We need to create a non-const clone
306 TH1* histClone = dynamic_cast< TH1* >( hist.Clone() );
307 if ( !histClone ) {
308 m_msg << MSG::ERROR << "Couldn't create a TH1 clone" << endmsg;
309 return StatusCode::FAILURE;
310 }
311 return this->book( *histClone, tDir, stream );
312}
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 403 of file AthHistogramming.h.

404{
405 // Call the other Book method and see if it returns a valid pointer
406 TTree* treePointer = this->bookGetPointer( treeRef, tDir, stream );
407 if ( treePointer )
408 {
409 return StatusCode::SUCCESS;
410 }
411 else
412 {
413 return StatusCode::FAILURE;
414 }
415}
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 356 of file AthHistogramming.h.

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

◆ 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 346 of file AthHistogramming.h.

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

◆ 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 324 of file AthHistogramming.h.

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

◆ 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 314 of file AthHistogramming.h.

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

◆ 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 281 of file AthHistogramming.h.

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

◆ 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 427 of file AthHistogramming.cxx.

428{
429 // Get a pointer
430 const TGraph* graphPointer = &graphRef;
431
432 // Check that we got a valid pointer
433 if ( !graphPointer )
434 {
435 m_msg << MSG::WARNING
436 << "We got an invalid TGraph pointer in the BookGetPointer(TGraph*) method of the class" << m_name
437 << "!" << endmsg;
438 return NULL;
439 }
440
441 // Modify the name and title according to the prefixes of this classes instance
442 std::string graphName = graphPointer->GetName();
443 const std::string graphTitle = graphPointer->GetTitle();
444
445 // Check if the hash for this graphName already exists, i.e., if we have a hash collision
446 const hash_t graphHash = this->hash(graphName);
447 GraphMap_t::const_iterator it = m_graphMap.find( graphHash );
448 if ( it != m_graphMap.end() ) // It does exist!
449 {
450 m_msg << MSG::WARNING
451 << "Detected a hash collision. The hash for the TGraph with name=" << graphName
452 << " already exists and points to a TGraph with name=" << it->second->GetName()
453 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
454 return NULL;
455 }
456
457 // Create a clone that has the new name
458 TGraph* graphClone = dynamic_cast< TGraph* >( graphPointer->Clone((m_histNamePrefix+graphName+m_histNamePostfix).c_str()) );
459 if( !graphClone )
460 {
461 m_msg << MSG::WARNING
462 << "We couldn't clone the TGraph in the BookGetPointer(TGraph&) method of the class" << m_name
463 << "!" << endmsg;
464 return NULL;
465 }
466 graphClone->SetTitle ((m_histTitlePrefix+graphTitle+m_histTitlePostfix).c_str());
467
468 // Massage the final string to book things
469 std::string bookingString("");
470 this->buildBookingString( bookingString, graphName, tDir, stream );
471
472 // Register the TGraph into the THistSvc
473 if ( !((histSvc()->regGraph(bookingString, graphClone)).isSuccess()) )
474 {
475 m_msg << MSG::WARNING
476 << "Problem registering TGraph with name " << graphName
477 << ", title " << graphTitle
478 << " in " << m_name << "!" << endmsg;
479 return NULL;
480 }
481
482 // Also register it in the local map of string to pointer
483 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphClone ) );
484
485 return graphClone;
486}
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 260 of file AthHistogramming.h.

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

◆ 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 312 of file AthHistogramming.cxx.

313{
314 // Get a pointer
315 const TTree* treePointer = &treeRef;
316
317 // Check that we got a valid pointer
318 if ( !treePointer )
319 {
320 m_msg << MSG::WARNING
321 << "We got an invalid TTree pointer in the BookGetPointer(TTree*) method of the class" << m_name
322 << "!" << endmsg;
323 return NULL;
324 }
325
326 // Modify the name and title according to the prefixes of this classes instance
327 std::string treeName = treePointer->GetName();
328 const std::string treeTitle = treePointer->GetTitle();
329
330 // Check if the hash for this treeName already exists, i.e., if we have a hash collision
331 const hash_t treeHash = this->hash(treeName);
332 TreeMap_t::const_iterator it = m_treeMap.find( treeHash );
333 if ( it != m_treeMap.end() ) // It does exist!
334 {
335 m_msg << MSG::WARNING
336 << "Detected a hash collision. The hash for the TTree with name=" << treeName
337 << " already exists and points to a TTree with name=" << it->second->GetName()
338 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
339 return NULL;
340 }
341
342 // Create a clone that has the new name
343 TTree* treeClone = dynamic_cast< TTree* >( treePointer->Clone(treeName.c_str()) );
344 if( !treeClone )
345 {
346 m_msg << MSG::WARNING
347 << "We couldn't clone the TTree in the BookGetPointer(TTree&) method of the class" << m_name
348 << "!" << endmsg;
349 return NULL;
350 }
351 treeClone->SetTitle (treeTitle.c_str());
352
353 // Massage the final string to book things
354 std::string bookingString("");
355 this->buildBookingString( bookingString, treeName, tDir, stream );
356
357 // Register the TTree into the THistSvc
358 if ( !((histSvc()->regTree(bookingString, treeClone)).isSuccess()) )
359 {
360 m_msg << MSG::WARNING
361 << "Problem registering TTree with name " << treeName
362 << ", title " << treeTitle
363 << " in " << m_name << "!" << endmsg;
364 return NULL;
365 }
366
367 // Also register it in the local map of string to pointer
368 m_treeMap.insert( m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treeClone ) );
369
370 return treeClone;
371}
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 146 of file AthHistogramming.cxx.

147{
148 // Modify the name and title according to the prefixes of this classes instance
149 std::string effName(effRef.GetName());
150 const std::string effTitle(effRef.GetTitle());
151 std::string bookingString("");
152
153 this->buildBookingString( bookingString, effName, tDir, stream );
154 effRef.SetTitle((m_histTitlePrefix+effTitle+m_histTitlePostfix).c_str() );
155 effRef.SetName(effName.c_str());
156
157 // Check if the hash for this effName already exists, i.e., if we have a hash collision
158 const hash_t effHash = this->hash(effName);
159 EffMap_t::const_iterator it = m_effMap.find( effHash );
160 if ( it != m_effMap.end() ) // It does exist!
161 {
162 m_msg << MSG::WARNING
163 << "Detected a hash collision. The hash for the TEfficiency with name=" << effName
164 << " already exists and points to a TEfficiency with name=" << it->second->GetName()
165 << " NOT going to book the new TEfficiency and returning a NULL pointer!" << endmsg;
166 return NULL;
167 }
168
169 // Set the new name and title for the TEfficiency, based on the prefixes that the user set for this class instance
170 // Create a clone that has the new name
171
172 // Massage the final string to book things
173
174 // Register the TEfficiency into the THistSvc
175 if ( !((histSvc()->regEfficiency(bookingString, &effRef)).isSuccess()) )
176 {
177 m_msg << MSG::WARNING
178 << "Problem registering TEfficiency with name " << effName
179 << ", name prefix " << m_histNamePrefix
180 << ", title " << effTitle
181 << ", tile prefix " << m_histTitlePrefix
182 << ", and tile postfix " << m_histTitlePostfix
183 << " in " << m_name << "!" << endmsg;
184 return NULL;
185 }
186
187 // Also register it in the local map of string to pointer
188 m_effMap.insert( m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, &effRef ) );
189
190 return &effRef;
191}
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 293 of file AthHistogramming.h.

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

◆ 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 98 of file AthHistogramming.cxx.

99{
100 // Modify the name and title according to the prefixes of this classes instance
101 std::string histName(histRef.GetName());
102 const std::string histTitle(histRef.GetTitle());
103 std::string bookingString("");
104
105 this->buildBookingString( bookingString, histName, tDir, stream );
106 histRef.SetTitle((m_histTitlePrefix+histTitle+m_histTitlePostfix).c_str() );
107 histRef.SetName(histName.c_str());
108
109 // Check if the hash for this histName already exists, i.e., if we have a hash collision
110 const hash_t histHash = this->hash(histName);
111 HistMap_t::const_iterator it = m_histMap.find( histHash );
112 if ( it != m_histMap.end() ) // It does exist!
113 {
114 m_msg << MSG::WARNING
115 << "Detected a hash collision. The hash for the histogram with name=" << histName
116 << " already exists and points to a histogram with name=" << it->second->GetName()
117 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
118 return NULL;
119 }
120
121 // Set the new name and title for the histogram, based on the prefixes that the user set for this class instance
122 // Create a clone that has the new name
123
124 // Massage the final string to book things
125
126 // Register the histogram into the THistSvc
127 if ( !((histSvc()->regHist(bookingString, &histRef)).isSuccess()) )
128 {
129 m_msg << MSG::WARNING
130 << "Problem registering histogram with name " << histName
131 << ", name prefix " << m_histNamePrefix
132 << ", title " << histTitle
133 << ", tile prefix " << m_histTitlePrefix
134 << ", and tile postfix " << m_histTitlePostfix
135 << " in " << m_name << "!" << endmsg;
136 return NULL;
137 }
138
139 // Also register it in the local map of string to pointer
140 m_histMap.insert( m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, &histRef ) );
141
142 return &histRef;
143}
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 272 of file AthHistogramming.h.

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

◆ 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 560 of file AthHistogramming.cxx.

565{
566 // Massage the final string to book things
567 if(tDir.empty()) tDir = m_rootDir;
568 size_t pos = histName.rfind('/');
569 if(pos != std::string::npos){
570 tDir+='/';
571 tDir.append(histName, 0,pos);
572 histName.erase(0,pos+1);
573 };
574 if(stream.empty()) stream = m_streamName;
575
576 if(usePrefixPostfix){
577 bookingString = "/"+stream+"/"+tDir+"/"+m_histNamePrefix+histName+m_histNamePostfix;
578 } else {
579 bookingString = "/"+stream+"/"+tDir+"/"+histName;
580 }
581 while(bookingString.find("//") != std::string::npos){
582 this->myReplace(bookingString,"//","/");
583 }
584
585 return;
586}
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 4146 of file TrigEDMChecker.cxx.

4146 {
4147
4148 const std::string name = tc->linkColNames().at(element);
4149 const CLID clid = static_cast<CLID>(tc->linkColClids().at(element));
4150
4152
4153 const ElementLink<TrigRoiDescriptorCollection> elementLink = tc->objectLink<TrigRoiDescriptorCollection>(name);
4154 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to TrigRoiDescriptorCollection, link name:'" << name << "'");
4155 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "'' to TrigRoiDescriptor:" << *elementLink);
4156
4157 } else if (clid == ClassID_traits< DataVector< LVL1::RecEmTauRoI > >::ID()) { // There could be a few ROI types....
4158 // CLASS_DEF( DataVector< LVL1::RecEmTauRoI >, 6256, 1 )
4159
4160 const ElementLink<DataVector< LVL1::RecEmTauRoI >> elementLink = tc->objectLink<DataVector< LVL1::RecEmTauRoI >>(name);
4161 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to LVL1::RecEmTauRoI, link name:'" << name << "'");
4162 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to LVL1::RecEmTauRoI:" << *elementLink);
4163
4165
4166 const ElementLink<xAOD::TrigCompositeContainer> elementLink = tc->objectLink<xAOD::TrigCompositeContainer>(name);
4167 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to TrigComposite, link name:'" << name << "'");
4168 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to TrigComposite, TC name:'" << (*elementLink)->name() << "'");
4169
4170 } else if (clid == ClassID_traits< ViewContainer >::ID()) {
4171
4172 const ElementLink<ViewContainer> elementLink = tc->objectLink<ViewContainer>(name);
4173 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to View, link name:'" << name << "'");
4174 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to View:'" << *elementLink);
4175
4176 } else if (name == "feature") {
4177
4179
4180 const ElementLink<xAOD::TrigEMClusterContainer> elementLink = tc->objectLink<xAOD::TrigEMClusterContainer>(name);
4181 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to xAOD::TrigEMClusterContainer 'feature'");
4182 else ATH_MSG_DEBUG(" Dereferenced xAOD::TrigEMClusterContainer link 'feature', Energy:" << (*elementLink)->energy());
4183
4185
4186 const ElementLink<xAOD::TrigMissingETContainer> elementLink = tc->objectLink<xAOD::TrigMissingETContainer>(name);
4187 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to xAOD::TrigMissingETContainer 'feature'");
4188 else ATH_MSG_DEBUG(" Dereferenced xAOD::TrigMissingETContainer link 'feature', ex:" << (*elementLink)->ex() << " ey:" << (*elementLink)->ey());
4189
4190 } else {
4191
4192 try {
4193 const ElementLink<xAOD::IParticleContainer> elementLink = tc->objectLink<xAOD::IParticleContainer>(name);
4194 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to 'feature'");
4195 else ATH_MSG_DEBUG(" Dereferenced IParticle link 'feature', pt:" << (*elementLink)->pt() << " eta:" << (*elementLink)->eta() << " phi:" << (*elementLink)->phi());
4196 } catch(std::runtime_error& e) {
4197 ATH_MSG_WARNING(" Cannot dereference 'feature' as IParticle: '" << e.what() << "'");
4198 }
4199
4200 }
4201
4202 } else {
4203 ATH_MSG_DEBUG(" Ignoring link to '" << name << "' with link CLID " << clid);
4204 }
4205
4206 return StatusCode::SUCCESS;
4207
4208}
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
std::vector< Identifier > ID
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
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 66 of file AthHistogramming.cxx.

70{
73 m_rootDir = rootDir;
74 m_histNamePrefix = histNamePrefix;
75 m_histNamePostfix = histNamePostfix;
76 m_histTitlePrefix = histTitlePrefix;
77 m_histTitlePostfix = histTitlePostfix;
78
79 return StatusCode::SUCCESS;
80}
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)
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< 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< 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< 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 2100 of file TrigEDMChecker.cxx.

2100 {
2101
2102 ATH_MSG_DEBUG("in dumpHLTResult()");
2103
2104 ATH_MSG_INFO("REGTEST ==========START of HLTResult DUMP===========");
2105
2106 const HLT::HLTResult* hltResult = 0;
2107 StatusCode sc=evtStore()->retrieve( hltResult, "HLTResult_L2");
2108 if( sc.isFailure() || !hltResult ) {
2109 ATH_MSG_INFO("No HLTResult_L2 found in TDS");
2110 return StatusCode::SUCCESS;
2111 }
2112 ATH_MSG_INFO("REGTEST HLTResult_L2 Successfully Retrieved");
2113
2114 ATH_MSG_INFO("REGTEST HLTResult_L2->isEmpty() returns " << hltResult->isEmpty());
2115 ATH_MSG_INFO("REGTEST HLTResult_L2->size() returns " << hltResult->size());
2116 ATH_MSG_INFO("REGTEST HLTResult_L2->isPassThrough() returns " << hltResult->isPassThrough());
2117 ATH_MSG_INFO("REGTEST HLTResult_L2->isAccepted() returns " << hltResult->isAccepted());
2118
2119 ATH_MSG_INFO("REGTEST ==========END of HLTResult DUMP===========");
2120
2121 ATH_MSG_DEBUG("dumpHLTResult() succeeded");
2122
2123 return StatusCode::SUCCESS;
2124}
#define ATH_MSG_INFO(x)
static Double_t sc
bool isAccepted() const
gets HLT decision
Definition HLTResult.h:131
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:146
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 1165 of file TrigEDMChecker.cxx.

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

◆ dumpNavigation()

StatusCode TrigEDMChecker::dumpNavigation ( )
private

Definition at line 4437 of file TrigEDMChecker.cxx.

4438{
4439 // Get object from store
4440 const xAOD::TrigNavigation * navigationHandle = nullptr;
4441 ATH_CHECK( evtStore()->retrieve( navigationHandle, m_navigationHandleKey.key() ) );
4442 // Proper version doesn't work - conversion issue?
4443 //SG::ReadHandle< xAOD::TrigNavigation > navigationHandle = SG::ReadHandle< xAOD::TrigNavigation >( m_navigationHandleKey );
4444 //if ( !navigationHandle.isValid() ) ATH_MSG_FATAL( "Could not retrieve navigation" );
4445
4446 // Get serialised navigation info
4447 const std::vector< unsigned int > serialisedNavigation = navigationHandle->serialized();
4448 ATH_MSG_INFO( "Serialised navigation size: " << serialisedNavigation.size() );
4449
4450 // Convert the input
4451 HLT::Navigation* testNav = m_navigationTool.get();
4452 testNav->deserialize( serialisedNavigation );
4453
4454 // Make a map of TE name hashes
4455 const xAOD::TriggerMenuContainer * testMenu = nullptr;
4456 ATH_CHECK( inputMetaStore()->retrieve( testMenu, "TriggerMenu" ) );
4457 std::map< int, std::string > hash2string;
4458 for ( auto const& sequence : testMenu->front()->sequenceInputTEs() ) {
4459 for ( auto const& name : sequence ) {
4461 hash2string[ hash ] = name;
4462 }
4463 }
4464
4465 // Map TE names to chain names
4466 unsigned int chainCounter = 0;
4467 std::map< int, std::string > hash2chain;
4468 for ( auto const& chain : testMenu->front()->chainSignatureOutputTEs() ) {
4469
4470 // Find the chain name
4471 std::string chainName = testMenu->front()->chainNames()[ chainCounter ];
4472 ++chainCounter;
4473
4474 // Find all associated TEs
4475 for ( auto const& signature : chain ) {
4476 for ( auto const& name : signature ) {
4478 hash2string[ hash ] = name; // for decoding
4479 hash2chain[ hash ] = chainName;
4480 }
4481 }
4482 }
4483
4484 // Define a map of TE features, to the TEs that use them. Needs a custom sort lambda
4485 auto cmpLambda = []( const HLT::TriggerElement::FeatureAccessHelper &lhs, const HLT::TriggerElement::FeatureAccessHelper &rhs) {
4486
4487 // Compare indices if CLID matches
4488 if ( lhs.getCLID() == rhs.getCLID() ) return ( lhs.getIndex() < rhs.getIndex() );
4489
4490 // Compare CLIDs
4491 else return ( lhs.getCLID() < rhs.getCLID() );
4492 };
4493 std::map< HLT::TriggerElement::FeatureAccessHelper, std::vector< HLT::TriggerElement* >, decltype(cmpLambda) > feature2element(cmpLambda);
4494
4495 // Retrieve all TE features and add them to the map
4496 std::vector< HLT::TriggerElement* > allTEs;
4497 testNav->getAll( allTEs, false );
4498 for ( auto element : allTEs ) {
4499
4500 // Add TE features to the big map
4501 for ( auto helper : element->getFeatureAccessHelpers() ) {
4502 feature2element[ helper ].push_back( element );
4503 }
4504 }
4505
4506 // Debug - output all TEs and their ancestors
4507 // No duplication - only print terminal nodes
4508 for ( auto element : allTEs ) {
4509 if ( testNav->isTerminalNode( element ) ) {
4510 ATH_MSG_INFO( "+++++++++++ " << hash2string[ element->getId() ] << " is terminal node" );
4511 ATH_MSG_INFO( "ptr: " << element );
4512 std::queue< HLT::TriggerElement* > allAncestors;
4513 allAncestors.push( element );
4514 while ( allAncestors.size() ) {
4515
4516 HLT::TriggerElement * thisElement = allAncestors.front();
4517 allAncestors.pop();
4518 auto theseAncestors = thisElement->getRelated( HLT::TriggerElement::Relation::seededByRelation );
4519
4520 // Dump TE
4521 ATH_MSG_INFO( "te: " << thisElement->getId() << " " << hash2string[ thisElement->getId() ] );
4522 ATH_MSG_INFO( " chain: " << hash2chain[ thisElement->getId() ] );
4523 for ( const auto& helper : thisElement->getFeatureAccessHelpers() ) {
4524 ATH_MSG_INFO( " feat: " << helper );
4525 }
4526 ATH_MSG_INFO( theseAncestors.size() << " ancestors" );
4527
4528 // Examine ancestors
4529 for ( auto ancestor : theseAncestors ) {
4530 allAncestors.push( ancestor );
4531 }
4532 }
4533 }
4534 }
4535
4536 // Make the decision container
4537 SG::WriteHandle< TrigCompositeUtils::DecisionContainer > outputNavigation = TrigCompositeUtils::createAndStore( m_decisionsKey, getContext() );
4538 auto decisionOutput = outputNavigation.ptr();
4539
4540 // Find unique chains associated with a feature
4541 std::map< HLT::TriggerElement const*, std::vector< int > > element2decisions;
4542 for ( const auto& pair : feature2element ) {
4543
4544 // Get the feature info
4545 std::string featureName = testNav->label( pair.first.getCLID(), pair.first.getIndex().subTypeIndex() );
4546 auto sgKey = evtStore()->stringToKey( featureName, pair.first.getCLID() );
4547
4548 // Store RoIs with appropriate label ?
4549 std::string storeFeatureName = "feature";
4550/* if ( pair.first.getCLID() == ClassID_traits< TrigRoiDescriptor >::ID() ) {
4551 storeFeatureName = "roi";
4552 }*/
4553
4554 // Make a decision object for the feature
4555 auto decision = TrigCompositeUtils::newDecisionIn( decisionOutput );
4556 decision->typelessSetObjectLink( storeFeatureName, sgKey, pair.first.getCLID(), pair.first.getIndex().objectsBegin(), pair.first.getIndex().objectsEnd() );
4557
4558 // Examine associated TEs, look for chains
4559 std::set< std::string > passedChains;
4560 for ( HLT::TriggerElement const* element : pair.second ) {
4561
4562 // TODO - find out what chains actually passed!
4563 passedChains.insert( hash2chain[ element->getId() ] );
4564
4565 // Index the TE
4566 int decisionNumber = decisionOutput->size() - 1;
4567 element2decisions[ element ].push_back( decisionNumber );
4568 }
4569
4570 // Store unique chains in the decision
4571 for ( auto& chain : passedChains ) {
4573 }
4574 }
4575
4576 // Store decision ancestry (had to go through once before to ensure indices populated)
4577 unsigned int decisionCounter = 0;
4578 for ( const auto& pair : feature2element ) {
4579
4580 // Get current decision
4581 auto decision = decisionOutput->at( decisionCounter );
4582 ++decisionCounter;
4583
4584 // Find ancestor TEs
4585 for ( auto element : pair.second ) {
4586 auto theseAncestors = element->getRelated( HLT::TriggerElement::Relation::seededByRelation );
4587 for ( auto ancestor : theseAncestors ) {
4588 for ( int decisionIndex : element2decisions[ ancestor ] ) {
4589 TrigCompositeUtils::linkToPrevious( decision, m_decisionsKey.key(), decisionIndex );
4590 }
4591 }
4592 }
4593 }
4594
4595 return StatusCode::SUCCESS;
4596}
#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.
retrieve(aClass, aKey=None)
Definition PyKernel.py:110
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 4014 of file TrigEDMChecker.cxx.

4014 {
4015 using namespace TrigCompositeUtils; // LinkInfo
4016 ATH_MSG_INFO( "REGTEST ==========START of TDT DUMP===========" );
4017 // Note: This minimal TDT dumper is for use during run-3 dev
4018 std::string chain = m_dumpNavForChain;
4019 if (chain.empty()) {
4020 chain = "HLT_.*";
4021 }
4022 std::vector<std::string> confChains = m_trigDec->getListOfTriggers(chain);
4023 for (const auto& item : confChains) {
4024 bool passed = m_trigDec->isPassed(item);
4025 ATH_MSG_INFO(" HLT Item " << item << " (numeric ID " << TrigConf::HLTUtils::string2hash(item, "Identifier") << ") passed raw? " << passed);
4026 if (m_trigDec->getNavigationFormat() == "TriggerElement") {
4027 ATH_MSG_DEBUG(" Skipping Run 2 features in this dumper");
4028 continue;
4029 }
4030 std::vector< LinkInfo<xAOD::IParticleContainer> > passFeatures = m_trigDec->features<xAOD::IParticleContainer>(item);
4031 if (passFeatures.size()) {
4032 ATH_MSG_INFO(" " << item << " Passed Final IParticle features size: " << passFeatures.size());
4033 for (const LinkInfo<xAOD::IParticleContainer>& li : passFeatures) {
4034 if (!li.isValid()) {
4035 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
4036 } else {
4037 try {
4038 std::string state = "ACTIVE";
4039 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
4040 else if (li.state == ActiveState::UNSET) state = "UNSET";
4041 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);
4042 } catch (const std::exception& e) {
4043 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
4044 }
4045 }
4046 }
4047 }
4048 std::vector< LinkInfo<xAOD::IParticleContainer> > passAndFailFeatures = m_trigDec->features<xAOD::IParticleContainer>(item, TrigDefs::includeFailedDecisions);
4049 if (passAndFailFeatures.size()) {
4050 ATH_MSG_INFO(" " << item << " Passed+Failed Final IParticle features size: " << passAndFailFeatures.size());
4051 for (const LinkInfo<xAOD::IParticleContainer>& li : passAndFailFeatures) {
4052 if (!li.isValid()) {
4053 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
4054 } else {
4055 try {
4056 std::string state = "ACTIVE";
4057 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
4058 else if (li.state == ActiveState::UNSET) state = "UNSET";
4059 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);
4060 } catch (const std::exception& e) {
4061 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
4062 }
4063 }
4064 }
4065 }
4066 std::vector< LinkInfo<xAOD::IParticleContainer> > allFeatures = m_trigDec->features<xAOD::IParticleContainer>(item, TrigDefs::includeFailedDecisions, "", TrigDefs::allFeaturesOfType);
4067 if (allFeatures.size()) {
4068 ATH_MSG_INFO(" " << item << " Passed+Failed ALL IParticle features size: " << allFeatures.size());
4069 for (const LinkInfo<xAOD::IParticleContainer>& li : allFeatures) {
4070 if (!li.isValid()) {
4071 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
4072 } else {
4073 try {
4074 std::string state = "ACTIVE";
4075 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
4076 else if (li.state == ActiveState::UNSET) state = "UNSET";
4077 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);
4078 } catch (const std::exception& e) {
4079 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
4080 }
4081 }
4082 }
4083 }
4084 }
4085
4086 if (m_trigDec->getNavigationFormat() == "TrigComposite") {
4087 // Check associateToEventView helper function
4088 std::vector< LinkInfo<xAOD::IParticleContainer> > muons = m_trigDec->features<xAOD::IParticleContainer>("HLT_mu24_idperf_L1MU20", TrigDefs::Physics, "HLT_MuonL2CBInfo");
4089 SG::ReadHandle<xAOD::TrackParticleContainer> muonTracksReadHandle(m_muonTracksKey, Gaudi::Hive::currentContext());
4090 for (const LinkInfo<xAOD::IParticleContainer>& mu : muons) {
4091 // Note: auto here refers to type std::pair< xAOD::TrackParticleContainer::const_iterator, xAOD::TrackParticleContainer::const_iterator>
4092 const auto roiTrackItPair = m_trigDec->associateToEventView<xAOD::TrackParticleContainer>(muonTracksReadHandle, mu, "roi");
4093 const xAOD::TrackParticleContainer::const_iterator startIt = roiTrackItPair.first;
4094 const xAOD::TrackParticleContainer::const_iterator stopIt = roiTrackItPair.second;
4095 ATH_MSG_INFO("Muon pT: " << (*mu.link)->pt() << " is from the same ROI as tracks with index "
4096 << std::distance(muonTracksReadHandle->begin(), startIt) << "-" << std::distance(muonTracksReadHandle->begin(), stopIt)
4097 << ", which is " << std::distance(startIt, stopIt) << " tracks, out of " << muonTracksReadHandle->size() << " total tracks.");
4098 for (xAOD::TrackParticleContainer::const_iterator it = startIt; it != stopIt; ++it) {
4099 ATH_MSG_VERBOSE(" -- Track " << std::distance(startIt, it) << " in this ROI, pT: " << (*it)->pt() );
4100 }
4101 }
4102 }
4103
4104 ATH_MSG_INFO( "REGTEST ==========END of TDT DUMP===========" );
4105 return StatusCode::SUCCESS;
4106}
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 1058 of file TrigEDMChecker.cxx.

1058 {
1059
1060 ATH_MSG_DEBUG("in dumpTrackParticleContainer()");
1061
1062 ATH_MSG_INFO("REGTEST ==========START of TrackParticleContainer DUMP===========");
1063
1064 std::string trackPtags[]={"HLT_InDetTrigParticleCreation_Bjet_EFID",
1065 "HLT_InDetTrigParticleCreation_Bphysics_EFID",
1066 "HLT_InDetTrigParticleCreation_Electron_EFID",
1067 "HLT_InDetTrigParticleCreation_FullScan_EFID",
1068 "HLT_InDetTrigParticleCreation_Muon_EFID",
1069 "HLT_InDetTrigParticleCreation_Photon_EFID",
1070 "HLT_InDetTrigParticleCreation_Tau_EFID"};
1071
1072 int ntag=7;
1073
1074 StatusCode returnsc=StatusCode::SUCCESS;
1075
1076 for (int itag=0; itag<ntag; itag++){
1077 const Rec::TrackParticleContainer* pTrackParticleC = nullptr;
1078 StatusCode sc = evtStore()->retrieve(pTrackParticleC, trackPtags[itag]);
1079 if (sc.isFailure()) {
1080 ATH_MSG_INFO("REGTEST No TrackParticleContainer found with tag " << trackPtags[itag]);
1081 continue;
1082 }
1083 ATH_MSG_INFO("TrackParticleContainer found with tag " << trackPtags[itag]
1084 << " and size " << pTrackParticleC->size());
1085
1086 Rec::TrackParticleContainer::const_iterator trackItr = pTrackParticleC->begin();
1087 Rec::TrackParticleContainer::const_iterator trackItrE = pTrackParticleC->end();
1088 for (int ind=1; trackItr != trackItrE; ++trackItr, ind++) {
1089 const Rec::TrackParticle * trackParticle = (*trackItr);
1090 ATH_MSG_INFO(" TrackParticle " << ind << " charge "
1091 << trackParticle->charge() << " p "
1092 << trackParticle->p()<< " eta " << trackParticle->eta()
1093 << " phi " << trackParticle->phi());
1094
1096 const Trk::Track * track = trackParticle->originalTrack();
1097 if ( track ) {
1098 ATH_MSG_INFO(" Got attached track");
1099 const Trk::TrackParameters* perigee = track->perigeeParameters();
1100 if (perigee) {
1101 const auto& parameterVector = perigee->parameters();
1102 ATH_MSG_INFO(" q/P " << parameterVector[Trk::qOverP] <<
1103 " theta " << parameterVector[Trk::theta] <<
1104 " phi " <<parameterVector[Trk::phi]);
1105 } else {
1106 ATH_MSG_INFO(" No perigee attached to track");
1107 }
1108
1109 } else {
1111 ATH_MSG_DEBUG(" No attached track");
1113 ATH_MSG_WARNING(" Max attached track warning reached, no further warnings given");
1114 }
1116 }
1117 }
1118
1120 const Trk::VxCandidate * vertex = trackParticle->reconstructedVertex();
1121 if ( vertex ) {
1122 const Trk::RecVertex& vtx = vertex->recVertex();
1123 const Amg::Vector3D& position = vtx.position();
1124 ATH_MSG_INFO(" vertex position (" << position[0] << ", " <<
1125 position[1] << ", " << position[2] << ") ");
1126 } else {
1128 ATH_MSG_DEBUG(" No attached vertex");
1130 ATH_MSG_WARNING(" Max attached vertex warning reached, no further warnings given");
1131 }
1133 }
1134 }
1135
1136 const Trk::Perigee* perigee = trackParticle->measuredPerigee();
1137 if (perigee) {
1138 const auto& parameters = perigee->parameters();
1139 ATH_MSG_INFO("Trk::Perigee parameters:");
1140 ATH_MSG_INFO(" * d_0 : "<< parameters[Trk::d0] );
1141 ATH_MSG_INFO(" * z_0 : "<< parameters[Trk::z0] );
1142 ATH_MSG_INFO(" * phi : "<< parameters[Trk::phi] );
1143 ATH_MSG_INFO(" * Theta : "<< parameters[Trk::theta] );
1144 ATH_MSG_INFO(" * q/p : "<< parameters[Trk::qOverP] );
1145 } else {
1146 ATH_MSG_WARNING(" No attached perigee");
1147 }
1149 const Trk::TrackSummary* summary = trackParticle->trackSummary();
1150 if (summary) {
1151 ATH_MSG_DEBUG("Track summary information:");
1152 ATH_MSG_DEBUG(" * Number of B layer hits : "<<summary->get(Trk::numberOfBLayerHits));
1153 ATH_MSG_DEBUG(" * Number of pixel hits : "<<summary->get(Trk::numberOfPixelHits));
1154 ATH_MSG_DEBUG(" * Number of SCT hits : "<<summary->get(Trk::numberOfSCTHits));
1155 ATH_MSG_DEBUG(" * Number of TRT hits : "<<summary->get(Trk::numberOfTRTHits));
1156 }
1157 }
1158 }
1159 return returnsc;
1160}
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
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 4108 of file TrigEDMChecker.cxx.

4108 {
4109 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigCompositeContainer DUMP===========" );
4110
4113 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
4114 evtStore()->keys(TrigCompositeCLID, m_dumpTrigCompositeContainers);
4115 std::string typeNameTC;
4116 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
4117 ATH_MSG_DEBUG("dumpTrigComposite got " << m_dumpTrigCompositeContainers.size() << " keys for " << typeNameTC);
4118 } else {
4119 ATH_MSG_DEBUG("Using supplied " << m_dumpTrigCompositeContainers.size() << " keys");
4120 }
4121
4122 for ( const std::string & key: m_dumpTrigCompositeContainers ) {
4123 // get the collection
4125 ATH_MSG_WARNING("Absent TrigCompositeContainer: " << key );
4126 continue;
4127 }
4128 ATH_MSG_DEBUG( "#################### Dumping container of : " << key );
4129 const xAOD::TrigCompositeContainer* cont= nullptr;
4130 ATH_CHECK( evtStore()->retrieve( cont, key ) );
4131
4132 size_t count = 0;
4133 for ( auto tc: *cont ) {
4134 ATH_MSG_DEBUG("########## ELEMENT " << count++);
4135 ATH_MSG_DEBUG(*tc);
4136 // Get the objects we know of
4137 for (size_t i = 0; i < tc->linkColNames().size(); ++i) ATH_CHECK(checkTrigCompositeElementLink(tc, i));
4138 }
4139 }
4140 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigCompositeContainer DUMP===========" );
4141 return StatusCode::SUCCESS;
4142}
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:114
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146

◆ dumpTrigEFBphysContainer()

StatusCode TrigEDMChecker::dumpTrigEFBphysContainer ( )
private

Definition at line 2335 of file TrigEDMChecker.cxx.

2335 {
2336
2337 ATH_MSG_DEBUG("in dumpTrigEFBphysContainer()");
2338
2339 ATH_MSG_INFO("REGTEST ==========START of TrigEFBphysContainer DUMP===========");
2340
2341 std::string EFBphysTags[]={"HLT_xAOD__TrigBphysContainer_EFBMuMuFex",
2342 "HLT_xAOD__TrigBphysContainer_EFBMuMuXFex",
2343 "HLT_xAOD__TrigBphysContainer_EFDsPhiPiFex",
2344 "HLT_xAOD__TrigBphysContainer_EFMuPairs",
2345 "HLT_xAOD__TrigBphysContainer_EFMultiMuFex",
2346 "HLT_xAOD__TrigBphysContainer_EFTrackMass"
2347 };
2348
2349 int ntag= (int) sizeof(EFBphysTags) / sizeof(EFBphysTags[0]);
2350
2351
2352 for (int itag=0; itag<ntag; itag++){
2353 const xAOD::TrigBphysContainer* trigEFBphys;
2354 StatusCode sc = evtStore()->retrieve(trigEFBphys, EFBphysTags[itag]);
2355 if (sc.isFailure()) {
2356 ATH_MSG_INFO("REGTEST No TrigEFBphysContainer found with tag " << EFBphysTags[itag]);
2357 continue;
2358 }
2359
2360 ATH_MSG_INFO("REGTEST TrigEFBphysContainer found with tag " << EFBphysTags[itag]
2361 << " and size " << trigEFBphys->size());
2362
2363 // for (int i=0; trigEFBphys != lastTrigEFBphys; ++trigEFBphys, ++i) {
2364
2365 //mLog << MSG::INFO << "REGTEST Looking at TrigEFBphysContainer " << i << endmsg;
2366
2367 xAOD::TrigBphysContainer::const_iterator EFBphysItr = trigEFBphys->begin();
2368 xAOD::TrigBphysContainer::const_iterator EFBphysItrE = trigEFBphys->end();
2369
2370 for (int j=0; EFBphysItr != EFBphysItrE; ++EFBphysItr, ++j ) {
2371
2372 ATH_MSG_INFO("REGTEST Looking at TrigEFBphys " << j);
2373
2374 ATH_MSG_INFO("REGTEST TrigEFBphys->eta() returns " << (*EFBphysItr)->eta());
2375 ATH_MSG_INFO("REGTEST TrigEFBphys->phi() returns " << (*EFBphysItr)->phi());
2376 ATH_MSG_INFO("REGTEST TrigEFBphys->mass() returns " << (*EFBphysItr)->mass());
2377 ATH_MSG_INFO("REGTEST TrigEFBphys->fitmass() returns " << (*EFBphysItr)->fitmass());
2378 // ATH_MSG_INFO("REGTEST TrigEFBphys->isValid() returns " << (*EFBphysItr)->isValid());
2379 ATH_MSG_INFO("REGTEST TrigEFBphys->roiId() returns " << (*EFBphysItr)->roiId());
2380 ATH_MSG_INFO("REGTEST TrigEFBphys->particleType() returns " << (*EFBphysItr)->particleType());
2381
2382 if( (*EFBphysItr)->secondaryDecay() != NULL){
2383 const xAOD::TrigBphys * psecond =(*EFBphysItr)->secondaryDecay();
2384 ATH_MSG_INFO("REGTEST Secondary decay info: ");
2385 ATH_MSG_INFO("REGTEST pSecondDecay->eta() returns " << psecond->eta());
2386 ATH_MSG_INFO("REGTEST pSecondDecay->phi() returns " << psecond->phi());
2387 ATH_MSG_INFO("REGTEST pSecondDecay->mass() returns " << psecond->mass());
2388 ATH_MSG_INFO("REGTEST pSecondDecay->fitmass() returns " << psecond->fitmass());
2389 // ATH_MSG_INFO("REGTEST pSecondDecay->isValid() returns " << (*EFBphysItr)->secondaryDecayLink()->isValid());
2390 ATH_MSG_INFO("REGTEST pSecondDecay->roiId() returns " << psecond->roiId());
2391 ATH_MSG_INFO("REGTEST pSecondDecay->particleType() returns " << psecond->particleType());
2392
2393 } // end if secondary exists
2394
2395
2396
2397 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*EFBphysItr)->trackParticleLinks();
2398 if (trackVector.size() != 0) {
2399 ATH_MSG_INFO(" REGTEST got track vector size: " << trackVector.size());
2400 } else {
2401 ATH_MSG_INFO(" REGTEST no track vector!!! " );
2402 }
2403 std::vector<ElementLink<xAOD::TrackParticleContainer> >::const_iterator trkIt=trackVector.begin();
2404 for (int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
2405 if (!(trkIt->isValid())) {
2406 ATH_MSG_WARNING("TrackParticleContainer::Invalid ElementLink to track ");
2407 continue;
2408 }
2409 //const Trk::Perigee* trackPerigee=(*(*trkIt))->measuredPerigee();
2410 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
2411
2412 // msg() << MSG::VERBOSE << "track, iterator, pointer " << itrk << " " << *trkIt << " " << *(*trkIt) << endmsg;
2413 double phi = trackPerigee->parameters()[Trk::phi];
2414 double theta = trackPerigee->parameters()[Trk::theta];
2415 double px = trackPerigee->momentum()[Trk::px];
2416 double py = trackPerigee->momentum()[Trk::py];
2417 double pt = sqrt(px*px + py*py);
2418 double eta = -std::log(tan(theta/2));
2419
2420 ATH_MSG_INFO("track " << itrk << " pt phi eta " << pt << " " <<
2421 phi << " " << eta);
2422 }
2423
2424 }
2425 }
2426 ATH_MSG_INFO("REGTEST ==========END of TrigEFBphysContainer DUMP===========");
2427 ATH_MSG_DEBUG("dumpTrigEFBphysContainer() succeeded");
2428
2429 return StatusCode::SUCCESS;
2430}
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

◆ dumpTrigInDetTrackCollection()

StatusCode TrigEDMChecker::dumpTrigInDetTrackCollection ( )
private

Definition at line 2131 of file TrigEDMChecker.cxx.

2131 {
2132
2133 std::string TrigInDetTrackTags[]={ "HLT_TrigIDSCAN_Jet",
2134 "HLT_TrigIDSCAN_Tau",
2135 "HLT_TrigIDSCAN_eGamma",
2136 "HLT_TrigIDSCAN_Muon",
2137 "HLT_TrigIDSCAN_muonIso",
2138 "HLT_TrigIDSCAN_Bphysics",
2139 "HLT_TrigIDSCAN_FullScan",
2140 "HLT_TrigIDSCAN_Cosmics",
2141 "HLT_TrigIDSCAN_eGamma_Brem",
2142 "HLT_TrigIDSCAN_Tile",
2143 "HLT_TrigSiTrack_eGamma",
2144 "HLT_TrigSiTrack_Muon",
2145 "HLT_TrigSiTrack_muonIso",
2146 "HLT_TrigSiTrack_Tau",
2147 "HLT_TrigSiTrack_Jet",
2148 "HLT_TrigSiTrack_Bphysics",
2149 "HLT_TrigSiTrack_FullScan",
2150 "HLT_TrigSiTrack_Cosmics",
2151 "HLT_TRTSegmentFinder",
2152 "HLT_TRTxK"};
2153 int ntag=20;
2154
2155 ATH_MSG_DEBUG("in dumpTrigInDetTrackCollection()");
2156
2157 const TrigInDetTrackTruthMap* pTruthMap(nullptr);
2158 bool gotTruthMap = false;
2159
2160 if (evtStore()->contains<TrigInDetTrackTruthMap>("TrigInDetTrackTruthMap")) {
2161 StatusCode sc=evtStore()->retrieve(pTruthMap,"TrigInDetTrackTruthMap");
2162 if (sc.isFailure())
2163 {
2164 ATH_MSG_WARNING(" could not retrieve TrackTruthMap with key TrigInDetTruthMap");
2165 } else {
2166 gotTruthMap=true;
2167 // pTruthMap->print();
2168 }
2169 }
2170 else ATH_MSG_DEBUG(" didn't find any TrackTruthMap objects with key TrigInDetTruthMap");
2171
2172 ATH_MSG_INFO("REGTEST ==========START of TrigInDetTrackCollection DUMP===========");
2173
2174 for (int iTag=0; iTag < ntag; iTag++) {
2175 const TrigInDetTrackCollection* trigInDetTrackCollection = nullptr;
2176 StatusCode sc = evtStore()->retrieve(trigInDetTrackCollection,TrigInDetTrackTags[iTag] );
2177 if (sc.isFailure()) {
2178 ATH_MSG_DEBUG("REGTEST No TrigInDetTrackCollection found with key " << TrigInDetTrackTags[iTag]);
2179 continue;
2180 }
2181 ATH_MSG_INFO("REGTEST TrigInDetTrackCollections retrieved with key "
2182 << TrigInDetTrackTags[iTag]);
2183
2184 ATH_MSG_INFO("REGTEST TrigInDetTrackCollection->size() returns " << trigInDetTrackCollection->size());
2185
2186 TrigInDetTrackCollection::const_iterator trkItr = trigInDetTrackCollection->begin();
2187 TrigInDetTrackCollection::const_iterator trkItrE = trigInDetTrackCollection->end();
2188
2189 for (int j=0; trkItr != trkItrE; ++trkItr, ++j ) {
2190
2191 ATH_MSG_INFO("REGTEST Looking at TrigInDetTrack " << j);
2192
2193 ATH_MSG_INFO("REGTEST TrigInDetTrack->algorithmId() returns " << (*trkItr)->algorithmId());
2194 ATH_MSG_INFO("REGTEST TrigInDetTrack->chi2() returns " << (*trkItr)->chi2());
2195 ATH_MSG_INFO("REGTEST TrigInDetTrack->NStrawHits() returns " << (*trkItr)->NStrawHits());
2196
2197 ATH_MSG_INFO("REGTEST TrigInDetTrack->NStraw() returns " << (*trkItr)->NStraw());
2198 ATH_MSG_INFO("REGTEST TrigInDetTrack->NStrawTime() returns " << (*trkItr)->NStrawTime());
2199 ATH_MSG_INFO("REGTEST TrigInDetTrack->NTRHits() returns " << (*trkItr)->NTRHits());
2200
2201 ATH_MSG_INFO("REGTEST Looking at TrigInDetFitTrack->param()");
2202 const TrigInDetTrackFitPar* my_param = (*trkItr)->param();
2203
2204 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->a0() returns " << my_param->a0());
2205 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->z0() returns " << my_param->z0());
2206 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->phi0() returns " << my_param->phi0());
2207 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->eta() returns " << my_param->eta());
2208 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->pT() returns " << my_param->pT());
2209 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->ea0() returns " << my_param->ea0());
2210 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->ez0() returns " << my_param->ez0());
2211 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->ephi0() returns " << my_param->ephi0());
2212 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->eeta() returns " << my_param->eeta());
2213 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->epT() returns " << my_param->epT());
2214 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->surfaceType() returns " << my_param->surfaceType());
2215 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->surfaceCoordinate() returns " << my_param->surfaceCoordinate());
2216 ATH_MSG_INFO("REGTEST Looking at covarience matrix: ");
2217
2218 const std::vector<double>* const my_cov = my_param->cov();
2219 if (!my_cov) {
2220 ATH_MSG_INFO("REGTEST covarience matrix NULL (not stored)");
2221 } else {
2222 std::vector<double> tempcov = *my_cov;
2223 std::vector<double>::iterator iter;
2224 int k;
2225 for(iter = tempcov.begin(), k=0; iter != tempcov.end(); ++iter, ++k){
2226 ATH_MSG_INFO("REGTEST TrigInDetTrackFitPar->cov() element " << k << " is " << (*iter));
2227 }
2228 }
2229 if (gotTruthMap) {
2230 if (!(pTruthMap->hasTruth((*trkItr)))) {
2231 ATH_MSG_DEBUG(" REGTEST Track has no truth info ");
2232 } else {
2233 ATH_MSG_DEBUG(" Track has truth info: ");
2234 const TrigInDetTrackTruth* pTRTtruth = pTruthMap->truth((*trkItr));
2235 int nMatches = pTRTtruth->nrMatches() ;
2236 if (nMatches==0) {
2237 ATH_MSG_INFO(" REGTEST Track has no truth matches");
2238 } else {
2239 ATH_MSG_INFO("REGTEST number of matched truth hits: Si: " << pTruthMap->bestMatchSiHits((*trkItr))
2240 << " TRT: " << pTruthMap->bestMatchTRTHits((*trkItr)));
2241 if (pTruthMap->bestMatchSiHits((*trkItr)) > 0) {
2242
2243 const HepMcParticleLink* pSiTruth = pTruthMap->bestMatchSi((*trkItr));
2244
2245 ATH_MSG_INFO("REGTEST Si match to kine ref " << pSiTruth->barcode());
2246 if (pSiTruth->cptr() != 0) {
2247 ATH_MSG_INFO("REGTEST Si PDG id " << pSiTruth->cptr()->pdg_id());
2248 }
2249 }
2250
2251 if (pTruthMap->bestMatchTRTHits((*trkItr)) > 0) {
2252 const HepMcParticleLink* pTRTtruth = pTruthMap->bestMatchTRT((*trkItr));
2253
2254 ATH_MSG_INFO("REGTEST TRT match to kine ref " << pTRTtruth->barcode());
2255 if (pTRTtruth->cptr() != 0) {
2256 ATH_MSG_INFO("REGTEST TRT PDG id " << pTRTtruth->cptr()->pdg_id());
2257 }
2258 }
2259 }
2260 }
2261 } // if (gotTruthMap)
2262 }
2263 }
2264
2265 ATH_MSG_INFO("REGTEST ==========END of TrigInDetTrackCollection DUMP===========");
2266 ATH_MSG_DEBUG("dumpTrigInDetTrackCollection() succeeded");
2267
2268 return StatusCode::SUCCESS;
2269}
Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Current TrigInDetTrackCollection
TrigInDetTrackTruthMap
void surfaceCoordinate(double c)
Setter: surface reference coordinate for non-perigee surfaces.
void eta(const double eta)
Setter: pseudorapidity.
void z0(const double z0)
Setter: longitudinal impact parameter.
double ea0() const
variance of transverse impact parameter
void phi0(const double phi0)
Setter: azimuthal angle of the momentum.
void a0(const double a0)
Setter: transverse impact parameter.
double eeta() const
variance of pseudorapidity
void surfaceType(TrigSurfaceType s)
Setter: surface type PERIGEE=0, BARREL=1, ENDCAP=2.
double ez0() const
variance of longitudinal impact parameter
void cov(const std::vector< double > *cov)
Setter: covariance matrix of track parameters.
double ephi0() const
variance of azimuthal angle of the momentum
double epT() const
variance of transverse momentum
void pT(const double pT)
Setter: transverse momentum.
unsigned int nrMatches() const
returns number of matching particles

◆ dumpTrigL2BphysContainer()

StatusCode TrigEDMChecker::dumpTrigL2BphysContainer ( )
private

Definition at line 2433 of file TrigEDMChecker.cxx.

2433 {
2434
2435 ATH_MSG_DEBUG("in dumpTrigL2BphysContainer()");
2436 ATH_MSG_INFO("REGTEST ==========START of TrigL2BphysContainer DUMP===========");
2437
2438 std::string L2BphysTags[]={"HLT_xAOD__TrigBphysContainer_L2BMuMuFex",
2439 "HLT_xAOD__TrigBphysContainer_L2BMuMuXFex",
2440 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexDs",
2441 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexPhi",
2442 "HLT_xAOD__TrigBphysContainer_L2JpsieeFex",
2443 "HLT_xAOD__TrigBphysContainer_L2MultiMuFex",
2444 "HLT_xAOD__TrigBphysContainer_L2TrackMass",
2445 };
2446 const int ntag = (int) sizeof(L2BphysTags) / sizeof(L2BphysTags[0]);
2447
2448
2449 for (int itag=0; itag<ntag; itag++){
2450 const xAOD::TrigBphysContainer* trigL2Bphys;
2451 StatusCode sc = evtStore()->retrieve(trigL2Bphys, L2BphysTags[itag]);
2452 if (sc.isFailure()) {
2453 ATH_MSG_INFO("REGTEST No TrigL2BphysContainer found with tag " << L2BphysTags[itag]);
2454 continue;
2455 }
2456
2457 ATH_MSG_INFO("REGTEST TrigL2BphysContainer found with tag " << L2BphysTags[itag]
2458 << " and size " << trigL2Bphys->size());
2459
2460 // for (int i=0; trigL2Bphys != lastTrigL2Bphys; ++trigL2Bphys, ++i) {
2461
2462 // mLog << MSG::INFO << "REGTEST Looking at TrigL2BphysContainer " << i << endmsg;
2463
2464 xAOD::TrigBphysContainer::const_iterator L2BphysItr = trigL2Bphys->begin();
2465 xAOD::TrigBphysContainer::const_iterator L2BphysItrE = trigL2Bphys->end();
2466
2467 for (int j=0; L2BphysItr != L2BphysItrE; ++L2BphysItr, ++j ) {
2468
2469 ATH_MSG_INFO("REGTEST Looking at TrigL2Bphys " << j);
2470
2471 ATH_MSG_INFO("REGTEST TrigL2Bphys->eta() returns " << (*L2BphysItr)->eta());
2472 ATH_MSG_INFO("REGTEST TrigL2Bphys->phi() returns " << (*L2BphysItr)->phi());
2473 ATH_MSG_INFO("REGTEST TrigL2Bphys->mass() returns " << (*L2BphysItr)->mass());
2474 ATH_MSG_INFO("REGTEST TrigL2Bphys->fitmass() returns " << (*L2BphysItr)->fitmass());
2475 // ATH_MSG_INFO("REGTEST TrigL2Bphys->isValid() returns " << (*L2BphysItr)->isValid());
2476 ATH_MSG_INFO("REGTEST TrigL2Bphys->roiId() returns " << (*L2BphysItr)->roiId());
2477 ATH_MSG_INFO("REGTEST TrigL2Bphys->particleType() returns " << (*L2BphysItr)->particleType());
2478
2479 if( (*L2BphysItr)->secondaryDecay() != NULL){
2480 const xAOD::TrigBphys * psecond =(*L2BphysItr)->secondaryDecay();
2481 ATH_MSG_INFO("REGTEST Secondary decay info: ");
2482 ATH_MSG_INFO("REGTEST pSecondDecay->eta() returns " << psecond->eta());
2483 ATH_MSG_INFO("REGTEST pSecondDecay->phi() returns " << psecond->phi());
2484 ATH_MSG_INFO("REGTEST pSecondDecay->mass() returns " << psecond->mass());
2485 ATH_MSG_INFO("REGTEST pSecondDecay->fitmass() returns " << psecond->fitmass());
2486 // ATH_MSG_INFO("REGTEST pSecondDecay->isValid() returns " << (*L2BphysItr)->secondaryDecayLink()->isValid());
2487 ATH_MSG_INFO("REGTEST pSecondDecay->roiId() returns " << psecond->roiId());
2488 ATH_MSG_INFO("REGTEST pSecondDecay->particleType() returns " << psecond->particleType());
2489 } // end if secondary exists
2490
2491 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*L2BphysItr)->trackParticleLinks();
2492 if (trackVector.size() != 0) {
2493 ATH_MSG_INFO(" REGTEST got track vector size: " << trackVector.size());
2494 } else {
2495 ATH_MSG_INFO(" REGTEST no track vector!!! " );
2496 }
2497 std::vector<ElementLink<xAOD::TrackParticleContainer> >::const_iterator trkIt=trackVector.begin();
2498 for (int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
2499 if (!(trkIt->isValid())) {
2500 ATH_MSG_WARNING("TrackParticleContainer::Invalid ElementLink to track ");
2501 continue;
2502 }
2503 //const Trk::Perigee* trackPerigee=(*(*trkIt))->measuredPerigee();
2504 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
2505
2506 // msg() << MSG::VERBOSE << "track, iterator, pointer " << itrk << " " << *trkIt << " " << *(*trkIt) << endmsg;
2507 double phi = trackPerigee->parameters()[Trk::phi];
2508 double theta = trackPerigee->parameters()[Trk::theta];
2509 double px = trackPerigee->momentum()[Trk::px];
2510 double py = trackPerigee->momentum()[Trk::py];
2511 double pt = sqrt(px*px + py*py);
2512 double eta = -std::log(tan(theta/2));
2513
2514 ATH_MSG_INFO("track " << itrk << " pt phi eta " << pt << " " <<
2515 phi << " " << eta);
2516 }
2517 }
2518 }
2519
2520 ATH_MSG_INFO("REGTEST ==========END of TrigL2BphysContainer DUMP===========");
2521 ATH_MSG_DEBUG("dumpTrigL2BphysContainer() succeeded");
2522
2523 return StatusCode::SUCCESS;
2524}

◆ dumpTrigPassBits()

StatusCode TrigEDMChecker::dumpTrigPassBits ( )
private

Definition at line 582 of file TrigEDMChecker.cxx.

582 {
583 const std::string name="HLT_xAOD__TrigPassBitsContainer_passbits";
584 const xAOD::TrigPassBitsContainer *xbitscont=nullptr;
585 StatusCode sc = evtStore()->retrieve(xbitscont,name);
586 if (sc.isFailure() ){
587 ATH_MSG_INFO("Cannot retrieve TrigPassBits");
588 }
589 else {
590 ATH_MSG_INFO("Size of PassBits container : " << xbitscont->size());
591 for(const auto bits:*xbitscont){
592 if(bits==nullptr){
593 ATH_MSG_INFO("TrigPassBits point nullptr ");
594 continue;
595 }
596 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
597 }
598
599 for(const xAOD::TrigPassBits* bits : *xbitscont){
600 if(bits==nullptr){
601 ATH_MSG_INFO("TrigPassBits point nullptr ");
602 continue;
603 }
604 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
605 }
606 }
607 return StatusCode::SUCCESS;
608}
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 610 of file TrigEDMChecker.cxx.

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

678 {
679 ATH_MSG_INFO("MinBias in dumpTrigT2MBTSBits()");
680
681 std::string METTag="HLT_xAOD__TrigT2MbtsBitsContainer_T2Mbts";
682
683 const xAOD::TrigT2MbtsBitsContainer* T2MbtsBitsCont=0;
684 StatusCode sc = evtStore()->retrieve(T2MbtsBitsCont,METTag);
685
686 if (sc.isFailure())
687 ATH_MSG_INFO("failed to retrieve " << METTag);
688 else {
689 ATH_MSG_INFO("Accessing " << METTag << " with " << T2MbtsBitsCont->size() << " elements");
690
691 std::string s; char buff[380];
692 std::vector<float> getVec;
693 float sum;
694
695 // Loop over container content
696 for(uint i = 0; i < T2MbtsBitsCont->size(); i++) {
697 getVec = T2MbtsBitsCont->at(i)->triggerEnergies();
698 sum = 0.;
699 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
700 snprintf(buff, sizeof(buff), "REGTEST %s SUM of triggerEnergies() = %10.2f ", s.c_str(), sum );
701 ATH_MSG_INFO(buff);
702
703 getVec = T2MbtsBitsCont->at(i)->triggerTimes();
704 sum = 0.;
705 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
706 snprintf(buff, sizeof(buff), "REGTEST %s SUM of triggerTimes() = %10.2f ", s.c_str(), sum );
707 ATH_MSG_INFO(buff);
708 }
709 }
710}
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 746 of file TrigEDMChecker.cxx.

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

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

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

2530 {
2531
2532 ATH_MSG_DEBUG("in dumpxAODJetContainer()");
2533
2534 ATH_MSG_INFO("REGTEST ==========START of xAOD::JetContainer DUMP===========");
2535
2536 std::string containerName[30] = {"HLT_xAOD__JetContainer_a4tcemjesFS",
2537 "HLT_xAOD__JetContainer_a4tcemsubFS",
2538 "HLT_xAOD__JetContainer_a4tcemsubjesFS",
2539 "HLT_xAOD__JetContainer_a4tcemnojcalibFS",
2540 "HLT_xAOD__JetContainer_a4tcemjesPS",
2541 "HLT_xAOD__JetContainer_a4tcemnojcalibPS",
2542 "HLT_xAOD__JetContainer_a4tclcwjesFS",
2543 "HLT_xAOD__JetContainer_a4tclcwsubFS",
2544 "HLT_xAOD__JetContainer_a4tclcwsubjesFS",
2545 "HLT_xAOD__JetContainer_a4tclcwnojcalibFS",
2546 "HLT_xAOD__JetContainer_a4tclcwjesPS",
2547 "HLT_xAOD__JetContainer_a4tclcwnojcalibPS",
2548 "HLT_xAOD__JetContainer_a4TTemnojcalibFS",
2549 "HLT_xAOD__JetContainer_a4TThadnojcalibFS",
2550 "HLT_xAOD__JetContainer_a10tcemjesFS",
2551 "HLT_xAOD__JetContainer_a10tcemsubFS",
2552 "HLT_xAOD__JetContainer_a10tcemsubjesFS",
2553 "HLT_xAOD__JetContainer_a10tcemnojcalibFS",
2554 "HLT_xAOD__JetContainer_a10tcemjesPS",
2555 "HLT_xAOD__JetContainer_a10tcemnojcalibPS",
2556 "HLT_xAOD__JetContainer_a10tclcwjesFS",
2557 "HLT_xAOD__JetContainer_a10tclcwsubFS",
2558 "HLT_xAOD__JetContainer_a10tclcwsubjesFS",
2559 "HLT_xAOD__JetContainer_a10tclcwnojcalibFS",
2560 "HLT_xAOD__JetContainer_a10tclcwjesPS",
2561 "HLT_xAOD__JetContainer_a10tclcwnojcalibPS",
2562 "HLT_xAOD__JetContainer_a10TTemnojcalibFS",
2563 "HLT_xAOD__JetContainer_a10TThadnojcalibFS",
2564 "HLT_xAOD__JetContainer_a10r_tcemsubjesFS",
2565 "HLT_xAOD__JetContainer_TrigHLTJetDSSelectorCollection"};
2566 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,
2567 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};
2568 int containerInputType[30] = {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2,
2569 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1};
2570 int containerSignalState[30] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
2571 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0};
2572 bool onefilled = false;
2573
2574 for (int icont=0; icont<30; ++icont) {
2575 //retrieve jet collection
2576 const xAOD::JetContainer* jetCont = 0;
2577 StatusCode sc = evtStore()->retrieve(jetCont, containerName[icont]) ;
2578
2579 if (sc.isFailure()) {
2580 ATH_MSG_WARNING("REGTEST Cannot retrieve jet container");
2581 continue;
2582 }
2583
2584 int jetContsize = jetCont->size();
2585 ATH_MSG_INFO("REGTEST Got jet container " << containerName[icont] << ", size: " << jetContsize);
2586 if (jetContsize != 0) {
2587 onefilled = true;
2588 int i = 0;
2589 for(const auto thisjet : *jetCont) {
2590 ++i;
2591 ATH_MSG_INFO( "REGTEST Looking at jet " << i);
2592 if (thisjet) {
2593 //checks jet variables
2594 ATH_MSG_DEBUG("REGTEST Checking jet variables");
2595 ATH_MSG_INFO( "REGTEST pt: " << thisjet->pt() );
2596 ATH_MSG_INFO( "REGTEST eta: " << thisjet->eta() );
2597 ATH_MSG_INFO( "REGTEST phi: " << thisjet->phi() );
2598 ATH_MSG_INFO( "REGTEST m: " << thisjet->m() );
2599 ATH_MSG_INFO( "REGTEST e: " << thisjet->e() );
2600 ATH_MSG_INFO( "REGTEST rapidity: " << thisjet->rapidity() );
2601 ATH_MSG_INFO( "REGTEST px: " << thisjet->px() );
2602 ATH_MSG_INFO( "REGTEST py: " << thisjet->py() );
2603 ATH_MSG_INFO( "REGTEST pz: " << thisjet->pz() );
2604 ATH_MSG_INFO( "REGTEST type: " << thisjet->type() );
2605 ATH_MSG_INFO( "REGTEST algorithm (kt: 0, cam: 1, antikt: 2, ...): " << thisjet->getAlgorithmType() << "; should be 2");
2606 if(thisjet->getAlgorithmType() != 2) ATH_MSG_WARNING("Jet algorithm different from container");
2607 ATH_MSG_INFO( "REGTEST size parameter: " << thisjet->getSizeParameter() << "; should be " << containerSizeParameter[icont]);
2608 if(thisjet->getSizeParameter() != containerSizeParameter[icont]) ATH_MSG_WARNING("Jet size different from container");
2609 ATH_MSG_INFO( "REGTEST input (LCTopo: 0, EMTopo: 1, TopoTower: 2, ...): " << thisjet->getInputType() << "; should be " << containerInputType[icont]);
2610 if(thisjet->getInputType() != containerInputType[icont]) ATH_MSG_WARNING("Jet input different from container");
2611 ATH_MSG_INFO( "REGTEST constituents signal state (uncalibrated: 0, calibrated: 1): " << thisjet->getConstituentsSignalState() << "; should be " << containerSignalState[icont]);
2612 if(thisjet->getConstituentsSignalState() != containerSignalState[icont]) ATH_MSG_WARNING("Jet constituents' signal state different from container");
2613 ATH_MSG_INFO( "REGTEST number of constituents: " << thisjet->numConstituents() );
2614
2615
2616 //checks the constituents
2617 ATH_MSG_DEBUG("REGTEST Checking jet constituents");
2618
2619 xAOD::JetConstituentVector constitCont = thisjet->getConstituents();
2620 unsigned int constitContsize = constitCont.size();
2621 ATH_MSG_INFO("REGTEST Got constituent vector, size: " << constitContsize << "; should be " << thisjet->numConstituents());
2622 if(constitContsize != thisjet->numConstituents()) ATH_MSG_WARNING("Constituents container size different from number of constituents");
2623
2624 if (constitContsize != 0) {
2625// int j = 0;
2626 // for (const auto thisconstit : constitCont) {
2627 // ++j;
2628 // ATH_MSG_INFO( "REGTEST Looking at constituent " << j);
2629 // if(thisconstit){
2630 // ATH_MSG_INFO( "REGTEST constituent pt: " << thisconstit->pt() );
2631 // ATH_MSG_INFO( "REGTEST constituent eta: " << thisconstit->eta() );
2632 // ATH_MSG_INFO( "REGTEST constituent phi: " << thisconstit->phi() );
2633 // ATH_MSG_INFO( "REGTEST constituent m: " << thisconstit->m() );
2634 // ATH_MSG_INFO( "REGTEST constituent e: " << thisconstit->e() );
2635 // ATH_MSG_INFO( "REGTEST constituent type (CaloCluster: 1, Jet: 2, ...): " << thisconstit->type() );
2636 // }
2637 // else{
2638 // ATH_MSG_WARNING("REGTEST Problem with constituent pointer");
2639 // return StatusCode::SUCCESS;
2640 // }
2641 // }
2642 // ATH_MSG_INFO("REGTEST size of constituent vector == number of displayed constituents: "<< (constitContsize == j) );
2643 // if (constitContsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2644 }
2645 // else ATH_MSG_WARNING("REGTEST This jet has 0 constituents!");
2646
2647 //checks int attributes
2648 ATH_MSG_DEBUG("REGTEST Checking int attributes");
2649 int valueint;
2650 if( thisjet->getAttribute(xAOD::JetAttribute::GhostMuonSegmentCount, valueint)) ATH_MSG_INFO("REGTEST GhostMuonSegmentCount: " << valueint);
2651 if( thisjet->getAttribute(xAOD::JetAttribute::GhostTrackCount, valueint)) ATH_MSG_INFO("REGTEST GhostTrackCount: " << valueint);
2652 if( thisjet->getAttribute(xAOD::JetAttribute::GhostTruthParticleCount, valueint)) ATH_MSG_INFO("REGTEST GhostTruthParticleCount: " << valueint);
2653 if( thisjet->getAttribute(xAOD::JetAttribute::FracSamplingMaxIndex, valueint)) ATH_MSG_INFO( "REGTEST FracSamplingMaxIndex: " << valueint);
2654
2655
2656 //checks float attributes
2657 ATH_MSG_DEBUG("REGTEST Checking float attributes");
2658 float value;
2659 if( thisjet->getAttribute(xAOD::JetAttribute::ActiveArea, value)) ATH_MSG_INFO( "REGTEST ActiveArea: " << value );
2660 // Four-vector type if( thisjet->getAttribute(xAOD::JetAttribute::ActiveArea4vec, value)) ATH_MSG_INFO( "REGTEST ActiveArea4vec: " << value );
2661 if( thisjet->getAttribute(xAOD::JetAttribute::AverageLArQF, value)) ATH_MSG_INFO( "REGTEST AverageLArQF: " << value );
2662 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrCell, value)) ATH_MSG_INFO( "REGTEST BchCorrCell: " << value );
2663 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrDotx, value)) ATH_MSG_INFO( "REGTEST BchCorrDotx: " << value );
2664 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrJet, value)) ATH_MSG_INFO( "REGTEST BchCorrJet: " << value );
2665 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrJetForCell, value)) ATH_MSG_INFO( "REGTEST BchCorrJetForCell: " << value );
2666 if( thisjet->getAttribute(xAOD::JetAttribute::CentroidR, value)) ATH_MSG_INFO( "REGTEST CentroidR: " << value );
2667 if( thisjet->getAttribute(xAOD::JetAttribute::HECQuality, value)) ATH_MSG_INFO( "REGTEST HECQuality: " << value );
2668 if( thisjet->getAttribute(xAOD::JetAttribute::IsoKR20Par, value)) ATH_MSG_INFO( "REGTEST IsoKR20Par: " << value );
2669 if( thisjet->getAttribute(xAOD::JetAttribute::IsoKR20Perp, value)) ATH_MSG_INFO( "REGTEST IsoKR20Perp: " << value );
2670 // ElementLink<DataVector<xAOD::Vertex> > type if( thisjet->getAttribute(xAOD::JetAttribute::HighestJVFVtx, value)) ATH_MSG_INFO( "REGTEST HighestJVFVtx: " << value );
2671 // ??? type if( thisjet->getAttribute(xAOD::JetAttribute::JetLabel, value)) ATH_MSG_INFO( "REGTEST JetLabel: " << value );
2672 if( thisjet->getAttribute(xAOD::JetAttribute::KtDR, value)) ATH_MSG_INFO( "REGTEST KtDR: " << value );
2673 if( thisjet->getAttribute(xAOD::JetAttribute::LArBadHVEnergy, value)) ATH_MSG_INFO( "REGTEST LArBadHVEnergy: " << value );
2674 if( thisjet->getAttribute(xAOD::JetAttribute::LArBadHVRatio, value)) ATH_MSG_INFO( "REGTEST LArBadHVRatio: " << value );
2675 if( thisjet->getAttribute(xAOD::JetAttribute::LArQuality, value)) ATH_MSG_INFO( "REGTEST LArQuality: " << value );
2676 if( thisjet->getAttribute(xAOD::JetAttribute::NegativeE, value)) ATH_MSG_INFO( "REGTEST NegativeE: " << value );
2677 // no tools available yet if( thisjet->getAttribute(xAOD::JetAttribute::NumTowers, value)) ATH_MSG_INFO( "REGTEST NumTowers: " << value );
2678 if( thisjet->getAttribute(xAOD::JetAttribute::SamplingMax, value)) ATH_MSG_INFO( "REGTEST SamplingMax: " << value );
2679 if( thisjet->getAttribute(xAOD::JetAttribute::Timing, value)) ATH_MSG_INFO( "REGTEST Timing: " << value );
2680 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiArea, value)) ATH_MSG_INFO( "REGTEST VoronoiArea: " << value );
2681 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaE, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaE: " << value );
2682 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPx, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPx: " << value );
2683 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPy, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPy: " << value );
2684 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPz, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPz: " << value );
2685 if( thisjet->getAttribute(xAOD::JetAttribute::Width, value)) ATH_MSG_INFO( "REGTEST WIDTH: " << value );
2686 if( thisjet->getAttribute(xAOD::JetAttribute::FracSamplingMax, value)) ATH_MSG_INFO( "REGTEST FracSamplingMax: " << value );
2687 if( thisjet->getAttribute(xAOD::JetAttribute::EMFrac, value)) ATH_MSG_INFO( "REGTEST EMFrac: " << value );
2688 if( thisjet->getAttribute(xAOD::JetAttribute::HECFrac, value)) ATH_MSG_INFO( "REGTEST HECFrac: " << value );
2689 if( thisjet->getAttribute(xAOD::JetAttribute::isBadLoose, value)) ATH_MSG_INFO( "REGTEST isBadLoose: " << value );
2690 if( thisjet->getAttribute(xAOD::JetAttribute::isBadMedium, value)) ATH_MSG_INFO( "REGTEST isBadMedium: " << value );
2691 if( thisjet->getAttribute(xAOD::JetAttribute::isBadTight, value)) ATH_MSG_INFO( "REGTEST isBadTight: " << value );
2692 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::isUgly, value)) ATH_MSG_INFO( "REGTEST isUgly: " << value );
2693 if( thisjet->getAttribute(xAOD::JetAttribute::N90Constituents, value)) ATH_MSG_INFO( "REGTEST N90Constituents: " << value );
2694 if( thisjet->getAttribute(xAOD::JetAttribute::N90Cells, value)) ATH_MSG_INFO( "REGTEST N90Cells: " << value );
2695 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracClusters10, value)) ATH_MSG_INFO( "REGTEST OotFracClusters10: " << value );
2696 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracClusters5, value)) ATH_MSG_INFO( "REGTEST OotFracClusters5: " << value );
2697 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracCells5, value)) ATH_MSG_INFO( "REGTEST OotFracCells5: " << value );
2698 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracCells10, value)) ATH_MSG_INFO( "REGTEST OotFracCells10: " << value );
2699 if( thisjet->getAttribute(xAOD::JetAttribute::PtTruth, value)) ATH_MSG_INFO( "REGTEST PtTruth: " << value );
2700 if( thisjet->getAttribute(xAOD::JetAttribute::Tau1, value)) ATH_MSG_INFO( "REGTEST Tau1: " << value );
2701 if( thisjet->getAttribute(xAOD::JetAttribute::Tau2, value)) ATH_MSG_INFO( "REGTEST Tau2: " << value );
2702 if( thisjet->getAttribute(xAOD::JetAttribute::Tau3, value)) ATH_MSG_INFO( "REGTEST Tau3: " << value );
2703 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split12, value)) ATH_MSG_INFO( "REGTEST Split12: " << value );
2704 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split23, value)) ATH_MSG_INFO( "REGTEST Split23: " << value );
2705 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split34, value)) ATH_MSG_INFO( "REGTEST Split34: " << value );
2706 if( thisjet->getAttribute(xAOD::JetAttribute::Dip12, value)) ATH_MSG_INFO( "REGTEST Dip12: " << value );
2707 if( thisjet->getAttribute(xAOD::JetAttribute::Dip13, value)) ATH_MSG_INFO( "REGTEST Dip13: " << value );
2708 if( thisjet->getAttribute(xAOD::JetAttribute::Dip23, value)) ATH_MSG_INFO( "REGTEST Dip23: " << value );
2709 if( thisjet->getAttribute(xAOD::JetAttribute::DipExcl12, value)) ATH_MSG_INFO( "REGTEST DipExcl12: " << value );
2710 if( thisjet->getAttribute(xAOD::JetAttribute::ThrustMin, value)) ATH_MSG_INFO( "REGTEST ThrustMin: " << value );
2711 if( thisjet->getAttribute(xAOD::JetAttribute::ThrustMaj, value)) ATH_MSG_INFO( "REGTEST ThrustMaj: " << value );
2712 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram0, value)) ATH_MSG_INFO( "REGTEST FoxWolfram0: " << value );
2713 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram1, value)) ATH_MSG_INFO( "REGTEST FoxWolfram1: " << value );
2714 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram2, value)) ATH_MSG_INFO( "REGTEST FoxWolfram2: " << value );
2715 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram3, value)) ATH_MSG_INFO( "REGTEST FoxWolfram3: " << value );
2716 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram4, value)) ATH_MSG_INFO( "REGTEST FoxWolfram4: " << value );
2717 if( thisjet->getAttribute(xAOD::JetAttribute::Sphericity, value)) ATH_MSG_INFO( "REGTEST Sphericity: " << value );
2718 if( thisjet->getAttribute(xAOD::JetAttribute::Aplanarity, value)) ATH_MSG_INFO( "REGTEST Aplanarity: " << value );
2719
2720 //checks vector<int> attributes
2721 ATH_MSG_DEBUG("REGTEST Checking vector<int> attributes");
2722 std::vector<int> vecvalueint;
2723 if (thisjet->getAttribute(xAOD::JetAttribute::NumTrkPt1000, vecvalueint)) {
2724 int vecsize = vecvalueint.size();
2725 ATH_MSG_INFO("REGTEST Got NumTrkPt1000 vector, size: " << vecsize);
2726 if (vecsize != 0) {
2727 int j = 0;
2728 for(const auto & thisvalue : vecvalueint){
2729 ++j;
2730 ATH_MSG_INFO("REGTEST NumTrkPt1000 #" << j << ": " << thisvalue);
2731 }
2732 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2733 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2734 }
2735 }
2736 if (thisjet->getAttribute(xAOD::JetAttribute::NumTrkPt500, vecvalueint)) {
2737 int vecsize = vecvalueint.size();
2738 ATH_MSG_INFO("REGTEST Got Got NumTrkPt500 vector, size: " << vecsize);
2739 if (vecsize != 0) {
2740 int j = 0;
2741 for(const auto & thisvalue : vecvalueint){
2742 ++j;
2743 ATH_MSG_INFO("REGTEST NumTrkPt500 #" << j << ": " << thisvalue);
2744 }
2745 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2746 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2747 }
2748 }
2749
2750 //checks vector<float> attributes
2751 ATH_MSG_DEBUG("REGTEST Checking vector<float> attributes");
2752 std::vector<float> vecvalue;
2753 if (thisjet->getAttribute(xAOD::JetAttribute::JVF, vecvalue)) {
2754 int vecsize = vecvalue.size();
2755 ATH_MSG_INFO("REGTEST Got JVF vector, size: " << vecsize);
2756 if (vecsize != 0) {
2757 int j = 0;
2758 for(const auto & thisvalue : vecvalue){
2759 ++j;
2760 ATH_MSG_INFO("REGTEST JVF #" << j << ": " << thisvalue);
2761 }
2762 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2763 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2764 }
2765 }
2766 if (thisjet->getAttribute(xAOD::JetAttribute::SumPtTrkPt1000, vecvalue)) {
2767 int vecsize = vecvalue.size();
2768 ATH_MSG_INFO("REGTEST Got SumPtTrkPt1000 vector, size: " << vecsize);
2769 if (vecsize != 0) {
2770 int j = 0;
2771 for(const auto & thisvalue : vecvalue){
2772 ++j;
2773 ATH_MSG_INFO("REGTEST SumPtTrkPt1000 #" << j << ": " << thisvalue);
2774 }
2775 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2776 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2777 }
2778 }
2779 if (thisjet->getAttribute(xAOD::JetAttribute::SumPtTrkPt500, vecvalue)) {
2780 int vecsize = vecvalue.size();
2781 ATH_MSG_INFO("REGTEST Got SumPtTrkPt500 vector, size: " << vecsize);
2782 if (vecsize != 0) {
2783 int j = 0;
2784 for(const auto & thisvalue : vecvalue){
2785 ++j;
2786 ATH_MSG_INFO("REGTEST SumPtTrkPt500 #" << j << ": " << thisvalue);
2787 }
2788 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2789 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2790 }
2791 }
2792 if (thisjet->getAttribute(xAOD::JetAttribute::TrackWidthPt1000, vecvalue)) {
2793 int vecsize = vecvalue.size();
2794 ATH_MSG_INFO("REGTEST Got TrackWidthPt1000 vector, size: " << vecsize);
2795 if (vecsize != 0) {
2796 int j = 0;
2797 for(const auto & thisvalue : vecvalue){
2798 ++j;
2799 ATH_MSG_INFO("REGTEST TrackWidthPt1000 #" << j << ": " << thisvalue);
2800 }
2801 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2802 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2803 }
2804 }
2805 if (thisjet->getAttribute(xAOD::JetAttribute::TrackWidthPt500, vecvalue)) {
2806 int vecsize = vecvalue.size();
2807 ATH_MSG_INFO("REGTEST Got TrackWidthPt500 vector, size: " << vecsize);
2808 if (vecsize != 0) {
2809 int j = 0;
2810 for(const auto & thisvalue : vecvalue){
2811 ++j;
2812 ATH_MSG_INFO("REGTEST TrackWidthPt500 #" << j << ": " << thisvalue);
2813 }
2814 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2815 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2816 }
2817 }
2818 if (thisjet->getAttribute(xAOD::JetAttribute::EnergyPerSampling, vecvalue)) {
2819 int vecsize = vecvalue.size();
2820 ATH_MSG_INFO("REGTEST Got EnergyPerSampling vector, size: " << vecsize);
2821 if (vecsize != 0) {
2822 int j = 0;
2823 for(const auto & thisvalue : vecvalue){
2824 ++j;
2825 ATH_MSG_INFO("REGTEST EnergyPerSampling #" << j << ": " << thisvalue);
2826 }
2827 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2828 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2829 }
2830 }
2831
2832
2833 //checks associated objects
2834 // ATH_MSG_DEBUG("REGTEST Checking associated objects");
2835 // std::vector<const xAOD::TrackParticle*> track;
2836 // if( thisjet->getAssociatedObjects(xAOD::JetAttribute::GhostTrack, track) ){
2837 // int vecsize = track.size();
2838 // ATH_MSG_INFO("REGTEST Got GhostTrack vector, size: " << vecsize);
2839 // if (vecsize != 0) {
2840 // int j = 0;
2841 // for(const auto & thistrack : track){
2842 // ++j;
2843 // //checks only one associated variable, just making sure getting the object worked
2844 // if (thistrack) ATH_MSG_INFO("REGTEST z0 for GhostTrack #" << j << ": " << thistrack->z0());
2845 // else{
2846 // ATH_MSG_WARNING("REGTEST Problem with attribute pointer");
2847 // return StatusCode::SUCCESS;
2848 // }
2849 // }
2850 // ATH_MSG_INFO("REGTEST size of associated object vector == number of displayed attributes: " << (vecsize == j) );
2851 // if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this associated object");
2852 // }
2853 // }
2854 }
2855 else{
2856 ATH_MSG_WARNING("REGTEST Problem with jet pointer");
2857 return StatusCode::SUCCESS;
2858 }
2859 }
2860
2861 if (jetContsize == i) ATH_MSG_INFO("REGTEST size of jet container == number of displayed jets: " << (jetContsize == i) );
2862 else ATH_MSG_WARNING("REGTEST Problem with displaying jets");
2863 }
2864 }
2865
2866 if (!onefilled) ATH_MSG_DEBUG("There was no filled jet containers");
2867
2868 ATH_MSG_INFO("REGTEST ==========END of xAOD::JetContainer DUMP===========");
2869
2870 ATH_MSG_DEBUG("leaving dumpxAODJetContainer()");
2871
2872 return StatusCode::SUCCESS;
2873}
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 1338 of file TrigEDMChecker.cxx.

1338 {
1339
1340 ATH_MSG_DEBUG("In dumpxAODMuonContainer");
1341
1342 ATH_MSG_INFO( "REGTEST ==========START of xAOD::MuonContainer DUMP===========" );
1343
1344 const xAOD::MuonContainer* muonCont=0;
1345 StatusCode sc = evtStore()->retrieve(muonCont,"HLT_xAOD__MuonContainer_MuonEFInfo");
1346 if (sc.isFailure()) {
1347 ATH_MSG_INFO("REGTEST No muon container HLT_xAOD__MuonContainer_MuonEFInfo");
1348 return StatusCode::SUCCESS;
1349 }
1350
1351 std::string output = m_muonPrinter->print( *muonCont );
1352 msg(MSG::INFO) << output << endmsg;
1353
1354 ATH_MSG_INFO( "REGTEST ==========END of xAOD::MuonContainer DUMP===========" );
1355
1356 return StatusCode::SUCCESS;
1357
1358}
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 1917 of file TrigEDMChecker.cxx.

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

◆ dumpxAODTrackParticle()

StatusCode TrigEDMChecker::dumpxAODTrackParticle ( )
private

Definition at line 3858 of file TrigEDMChecker.cxx.

3858 {
3859
3860 ATH_MSG_DEBUG("In dumpxAODTrackParticle()");
3861
3862 ATH_MSG_INFO("REGTEST ==========START of xAOD::TrackParticle DUMP===========");
3863
3864 std::vector<std::string> SGkeys;
3865 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_EFID");
3866 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_EFID");
3867 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_EFID");
3868 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_FullScan_EFID");
3869 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_EFID");
3870 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Photon_EFID");
3871 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_EFID");
3872
3873 StatusCode returnsc = StatusCode::SUCCESS;
3874
3875 for (unsigned int SGkey = 0; SGkey < SGkeys.size(); ++SGkey) {
3876 const xAOD::TrackParticleContainer* trackParticleContainer=0;
3877 StatusCode sc = evtStore()->retrieve(trackParticleContainer,SGkeys.at(SGkey));
3878 if (sc.isFailure()) {
3879 ATH_MSG_INFO("REGTEST No track particle container found with key " << SGkeys.at(SGkey));
3880 continue;
3881 }
3882 ATH_MSG_INFO("REGTEST TrackParticleContainer retrieved with key " << SGkeys.at(SGkey)
3883 << " and size " << trackParticleContainer->size());
3884
3885 xAOD::TrackParticleContainer::const_iterator trackParticleItr = trackParticleContainer->begin();
3886 xAOD::TrackParticleContainer::const_iterator trackParticleLast = trackParticleContainer->end();
3887
3888 for (int index = 0; trackParticleItr != trackParticleLast; ++trackParticleItr, ++index) {
3889 ATH_MSG_INFO("REGTEST Looking at Track Particle " << index);
3890
3891 ATH_MSG_INFO("REGTEST IParticle functions:");
3892 ATH_MSG_INFO("REGTEST pt: " << (*trackParticleItr)->pt()
3893 << "/eta: " << (*trackParticleItr)->eta()
3894 << "/phi: " << (*trackParticleItr)->phi()
3895 << "/m: " << (*trackParticleItr)->m()
3896 << "/e: " << (*trackParticleItr)->e()
3897 << "/rapidity: " << (*trackParticleItr)->rapidity());
3898
3899 ATH_MSG_INFO("REGTEST Defining parameters functions:");
3900 ATH_MSG_INFO("REGTEST charge: " << (*trackParticleItr)->charge()
3901 << "/d0: " << (*trackParticleItr)->d0()
3902 << "/z0: " << (*trackParticleItr)->z0()
3903 << "/phi0: " << (*trackParticleItr)->phi0()
3904 << "/theta: " << (*trackParticleItr)->theta()
3905 << "/qOverP: " << (*trackParticleItr)->qOverP()
3906 << "/vx: " << (*trackParticleItr)->vx()
3907 << "/vy: " << (*trackParticleItr)->vy()
3908 << "/vz: " << (*trackParticleItr)->vz());
3909
3910 // Curvilinear functions skipped
3911
3912 ATH_MSG_INFO("REGTEST Fit quality functions:");
3913 ATH_MSG_INFO("REGTEST chiSquared: " << (*trackParticleItr)->chiSquared()
3914 << "/numberDoF: " << (*trackParticleItr)->numberDoF());
3915
3916 // TrackInfo functions skipped
3917
3918 ATH_MSG_INFO("REGTEST summaryValue variables:");
3919 msg() << MSG::INFO << "REGTEST ";
3921 if ( (*trackParticleItr)->summaryValue(numberOfBLayerHits, xAOD::numberOfBLayerHits) ) {
3922 msg() << "/numberOfBLayerHits: " << static_cast<int>(numberOfBLayerHits);
3923 } else {
3924 msg() << "/numberOfBLayerHits not found";
3925 }
3926
3928 if ( (*trackParticleItr)->summaryValue(numberOfPixelHits, xAOD::numberOfPixelHits) ) {
3929 msg() << "/numberOfPixelHits: " << static_cast<int>(numberOfPixelHits);
3930 } else {
3931 msg() << "/numberOfPixelHits not found";
3932 }
3933
3935 if ( (*trackParticleItr)->summaryValue(numberOfPixelHoles, xAOD::numberOfPixelHoles) ) {
3936 msg() << "/numberOfPixelHoles: " << static_cast<int>(numberOfPixelHoles);
3937 } else {
3938 msg() << "/numberOfPixelHoles not found";
3939 }
3940
3942 if ( (*trackParticleItr)->summaryValue(numberOfSCTHits, xAOD::numberOfSCTHits) ) {
3943 msg() << "/numberOfSCTHits: " << static_cast<int>(numberOfSCTHits);
3944 } else {
3945 msg() << "/numberOfSCTHits not found";
3946 }
3947
3949 if ( (*trackParticleItr)->summaryValue(numberOfSCTHoles, xAOD::numberOfSCTHoles) ) {
3950 msg() << "/numberOfSCTHoles: " << static_cast<int>(numberOfSCTHoles);
3951 } else {
3952 msg() << "/numberOfSCTHoles not found";
3953 }
3954
3956 if ( (*trackParticleItr)->summaryValue(numberOfTRTHits, xAOD::numberOfTRTHits) ) {
3957 msg() << "/numberOfTRTHits: " << static_cast<int>(numberOfTRTHits);
3958 } else {
3959 msg() << "/numberOfTRTHits not found";
3960 }
3961
3963 if ( (*trackParticleItr)->summaryValue(numberOfTRTHoles, xAOD::numberOfTRTHoles) ) {
3964 msg() << "/numberOfTRTHoles: " << static_cast<int>(numberOfTRTHoles);
3965 } else {
3966 msg() << "/numberOfTRTHoles not found";
3967 }
3968 msg() << endmsg;
3969 }
3970 }
3971
3972 ATH_MSG_INFO("REGTEST ==========END of xAOD::TrackParticle DUMP===========");
3973 ATH_MSG_DEBUG("dumpxAODTrackParticles() succeeded");
3974
3975 return returnsc;
3976}
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 1660 of file TrigEDMChecker.cxx.

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

◆ dumpxAODTrigMinBias()

StatusCode TrigEDMChecker::dumpxAODTrigMinBias ( )
private

Definition at line 816 of file TrigEDMChecker.cxx.

816 {
817
822
823 return StatusCode::SUCCESS;
824}
void dumpTrigSpacePointCounts()

◆ dumpxAODTrigMissingET()

StatusCode TrigEDMChecker::dumpxAODTrigMissingET ( )
private

Definition at line 830 of file TrigEDMChecker.cxx.

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

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

◆ dumpxAODVertex()

StatusCode TrigEDMChecker::dumpxAODVertex ( )
private

Definition at line 3978 of file TrigEDMChecker.cxx.

3978 {
3979
3980 ATH_MSG_DEBUG("In dumpxAODVertex()");
3981
3982 ATH_MSG_INFO("REGTEST ==========START of xAOD::Vertex DUMP===========");
3983
3984 const xAOD::VertexContainer* vertexContainer=0;
3985 StatusCode sc = evtStore()->retrieve(vertexContainer,"HLT_xAOD__VertexContainer_xPrimVx");
3986 if (sc.isFailure()) {
3987 ATH_MSG_INFO("REGTEST No vertex container");
3988 return StatusCode::FAILURE;
3989 }
3990 ATH_MSG_INFO("REGTEST VertexContainer retrieved");
3991
3992 xAOD::VertexContainer::const_iterator vertexItr = vertexContainer->begin();
3993 xAOD::VertexContainer::const_iterator vertexLast = vertexContainer->end();
3994
3995 for (int index = 0; vertexItr != vertexLast; ++vertexItr, ++index) {
3996 ATH_MSG_INFO("REGTEST Looking at Vertex " << index);
3997
3998 ATH_MSG_INFO("REGTEST Public Member Functions:");
3999 ATH_MSG_INFO("REGTEST x: " << (*vertexItr)->x()
4000 << "/y: " << (*vertexItr)->y()
4001 << "/z: " << (*vertexItr)->z());
4002
4003 ATH_MSG_INFO("REGTEST Public Member Functions:");
4004 ATH_MSG_INFO("REGTEST chiSquared: " << (*vertexItr)->chiSquared()
4005 << "/numberDoF: " << (*vertexItr)->numberDoF());
4006 }
4007
4008 ATH_MSG_INFO("REGTEST ==========END of xAOD::Vertex DUMP===========");
4009 ATH_MSG_DEBUG("dumpxAODVertex() succeeded");
4010
4011 return StatusCode::SUCCESS;
4012}
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 250 of file AthHistogramming.cxx.

251{
252 // Build a 32 bit hash out of the name
253 const hash_t effHash = this->hash(effName);
254
255 // See if this entry exists in the map
256 EffMap_t::const_iterator it = m_effMap.find( effHash );
257 if ( it == m_effMap.end() ) // It doesn't exist!
258 { // Let's see into the THistSvc if somebody else has registered the TEfficiency...
259
260 // Need to copy the strings as we will massage them from here on
261 std::string effNameCopy = effName;
262 std::string tDirCopy = tDir;
263 std::string streamCopy = stream;
264
265 // Massage the final string to book things
266 std::string bookingString("");
267 this->buildBookingString( bookingString, effNameCopy, tDirCopy, streamCopy ,false);
268
269 TEfficiency* effPointer(NULL);
270 if ( !((histSvc()->getEfficiency(bookingString, effPointer)).isSuccess()) )
271 {
272 // Massage the final string to book things
273 std::string bookingString("");
274 this->buildBookingString( bookingString, effNameCopy, tDirCopy, streamCopy, true );
275
276 if ( !((histSvc()->getEfficiency(bookingString, effPointer)).isSuccess()) )
277 {
278 m_msg << MSG::WARNING
279 << "Problem retrieving the TEfficiency with name (including pre- and post-fixes) "
280 << m_histNamePrefix + effNameCopy + m_histNamePostfix
281 << " or with name " << effNameCopy
282 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
283 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
284 return NULL;
285 }
286 // If we get to here, we actually found the TEfficiency in the THistSvc.
287 // So let's add it to the local cache map and return its pointer
288 m_effMap.insert( m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
289 return effPointer;
290 }
291 // If we get to here, we actually found the TEfficiency in the THistSvc.
292 // So let's add it to the local cache map and return its pointer
293 m_effMap.insert( m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
294 return effPointer;
295 }
296
297 // Return the pointer to the TEfficiency that we got from the local cache map
298 return it->second;
299}

◆ 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< 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 ( )
overridevirtual

Definition at line 243 of file TrigEDMChecker.cxx.

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

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< 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 & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ 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 492 of file AthHistogramming.cxx.

493{
494 // Build a 32 bit hash out of the name
495 const hash_t graphHash = this->hash(graphName);
496
497 // See if this entry exists in the map
498 GraphMap_t::const_iterator it = m_graphMap.find( graphHash );
499 if ( it == m_graphMap.end() ) // It doesn't exist!
500 { // Let's see into the THistSvc if somebody else has registered the TGraph...
501
502 // Need to copy the strings as we will massage them from here on
503 std::string graphNameCopy = graphName;
504 std::string tDirCopy = tDir;
505 std::string streamCopy = stream;
506
507 // Massage the final string to book things
508 std::string bookingString("");
509 this->buildBookingString( bookingString, graphNameCopy, tDirCopy, streamCopy, true);
510
511 TGraph* graphPointer(NULL);
512 if ( !((histSvc()->getGraph(bookingString, graphPointer)).isSuccess()) )
513 {
514 // Massage the final string to book things
515 std::string bookingString("");
516 this->buildBookingString( bookingString, graphNameCopy, tDirCopy, streamCopy, false );
517
518 if ( !((histSvc()->getGraph(bookingString, graphPointer)).isSuccess()) )
519 {
520 m_msg << MSG::WARNING
521 << "Problem retrieving the TGraph with name (including pre- and post-fixes) "
522 << m_histNamePrefix + graphNameCopy + m_histNamePostfix
523 << " or with name " << graphNameCopy
524 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
525 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
526 return NULL;
527 }
528 // If we get to here, we actually found the TGraph in the THistSvc.
529 // So let's add it to the local cache map and return its pointer
530 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
531 return graphPointer;
532 }
533 // If we get to here, we actually found the TGraph in the THistSvc.
534 // So let's add it to the local cache map and return its pointer
535 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
536 return graphPointer;
537 }
538
539
540 // Return the pointer to the TGraph that we got from the local cache map
541 return it->second;
542}

◆ 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 428 of file AthHistogramming.h.

429{
430 const uint64_t hash64 = CxxUtils::crc64( histName );
431 return (hash_t)(hash64 & 0xFFFFFFFF);
432}
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 198 of file AthHistogramming.cxx.

199{
200 // Build a 32 bit hash out of the name
201 const hash_t histHash = this->hash(histName);
202
203 // See if this entry exists in the map
204 HistMap_t::const_iterator it = m_histMap.find( histHash );
205 if ( it == m_histMap.end() ) // It doesn't exist!
206 { // Let's see into the THistSvc if somebody else has registered the histogram...
207
208 // Need to copy the strings as we will massage them from here on
209 std::string histNameCopy = histName;
210 std::string tDirCopy = tDir;
211 std::string streamCopy = stream;
212
213 // Massage the final string to book things
214 std::string bookingString("");
215 this->buildBookingString( bookingString, histNameCopy, tDirCopy, streamCopy ,false);
216
217 TH1* histPointer(NULL);
218 if ( !((histSvc()->getHist(bookingString, histPointer)).isSuccess()) )
219 {
220 // Massage the final string to book things
221 std::string bookingString("");
222 this->buildBookingString( bookingString, histNameCopy, tDirCopy, streamCopy, true );
223
224 if ( !((histSvc()->getHist(bookingString, histPointer)).isSuccess()) )
225 {
226 m_msg << MSG::WARNING
227 << "Problem retrieving the histogram with name (including pre- and post-fixes) "
228 << m_histNamePrefix + histNameCopy + m_histNamePostfix
229 << " or with name " << histNameCopy
230 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
231 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
232 return NULL;
233 }
234 // If we get to here, we actually found the histogram in the THistSvc.
235 // So let's add it to the local cache map and return its pointer
236 m_histMap.insert( m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, histPointer ) );
237 return histPointer;
238 }
239 // If we get to here, we actually found the histogram in the THistSvc.
240 // So let's add it to the local cache map and return its pointer
241 m_histMap.insert( m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, histPointer ) );
242 return histPointer;
243 }
244
245
246 // Return the pointer to the histogram that we got from the local cache map
247 return it->second;
248}

◆ 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 369 of file AthHistogramming.h.

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

◆ 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 386 of file AthHistogramming.h.

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

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

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

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< 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; }

◆ 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< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< 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 590 of file AthHistogramming.cxx.

593{
594 size_t pos = 0;
595 while((pos = str.find(oldStr, pos)) != std::string::npos)
596 {
597 str.replace(pos, oldStr.length(), newStr);
598 pos += newStr.length();
599 }
600}

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< 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 1559 of file TrigEDMChecker.cxx.

1559 {
1560 ATH_MSG_INFO(" POINTER TrigMuonEFCbTrack: " << muonTrack);
1561 //if(muonTrack) mLog << MSG::INFO << "REGTEST TrigMuonEFCbTrack: " << *muonTrack << endmsg;
1562
1563// printMuonTrk(mLog,(TrigMuonEFTrack*)muonTrack);
1564// mLog <<MSG::INFO << "REGTEST TrigMuonEFCbTrack " << muonTrack << endmsg;
1565// mLog <<MSG::INFO << "REGTEST NIdPixelHits() returns " << muonTrack->NIdPixelHits() << endmsg;
1566// mLog <<MSG::INFO << "REGTEST NIdSctHits() returns " << muonTrack->NIdSctHits() << endmsg;
1567// mLog <<MSG::INFO << "REGTEST NTrtHits() returns " << muonTrack->NTrtHits() << endmsg;
1568// mLog <<MSG::INFO << "REGTEST matchChi2() returns " << muonTrack->matchChi2() << endmsg;
1569}

◆ printMuonTrk() [2/2]

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

Definition at line 1533 of file TrigEDMChecker.cxx.

1533 {
1534 ATH_MSG_INFO("POINTER TrigMuonEFTrack: " << muonTrack);
1535 //if(muonTrack) mLog << MSG::INFO << "REGTEST TrigMuonEFTrack: " << *muonTrack << endmsg;
1536
1537// mLog <<MSG::INFO << "REGTEST TrigMuonEFTrack->charge() returns " << muonTrack->Charge() << endmsg;
1538// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->iPt() returns " << muonTrack->iPt() << endmsg;
1539// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->CotTh() returns " << muonTrack->cotTh() << endmsg;
1540// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->Phi() returns " << muonTrack->phi() << endmsg;
1541// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->m() returns " << muonTrack->m() << endmsg;
1542// mLog <<MSG::INFO << "REGTEST chi2() returns " << muonTrack->chi2() << endmsg;
1543// mLog <<MSG::INFO << "REGTEST chi2prob() returns " << muonTrack->chi2prob() << endmsg;
1544// mLog <<MSG::INFO << "REGTEST posX() returns " << muonTrack->posX() << endmsg;
1545// mLog <<MSG::INFO << "REGTEST posY() returns " << muonTrack->posY() << endmsg;
1546// mLog <<MSG::INFO << "REGTEST posZ() returns " << muonTrack->posZ() << endmsg;
1547// mLog <<MSG::INFO << "REGTEST NCscHitsEta() returns " << muonTrack->NCscHitsEta() << endmsg;
1548// mLog <<MSG::INFO << "REGTEST NCscHitsPhi() returns " << muonTrack->NCscHitsPhi() << endmsg;
1549// mLog <<MSG::INFO << "REGTEST NTgcHitsEta() returns " << muonTrack->NTgcHitsEta() << endmsg;
1550// mLog <<MSG::INFO << "REGTEST NTgcHitsPhi() returns " << muonTrack->NTgcHitsPhi() << endmsg;
1551// mLog <<MSG::INFO << "REGTEST NMdtHitsEta() returns " << muonTrack->NMdtHitsEta() << endmsg;
1552// mLog <<MSG::INFO << "REGTEST NMdtHitsPhi() returns " << muonTrack->NMdtHitsPhi() << endmsg;
1553// mLog <<MSG::INFO << "REGTEST NRpcHitsEta() returns " << muonTrack->NRpcHitsEta() << endmsg;
1554// mLog <<MSG::INFO << "REGTEST NRpcHitsPhi() returns " << muonTrack->NRpcHitsPhi() << endmsg;
1555// mLog <<MSG::INFO << "REGTEST d0() returns " << muonTrack->d0() << endmsg;
1556// mLog <<MSG::INFO << "REGTEST z0() returns " << muonTrack->z0() << endmsg;
1557}

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

◆ sysExecute()

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

override to do firstEvent method

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 }
80 return AthHistogramAlgorithm::sysExecute(ctx);
81}
virtual StatusCode firstExecute()
Function called when first execute is encountered user can read event information with evtStore()

◆ 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< 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 378 of file AthHistogramming.cxx.

379{
380 // Build a 32 bit hash out of the name
381 const hash_t treeHash = this->hash(treeName);
382
383 // See if this entry exists in the map
384 TreeMap_t::const_iterator it = m_treeMap.find( treeHash );
385 if ( it == m_treeMap.end() ) // It doesn't exist!
386 { // Let's see into the THistSvc if somebody else has registered the TTree...
387
388 // Need to copy the strings as we will massage them from here on
389 std::string treeNameCopy = treeName;
390 std::string tDirCopy = tDir;
391 std::string streamCopy = stream;
392
393 // Massage the final string to book things
394 std::string bookingString("");
395 this->buildBookingString( bookingString, treeNameCopy, tDirCopy, streamCopy );
396
397 TTree* treePointer(NULL);
398 if ( !((histSvc()->getTree(bookingString, treePointer)).isSuccess()) )
399 {
400 m_msg << MSG::WARNING
401 << "Problem retrieving the TTree with name " << treeNameCopy
402 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
403 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
404 return NULL;
405 }
406 // If we get to here, we actually found the TTree in the THistSvc.
407 // So let's add it to the local cache map and return its pointer
408 m_treeMap.insert( m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treePointer ) );
409 return treePointer;
410 }
411
412 // Return the pointer to the TTree that we got from the local cache map
413 return it->second;
414}

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

4211 {
4212
4213 using namespace TrigCompositeUtils;
4214
4215 // This constexpr is evaluated at compile time
4216 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
4217 std::vector<std::string> keys;
4218 if ( m_dumpTrigCompositeContainers.size() == 0 ) {
4219 evtStore()->keys(TrigCompositeCLID, keys);
4220 }
4221 else {
4223 }
4224 std::string typeNameTC;
4225 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
4226 ATH_MSG_DEBUG("Got " << keys.size() << " keys for " << typeNameTC);
4227
4228 HLT::Identifier chainID(m_dumpNavForChain);
4229 DecisionIDContainer chainIDs;
4230 chainIDs.insert( chainID.numeric() );
4231
4232 std::set<int> converted;
4233
4234 const Trig::ChainGroup* cg = m_trigDec->getChainGroup(m_dumpNavForChain);
4236 std::vector<std::string> chains = cg->getListOfTriggers();
4237 for (const std::string& chain : chains) {
4238 const TrigConf::HLTChain* hltChain = m_trigDec->ExperimentalAndExpertMethods().getChainConfigurationDetails(chain);
4239 const HLT::Identifier chainID_tmp( hltChain->chain_name() );
4240 chainIDs.insert( chainID_tmp.numeric() );
4241 const std::vector<size_t> legMultiplicites = hltChain->leg_multiplicities();
4242 if (legMultiplicites.size() == 0) {
4243 ATH_MSG_ERROR("chain " << chainID_tmp << " has invalid configuration, no multiplicity data.");
4244 } else if (legMultiplicites.size() > 1) {
4245 // For multi-leg chains, the DecisionIDs are handled per leg.
4246 // We don't care here exactly how many objects are required per leg, just that there are two-or-more legs
4247 for (size_t legNumeral = 0; legNumeral < legMultiplicites.size(); ++legNumeral) {
4248 const HLT::Identifier legID = TrigCompositeUtils::createLegName(chainID_tmp, legNumeral);
4249 chainIDs.insert( legID.numeric() );
4250 }
4251 }
4252 }
4253
4254 // First retrieve them all (this should not be needed in future)
4255 const DecisionContainer* container = nullptr;
4256 for (const std::string& key : keys) ATH_CHECK( evtStore()->retrieve( container, key ) );
4257
4258 std::stringstream ss;
4259 ss << "digraph {" << std::endl;
4260 ss << " node [shape=rectangle]" << std::endl;
4261 ss << " rankdir = BT" << std::endl;
4262
4263 // Now process them
4264 for (const std::string& key : keys) {
4265 if ( not m_doDumpAllTrigComposite ) {
4266 if ( not key.starts_with( "HLTNav_") ) { // Nav containers should always start with HLTNav_
4267 continue;
4268 }
4269 }
4270 ATH_CHECK( evtStore()->retrieve( container, key ) );
4271 ATH_MSG_DEBUG("Processing collection " << key << " to be added to the navigation graph");
4272 // ss << " rank=same" << std::endl; // dot cannot handle this is seems
4273 bool writtenHeader = false;
4274 for (const Decision* tc : *container ) {
4275 // Output my ID in the graph.
4276 const DecisionContainer* container = dynamic_cast<const DecisionContainer*>( tc->container() );
4277 const ElementLink<DecisionContainer> selfEL = ElementLink<DecisionContainer>(*container, tc->index());
4278 std::vector<ElementLink<DecisionContainer>> seedELs = tc->objectCollectionLinks<DecisionContainer>("seed");
4279 const bool isHypoAlgNode = tc->name() == "H";
4280 const bool isComboHypoAlgNode = tc->name() == "CH";
4281 const std::vector<DecisionID>& decisions = tc->decisions();
4282 const uint32_t selfKey = selfEL.key();
4283 const uint32_t selfIndex = selfEL.index();
4284 if (m_dumpNavForChain != "") {
4285 bool doDump = false;
4286 // Check me
4287 for (DecisionID id : decisions) {
4288 if (chainIDs.count(id) == 1) {
4289 doDump = true;
4290 break;
4291 }
4292 }
4293 // Check my seeds
4294 if (!doDump and (isHypoAlgNode or isComboHypoAlgNode) and not m_excludeFailedHypoNodes) {
4295 for (const ElementLink<DecisionContainer>& s : seedELs) {
4296 const std::vector<DecisionID>& seedDecisions = (*s)->decisions();
4297 for (DecisionID id : seedDecisions) {
4298 if (chainIDs.count(id) == 1) {
4299 doDump = true;
4300 break;
4301 }
4302 }
4303 }
4304 }
4305 if (!doDump) {
4306 continue;
4307 }
4308 }
4309 if (!writtenHeader) {
4310 writtenHeader = true;
4311 ss << " subgraph " << key << " {" << std::endl;
4312 ss << " label=\"" << key << "\"" << std::endl;
4313 }
4314 const std::string scheme = "rdpu9";
4315 std::string color = "1";
4316 if (tc->name() == "L1") { color = "1"; }
4317 else if (tc->name() == "F") { color = "2"; }
4318 else if (tc->name() == "IM") { color = "3"; }
4319 else if (tc->name() == "H") { color = "4"; }
4320 else if (tc->name() == "CH") { color = "5"; }
4321 else if (tc->name() == "SF") { color = "6"; }
4322 else if (tc->name() == "HLTPassRaw") { color = "7"; }
4323 ss << " \"" << selfKey << "_" << selfIndex << "\" [colorscheme="<<scheme<<",style=filled,fillcolor="<<color<<",label=<<B>Container</B>=" << typeNameTC;
4324 if (tc->name() != "") ss << " <B>Name</B>=" << tc->name();
4325 ss << "<BR/><B>Key</B>=" << key << "<BR/><B>Index</B>=" << selfIndex;
4326 const bool isRemapped = tc->isRemapped();
4327 if (isHypoAlgNode) ss << " <B>linksRemapped</B>=" << (isRemapped ? "Y" : "N");
4328 if (decisions.size() > 0) {
4329 ss << "<BR/><B>Pass</B>=";
4330 size_t c = 0;
4331 for (unsigned decisionID : decisions) {
4332 HLT::Identifier dID(decisionID);
4333 std::string highlight = (dID.numeric() == chainID.numeric() ? "<B>[CHAIN:" : "");
4334 if (highlight == "" and chainIDs.count(dID.numeric()) == 1 and TrigCompositeUtils::isLegId(dID)) {
4335 highlight = "<B>[LEG" + std::to_string(TrigCompositeUtils::getIndexFromLeg(dID)) + ":";
4336 }
4337 ss << std::hex << highlight << decisionID << (!highlight.empty() ? "]</B>" : "") << std::dec << ",";
4338 if (c++ == 5) {
4339 ss << "<BR/>";
4340 c = 0;
4341 }
4342 }
4343 }
4344 ss << ">]" << std::endl;
4345 // Output all the things I link to
4346 size_t seedCount = 0;
4347 for (size_t i = 0; i < tc->linkColNames().size(); ++i) {
4348 const std::string link = tc->linkColNames().at(i);
4349 if (link == "seed" || link == "seed__COLL") {
4350 ElementLink<DecisionContainer> seedEL = seedELs.at(seedCount++);
4351 const uint32_t seedKey = tc->linkColKeys().at(i);
4352 const uint32_t seedIndex = tc->linkColIndices().at(i);
4353 ATH_CHECK( seedKey == seedEL.key() );
4354 ATH_CHECK( seedIndex == seedEL.index() );
4355 if (m_dumpNavForChain != "") { // Only print "seed" link to nodes we include in our search
4356 const std::vector<DecisionID> seedDecisions = (*seedEL)->decisions();
4357 bool doSeedLink = false;
4358 for (DecisionID id : seedDecisions) {
4359 if (chainIDs.count(id) == 1) {
4360 doSeedLink = true;
4361 break;
4362 }
4363 }
4364 if (!doSeedLink) {
4365 continue;
4366 }
4367 }
4368 ss << " \"" << selfKey << "_" << selfIndex << "\" -> \"" << seedKey << "_" << seedIndex << "\" [colorscheme="<<scheme<<",color=9,fontcolor=8,label=\"seed\"]" << std::endl;
4369 } else {
4370 // Start with my class ID
4371 std::string linkColour = "12";
4372 std::string linkBackground = "11";
4373 const std::string extScheme = "paired12";
4374 if (link == "roi") { linkColour="2"; linkBackground="1"; }
4375 else if (link == "initialRoI") { linkColour="2"; linkBackground="1"; }
4376 else if (link == "initialRecRoI") { linkColour="8"; linkBackground="7"; }
4377 else if (link == "feature") { linkColour="4"; linkBackground="3"; }
4378 else if (link == "view") { linkColour="10"; linkBackground="9"; }
4379 const CLID linkCLID = static_cast<CLID>( tc->linkColClids().at(i) );
4380 // Use it to get my class name
4381 std::string tname;
4382 ATH_CHECK(m_clidSvc->getTypeNameOfID(linkCLID, tname));
4383 // Now get the sgkey I'm linking to & the index
4384 const SG::sgkey_t key = (isRemapped ? static_cast<SG::sgkey_t>( tc->linkColKeysRemap().at(i) ) : static_cast<SG::sgkey_t>( tc->linkColKeys().at(i) ));
4385 const unsigned index = (isRemapped ? tc->linkColIndicesRemap().at(i) : tc->linkColIndices().at(i));
4386 // Look it up
4387 CLID checkCLID;
4388 const std::string* keyStr = evtStore()->keyToString(key, checkCLID); // I don't own this str
4389 if (keyStr != nullptr && checkCLID != linkCLID) {
4390 std::string tnameOfCheck;
4391 m_clidSvc->getTypeNameOfID(checkCLID, tnameOfCheck).ignore(); // Might be invalid. But we don't care.
4392 ATH_MSG_ERROR("Inconsistent CLID " << checkCLID << " [" << tnameOfCheck << "] stored in storegate for key " << key
4393 << ". We were expecting " << linkCLID << " [" << tname << "]");
4394 }
4395
4396 std::string tnameEscape;
4397 for (std::string::const_iterator i = tname.begin(); i != tname.end(); ++i) {
4398 unsigned char c = *i;
4399 if (c == '<') {
4400 tnameEscape += "&lt;";
4401 } else if (c == '>') {
4402 tnameEscape += "&gt;";
4403 } else {
4404 tnameEscape += c;
4405 }
4406 }
4407
4408 // Print
4409 ss << " \"" << selfKey << "_" << selfIndex << "\" -> \"" << key << "_" << index << "\" ";
4410 ss << "[colorscheme="<<extScheme<<",color="<<linkColour<<",fontcolor="<<linkColour<<",arrowhead=empty,label=\"" << link << "\"]" << std::endl;
4411
4412 // Check if we are linking to self (e.g. a dummy-feature), don't output a new box for this
4413 const bool linkToSelf = (selfKey == key and selfIndex == index);
4414
4415 if (converted.count(key + index) == 0 and not linkToSelf) {
4416 ss << " \"" << key << "_" << index << "\" [colorscheme="<<extScheme<<",style=filled,fillcolor="<<linkBackground<<",label=<<B>Container</B>=" << tnameEscape << "<BR/><B>Key</B>=";
4417 if (keyStr != nullptr) ss << *keyStr;
4418 else ss << "[<I>KEY "<< key <<" NOT IN STORE</I>] ";
4419 ss << "<BR/><B>Index</B>=" << index << ">]";
4420 }
4421
4422 converted.insert(key + index);
4423 }
4424 }
4425 }
4426 if (writtenHeader) {
4427 ss << " }" << std::endl;
4428 }
4429 }
4430
4431 ss << "}" << std::endl;
4432
4433 returnValue.assign( ss.str() );
4434 return StatusCode::SUCCESS;
4435}
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
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< 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 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_clidSvc

ServiceHandle< ::IClassIDSvc > TrigEDMChecker::m_clidSvc
private

Definition at line 216 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 220 of file TrigEDMChecker.h.

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

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< 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 180 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 183 of file TrigEDMChecker.h.

◆ m_doDumpStoreGate

bool TrigEDMChecker::m_doDumpStoreGate
private

Definition at line 167 of file TrigEDMChecker.h.

◆ m_doDumpTauJetContainer

bool TrigEDMChecker::m_doDumpTauJetContainer
private

Definition at line 158 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 203 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_doDumpTrigInDetTrackCollection

bool TrigEDMChecker::m_doDumpTrigInDetTrackCollection
private

Definition at line 149 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 152 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 155 of file TrigEDMChecker.h.

◆ m_doDumpxAODTrackParticle

bool TrigEDMChecker::m_doDumpxAODTrackParticle
private

Definition at line 161 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 173 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 164 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 170 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 185 of file TrigEDMChecker.h.

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

◆ m_dumpTrigCompositeContainers

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

Definition at line 181 of file TrigEDMChecker.h.

◆ m_effMap

EffMap_t AthHistogramming::m_effMap
privateinherited

The map of histogram names to their pointers.

Definition at line 208 of file AthHistogramming.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< 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 186 of file TrigEDMChecker.h.

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

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_graphMap

GraphMap_t AthHistogramming::m_graphMap
privateinherited

The map of TGraph names to their pointers.

Definition at line 222 of file AthHistogramming.h.

◆ m_histMap

HistMap_t AthHistogramming::m_histMap
privateinherited

The map of histogram names to their pointers.

Definition at line 201 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 248 of file AthHistogramming.h.

◆ m_muonPrinter

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

Definition at line 214 of file TrigEDMChecker.h.

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

◆ m_muonTracksKey

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

Definition at line 218 of file TrigEDMChecker.h.

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

◆ m_name

std::string AthHistogramming::m_name
privateinherited

Instance name.

Definition at line 245 of file AthHistogramming.h.

◆ m_navigationHandleKey

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

Definition at line 219 of file TrigEDMChecker.h.

219{ this, "TrigNavigation", "TrigNavigation", "" };

◆ m_navigationTool

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

Definition at line 221 of file TrigEDMChecker.h.

221{ 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 226 of file AthHistogramming.h.

◆ m_trackWarningNum

int TrigEDMChecker::m_trackWarningNum {0}
private

Definition at line 224 of file TrigEDMChecker.h.

224{0};

◆ m_treeMap

TreeMap_t AthHistogramming::m_treeMap
privateinherited

The map of TTree names to their pointers.

Definition at line 215 of file AthHistogramming.h.

◆ m_trigDec

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

Definition at line 222 of file TrigEDMChecker.h.

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

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertexWarningNum

int TrigEDMChecker::m_vertexWarningNum {0}
private

Definition at line 225 of file TrigEDMChecker.h.

225{0};

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


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