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

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

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

2108 {
2109
2110 ATH_MSG_DEBUG("in dumpHLTResult()");
2111
2112 ATH_MSG_INFO("REGTEST ==========START of HLTResult DUMP===========");
2113
2114 const HLT::HLTResult* hltResult = 0;
2115 StatusCode sc=evtStore()->retrieve( hltResult, "HLTResult_L2");
2116 if( sc.isFailure() || !hltResult ) {
2117 ATH_MSG_INFO("No HLTResult_L2 found in TDS");
2118 return StatusCode::SUCCESS;
2119 }
2120 ATH_MSG_INFO("REGTEST HLTResult_L2 Successfully Retrieved");
2121
2122 ATH_MSG_INFO("REGTEST HLTResult_L2->isEmpty() returns " << hltResult->isEmpty());
2123 ATH_MSG_INFO("REGTEST HLTResult_L2->size() returns " << hltResult->size());
2124 ATH_MSG_INFO("REGTEST HLTResult_L2->isPassThrough() returns " << hltResult->isPassThrough());
2125 ATH_MSG_INFO("REGTEST HLTResult_L2->isAccepted() returns " << hltResult->isAccepted());
2126
2127 ATH_MSG_INFO("REGTEST ==========END of HLTResult DUMP===========");
2128
2129 ATH_MSG_DEBUG("dumpHLTResult() succeeded");
2130
2131 return StatusCode::SUCCESS;
2132}
#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 1171 of file TrigEDMChecker.cxx.

1171 {
1172
1173 ATH_MSG_DEBUG("in dumpLVL1_ROI()");
1174
1175 ATH_MSG_INFO("REGTEST ==========START of LVL1_ROI DUMP===========");
1176
1177 const LVL1_ROI * lvl1ROI;
1178 StatusCode sc = evtStore()->retrieve(lvl1ROI);
1179 if (sc.isFailure() ) {
1180 ATH_MSG_INFO("REGTEST No LVL1_ROI found");
1181 return StatusCode::SUCCESS;
1182 }
1183
1184 ATH_MSG_INFO("REGTEST LVL1_ROI retrieved");
1185
1186 LVL1_ROI::emtaus_type::const_iterator itEMTau =
1187 (lvl1ROI->getEmTauROIs()).begin();
1188 LVL1_ROI::emtaus_type::const_iterator itEMTau_e =
1189 (lvl1ROI->getEmTauROIs()).end();
1190 int j = 0;
1191 for( ; itEMTau != itEMTau_e; ++itEMTau, ++j) {
1192 ATH_MSG_INFO("REGTEST Looking at LVL1_ROI " << j);
1193 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Eta is " << itEMTau->getEta());
1194 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Phi is " << itEMTau->getPhi());
1195 ATH_MSG_INFO("REGTEST LVL1 EmTauROI EMClus is " << itEMTau->getEMClus());
1196 ATH_MSG_INFO("REGTEST LVL1 EmTauROI TauClus is " << itEMTau->getTauClus());
1197 ATH_MSG_INFO("REGTEST LVL1 EmTauROI EMIsol is " << itEMTau->getEMIsol());
1198 ATH_MSG_INFO("REGTEST LVL1 EmTauROI HadIsol is " << itEMTau->getHadIsol());
1199 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Core is " << itEMTau->getCore());
1200 ATH_MSG_INFO("REGTEST LVL1 EmTauROI HadCore is " << itEMTau->getHadCore());
1201 ATH_MSG_INFO("REGTEST LVL1 EmTauROI roiWord is " << itEMTau->getROIWord());
1202 }
1203
1204 ATH_MSG_INFO("REGTEST ==========END of LVL1_ROI DUMP===========");
1205 ATH_MSG_DEBUG("dumpLVL1_ROI() succeeded");
1206 return StatusCode::SUCCESS;
1207}
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 4445 of file TrigEDMChecker.cxx.

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

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

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

