ATLAS Offline Software
TrigMultiTrkComboHypo.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /**************************************************************************
6  **
7  ** File: Trigger/TrigHypothesis/TrigBphysHypo/TrigMultiTrkComboHypo.h
8  **
9  ** Description: multi-track hypothesis algorithm
10  **
11  ** Author: Heather Russell
12  **
13  **************************************************************************/
14 
15 #ifndef TRIG_TrigMultiTrkComboHypo_H
16 #define TRIG_TrigMultiTrkComboHypo_H
17 
18 #include <string>
19 #include <vector>
20 
24 #include "xAODMuon/MuonContainer.h"
29 
32 
35 
39 
42 
43 #include "ITrigBphysState.h"
46 
47 #include "AthViews/View.h"
48 
49 namespace Trk {
50 class IVKalState;
51 }
52 
53 
60  public:
62  TrigMultiTrkStateBase(const EventContext& context,
66  const InDet::BeamSpotData* beamSpotData = nullptr)
68  m_isEventAccepted(0) {}
69  virtual ~TrigMultiTrkStateBase() = default;
70  virtual std::vector<ElementLink<TrigCompositeUtils::DecisionContainer>>& getDecisionLinks(size_t) = 0;
72  virtual void addTrigBphysObject(xAOD::TrigBphys*, const std::vector<size_t>& legIndices) = 0;
73  virtual bool checkMultiplicity(const std::vector<int>& legMultiplicity, const std::vector<HLT::Identifier>& legDecisionIDs) const = 0;
74 
75  void setEventAccepted(bool flag = true) { m_isEventAccepted = (flag ? 1 : 0); }
76  inline int isEventAccepted() const { return m_isEventAccepted; }
77  inline std::vector<std::vector<size_t>>& trigBphysLegIndices() { return m_trigBphysLegIndices; }
78  inline std::vector<size_t>& getTrigBphysLegIndices(size_t idx) { return m_trigBphysLegIndices[idx]; }
79  inline std::vector<ElementLink<xAOD::TrackParticleContainer>>& tracks() { return m_tracks; }
80 
81  private:
83  std::vector<std::vector<size_t>> m_trigBphysLegIndices;
84  std::vector<ElementLink<xAOD::TrackParticleContainer>> m_tracks;
85 };
86 
87 
88 template<typename CONTAINER>
90  public:
91  TrigMultiTrkState() = delete;
92  TrigMultiTrkState(const EventContext& context,
96  const InDet::BeamSpotData* beamSpotData = nullptr)
98  virtual ~TrigMultiTrkState() = default;
99 
100  struct LEPTON {
102  std::vector<ElementLink<TrigCompositeUtils::DecisionContainer>> decisionLinks;
104  };
105 
106  std::vector<LEPTON>& leptons() { return m_leptons; }
107  virtual std::vector<ElementLink<TrigCompositeUtils::DecisionContainer>>& getDecisionLinks(size_t i) override final {
108  return m_leptons.at(i).decisionLinks;
109  }
110  virtual TrigCompositeUtils::DecisionIDContainer& getDecisionIDs(size_t i) override final {
111  return m_leptons.at(i).decisionIDs;
112  }
113  virtual void addTrigBphysObject(xAOD::TrigBphys* trigBphysObject, const std::vector<size_t>& legIndices) override final {
114  trigBphysCollection().push_back(trigBphysObject);
115  trigBphysLegIndices().push_back(legIndices);
116  }
117  virtual bool checkMultiplicity(const std::vector<int>& legMultiplicity, const std::vector<HLT::Identifier>& legDecisionIDs) const override final {
118  if (legMultiplicity.size() == 1) return true;
119  int N = std::accumulate(legMultiplicity.begin(), legMultiplicity.end(), 0);
120  int n = 0;
121  for (size_t i = 0; i < m_leptons.size(); ++i) {
122  for (size_t j = 0; j < legMultiplicity.size(); ++j) {
123  if (TrigCompositeUtils::passed(legDecisionIDs.at(j).numeric(), m_leptons.at(i).decisionIDs)) {
124  n++;
125  break;
126  }
127  }
128  }
129  return (n >= N);
130  }
131 
132  private:
133  std::vector<LEPTON> m_leptons;
134 };
135 
136 
137 
139  public:
140  TrigMultiTrkComboHypo(const std::string& name, ISvcLocator* pSvcLocator);
142 
143  virtual StatusCode initialize() override;
144  virtual StatusCode execute(const EventContext& context) const override;
145 
146  private:
147 
153 
158  template<typename CONTAINER>
160 
165  template<typename CONTAINER>
167 
177  template<typename CONTAINER>
179 
186 
193 
199 
206 
212 
218 
226  std::unique_ptr<xAOD::Vertex> fit(
228  const std::vector<double>& particleMasses,
229  Trk::IVKalState& fitterState) const;
230 
240  const xAOD::Vertex& vertex,
241  const std::vector<double>& particleMasses,
242  const xAOD::Vertex& beamSpot,
243  const Trk::IVKalState& fitterState) const;
244 
249  bool isIdenticalTracks(const xAOD::TrackParticle* lhs, const xAOD::TrackParticle* rhs) const;
250  bool isIdenticalTracks(const xAOD::Muon* lhs, const xAOD::Muon* rhs) const;
251  bool isIdenticalTracks(const xAOD::Electron* lhs, const xAOD::Electron* rhs) const;
252  bool isInMassRange(double mass, size_t idx) const;
253  bool passedDeltaRcut(const std::vector<xAOD::TrackParticle::GenVecFourMom_t>& momenta) const;
254 
256  m_trackParticleContainerKey {this, "TrackCollectionKey", "Tracks", "input TrackParticle container name"};
257 
259  m_trigBphysContainerKey {this, "TrigBphysCollectionKey", "TrigBphysContainer", "output TrigBphysContainer name"};
260 
262  m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"};
263 
264  Gaudi::Property<std::vector<unsigned int>> m_nTrk {this, "nTracks", {2},
265  "number of tracks to be fitted into the common vertex"};
266  Gaudi::Property<std::vector<int>> m_nTrkCharge {this, "totalCharge", {},
267  "magnitude of the total charge to accept, negative is none"};
268  Gaudi::Property<std::vector<std::vector<double>>> m_trkMass {this, "trackMasses", {},
269  "track masses for vertex reco (one per track); muon mass is used by default"};
270  Gaudi::Property<std::vector<std::vector<double>>> m_trkPt {this, "trackPtThresholds", { {3650., 3650.} },
271  "minimum track transverse momenta (one per track, sorted descending)"};
272  Gaudi::Property<std::vector<std::pair<double, double>>> m_massRange {this, "massRange", { {0., 100000.} },
273  "range of the invariant mass of the track combinations"};
274  Gaudi::Property<bool> m_applyOverlapRemoval {this, "applyOverlapRemoval", true,
275  "apply overlap removal for the close-by same-sign objects from different views"};
276  Gaudi::Property<bool> m_combineInputDecisionCollections {this, "combineInputDecisionCollections", false,
277  "combine objects attached to decisions from different input collections, needed for HLT_mu4_ivarloose_mu4_b10invmAB120vtx20_L12MU3V chains"};
278  Gaudi::Property<bool> m_useLeptonMomentum {this, "useLeptonMomentum", false,
279  "use 4-momentum of the xAOD::Muon to make fast calculation of the xAOD::TrigBphys mass, needed for consistency with TrigComboHypoTool::compute()"};
280  Gaudi::Property<bool> m_checkMultiplicity {this, "checkMultiplicity", false,
281  "check that we have enough leptons to fire the chain, needed for HLT_mu6_2mu4_bJpsi_L1MU5VF_3MU3VF"};
282  Gaudi::Property<float> m_deltaR {this, "deltaR", 0.01,
283  "minimum deltaR between same-sign tracks (overlap removal)"};
284  Gaudi::Property<float> m_deltaRMax {this, "deltaRMax", std::numeric_limits<float>::max(),
285  "maximum deltaR between tracks in a candidate"};
286  Gaudi::Property<float> m_deltaRMin {this, "deltaRMin", std::numeric_limits<float>::lowest(),
287  "maximum deltaR between tracks in a candidate"};
288  Gaudi::Property<float> m_chi2 {this, "chi2", 150.,
289  "chi2 cut for the fitted vertex"};
290  Gaudi::Property<bool> m_isStreamer {this, "isStreamer", false,
291  "if true we do not create trigger objects, just copy all appropriate decisions to the next step or break the chain"};
292  Gaudi::Property<bool> m_isMuTrkMode {this, "isMuTrkMode", false,
293  "make pairs between muon from SG::View and tracks from the same SG::View"};
294  Gaudi::Property<bool> m_doElectrons {this, "doElectrons", false,
295  "use electrons if true, otherwise use muons"};
296  Gaudi::Property<std::string> m_trigLevel {this, "trigLevel", "EF",
297  "trigger Level to set for created TrigBphys objects: L2, L2IO, L2MT or EF"};
298  Gaudi::Property<std::vector<std::string>> m_mergedElectronChains {this, "mergedElectronChains", {"BPH-0DR3-EM7J15"},
299  "patterns for BPH-0DR3-EM7J15 like chains"};
300  Gaudi::Property<double> m_caloClusterEtThreshold {this, "caloClusterEtThreshold", 5.,
301  "minimum transverse energy of the cluster, associated with close-by electron"};
302 
303  ToolHandle<InDet::VertexPointEstimator> m_vertexPointEstimator {this, "VertexPointEstimator", "", "tool to find starting point for the vertex fitter"};
304  ToolHandle<Trk::TrkVKalVrtFitter> m_vertexFitter {this, "VertexFitter", "", "VKalVrtFitter tool to fit tracks into the common vertex"};
305  ToolHandle<Trk::V0Tools> m_v0Tools {this, "V0Tools", "", "tool to calculate Lxy/LxyError of dimuon candidate wrt beam spot"};
306 
307  ToolHandle<GenericMonitoringTool> m_monTool {this, "MonTool", "", "monitoring tool"};
308 
312 
313  double m_trkPtMin = 0.0;
314 
315 };
316 
317 #endif // TRIG_TrigMultiTrkComboHypo_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
V0Tools.h
TrigMultiTrkComboHypo::m_mergedElectronIDs
TrigCompositeUtils::DecisionIDContainer m_mergedElectronIDs
Definition: TrigMultiTrkComboHypo.h:311
TrigMultiTrkComboHypo::createDecisionObjects
StatusCode createDecisionObjects(TrigMultiTrkStateBase &) const
Create a decision for each xAOD::TrigBphys object from state.trigBphysCollection() and save it to sta...
Definition: TrigMultiTrkComboHypo.cxx:842
TrigMultiTrkState::m_leptons
std::vector< LEPTON > m_leptons
Definition: TrigMultiTrkComboHypo.h:133
TrigMultiTrkComboHypo::filterTrackCombinations
StatusCode filterTrackCombinations(TrigMultiTrkStateBase &) const
Make all possible combinations from state.tracks(), fit tracks to the common vertex and set state....
Definition: TrigMultiTrkComboHypo.cxx:475
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition: TrigCompositeUtilsRoot.cxx:117
TrigMultiTrkComboHypo::m_deltaR
Gaudi::Property< float > m_deltaR
Definition: TrigMultiTrkComboHypo.h:282
VertexPointEstimator.h
TrigMultiTrkComboHypo::m_combineInputDecisionCollections
Gaudi::Property< bool > m_combineInputDecisionCollections
Definition: TrigMultiTrkComboHypo.h:276
TrigMultiTrkStateBase::addTrigBphysObject
virtual void addTrigBphysObject(xAOD::TrigBphys *, const std::vector< size_t > &legIndices)=0
Base_Fragment.mass
mass
Definition: Sherpa_i/share/common/Base_Fragment.py:59
TrigMultiTrkComboHypo::mergeLeptonsFromDecisions
StatusCode mergeLeptonsFromDecisions(TrigMultiTrkState< CONTAINER > &) const
Go through state.previousDecisions(), fetch xAOD::Muons/xAODElectron objects attached to decisions an...
TrigMultiTrkState::getDecisionIDs
virtual TrigCompositeUtils::DecisionIDContainer & getDecisionIDs(size_t i) override final
Definition: TrigMultiTrkComboHypo.h:110
TrigMultiTrkState::TrigMultiTrkState
TrigMultiTrkState(const EventContext &context, const TrigCompositeUtils::DecisionContainer &previousDecisions, TrigCompositeUtils::DecisionContainer &decisions, xAOD::TrigBphysContainer *trigBphysCollection=nullptr, const InDet::BeamSpotData *beamSpotData=nullptr)
Definition: TrigMultiTrkComboHypo.h:92
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
TrigMultiTrkStateBase
Definition: TrigMultiTrkComboHypo.h:59
TrigMultiTrkComboHypo::copyDecisionObjects
StatusCode copyDecisionObjects(TrigMultiTrkStateBase &) const
All appropriate decisions from state.previousDecisions() will be copied to state.decisions() if flag ...
Definition: TrigMultiTrkComboHypo.cxx:817
TrigMultiTrkComboHypo::m_deltaRMin
Gaudi::Property< float > m_deltaRMin
Definition: TrigMultiTrkComboHypo.h:286
TrigMultiTrkState::~TrigMultiTrkState
virtual ~TrigMultiTrkState()=default
TrigMultiTrkComboHypo::m_isStreamer
Gaudi::Property< bool > m_isStreamer
Definition: TrigMultiTrkComboHypo.h:290
accumulate
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
Definition: FPGATrackSimMatrixAccumulator.cxx:22
TrigMultiTrkComboHypo::m_doElectrons
Gaudi::Property< bool > m_doElectrons
Definition: TrigMultiTrkComboHypo.h:294
TrigMultiTrkComboHypo::m_trkMass
Gaudi::Property< std::vector< std::vector< double > > > m_trkMass
Definition: TrigMultiTrkComboHypo.h:268
TrigMultiTrkComboHypo::m_trigLevel
Gaudi::Property< std::string > m_trigLevel
Definition: TrigMultiTrkComboHypo.h:296
TrigMultiTrkComboHypo::execute
virtual StatusCode execute(const EventContext &context) const override
Definition: TrigMultiTrkComboHypo.cxx:193
TrigMultiTrkComboHypo::fit
std::unique_ptr< xAOD::Vertex > fit(const std::vector< ElementLink< xAOD::TrackParticleContainer >> &trackParticleLinks, const std::vector< double > &particleMasses, Trk::IVKalState &fitterState) const
Perform a vertex fit on selected tracks.
Definition: TrigMultiTrkComboHypo.cxx:910
TrigMultiTrkState::leptons
std::vector< LEPTON > & leptons()
Definition: TrigMultiTrkComboHypo.h:106
TrigMultiTrkComboHypo::m_checkMultiplicity
Gaudi::Property< bool > m_checkMultiplicity
Definition: TrigMultiTrkComboHypo.h:280
JetTiledMap::N
@ N
Definition: TiledEtaPhiMap.h:44
TrigMultiTrkComboHypo::m_applyOverlapRemoval
Gaudi::Property< bool > m_applyOverlapRemoval
Definition: TrigMultiTrkComboHypo.h:274
TrigMultiTrkComboHypo::m_nTrkCharge
Gaudi::Property< std::vector< int > > m_nTrkCharge
Definition: TrigMultiTrkComboHypo.h:266
TrigMultiTrkStateBase::tracks
std::vector< ElementLink< xAOD::TrackParticleContainer > > & tracks()
Definition: TrigMultiTrkComboHypo.h:79
SG::ReadHandleKey< xAOD::TrackParticleContainer >
TrigMultiTrkComboHypo::processMergedElectrons
StatusCode processMergedElectrons(TrigMultiTrkState< xAOD::ElectronContainer > &) const
Make all possible combinations from electrons originating from the same BPH-0DR3-EM7J15 cluster,...
Definition: TrigMultiTrkComboHypo.cxx:689
TrigMultiTrkState::TrigMultiTrkState
TrigMultiTrkState()=delete
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
ComboHypo
Definition: ComboHypo.h:31
TrkVKalVrtFitter.h
TrigMultiTrkState::LEPTON::decisionLinks
std::vector< ElementLink< TrigCompositeUtils::DecisionContainer > > decisionLinks
Definition: TrigMultiTrkComboHypo.h:102
TrigMultiTrkComboHypo::m_vertexPointEstimator
ToolHandle< InDet::VertexPointEstimator > m_vertexPointEstimator
Definition: TrigMultiTrkComboHypo.h:303
TrigMultiTrkComboHypo::m_mergedElectronChains
Gaudi::Property< std::vector< std::string > > m_mergedElectronChains
Definition: TrigMultiTrkComboHypo.h:298
TrigMultiTrkComboHypo::mergeTracksFromViews
StatusCode mergeTracksFromViews(TrigMultiTrkStateBase &) const
Go through state.previousDecisions() and fetch xAOD::TrackParticle objects associated with the neares...
Definition: TrigMultiTrkComboHypo.cxx:371
ITrigBphysState.h
TrigCompositeUtils.h
TrigMultiTrkComboHypo::m_trackParticleContainerKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleContainerKey
Definition: TrigMultiTrkComboHypo.h:256
GenericMonitoringTool.h
TrigMultiTrkStateBase::~TrigMultiTrkStateBase
virtual ~TrigMultiTrkStateBase()=default
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
ElectronContainer.h
TrigMultiTrkComboHypo
Definition: TrigMultiTrkComboHypo.h:138
TrigMultiTrkComboHypo::m_caloClusterEtThreshold
Gaudi::Property< double > m_caloClusterEtThreshold
Definition: TrigMultiTrkComboHypo.h:300
lumiFormat.i
int i
Definition: lumiFormat.py:85
TrigMultiTrkComboHypo::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrigMultiTrkComboHypo.h:307
ITrigBphysState::context
const EventContext & context() const
Definition: ITrigBphysState.h:42
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigBphys.h
TrigMultiTrkStateBase::TrigMultiTrkStateBase
TrigMultiTrkStateBase(const EventContext &context, const TrigCompositeUtils::DecisionContainer &previousDecisions, TrigCompositeUtils::DecisionContainer &decisions, xAOD::TrigBphysContainer *trigBphysCollection=nullptr, const InDet::BeamSpotData *beamSpotData=nullptr)
Definition: TrigMultiTrkComboHypo.h:62
TrigMultiTrkComboHypo::initialize
virtual StatusCode initialize() override
Definition: TrigMultiTrkComboHypo.cxx:54
master.flag
bool flag
Definition: master.py:29
TrigMultiTrkComboHypo::m_useLeptonMomentum
Gaudi::Property< bool > m_useLeptonMomentum
Definition: TrigMultiTrkComboHypo.h:278
TrigMultiTrkComboHypo::m_isMuTrkMode
Gaudi::Property< bool > m_isMuTrkMode
Definition: TrigMultiTrkComboHypo.h:292
xAOD::TauHelpers::trackParticleLinks
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinks(const xAOD::TauJet *tau, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
Definition: TauxAODHelpers.cxx:22
TrigMultiTrkStateBase::trigBphysLegIndices
std::vector< std::vector< size_t > > & trigBphysLegIndices()
Definition: TrigMultiTrkComboHypo.h:77
TrigMultiTrkComboHypo::isInMassRange
bool isInMassRange(double mass, size_t idx) const
Definition: TrigMultiTrkComboHypo.cxx:1016
TrigMultiTrkStateBase::m_tracks
std::vector< ElementLink< xAOD::TrackParticleContainer > > m_tracks
Definition: TrigMultiTrkComboHypo.h:84
TrigMultiTrkComboHypo::m_allowedIDs
TrigCompositeUtils::DecisionIDContainer m_allowedIDs
Definition: TrigMultiTrkComboHypo.h:309
TrigMultiTrkComboHypo::makeTrigBPhys
xAOD::TrigBphys * makeTrigBPhys(const xAOD::Vertex &vertex, const std::vector< double > &particleMasses, const xAOD::Vertex &beamSpot, const Trk::IVKalState &fitterState) const
Construct the trigger object that may be stored for debugging or matching.
Definition: TrigMultiTrkComboHypo.cxx:946
TrigMultiTrkStateBase::getDecisionIDs
virtual TrigCompositeUtils::DecisionIDContainer & getDecisionIDs(size_t)=0
ComboHypo.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
TrigMultiTrkComboHypo::copyAdditionalDecisionObjects
StatusCode copyAdditionalDecisionObjects(TrigMultiTrkStateBase &) const
For chains from CombinedSlice (similar to 'HLT_e9_lhvloose_e5_lhvloose_bBeeM6000_mu4_L1BPH-0M9-EM7-EM...
Definition: TrigMultiTrkComboHypo.cxx:881
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
TrigMultiTrkState::addTrigBphysObject
virtual void addTrigBphysObject(xAOD::TrigBphys *trigBphysObject, const std::vector< size_t > &legIndices) override final
Definition: TrigMultiTrkComboHypo.h:113
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TrigMultiTrkComboHypo::m_massRange
Gaudi::Property< std::vector< std::pair< double, double > > > m_massRange
Definition: TrigMultiTrkComboHypo.h:272
TrigMultiTrkComboHypo::findMuTrkCandidates
StatusCode findMuTrkCandidates(TrigMultiTrkState< xAOD::MuonContainer > &) const
Build J/psi candidates from muon from SG::View and tracks from the same SG::View, to be used for Tag-...
Definition: TrigMultiTrkComboHypo.cxx:749
TrigMultiTrkComboHypo::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: TrigMultiTrkComboHypo.h:262
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
TrigMultiTrkStateBase::TrigMultiTrkStateBase
TrigMultiTrkStateBase()=delete
TrigMultiTrkComboHypo::mergeTracksFromDecisions
StatusCode mergeTracksFromDecisions(TrigMultiTrkStateBase &) const
Go through state.previousDecisions(), fetch xAOD::Muons/xAODElectron objects attached to decisions an...
Definition: TrigMultiTrkComboHypo.cxx:422
TrigMultiTrkState
State class for TrigMultiTrkComboHypo algorithm.
Definition: TrigMultiTrkComboHypo.h:89
TrigMultiTrkState::getDecisionLinks
virtual std::vector< ElementLink< TrigCompositeUtils::DecisionContainer > > & getDecisionLinks(size_t i) override final
Definition: TrigMultiTrkComboHypo.h:107
xAOD::Electron_v1
Definition: Electron_v1.h:34
TrigMultiTrkComboHypo::isIdenticalTracks
bool isIdenticalTracks(const xAOD::TrackParticle *lhs, const xAOD::TrackParticle *rhs) const
Attempts to identify identical tracks by selection on DeltaR.
Definition: TrigMultiTrkComboHypo.cxx:998
TrigMultiTrkComboHypo::m_trkPt
Gaudi::Property< std::vector< std::vector< double > > > m_trkPt
Definition: TrigMultiTrkComboHypo.h:270
TrigMultiTrkComboHypo::findMultiLeptonCandidates
StatusCode findMultiLeptonCandidates(TrigMultiTrkState< CONTAINER > &) const
Make all possible combinations from state.leptons(), fit tracks to the common vertex,...
ITrigBphysState::previousDecisions
const TrigCompositeUtils::DecisionContainer & previousDecisions() const
Definition: ITrigBphysState.h:43
TrigMultiTrkComboHypo::m_deltaRMax
Gaudi::Property< float > m_deltaRMax
Definition: TrigMultiTrkComboHypo.h:284
TrigMultiTrkComboHypo::m_v0Tools
ToolHandle< Trk::V0Tools > m_v0Tools
Definition: TrigMultiTrkComboHypo.h:305
MuonContainer.h
SG::ReadCondHandleKey< InDet::BeamSpotData >
TrigMultiTrkStateBase::m_isEventAccepted
int m_isEventAccepted
Definition: TrigMultiTrkComboHypo.h:82
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
InDet::BeamSpotData
Definition: BeamSpotData.h:21
VertexContainer.h
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition: TrigComposite_v1.h:28
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrigMultiTrkState::LEPTON::link
ElementLink< CONTAINER > link
Definition: TrigMultiTrkComboHypo.h:101
TrigMultiTrkComboHypo::m_nTrk
Gaudi::Property< std::vector< unsigned int > > m_nTrk
Definition: TrigMultiTrkComboHypo.h:264
Trk::IVKalState
Definition: IVKalState.h:21
TrigMultiTrkComboHypo::m_trkPtMin
double m_trkPtMin
Definition: TrigMultiTrkComboHypo.h:313
TrigMultiTrkStateBase::setEventAccepted
void setEventAccepted(bool flag=true)
Definition: TrigMultiTrkComboHypo.h:75
TrigMultiTrkStateBase::m_trigBphysLegIndices
std::vector< std::vector< size_t > > m_trigBphysLegIndices
Definition: TrigMultiTrkComboHypo.h:83
ITrigBphysState::decisions
TrigCompositeUtils::DecisionContainer & decisions()
Definition: ITrigBphysState.h:44
TrigMultiTrkComboHypo::m_resolvedElectronIDs
TrigCompositeUtils::DecisionIDContainer m_resolvedElectronIDs
Definition: TrigMultiTrkComboHypo.h:310
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
TrigMultiTrkStateBase::checkMultiplicity
virtual bool checkMultiplicity(const std::vector< int > &legMultiplicity, const std::vector< HLT::Identifier > &legDecisionIDs) const =0
python.BuildSignatureFlags.beamSpot
AthConfigFlags beamSpot(AthConfigFlags flags, str instanceName, str recoMode)
Definition: BuildSignatureFlags.py:454
TrigMultiTrkComboHypoTool.h
TrigMultiTrkStateBase::getDecisionLinks
virtual std::vector< ElementLink< TrigCompositeUtils::DecisionContainer > > & getDecisionLinks(size_t)=0
TrigMultiTrkComboHypo::passedDeltaRcut
bool passedDeltaRcut(const std::vector< xAOD::TrackParticle::GenVecFourMom_t > &momenta) const
Definition: TrigMultiTrkComboHypo.cxx:1023
BeamSpotData.h
TrigMultiTrkComboHypo::TrigMultiTrkComboHypo
TrigMultiTrkComboHypo()=delete
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
View.h
ITrigBphysState
Base class for TrigBphys state objects.
Definition: ITrigBphysState.h:21
TrigBphysContainer.h
TrigMultiTrkStateBase::isEventAccepted
int isEventAccepted() const
Definition: TrigMultiTrkComboHypo.h:76
TrigMultiTrkStateBase::getTrigBphysLegIndices
std::vector< size_t > & getTrigBphysLegIndices(size_t idx)
Definition: TrigMultiTrkComboHypo.h:78
TrigMultiTrkState::LEPTON::decisionIDs
TrigCompositeUtils::DecisionIDContainer decisionIDs
Definition: TrigMultiTrkComboHypo.h:103
TrigComposite.h
xAOD::TrigBphys_v1
Class describing a Bphysics online composite object.
Definition: TrigBphys_v1.h:44
TrackParticleContainer.h
TrigMultiTrkComboHypo::m_trigBphysContainerKey
SG::WriteHandleKey< xAOD::TrigBphysContainer > m_trigBphysContainerKey
Definition: TrigMultiTrkComboHypo.h:259
VertexAuxContainer.h
TrigMultiTrkState::LEPTON
Definition: TrigMultiTrkComboHypo.h:100
ITrigBphysState::trigBphysCollection
xAOD::TrigBphysContainer & trigBphysCollection()
Definition: ITrigBphysState.h:45
TrigMultiTrkState::checkMultiplicity
virtual bool checkMultiplicity(const std::vector< int > &legMultiplicity, const std::vector< HLT::Identifier > &legDecisionIDs) const override final
Definition: TrigMultiTrkComboHypo.h:117
TrigMultiTrkComboHypo::m_vertexFitter
ToolHandle< Trk::TrkVKalVrtFitter > m_vertexFitter
Definition: TrigMultiTrkComboHypo.h:304
TrigMultiTrkComboHypo::m_chi2
Gaudi::Property< float > m_chi2
Definition: TrigMultiTrkComboHypo.h:288