![]() |
ATLAS Offline Software
|
#include <TrackAnalysis.h>
Public Member Functions | |
| TrackAnalysis (const std::string &type, const std::string &name, const IInterface *parent) | |
| Constructor with parameters. | |
| TrackAnalysis ()=delete | |
| virtual | ~TrackAnalysis () |
| Destructor. | |
| virtual StatusCode | initialize () |
| virtual StatusCode | bookHistograms () |
| virtual StatusCode | fillHistograms (const EventContext &context) const |
| virtual StatusCode | procHistograms () |
| virtual StatusCode | proc () |
| finalise histograms in stop() | |
| virtual StatusCode | finalize () |
| bool | execute (const EventContext &context) const |
| finalise histograms in stop() | |
| virtual StatusCode | start () override |
| virtual StatusCode | stop () override |
| void | setTDT (ToolHandle< Trig::TrigDecisionTool > &tdt) |
| assign the TrigDecisionTool - we get this passed in from the top level algorithm so don't need to mess about retrieving it ourselves | |
| const ToolHandle< Trig::TrigDecisionTool > & | getTDT () const |
| ToolHandle< GenericMonitoringTool > & | monTool () |
| const ToolHandle< GenericMonitoringTool > & | monTool () const |
| bool | hasTagNProbe () const |
| bool | isInitialized () const |
| const std::string & | refTracks () const |
| const std::string & | refTracks_tag () const |
| 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 | sysInitialize () override |
| Perform system initialization for an algorithm. | |
| 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 |
Protected Member Functions | |
| 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. | |
Protected Attributes | |
| ToolHandle< Trig::TrigDecisionTool > | m_tdt |
| ToolHandle< GenericMonitoringTool > | m_tool { this, "montool", "", "histogram montool" } |
| histogram montool - books the histograms in the python | |
| std::unique_ptr< AnalysisR4 > | m_analysis |
| and the lightweight tool to actually fill them - could join this with the above montool, but as usual with athena code, that would make things a lot more complicated, whilst simultaneously being a lot less flexible | |
| Gaudi::Property< std::vector< std::string > > | m_fillers { this, "Fillers", {}, "List of histogram filler tools" } |
| ToolHandle< IDTPM2::ITrackSelector > | m_refSelector { this, "ReferenceSelector", "", "" } |
| tools | |
| ToolHandle< IDTPM2::ITrackSelector > | m_testSelector { this, "TestSelector", "", "" } |
| ToolHandle< TrackViewMatchingTool > | m_trackMatchingTool |
| need to define a proper interface class | |
| SG::ReadHandleKey< xAOD::EventInfo > | m_eventInfoName { this, "EventInfo", "EventInfo", "EventInfo name" } |
| read handles, but ... | |
| Gaudi::Property< std::string > | m_reference { this, "Reference", "InDetTrackParticles", "reference collection" } |
| properties | |
| Gaudi::Property< std::string > | m_referenceVertices { this, "ReferenceVertices", "PrimaryVertices", "reference vertex collection" } |
| Gaudi::Property< std::string > | m_tagChain { this, "TagChain", "", "tag leg for tag n probe analysis" } |
| Gaudi::Property< std::string > | m_reference_tag { this, "ReferenceTag", "", "reference tag collection for Tag and Probe" } |
| Gaudi::Property< ConfiguredValue< int > > | m_refPdgId { this, "ReferencePdgId", {}, "reference PDG ID (for truth particle tag and probe)" } |
| Gaudi::Property< ConfiguredValue< int > > | m_refPdgId_tag { this, "ReferencePdgIdTag", {}, "reference PDG ID (for truth particle tag and probe)" } |
| Gaudi::Property< float > | m_minTagMass { this, "MinTagMass", 70, "Minimum invariant mass for Tag and Probe" } |
| Gaudi::Property< float > | m_maxTagMass { this, "MaxTagMass", 110, "Maximum invariant mass for Tag and Probe" } |
| Gaudi::Property< float > | m_minTagPT { this, "MinTagPT", 15, "Minimum tag PT for Tag and Probe" } |
| bool | m_initialized = false |
| and sensible internal variables we can set from the configuration ... | |
| std::string | m_triggerchain |
| std::string | m_refTracks |
| std::string | m_testTracks |
| std::string | m_rois |
| std::string | m_vertices |
| int | m_leg = -1 |
| std::string | m_extra |
| std::string | m_refVertices |
| std::string | m_triggerchain_tag |
| std::string | m_refTracks_tag |
| std::string | m_roi_tag |
| int | m_leg_tag = -1 |
| std::string | m_extra_tag |
| std::unique_ptr< TagNProbe > | m_tnp = 0 |
| Gaudi::Property< bool > | m_useDecorations { this, "useDecorations", false, "Use athena decorations or not" } |
| SG::ReadDecorHandleKeyArray< xAOD::EventInfo > | m_beamKeys {this, "BeamSpotDecoKeys", {"EventInfo.beamPosX", "EventInfo.beamPosY", "EventInfo.beamPosZ"}, "Beamspot positions"} |
| std::unique_ptr< IPredicate< TrackView > > | m_tnpPredicate = 0 |
Private Types | |
| typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Private Attributes | |
| 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 |
Definition at line 55 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
privateinherited |
Definition at line 376 of file AthCommonDataStore.h.
| TrackAnalysis::TrackAnalysis | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Constructor with parameters.
Definition at line 41 of file TrackAnalysis.cxx.
|
delete |
|
virtual |
Definition at line 190 of file TrackAnalysis.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 95 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 85 of file AthCommonDataStore.h.
| bool TrackAnalysis::execute | ( | const EventContext & | context | ) | const |
finalise histograms in stop()
actaully, the offline store does not need the tdt
only retrieve the global collection if not a trigger analysis ...
would likely never be set = proably be best localising all TagNProbe information into the TagNProbe class
this isn't the way to do it. If you want to use a dummy Roi then add the dummy Roi to the Roi vector !!!
actually, we shouldn't need to bother with testing for the "Trigger Navigation" we should only need to check whether we are requesting a trigger collection / chain
doesn't need any configuration - could for instance, get this to be a track or vertex filter, rather than just for tracks
need to make this mass range, and the pt range, configurable parameters add to the chain string ? or as normal job properties ?? if normal then would have to run different types - Z, J/psi etc as different instances, properties, maybe allow both ?
why check if the Navigation is required when you can just check the trigger chain if ( m_trkAnaDef->doTrigNavigation() ) { actually, the logic is the other way round - if it is a trigger collection then we will need tha navigation
at this point, we have the reference objects, so for a tag and probe analysis with the same reference type - eg electron, mu etc all we need now, if to filter these to the relevant Rois and store for later use in the selection
make this a unique_ptr so that we only need to actually construct the store if we are doing a tag n probe analysis with different references
get the tag objects for the tag aqnd probe analysis ...
this is needed in case the tag and probe types are not the same in each leg ...
yep, different legs here ...
note we can do some basic selection of the tags with the predicate
So we are using three TrackAnalysisCollections objets ...
don't actually need these to be named
no point doin a vertex analysis, if no test, or reefernce vertex has been specified
this stuff is still being developed and tested, so we need all this left in here ...
at the moment - for the sake of argument, just assume that the vertices always live in the Roi - need to fix that for the tau vertices, but for the FS tracking that will be ok
get the Event info for this event ... NB: only get the EventInfo fir the selectedStore, since that is the one which is run over by the analyses
store the roi index number for the analysis ...
Getting RoI ElementLink
skip non-valid RoI link
get the test tracks for this Roi
FIXME: this is a bit of a hack - it just adds the vertices to the selected store and really we need to add them to the Roi store, and then implement a vertex selector
again, being used for vertex analysis development ...
dbg ...
NB: in principle, it may be more efficient to use an interface such as roiFilter.getTracks( const vector<TrackView*>& in, RoiDesciptor* roi, vector<TrackView*>& out ); and then directly clear, and fill the output collection inside the selector the current implementation has the advantage that the internal collection is local so can be better optimised, but passing in the collection would mean that we can make use of the prior space allocated for the collection
printtracks( roiStore.reference_tracks(), " filtered reference tracks" );
maybe we can do something here to avoid having to copy the container
select the trigger tracks ...
store this mastcher access in the tool,
for Harry's matcher tool
vertex
do we want to transfer this using unique_ptr ??
rather than passing this in, perhaps better to simply use the collections themselves
Definition at line 223 of file TrackAnalysis.cxx.
|
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
|
virtual |
Definition at line 199 of file TrackAnalysis.cxx.
|
inlinevirtual |
Definition at line 74 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inline |
Definition at line 89 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inline |
Definition at line 94 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
virtual |
do we need these tests ?? if the variable is empty, then the flag would just be set to empty anyhow
we want to set these in the initialise rather than set them for every event
check tag n probe information ...
Definition at line 60 of file TrackAnalysis.cxx.
|
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.
|
inline |
Definition at line 96 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inline |
Definition at line 91 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inline |
Definition at line 92 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
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.
|
virtual |
finalise histograms in stop()
do we need the end of run protection ??
Definition at line 535 of file TrackAnalysis.cxx.
|
inlinevirtual |
Definition at line 70 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inline |
Definition at line 98 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inline |
Definition at line 99 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inlineprotectedinherited |
Definition at line 368 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 352 of file AthCommonDataStore.h.
|
inline |
assign the TrigDecisionTool - we get this passed in from the top level algorithm so don't need to mess about retrieving it ourselves
Definition at line 87 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inlineoverridevirtual |
Definition at line 79 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
inlineoverridevirtual |
Definition at line 81 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, and AthCheckedComponent<::AthAlgTool >.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 298 of file AthCommonDataStore.h.
|
protected |
and the lightweight tool to actually fill them - could join this with the above montool, but as usual with athena code, that would make things a lot more complicated, whilst simultaneously being a lot less flexible
Definition at line 112 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 175 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
privateinherited |
Pointer to StoreGate (detector store by default).
Definition at line 381 of file AthCommonDataStore.h.
|
protected |
read handles, but ...
Definition at line 128 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
privateinherited |
Pointer to StoreGate (event store by default).
Definition at line 378 of file AthCommonDataStore.h.
|
protected |
Definition at line 160 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 169 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 114 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
and sensible internal variables we can set from the configuration ...
Definition at line 151 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 159 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 168 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 145 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 144 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 146 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
properties
Definition at line 132 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 138 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 134 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 140 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 141 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
tools
Definition at line 118 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 154 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 165 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 162 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 166 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 156 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 136 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 103 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 119 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 155 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 171 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 178 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
histogram montool - books the histograms in the python
Definition at line 107 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
need to define a proper interface class
Definition at line 122 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 153 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 164 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
protected |
Definition at line 173 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
privateinherited |
Definition at line 387 of file AthCommonDataStore.h.
|
protected |
Definition at line 157 of file TrigMonitoring/TrigIDR4Monitoring/src/TrackAnalysis.h.
|
privateinherited |
Definition at line 386 of file AthCommonDataStore.h.