ATLAS Offline Software
Loading...
Searching...
No Matches
TrigHitDVHypoAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef TRIGLONGLIVEDPARTICLESHYPO_TRIGHITDVHYPOALG_H
5#define TRIGLONGLIVEDPARTICLESHYPO_TRIGHITDVHYPOALG_H
6
7#include <string>
8#include <memory>
9
10#include "Gaudi/Property.h"
13#include "TrigHitDVHypoTool.h"
14
19
20#include "MVAUtils/BDT.h"
21
29
35
36struct HitDVSeed {
37 float eta;
38 float phi;
39 int16_t type;
40};
41
42struct HitDVTrk {
43 int id;
44 float pt;
45 float eta;
46 float phi;
47 int16_t n_hits_inner;
48 int16_t n_hits_pix;
49 int16_t n_hits_sct;
50 float a0beam;
51};
52
54 float eta;
55 float r;
56 float phi;
57 int16_t layer;
58 bool isPix;
59 bool isSct;
60 int16_t usedTrkId;
61};
62
64{
65public:
66
67 TrigHitDVHypoAlg( const std::string& name, ISvcLocator* pSvcLocator );
68 virtual StatusCode initialize() override;
69 virtual StatusCode execute(const EventContext& context) const override;
70
71private:
72
73 ToolHandle<ITrigSpacePointConversionTool> m_spacePointTool{this, "SpacePointProviderTool", "TrigSpacePointConversionTool"};
74 ToolHandleArray< TrigHitDVHypoTool > m_hypoTools {this, "HypoTools", {}, "Tools to perform selection"};
75
76 // EDMs
77 SG::ReadHandleKey< xAOD::JetContainer > m_jetsKey {this, "Jets", "HLT_AntiKt4EMTopoJets_subjesIS", ""};
79 SG::ReadHandleKey< TrackCollection> m_tracksKey {this, "HitDVTracks", "HLT_IDTrkTrack_FS_FTF", ""};
80
81 // Luminosity related
82 ToolHandle<ILumiBlockMuTool> m_lumiBlockMuTool;
83 // Property: Per-bunch luminosity data (data only) conditions input)
84 SG::ReadCondHandleKey<LuminosityCondData> m_lumiDataKey {this, "LuminosityCondDataKey", "LuminosityCondData", ""};
85 // Property: MC flag.
86 Gaudi::Property<bool> m_isMC {this, "isMC", false, "Real data or MC"};
87 // Property: jet seed cut
88 Gaudi::Property<float> m_jetSeed_ptMin {this, "jetSeed_ptMin", 50.0, "Minimum pT for jet seed"};
89 Gaudi::Property<float> m_jetSeed_etaMax {this, "jetSeed_etaMin", 2.0, "Maximum eta for jet seed"};
90 // Property: Name of the link to hitDV seed container to pass to ViewCreatorROITool
91 Gaudi::Property<std::string> m_hitDVLinkName {this, "hitDVLinkName", "HitDVSeedLink", "Name of the link to HitDVContainer. Used by ViewCreatorROITool."};
92
93 // seed type enum
95
96 // monitoring
97 ToolHandle<GenericMonitoringTool> m_monTool{ this, "MonTool", "", "Monitoring tool" };
98 StatusCode doMonitor(const xAOD::TrigCompositeContainer*) const;
99
100 //
101 float deltaR2(float, float, float, float) const;
102 int getSPLayer(int, float) const;
103 StatusCode findSPSeeds(const EventContext&, const std::vector<HitDVSpacePoint>&, std::vector<float>&, std::vector<float>&) const;
104 StatusCode findJetSeeds(const xAOD::JetContainer*, const float, const float, std::vector<float>&, std::vector<float>&, std::vector<float>&) const;
105 StatusCode selectSeedsNearby(const std::vector<HitDVSeed>& hitDVSeedsContainer,
106 std::vector<float>& jetSeeds_eta, std::vector<float>& jetSeeds_phi, std::vector<float>& jetSeeds_pt) const;
107 StatusCode calculateBDT(const std::vector<HitDVSpacePoint>&, const std::vector<HitDVTrk>&,
108 const std::vector<float>&, const std::vector<float>&, const std::vector<float>&,
109 const float&, const int, xAOD::TrigCompositeContainer*, int&) const;
110
111 // MVAUtils BDT
112 std::unique_ptr<MVAUtils::BDT> m_bdt_eta[2];
113
114 // parameters
117
118 //Ctrl Flags
119 bool m_useBeamSpot = true;
120
121 //Vertex
122 bool m_doHitDV_Seeding = true;
123
125 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
126
127 StatusCode findSPSeeds( const EventContext& ctx,
128 const std::vector<float>& v_sp_eta, const std::vector<float>& v_sp_phi,
129 const std::vector<int>& v_sp_layer, const std::vector<int>& v_sp_usedTrkId,
130 std::vector<float>& seeds_eta, std::vector<float>& seeds_phi ) const;
131 StatusCode findHitDV(const EventContext& ctx, const std::vector<TrigSiSpacePointBase>& convertedSpacePoints,
132 const DataVector<Trk::Track>& tracks, std::vector<HitDVSeed>& hitDVSeedsContainer,
133 std::vector<HitDVTrk>& hitDVTrksContainer,
134 std::vector<HitDVSpacePoint>& hitDVSPContainer) const;
135};
136
137#endif //> !TRIGLONGLIVEDPARTICLESHYPO_TRIGHITDVHYPOALG_H
Hold luminosity data produced by LuminosityCondAlg.
Define macros for attributes used to control the static checker.
Derived DataVector<T>.
Definition DataVector.h:795
HypoBase(const std::string &name, ISvcLocator *pSvcLocator)
constructor, to be called by sub-class constructors
Definition HypoBase.cxx:12
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
float deltaR2(float, float, float, float) const
ToolHandleArray< TrigHitDVHypoTool > m_hypoTools
ToolHandle< GenericMonitoringTool > m_monTool
TrigHitDVHypoAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< std::string > m_hitDVLinkName
TrigHitDVHypoTool::SeedType SeedType
StatusCode findHitDV(const EventContext &ctx, const std::vector< TrigSiSpacePointBase > &convertedSpacePoints, const DataVector< Trk::Track > &tracks, std::vector< HitDVSeed > &hitDVSeedsContainer, std::vector< HitDVTrk > &hitDVTrksContainer, std::vector< HitDVSpacePoint > &hitDVSPContainer) const
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
Gaudi::Property< float > m_jetSeed_ptMin
virtual StatusCode execute(const EventContext &context) const override
StatusCode calculateBDT(const std::vector< HitDVSpacePoint > &, const std::vector< HitDVTrk > &, const std::vector< float > &, const std::vector< float > &, const std::vector< float > &, const float &, const int, xAOD::TrigCompositeContainer *, int &) const
int getSPLayer(int, float) const
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_jetRoiCollectionKey
SG::ReadHandleKey< TrackCollection > m_tracksKey
Gaudi::Property< float > m_jetSeed_etaMax
ToolHandle< ITrigSpacePointConversionTool > m_spacePointTool
StatusCode selectSeedsNearby(const std::vector< HitDVSeed > &hitDVSeedsContainer, std::vector< float > &jetSeeds_eta, std::vector< float > &jetSeeds_phi, std::vector< float > &jetSeeds_pt) const
Gaudi::Property< bool > m_isMC
StatusCode findJetSeeds(const xAOD::JetContainer *, const float, const float, std::vector< float > &, std::vector< float > &, std::vector< float > &) const
ToolHandle< ILumiBlockMuTool > m_lumiBlockMuTool
StatusCode findSPSeeds(const EventContext &, const std::vector< HitDVSpacePoint > &, std::vector< float > &, std::vector< float > &) const
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
virtual StatusCode initialize() override
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_hitDVKey
SG::ReadHandleKey< xAOD::JetContainer > m_jetsKey
StatusCode doMonitor(const xAOD::TrigCompositeContainer *) const
std::unique_ptr< MVAUtils::BDT > m_bdt_eta[2]
TrigCompositeContainer_v1 TrigCompositeContainer
Declare the latest version of the container.
JetContainer_v1 JetContainer
Definition of the current "jet container version".
int16_t n_hits_inner
int16_t n_hits_sct
int16_t n_hits_pix