Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
15 #include "xAODJet/JetContainer.h"
19 
20 #include "MVAUtils/BDT.h"
21 
29 
36 struct HitDVSeed {
37  float eta;
38  float phi;
40 };
41 
42 struct HitDVTrk {
43  int id;
44  float pt;
45  float eta;
46  float phi;
50  float a0beam;
51 };
52 
54  float eta;
55  float r;
56  float phi;
58  bool isPix;
59  bool isSct;
61 };
62 
64 {
65 public:
66 
67  TrigHitDVHypoAlg( const std::string& name, ISvcLocator* pSvcLocator );
68  virtual StatusCode initialize() override;
69  virtual StatusCode execute(const EventContext& context) const override;
70 
71 private:
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" };
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
HitDVSpacePoint::isPix
bool isPix
Definition: TrigHitDVHypoAlg.h:58
TrigHitDVHypoAlg::m_bdt_eta
std::unique_ptr< MVAUtils::BDT > m_bdt_eta[2]
Definition: TrigHitDVHypoAlg.h:112
BDT.h
TrigHitDVHypoAlg::TrigHitDVHypoAlg
TrigHitDVHypoAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrigHitDVHypoAlg.cxx:46
HitDVTrk::n_hits_inner
int16_t n_hits_inner
Definition: TrigHitDVHypoAlg.h:47
HitDVSpacePoint::r
float r
Definition: TrigHitDVHypoAlg.h:55
TrigHitDVHypoAlg::m_spacePointTool
ToolHandle< ITrigSpacePointConversionTool > m_spacePointTool
Definition: TrigHitDVHypoAlg.h:73
HitDVSpacePoint
Definition: TrigHitDVHypoAlg.h:53
TrigHitDVHypoAlg
Implements Hypo selection on triggering displaced vertex.
Definition: TrigHitDVHypoAlg.h:64
TrigHitDVHypoAlg::m_jetRoiCollectionKey
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_jetRoiCollectionKey
Definition: TrigHitDVHypoAlg.h:124
TrigHitDVHypoAlg::m_useBeamSpot
bool m_useBeamSpot
Definition: TrigHitDVHypoAlg.h:119
TrigHitDVHypoAlg::m_tools_loosest_wp
int m_tools_loosest_wp
Definition: TrigHitDVHypoAlg.h:116
TrigHitDVHypoAlg::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrigHitDVHypoAlg.h:97
HitDVTrk::phi
float phi
Definition: TrigHitDVHypoAlg.h:46
HitDVTrk::pt
float pt
Definition: TrigHitDVHypoAlg.h:44
SG::ReadHandleKey< xAOD::JetContainer >
HitDVSeed
Definition: TrigHitDVHypoAlg.h:36
xAOD::int16_t
setScaleOne setStatusOne setSaturated int16_t
Definition: gFexGlobalRoI_v1.cxx:55
PrepRawData.h
HitDVTrk::a0beam
float a0beam
Definition: TrigHitDVHypoAlg.h:50
TrigHitDVHypoAlg::m_jetSeed_etaMax
Gaudi::Property< float > m_jetSeed_etaMax
Definition: TrigHitDVHypoAlg.h:89
HitDVTrk::n_hits_pix
int16_t n_hits_pix
Definition: TrigHitDVHypoAlg.h:48
TrigHitDVHypoAlg::deltaR2
float deltaR2(float, float, float, float) const
Definition: TrigHitDVHypoAlg.cxx:323
HitDVSpacePoint::phi
float phi
Definition: TrigHitDVHypoAlg.h:56
TrigHitDVHypoAlg::m_doHitDV_Seeding
bool m_doHitDV_Seeding
Definition: TrigHitDVHypoAlg.h:122
TrigHitDVHypoAlg::selectSeedsNearby
StatusCode selectSeedsNearby(const std::vector< HitDVSeed > &hitDVSeedsContainer, std::vector< float > &jetSeeds_eta, std::vector< float > &jetSeeds_phi, std::vector< float > &jetSeeds_pt) const
Definition: TrigHitDVHypoAlg.cxx:937
TrigHitDVHypoTool::SeedType
SeedType
Definition: TrigHitDVHypoTool.h:42
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
HitDVTrk::n_hits_sct
int16_t n_hits_sct
Definition: TrigHitDVHypoAlg.h:49
HitDVSeed::eta
float eta
Definition: TrigHitDVHypoAlg.h:37
TrigSiSpacePointBase.h
jFexSRJetRoIContainer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrackCollection.h
TrigHitDVHypoAlg::m_lumiBlockMuTool
ToolHandle< ILumiBlockMuTool > m_lumiBlockMuTool
Definition: TrigHitDVHypoAlg.h:82
TrigHitDVHypoTool.h
HitDVSeed::type
int16_t type
Definition: TrigHitDVHypoAlg.h:39
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
TrigHitDVHypoAlg::doMonitor
StatusCode doMonitor(const xAOD::TrigCompositeContainer *) const
Definition: TrigHitDVHypoAlg.cxx:456
TrigHitDVHypoAlg::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: TrigHitDVHypoAlg.h:125
TrigCompositeAuxContainer.h
LuminosityCondData.h
Hold luminosity data produced by LuminosityCondAlg.
ITrigSpacePointConversionTool.h
TrigHitDVHypoAlg::findJetSeeds
StatusCode findJetSeeds(const xAOD::JetContainer *, const float, const float, std::vector< float > &, std::vector< float > &, std::vector< float > &) const
Definition: TrigHitDVHypoAlg.cxx:698
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TrigHitDVHypoAlg::m_tracksKey
SG::ReadHandleKey< TrackCollection > m_tracksKey
Definition: TrigHitDVHypoAlg.h:79
RIO_OnTrack.h
HypoBase
Hypothesis algorithms take the output of reco algorithms and the decision from the preceeding InputMa...
Definition: HypoBase.h:13
TrigHitDVHypoAlg::execute
virtual StatusCode execute(const EventContext &context) const override
Definition: TrigHitDVHypoAlg.cxx:117
HitDVTrk::eta
float eta
Definition: TrigHitDVHypoAlg.h:45
TrigHitDVHypoAlg::m_jetsKey
SG::ReadHandleKey< xAOD::JetContainer > m_jetsKey
Definition: TrigHitDVHypoAlg.h:77
TrigHitDVHypoAlg::calculateBDT
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
Definition: TrigHitDVHypoAlg.cxx:555
ILumiBlockMuTool.h
TrigHitDVHypoAlg::m_hitDVKey
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_hitDVKey
Definition: TrigHitDVHypoAlg.h:78
TrigHitDVHypoAlg::initialize
virtual StatusCode initialize() override
Definition: TrigHitDVHypoAlg.cxx:55
TrigHitDVHypoAlg::m_lumiDataKey
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
Definition: TrigHitDVHypoAlg.h:84
TrigHitDVHypoAlg::m_isMC
Gaudi::Property< bool > m_isMC
Definition: TrigHitDVHypoAlg.h:86
HitDVSpacePoint::layer
int16_t layer
Definition: TrigHitDVHypoAlg.h:57
SG::ReadCondHandleKey< LuminosityCondData >
TrigHitDVHypoAlg::m_hitDVLinkName
Gaudi::Property< std::string > m_hitDVLinkName
Definition: TrigHitDVHypoAlg.h:91
HitDVSeed::phi
float phi
Definition: TrigHitDVHypoAlg.h:38
JetContainer.h
TrigHitDVHypoAlg::m_jetSeed_ptMin
Gaudi::Property< float > m_jetSeed_ptMin
Definition: TrigHitDVHypoAlg.h:88
HitDVSpacePoint::eta
float eta
Definition: TrigHitDVHypoAlg.h:54
TrigHitDVHypoAlg::findSPSeeds
StatusCode findSPSeeds(const EventContext &, const std::vector< HitDVSpacePoint > &, std::vector< float > &, std::vector< float > &) const
Definition: TrigHitDVHypoAlg.cxx:734
HypoBase.h
HitDVSpacePoint::usedTrkId
int16_t usedTrkId
Definition: TrigHitDVHypoAlg.h:60
BeamSpotData.h
TrigHitDVHypoAlg::m_hypoTools
ToolHandleArray< TrigHitDVHypoTool > m_hypoTools
Definition: TrigHitDVHypoAlg.h:74
TrigHitDVHypoAlg::findHitDV
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
Definition: TrigHitDVHypoAlg.cxx:1166
checker_macros.h
Define macros for attributes used to control the static checker.
TrigHitDVHypoAlg::m_tools_lowest_jetEt
int m_tools_lowest_jetEt
Definition: TrigHitDVHypoAlg.h:115
HitDVTrk::id
int id
Definition: TrigHitDVHypoAlg.h:43
HitDVSpacePoint::isSct
bool isSct
Definition: TrigHitDVHypoAlg.h:59
HitDVTrk
Definition: TrigHitDVHypoAlg.h:42
TrigHitDVHypoAlg::getSPLayer
int getSPLayer(int, float) const
Definition: TrigHitDVHypoAlg.cxx:332