4116 {
4117 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigCompositeContainer DUMP===========" );
4118
4121 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
4122 evtStore()->keys(TrigCompositeCLID, m_dumpTrigCompositeContainers);
4123 std::string typeNameTC;
4124 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
4125 ATH_MSG_DEBUG("dumpTrigComposite got " << m_dumpTrigCompositeContainers.size() << " keys for " << typeNameTC);
4126 } else {
4127 ATH_MSG_DEBUG("Using supplied " << m_dumpTrigCompositeContainers.size() << " keys");
4128 }
4129
4130 for ( const std::string & key: m_dumpTrigCompositeContainers ) {
4131 // get the collection
4133 ATH_MSG_WARNING("Absent TrigCompositeContainer: " << key );
4134 continue;
4135 }
4136 ATH_MSG_DEBUG( "#################### Dumping container of : " << key );
4137 const xAOD::TrigCompositeContainer* cont= nullptr;
4138 ATH_CHECK( evtStore()->retrieve( cont, key ) );
4139
4140 size_t count = 0;
4141 for ( auto tc: *cont ) {
4142 ATH_MSG_DEBUG("########## ELEMENT " << count++);
4143 ATH_MSG_DEBUG(*tc);
4144 // Get the objects we know of
4145 for (size_t i = 0; i < tc->linkColNames().size(); ++i) ATH_CHECK(checkTrigCompositeElementLink(tc, i));
4146 }
4147 }
4148 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigCompositeContainer DUMP===========" );
4149 return StatusCode::SUCCESS;
4150}
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 2343 of file TrigEDMChecker.cxx.

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

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

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

◆ 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 xAOD::TrigPassBitsContainer::const_iterator itr = xbitscont->begin();
599 xAOD::TrigPassBitsContainer::const_iterator itrE = xbitscont->end();
600
601 for (int j=0; itr != itrE; ++itr, ++j ) {
602 const xAOD::TrigPassBits * bits = (*itr);
603 if(bits==nullptr){
604 ATH_MSG_INFO("TrigPassBits point nullptr ");
605 continue;
606 }
607 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
608 }
609 }
610 return StatusCode::SUCCESS;
611}
uint32_t size() const
The size of the target container.
const std::vector< uint32_t > & passBits() const
The internal bitmap created with the hypo decisions.
uint32_t containerClid() const
CLID of the target container.
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 613 of file TrigEDMChecker.cxx.

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

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

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

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

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

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

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

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

◆ dumpxAODTrackParticle()

StatusCode TrigEDMChecker::dumpxAODTrackParticle ( )
private

Definition at line 3866 of file TrigEDMChecker.cxx.

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

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

◆ dumpxAODTrigMinBias()

StatusCode TrigEDMChecker::dumpxAODTrigMinBias ( )
private

Definition at line 819 of file TrigEDMChecker.cxx.

819 {
820
825
826 return StatusCode::SUCCESS;
827}
void dumpTrigSpacePointCounts()

◆ dumpxAODTrigMissingET()

StatusCode TrigEDMChecker::dumpxAODTrigMissingET ( )
private

Definition at line 833 of file TrigEDMChecker.cxx.

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

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

◆ dumpxAODVertex()

StatusCode TrigEDMChecker::dumpxAODVertex ( )
private

Definition at line 3986 of file TrigEDMChecker.cxx.

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

1566 {
1567 ATH_MSG_INFO(" POINTER TrigMuonEFCbTrack: " << muonTrack);
1568 //if(muonTrack) mLog << MSG::INFO << "REGTEST TrigMuonEFCbTrack: " << *muonTrack << endmsg;
1569
1570// printMuonTrk(mLog,(TrigMuonEFTrack*)muonTrack);
1571// mLog <<MSG::INFO << "REGTEST TrigMuonEFCbTrack " << muonTrack << endmsg;
1572// mLog <<MSG::INFO << "REGTEST NIdPixelHits() returns " << muonTrack->NIdPixelHits() << endmsg;
1573// mLog <<MSG::INFO << "REGTEST NIdSctHits() returns " << muonTrack->NIdSctHits() << endmsg;
1574// mLog <<MSG::INFO << "REGTEST NTrtHits() returns " << muonTrack->NTrtHits() << endmsg;
1575// mLog <<MSG::INFO << "REGTEST matchChi2() returns " << muonTrack->matchChi2() << endmsg;
1576}

◆ printMuonTrk() [2/2]

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

Definition at line 1540 of file TrigEDMChecker.cxx.

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

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

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