ATLAS Offline Software
Loading...
Searching...
No Matches
TrkObserverTool.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5*/
6
7// TrkObserverTool.h
8// Header file for class TrkObserverTool
9// Author: C.Rauchegger<christoph.rauchegger@cern.ch>
11#ifndef TRK_TRKOBSERVERTOOL_H
12#define TRK_TRKOBSERVERTOOL_H
13
14// STL includes
15#include <string>
16
17// FrameWork includes
19#include "GaudiKernel/ServiceHandle.h"
20#include "GaudiKernel/ToolHandle.h"
22
23// TrkObserverInterface includes
25
26//need to include the following, since its a typedef and can't be forward declared.
28
29// for creating xAOD with TrackParticle
34
35
36namespace Trk {
37
39
40 class TrkObserverTool : virtual public Trk::ITrkObserverTool, public :: AthAlgTool {
41 public:
42 TrkObserverTool(const std::string& type, const std::string& name, const IInterface* parent);
44 // athena algtool's Hooks
45 virtual StatusCode initialize();
46 virtual StatusCode finalize();
47 // const methods
48 void updateTrackMap(int uid, double score, xAOD::RejectionStep rejectStep, xAOD::RejectionReason rejectReason) const;
49 void updateScore(int uid, double score) const;
50 void rejectTrack(int uid, xAOD::RejectionStep rejectStep, xAOD::RejectionReason rejectReason) const;
51 void addInputTrack(int uid, const Trk::Track& track) const;
52 void addSubTrack(int track_uid, int parent_uid, const Trk::Track& track) const;
53 ObservedTrackMap* getTrackMap(const EventContext& ctx) const;
54 int saveTracksToStore(const EventContext& ctx, const ObservedTrackMap* trk_map) const;
55 void updateHolesSharedHits(int uid, int numPixelHoles, int numSCTHoles, int numSplitSharedPixel, int numSplitSharedSCT,
56 int numSharedOrSplit, int numSharedOrSplitPixels, int numShared, int isPatternTrack, int totalSiHits, int inROI, int hasIBLHit,
57 int hasSharedIBLHit, int hasSharedPixel, int firstPixIsShared, int numPixelDeadSensor, int numSCTDeadSensor, int numPixelHits,
58 int numSCTHits, int numUnused, int numTRT_Unused, int numSCT_Unused, int numPseudo, float averageSplit1, float averageSplit2, int numWeightedShared) const;
59
60 private:
61 // name of the observed (saved) track collection
64
65 mutable std::mutex m_mutex;
66 struct CacheEntry {
67 EventContext::ContextEvt_t m_evt{EventContext::INVALID_CONTEXT_EVT};
68 // map with observed tracks and information
70 };
71 mutable SG::SlotSpecificObj<CacheEntry> m_cache ATLAS_THREAD_SAFE; // Guarded by m_mutex
72
73 void newEvent(CacheEntry* ent) const;
74 void dumpTrackMap(const ObservedTrackMap* trk_map) const;
75 static std::string dumpRejection(xAOD::RejectionStep rejectStep, xAOD::RejectionReason rejectReason) ;
76 static int getNFinalTracks(const ObservedTrackMap* trk_map) ;
77 static int getNObservedTracks(const ObservedTrackMap* trk_map) ;
78 static const std::map<xAOD::RejectionStep, std::string> m_rejectStep_descriptions;
79 static const std::map<xAOD::RejectionReason, std::string> m_rejectReason_descriptions;
80 };
81}
82
83#endif // TRK_TRKOBSERVERTOOL_H
Maintain a set of objects, one per slot.
std::map< int, std::tuple< Trk::Track *, double, xAOD::RejectionStep, xAOD::RejectionReason, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, float, float, int, std::vector< xAOD::RejectionStep >, std::vector< xAOD::RejectionReason > > > ObservedTrackMap
Maintain a set of objects, one per slot.
Property holding a SG store/key/clid from which a WriteHandle is made.
Interface for constructing TrackParticles from complete tracks.
int saveTracksToStore(const EventContext &ctx, const ObservedTrackMap *trk_map) const
virtual ~TrkObserverTool()
static const std::map< xAOD::RejectionReason, std::string > m_rejectReason_descriptions
static const std::map< xAOD::RejectionStep, std::string > m_rejectStep_descriptions
SG::WriteHandleKey< TrackCollection > m_savedTracksWriteKey
void addInputTrack(int uid, const Trk::Track &track) const
static int getNFinalTracks(const ObservedTrackMap *trk_map)
void rejectTrack(int uid, xAOD::RejectionStep rejectStep, xAOD::RejectionReason rejectReason) const
SG::WriteHandleKey< ObservedTrackMap > m_savedTracksMapWriteKey
static std::string dumpRejection(xAOD::RejectionStep rejectStep, xAOD::RejectionReason rejectReason)
void updateScore(int uid, double score) const
virtual StatusCode initialize()
static int getNObservedTracks(const ObservedTrackMap *trk_map)
ObservedTrackMap * getTrackMap(const EventContext &ctx) const
void updateHolesSharedHits(int uid, int numPixelHoles, int numSCTHoles, int numSplitSharedPixel, int numSplitSharedSCT, int numSharedOrSplit, int numSharedOrSplitPixels, int numShared, int isPatternTrack, int totalSiHits, int inROI, int hasIBLHit, int hasSharedIBLHit, int hasSharedPixel, int firstPixIsShared, int numPixelDeadSensor, int numSCTDeadSensor, int numPixelHits, int numSCTHits, int numUnused, int numTRT_Unused, int numSCT_Unused, int numPseudo, float averageSplit1, float averageSplit2, int numWeightedShared) const
void newEvent(CacheEntry *ent) const
SG::SlotSpecificObj< CacheEntry > m_cache ATLAS_THREAD_SAFE
void addSubTrack(int track_uid, int parent_uid, const Trk::Track &track) const
void updateTrackMap(int uid, double score, xAOD::RejectionStep rejectStep, xAOD::RejectionReason rejectReason) const
virtual StatusCode finalize()
void dumpTrackMap(const ObservedTrackMap *trk_map) const
TrkObserverTool(const std::string &type, const std::string &name, const IInterface *parent)
Ensure that the ATLAS eigen extensions are properly loaded.
EventContext::ContextEvt_t m_evt