ATLAS Offline Software
TrigHitDVHypoTool.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_TRIGHITDVHYPOTOOL_H
5 #define TRIGLONGLIVEDPARTICLESHYPO_TRIGHITDVHYPOTOOL_H
6 
7 #include <string>
8 
9 #include "Gaudi/Property.h"
13 #include "xAODJet/JetContainer.h"
14 
15 
16 
23 class TrigHitDVHypoTool : virtual public ::AthAlgTool
24 {
25 public:
26  TrigHitDVHypoTool( const std::string& type,
27  const std::string& name,
28  const IInterface* parent );
29 
30  virtual ~TrigHitDVHypoTool();
31  virtual StatusCode initialize() override;
32 
33  struct HitDVHypoInfo {
35  bool isSPOverflow{false};
36  float averageMu{0};
37  const xAOD::TrigComposite* hitDV{nullptr};
39  };
40 
41  // seed type enum
42  enum SeedType {
43  HLTJet = 2,
44  SP = 4
45  };
46 
50  StatusCode decide( std::vector<HitDVHypoInfo>& ) const;
51 
52 private:
53 
55  Gaudi::Property< std::vector<float> > m_cutJetPtGeV { this, "cutJetPtGeV", { 20.0 }, "Jet pT requirement in GeV" };
56  Gaudi::Property< std::vector<float> > m_cutJetEta { this, "cutJetEta", { 2.5 }, "Jet Eta requirement" };
57  Gaudi::Property< std::vector<float> > m_effBDT { this, "effBDT", { 0.7 }, "Efficiency for BDT cut." };
58  Gaudi::Property< std::vector<bool> > m_doSPseed { this, "doSPseed", { true }, "Switch to do SP seeding" };
59 
60  //
61  StatusCode inclusiveSelection(std::vector<HitDVHypoInfo>& ) const;
62  StatusCode multiplicitySelection(std::vector<HitDVHypoInfo>& ) const;
63  bool decideOnSingleObject( HitDVHypoInfo&, size_t, bool ) const;
64 
65  //
66  float deltaR(float, float, float, float) const;
67  int getSPLayer(int, float) const;
68  StatusCode findSPSeeds( const xAOD::TrigCompositeContainer*, std::vector<float>&, std::vector<float>& ) const;
69  StatusCode findJetSeeds(const xAOD::JetContainer*, const float, const float, std::vector<float>&, std::vector<float>&) const;
71  const std::vector<float>&, const std::vector<float>&, const float, const int, xAOD::TrigCompositeContainer*, int&) const;
72  float getBDTthreshold_0eta1(float,float) const;
73  float getBDTthreshold_1eta2(float,float) const;
74  float getBDTthreshold(float) const;
75 };
76 
77 #endif //> !TRIGLONGLIVEDPARTICLESHYPO_TRIGHITDVHYPOTOOL_H
TrigHitDVHypoTool::calculateBDT
StatusCode calculateBDT(const xAOD::TrigCompositeContainer *, const xAOD::TrigCompositeContainer *, const std::vector< float > &, const std::vector< float > &, const float, const int, xAOD::TrigCompositeContainer *, int &) const
TrigHitDVHypoTool::m_cutJetEta
Gaudi::Property< std::vector< float > > m_cutJetEta
Definition: TrigHitDVHypoTool.h:56
TrigHitDVHypoTool::HitDVHypoInfo::averageMu
float averageMu
Definition: TrigHitDVHypoTool.h:36
TrigHitDVHypoTool::deltaR
float deltaR(float, float, float, float) const
TrigHitDVHypoTool::getSPLayer
int getSPLayer(int, float) const
TrigHitDVHypoTool::decide
StatusCode decide(std::vector< HitDVHypoInfo > &) const
decides upon a collection of tracks
Definition: TrigHitDVHypoTool.cxx:130
TrigHitDVHypoTool::HLTJet
@ HLTJet
Definition: TrigHitDVHypoTool.h:43
TrigHitDVHypoTool::multiplicitySelection
StatusCode multiplicitySelection(std::vector< HitDVHypoInfo > &) const
Definition: TrigHitDVHypoTool.cxx:189
TrigHitDVHypoTool::initialize
virtual StatusCode initialize() override
Definition: TrigHitDVHypoTool.cxx:30
TrigHitDVHypoTool::getBDTthreshold
float getBDTthreshold(float) const
Definition: TrigHitDVHypoTool.cxx:110
TrigHitDVHypoTool::HitDVHypoInfo::isSPOverflow
bool isSPOverflow
Definition: TrigHitDVHypoTool.h:35
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
TrigHitDVHypoTool::HitDVHypoInfo
Definition: TrigHitDVHypoTool.h:33
TrigCompositeUtils.h
GenericMonitoringTool.h
TrigHitDVHypoTool::SeedType
SeedType
Definition: TrigHitDVHypoTool.h:42
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigHitDVHypoTool::findJetSeeds
StatusCode findJetSeeds(const xAOD::JetContainer *, const float, const float, std::vector< float > &, std::vector< float > &) const
TrigHitDVHypoTool::HitDVHypoInfo::decision
TrigCompositeUtils::Decision * decision
Definition: TrigHitDVHypoTool.h:34
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TrigHitDVHypoTool::m_decisionId
HLT::Identifier m_decisionId
Definition: TrigHitDVHypoTool.h:54
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:49
TrigHitDVHypoTool::inclusiveSelection
StatusCode inclusiveSelection(std::vector< HitDVHypoInfo > &) const
Definition: TrigHitDVHypoTool.cxx:152
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
HLT::Identifier
Definition: TrigCompositeUtils/TrigCompositeUtils/HLTIdentifier.h:19
TrigHitDVHypoTool::HitDVHypoInfo::hitDV
const xAOD::TrigComposite * hitDV
Definition: TrigHitDVHypoTool.h:37
TrigHitDVHypoTool::SP
@ SP
Definition: TrigHitDVHypoTool.h:44
TrigHitDVHypoTool::findSPSeeds
StatusCode findSPSeeds(const xAOD::TrigCompositeContainer *, std::vector< float > &, std::vector< float > &) const
TrigHitDVHypoTool::m_doSPseed
Gaudi::Property< std::vector< bool > > m_doSPseed
Definition: TrigHitDVHypoTool.h:58
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TrigHitDVHypoTool::~TrigHitDVHypoTool
virtual ~TrigHitDVHypoTool()
Definition: TrigHitDVHypoTool.cxx:25
TrigHitDVHypoTool::getBDTthreshold_0eta1
float getBDTthreshold_0eta1(float, float) const
Definition: TrigHitDVHypoTool.cxx:46
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition: TrigComposite_v1.h:28
TrigHitDVHypoTool::m_effBDT
Gaudi::Property< std::vector< float > > m_effBDT
Definition: TrigHitDVHypoTool.h:57
JetContainer.h
TrigHitDVHypoTool::getBDTthreshold_1eta2
float getBDTthreshold_1eta2(float, float) const
Definition: TrigHitDVHypoTool.cxx:78
TrigHitDVHypoTool::TrigHitDVHypoTool
TrigHitDVHypoTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TrigHitDVHypoTool.cxx:19
TrigHitDVHypoTool
Generated the decision for hypo thats triggers on dispalced vertex.
Definition: TrigHitDVHypoTool.h:24
AthAlgTool
Definition: AthAlgTool.h:26
TrigHitDVHypoTool::decideOnSingleObject
bool decideOnSingleObject(HitDVHypoInfo &, size_t, bool) const
Definition: TrigHitDVHypoTool.cxx:249
TrigHitDVHypoTool::HitDVHypoInfo::previousDecisionsIDs
const TrigCompositeUtils::DecisionIDContainer previousDecisionsIDs
Definition: TrigHitDVHypoTool.h:38
TrigHitDVHypoTool::m_cutJetPtGeV
Gaudi::Property< std::vector< float > > m_cutJetPtGeV
Definition: TrigHitDVHypoTool.h:55