ATLAS Offline Software
TrigHitDVHypoTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 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"
15 #include "xAODJet/JetContainer.h"
16 
17 
18 
25 class TrigHitDVHypoTool : virtual public ::AthAlgTool
26 {
27 public:
28  TrigHitDVHypoTool( const std::string& type,
29  const std::string& name,
30  const IInterface* parent );
31 
32  virtual ~TrigHitDVHypoTool();
33  virtual StatusCode initialize() override;
34 
35  struct HitDVHypoInfo {
37  bool isSPOverflow{false};
38  float averageMu{0};
39  const xAOD::TrigComposite* hitDV{nullptr};
41  };
42 
43  // seed type enum
44  enum SeedType {
45  HLTJet = 2,
46  SP = 4
47  };
48 
52  StatusCode decide( std::vector<HitDVHypoInfo>& ) const;
53 
54 private:
55 
57  Gaudi::Property< std::vector<float> > m_cutJetPtGeV { this, "cutJetPtGeV", { 20.0 }, "Jet pT requirement in GeV" };
58  Gaudi::Property< std::vector<float> > m_cutJetEta { this, "cutJetEta", { 2.5 }, "Jet Eta requirement" };
59  Gaudi::Property< std::vector<float> > m_effBDT { this, "effBDT", { 0.7 }, "Efficiency for BDT cut." };
60  Gaudi::Property< std::vector<bool> > m_doSPseed { this, "doSPseed", { true }, "Switch to do SP seeding" };
61 
62  //
63  StatusCode inclusiveSelection(std::vector<HitDVHypoInfo>& ) const;
64  StatusCode multiplicitySelection(std::vector<HitDVHypoInfo>& ) const;
65  bool decideOnSingleObject( HitDVHypoInfo&, size_t, bool ) const;
66 
67  //
68  float deltaR(float, float, float, float) const;
69  int getSPLayer(int, float) const;
70  StatusCode findSPSeeds( const xAOD::TrigCompositeContainer*, std::vector<float>&, std::vector<float>& ) const;
71  StatusCode findJetSeeds(const xAOD::JetContainer*, const float, const float, std::vector<float>&, std::vector<float>&) const;
73  const std::vector<float>&, const std::vector<float>&, const float, const int, xAOD::TrigCompositeContainer*, int&) const;
74  float getBDTthreshold_0eta1(float,float) const;
75  float getBDTthreshold_1eta2(float,float) const;
76  float getBDTthreshold(float) const;
77 };
78 
79 #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:58
TrigHitDVHypoTool::HitDVHypoInfo::averageMu
float averageMu
Definition: TrigHitDVHypoTool.h:38
TrackParticlexAODHelpers.h
TrigCompositeUtils.h
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:45
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:37
TrigHitDVHypoTool::HitDVHypoInfo
Definition: TrigHitDVHypoTool.h:35
GenericMonitoringTool.h
TrigHitDVHypoTool::SeedType
SeedType
Definition: TrigHitDVHypoTool.h:44
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:36
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TrigHitDVHypoTool::m_decisionId
HLT::Identifier m_decisionId
Definition: TrigHitDVHypoTool.h:56
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:52
TrigHitDVHypoTool::inclusiveSelection
StatusCode inclusiveSelection(std::vector< HitDVHypoInfo > &) const
Definition: TrigHitDVHypoTool.cxx:152
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
HLT::Identifier
Definition: TrigCompositeUtils/TrigCompositeUtils/HLTIdentifier.h:20
TrigHitDVHypoTool::HitDVHypoInfo::hitDV
const xAOD::TrigComposite * hitDV
Definition: TrigHitDVHypoTool.h:39
TrigHitDVHypoTool::SP
@ SP
Definition: TrigHitDVHypoTool.h:46
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:60
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
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:59
JetContainer.h
TrigHitDVHypoTool::getBDTthreshold_1eta2
float getBDTthreshold_1eta2(float, float) const
Definition: TrigHitDVHypoTool.cxx:78
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py: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:26
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:40
TrackParticleContainer.h
TrigHitDVHypoTool::m_cutJetPtGeV
Gaudi::Property< std::vector< float > > m_cutJetPtGeV
Definition: TrigHitDVHypoTool.h:57