ATLAS Offline Software
TrigVrtSecInclusive.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 TRIGTOOLS_TRIGVRTSECINCLUSIVE_H
5 #define TRIGTOOLS_TRIGVRTSECINCLUSIVE_H
6 
9 
15 
16 #include "Gaudi/Property.h"
19 
20 #include <TH3D.h>
21 #include <TMatrixT.h>
22 
23 #include <vector>
24 #include <deque>
25 #include <iostream>
26 
27 namespace TrigVSI {
28 
37 {
38 public:
39  TrigVrtSecInclusive(const std::string &name, ISvcLocator *pSvcLocator);
40  virtual ~TrigVrtSecInclusive();
41 
42  virtual StatusCode initialize() override;
43  virtual StatusCode execute(const EventContext& ctx) const override;
44  virtual StatusCode finalize() override;
45 
46 private:
47 
48  using xAODContainers = std::pair< std::unique_ptr<xAOD::VertexContainer>, std::unique_ptr<xAOD::VertexAuxContainer> >;
49 
50  // Properties
51  Gaudi::Property<int> m_vtxAlgorithm{this, "vtxAlgorithm", 0, "Vertexing algorithm. 0 : TrigVSI algorithm, 1 : Offline VSI like algorithm"};
52 
53  Gaudi::Property<bool> m_recordTrkPair {this, "recordTrkPair", false, "Output EDM : Flag for record TrkPair vertices"};
54 
55  Gaudi::Property<int> m_cutPixelHits {this, "CutPixelHits", 0, "Track selection : Hit requirements"};
56  Gaudi::Property<int> m_cutSctHits {this, "CutSctHits", 2, "Track selection : Hit requirements"};
57  Gaudi::Property<int> m_cutSharedHits {this, "CutSharedHits", 99, "Track selection : Hit requirements"};
58  Gaudi::Property<int> m_cutSiHits {this, "CutSiHits", 0, "Track selection : Hit requirements"};
59  Gaudi::Property<int> m_cutBLayHits {this, "CutBLayHits", 0, "Track selection : Hit requirements"};
60 
61  Gaudi::Property<double> m_trkChi2Cut {this, "TrkChi2Cut", 50.0, "Track selection : Chi2 requirements"};
62  Gaudi::Property<double> m_trkPtCut {this, "TrkPtCut", (m_vtxAlgorithm == 0)? 2000. : 1000., "Track selection : pT requirements. 2 GeV in TrigVSI, 1 GeV in VSI"};
63 
64  Gaudi::Property<double> m_d0TrkPVDstMinCut {this, "d0TrkPVDstMinCut", 2.0, "Track selection : Impact parameter requirements [mm]"};
65  Gaudi::Property<double> m_d0TrkPVDstMaxCut {this, "d0TrkPVDstMaxCut", 300.0, "Track selection : Impact parameter requirements [mm]"};
66  Gaudi::Property<double> m_z0TrkPVDstMinCut {this, "z0TrkPVDstMinCut", 0.0, "Track selection : Impact parameter requirements [mm]"};
67  Gaudi::Property<double> m_z0TrkPVDstMaxCut {this, "z0TrkPVDstMaxCut", 1500.0, "Track selection : Impact parameter requirements [mm]"};
68  Gaudi::Property<double> m_twoTrkVtxFormingD0Cut {this, "twoTrkVtxFormingD0Cut", 1., "Track selection : Impact parameter requirements [mm]"};
69 
70 
71  Gaudi::Property<double> m_maxR {this, "maxR", 563., "Track-pair selection : Max value for R of vertex position"};
72 
73  Gaudi::Property<bool> m_doTwoCircRCut {this, "doTwoCircRCut", false, "Track-pair selection : Flag for R cut derived from two-circles-intersection-point"};
74  Gaudi::Property<bool> m_doFastRCut {this, "doFastRCut", false, "Track-pair selection : Flag for R cut derived from VKalVrtFitFast"};
75 
76  Gaudi::Property<double> m_fastD0minCut {this, "fastD0minCut", 5., "Track-pair selection : Threshold for rough d0 cut"};
77  Gaudi::Property<double> m_fastD0deltaCut{this, "fastD0deltaCut", 4.2, "Track-pair selection : Threshold for rough d0 cut"};
78  Gaudi::Property<double> m_fastZ0minCut {this, "fastZ0minCut", 120., "Track-pair selection : Threshold for rough z0 cut"};
79  Gaudi::Property<double> m_fastZ0deltaCut{this, "fastZ0deltaCut", 8., "Track-pair selection : Threshold for rough z0 cut"};
80 
81  Gaudi::Property<double> m_selVrtChi2Cut {this, "SelVrtChi2Cut", 4.5, "Track-pair selection : Threshold for the chi2 value of track pair fitting with VKalVrtFit"};
82 
83  Gaudi::Property<bool> m_doPVCompatibilityCut {this, "doPVCompatibilityCut", false, "Track-pair selection : When set to true, require track pairs to be compatible with PV"};
84  Gaudi::Property<double> m_dphiPVCut {this, "dphiPVCut", -0.8, "Track-pair selection : Threshold for the cos of angle of the tracks and the momentum of the track pair"};
85  Gaudi::Property<double> m_pvCompatibilityCut {this, "PVcompatibilityCut", -20., "Track-pair selection : Threshold for the track pair position along the momentum vector"};
86 
87  Gaudi::Property<bool> m_doMaterialMapVeto {this, "doMaterialMapVeto", false, "Track-pair selection : When set to true, perform material map veto on track pairs"};
88 
89  Gaudi::Property<bool> m_skipLargeCluster {this, "skipLargeCluster", true, "Flag to skip vertexing on clusters with too many tracks"};
90  Gaudi::Property<size_t> m_maxTrks {this, "maxTrks", 100, "Max track number to run vertexing"};
91 
92  Gaudi::Property<size_t> m_minTrkPairsMerge {this, "minTrkPairsMerge", 6, "Clusters with track pairs less than minTrkPairsMerge and tracks less than minTrksMerge will be merged into single vertex"};
93  Gaudi::Property<size_t> m_minTrksMerge {this, "minTrksMerge", 4, "Clusters with track pairs less than minTrkPairsMerge and tracks less than minTrksMerge will be merged into single vertex"};
94 
95  Gaudi::Property<bool> m_truncateWrkVertices {this, "truncateWrkVertices", true, "Offline VSI option"};
96  Gaudi::Property<size_t> m_maxWrkVertices {this, "maxWrkVertices", 10000, "Offline VSI option"};
97  Gaudi::Property<double> m_improveChi2ProbThreshold{this, "improveChi2ProbThreshold", 4.5, "Offline VSI option"};
98 
99  //
100  struct WrkVrt : public TrigVSI::IWrkVrt{
101  bool isGood = false;
102  bool isPair = false;
104  TLorentzVector vertexMom;
105  std::vector<double> vertexCov;
106  double chi2;
107  double chi2Core;
108  std::vector<double> chi2PerTrk;
109  long int charge;
110  std::vector< std::vector<double> > trkAtVrt;
111  unsigned long closestWrkVrtIndex;
113 
114  inline double ndof() const { return 2.0*( m_selectedTrackIndices.size() + m_associatedTrackIndices.size() ) - 3.0; }
115  inline double ndofCore() const { return 2.0*( m_selectedTrackIndices.size() ) - 3.0; }
116  inline unsigned nTracksTotal() const { return m_selectedTrackIndices.size() + m_associatedTrackIndices.size(); }
117  inline double fitQuality() const { return chi2 / ndof(); }
118 
119  struct AlgParam {
120  double twoCirc_dphi = 0;
121  double twoCirc_dr = 0;
122  double twoCirc_int_r = 0;
123 
124  double vPos = 0;
125  double vPosMomAngT = 0;
126  double dphi1 = 0;
127  double dphi2 = 0;
128 
129  double vrtFast_r = 0;
130  double vrtFast_eta = 0;
131  double vrtFast_phi = 0;
132  std::vector<float> vrtFast_trkd0;
133  std::vector<float> vrtFast_trkz0;
134 
135  bool isPassMMV = false;
136  };
137 
138  struct AlgCuts {
139  bool trkd0cut = false;
140  bool twoCircErrcut = false;
141  bool twoCircRcut = false;
142  bool fastErrcut = false;
143  bool fastRcut = false;
144  bool fitErrcut = false;
145  bool chi2cut = false;
146 
148  };
149 
152 
153  virtual std::deque<size_t>& selectedTrackIndices() override { return this->m_selectedTrackIndices; }
154  virtual const std::deque<size_t>& selectedTrackIndices() const override { return this->m_selectedTrackIndices; }
155 
158  virtual double x() const override { return vertex.x(); }
159  virtual double y() const override { return vertex.y(); }
160  virtual double z() const override { return vertex.z(); }
162 
163  private :
164  std::deque<size_t> m_selectedTrackIndices;
165  std::deque<size_t> m_associatedTrackIndices;
166 
167  };
168 
169  enum TrkParameter { k_d0=0, k_z0=1, k_theta=2, k_phi=3, k_qOverP=4 ,k_nTP=5 };
171 
172 
173  // Type Definition
174  using WrkVrtContainer = std::vector<WrkVrt>;
175 
176  // material map
179  TMatrixT<double>* m_materialMapMatrix=0;
185 
186  // selection methods
187  bool selectTrack( const xAOD::TrackParticle* trk ) const;
188  bool selectTrack_hitPattern( const xAOD::TrackParticle* trk ) const;
189  bool selectTrack_d0Cut( const xAOD::TrackParticle* trk ) const;
190  bool selectTrack_z0Cut( const xAOD::TrackParticle* trk ) const;
191  bool selectTrack_pTCut( const xAOD::TrackParticle* trk ) const;
192  bool selectTrack_chi2Cut( const xAOD::TrackParticle* trk ) const;
193 
194  // keys
195  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_firstPassTracksName { this,"FirstPassTracksName","InDetTrackParticles","xAOD::TrackParticle Collection used in Vertexing" };
196  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_secondPassTracksName { this,"SecondPassTracksName","InDetTrackParticles","xAOD::TrackParticle Collection used in Vertexing" };
197  SG::WriteHandleKey<xAOD::VertexContainer> m_vxCandidatesOutputName { this,"VxCandidatesOutputName","InclusiveSecVtx","Output Vertex Collection" };
198  SG::WriteHandleKey<xAOD::VertexContainer> m_trkPairOutputName { this,"TrkPairOutputName","InclusiveSecVtx","Track pair Collection" };
199  SG::ReadHandleKey<xAOD::VertexContainer> m_PrimaryVxInputName{ this,"PrimaryVertexInputName","PrimaryVertices","Input Vertex Collection" };
200  //
201  ToolHandle<Trk::TrkVKalVrtFitter> m_fitSvc { this, "VertexFitter", "", "VKalVrtFitter tool to fit tracks into the common vertex" };
202  ToolHandle<InDet::VertexPointEstimator> m_vertexPointEstimator { this, "VertexPointEstimator", "", "tool to find starting point for the vertex fitter"};
203  //
204  ToolHandle<GenericMonitoringTool> m_monTool{ this, "MonTool", "", "Monitoring tool" };
205 
206  //================================================================
207  //
208  // Util member functions
209  //
210  StatusCode fillVtxContainer( xAODContainers&, const WrkVrtContainer&, std::vector<const xAOD::TrackParticle*>&) const;
211 
212 
213  //================================================================
214  //
215  // Vertex finding algorithm member functions
216  //
217  size_t nTrkCommon( WrkVrtContainer&, const std::pair<unsigned, unsigned>& ) const;
219  StatusCode trackSelection ( const xAOD::TrackParticleContainer*, const xAOD::TrackParticleContainer*, std::vector<const xAOD::TrackParticle*>& ) const;
220  StatusCode findDiTrackVertex ( WrkVrtContainer&, std::vector<std::pair<size_t,size_t>>&, std::vector<const xAOD::TrackParticle*>&, const EventContext&, const xAOD::Vertex*) const;
221  StatusCode findDiTrackVertexVSI ( WrkVrtContainer&, std::vector<std::pair<size_t,size_t>>&, std::vector<const xAOD::TrackParticle*>&, const EventContext&, const xAOD::Vertex*) const;
222  StatusCode findNtrackVerticesVSI( WrkVrtContainer&, std::vector<std::pair<size_t,size_t>>&, std::vector<const xAOD::TrackParticle*>&, const EventContext& ) const;
223 
224  template<typename VrtType, typename Coord>
225  StatusCode findNTrackVertex ( WrkVrtContainer&, TrigVSI::VtxMap<VrtType,Coord>&, const std::vector<const xAOD::TrackParticle*>&, const EventContext& ) const;
226 
227  StatusCode fitVertexFromTracks ( WrkVrt&, const std::vector<const xAOD::TrackParticle*>&, const EventContext& ) const;
228  StatusCode mergeVertexFromDiTrkVrt ( WrkVrtContainer&, const std::vector<std::pair<size_t,size_t>>&, const std::vector<size_t>&, const std::vector<const xAOD::TrackParticle*>&, const EventContext& ) const;
229 };
230 
231 } // end of namespace TrigVSI
232 
233 #endif //> TRIGTOOLS_TRIGVRTSECINCLUSIVE_H
TrigVSI::TrigVrtSecInclusive::WrkVrt::selectedTrackIndices
virtual const std::deque< size_t > & selectedTrackIndices() const override
Return indices of tracks associated with the vertex.
Definition: TrigVrtSecInclusive.h:154
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::isPassMMV
bool isPassMMV
Definition: TrigVrtSecInclusive.h:135
TrigVSI::TrigVrtSecInclusive::m_doMaterialMapVeto
Gaudi::Property< bool > m_doMaterialMapVeto
Definition: TrigVrtSecInclusive.h:87
TrigVSI::TrigVrtSecInclusive::findDiTrackVertex
StatusCode findDiTrackVertex(WrkVrtContainer &, std::vector< std::pair< size_t, size_t >> &, std::vector< const xAOD::TrackParticle * > &, const EventContext &, const xAOD::Vertex *) const
Definition: TrigVrtSecInclusive.cxx:379
TrigVSI::TrigVrtSecInclusive::WrkVrt::x
virtual double x() const override
Definition: TrigVrtSecInclusive.h:158
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::twoCirc_dr
double twoCirc_dr
Definition: TrigVrtSecInclusive.h:121
TrigVSI::TrigVrtSecInclusive::fillVtxContainer
StatusCode fillVtxContainer(xAODContainers &, const WrkVrtContainer &, std::vector< const xAOD::TrackParticle * > &) const
Definition: TrigVrtSecInclusive.cxx:288
TrigVSI::TrigVrtSecInclusive::TrigVrtSecInclusive
TrigVrtSecInclusive(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrigVrtSecInclusive.cxx:29
TrigVSI::TrigVrtSecInclusive::findDiTrackVertexVSI
StatusCode findDiTrackVertexVSI(WrkVrtContainer &, std::vector< std::pair< size_t, size_t >> &, std::vector< const xAOD::TrackParticle * > &, const EventContext &, const xAOD::Vertex *) const
Definition: TrigVrtSecInclusive.cxx:659
TH3S
Definition: rootspy.cxx:475
TrigVSI::TrigVrtSecInclusive::m_materialMapInner
TH3S * m_materialMapInner
Definition: TrigVrtSecInclusive.h:177
TrigVSI::TrigVrtSecInclusive::WrkVrt::selectedTrackIndices
virtual std::deque< size_t > & selectedTrackIndices() override
Return indices of tracks associated with the vertex.
Definition: TrigVrtSecInclusive.h:153
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::twoCirc_dphi
double twoCirc_dphi
Definition: TrigVrtSecInclusive.h:120
TrigVSI::TrigVrtSecInclusive::m_materialMapOuterFileName
std::string m_materialMapOuterFileName
Definition: TrigVrtSecInclusive.h:183
TrigVSI::TrigVrtSecInclusive::WrkVrt::m_associatedTrackIndices
std::deque< size_t > m_associatedTrackIndices
list if indices in TrackParticleContainer for selectedBaseTracks
Definition: TrigVrtSecInclusive.h:165
TrigVSI::TrigVrtSecInclusive::WrkVrt::vertex
Amg::Vector3D vertex
flaged true for track pair vertex
Definition: TrigVrtSecInclusive.h:103
TrigVSI::TrigVrtSecInclusive::k_qOverP
@ k_qOverP
Definition: TrigVrtSecInclusive.h:169
VertexPointEstimator.h
TrigVSI::TrigVrtSecInclusive::fitVertexFromTracks
StatusCode fitVertexFromTracks(WrkVrt &, const std::vector< const xAOD::TrackParticle * > &, const EventContext &) const
Reconstruct vertex from given tracks.
Definition: TrigVrtSecInclusive.cxx:1351
TrigVSI::TrigVrtSecInclusive::m_maxWrkVertices
Gaudi::Property< size_t > m_maxWrkVertices
Definition: TrigVrtSecInclusive.h:96
TrigVSI::TrigVrtSecInclusive::m_minTrksMerge
Gaudi::Property< size_t > m_minTrksMerge
Definition: TrigVrtSecInclusive.h:93
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts::fastRcut
bool fastRcut
Definition: TrigVrtSecInclusive.h:143
TrigVSI::TrigVrtSecInclusive::m_materialMapInnerFileName
std::string m_materialMapInnerFileName
Definition: TrigVrtSecInclusive.h:180
TrigVSI::TrigVrtSecInclusive::k_phi
@ k_phi
Definition: TrigVrtSecInclusive.h:169
TrigVSI::TrigVrtSecInclusive::findNTrackVertex
StatusCode findNTrackVertex(WrkVrtContainer &, TrigVSI::VtxMap< VrtType, Coord > &, const std::vector< const xAOD::TrackParticle * > &, const EventContext &) const
Definition: TrigVrtSecInclusive.cxx:1151
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts::twoCircErrcut
bool twoCircErrcut
Definition: TrigVrtSecInclusive.h:140
TrigVSI::TrigVrtSecInclusive::WrkVrt::cuts
AlgCuts cuts
Definition: TrigVrtSecInclusive.h:151
TrigVSI::TrigVrtSecInclusive::m_trkPtCut
Gaudi::Property< double > m_trkPtCut
Definition: TrigVrtSecInclusive.h:62
TrigVSI::TrigVrtSecInclusive::mergeVertexFromDiTrkVrt
StatusCode mergeVertexFromDiTrkVrt(WrkVrtContainer &, const std::vector< std::pair< size_t, size_t >> &, const std::vector< size_t > &, const std::vector< const xAOD::TrackParticle * > &, const EventContext &) const
Reconstruct multi-track vertices from incompatible track pair lists.
Definition: TrigVrtSecInclusive.cxx:1244
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts::isFullPass
bool isFullPass() const
Definition: TrigVrtSecInclusive.h:147
TrigVSI::TrigVrtSecInclusive::k_theta
@ k_theta
Definition: TrigVrtSecInclusive.h:169
TrigVSI::TrigVrtSecInclusive::WrkVrt::ndof
double ndof() const
stores the value of some observable to the closest WrkVrt ( observable = e.g. significance )
Definition: TrigVrtSecInclusive.h:114
TrigVSI::TrigVrtSecInclusive::m_doTwoCircRCut
Gaudi::Property< bool > m_doTwoCircRCut
Definition: TrigVrtSecInclusive.h:73
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts::twoCircRcut
bool twoCircRcut
Definition: TrigVrtSecInclusive.h:141
TrigVSI::TrigVrtSecInclusive::m_minTrkPairsMerge
Gaudi::Property< size_t > m_minTrkPairsMerge
Definition: TrigVrtSecInclusive.h:92
TrigVSI::TrigVrtSecInclusive::m_z0TrkPVDstMaxCut
Gaudi::Property< double > m_z0TrkPVDstMaxCut
Definition: TrigVrtSecInclusive.h:67
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::dphi2
double dphi2
Definition: TrigVrtSecInclusive.h:127
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::vPos
double vPos
Definition: TrigVrtSecInclusive.h:124
TrigVSI::TrigVrtSecInclusive::WrkVrt::closestWrkVrtValue
double closestWrkVrtValue
stores the index of the closest WrkVrt in std::vector<WrkVrt>
Definition: TrigVrtSecInclusive.h:112
TrigVSI::TrigVrtSecInclusive::m_doPVCompatibilityCut
Gaudi::Property< bool > m_doPVCompatibilityCut
Definition: TrigVrtSecInclusive.h:83
TrigVSI::TrigVrtSecInclusive::WrkVrt::param
AlgParam param
Definition: TrigVrtSecInclusive.h:150
TrigVSI::TrigVrtSecInclusive::selectTrack_pTCut
bool selectTrack_pTCut(const xAOD::TrackParticle *trk) const
Definition: TrigVrtSecInclusive.cxx:1504
SG::ReadHandleKey< xAOD::TrackParticleContainer >
TrigVSI::TrigVrtSecInclusive::m_doFastRCut
Gaudi::Property< bool > m_doFastRCut
Definition: TrigVrtSecInclusive.h:74
TrigVSI::TrigVrtSecInclusive::xAODContainers
std::pair< std::unique_ptr< xAOD::VertexContainer >, std::unique_ptr< xAOD::VertexAuxContainer > > xAODContainers
Definition: TrigVrtSecInclusive.h:48
TrigVSI::TrigVrtSecInclusive::m_fastZ0deltaCut
Gaudi::Property< double > m_fastZ0deltaCut
Definition: TrigVrtSecInclusive.h:79
TrigVSI::TrigVrtSecInclusive::WrkVrt::charge
long int charge
list of VKalVrt fit chi2 for each track
Definition: TrigVrtSecInclusive.h:109
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::vrtFast_trkz0
std::vector< float > vrtFast_trkz0
Definition: TrigVrtSecInclusive.h:133
TrigVSI::TrigVrtSecInclusive::trackSelection
StatusCode trackSelection(const xAOD::TrackParticleContainer *, const xAOD::TrackParticleContainer *, std::vector< const xAOD::TrackParticle * > &) const
Definition: TrigVrtSecInclusive.cxx:266
TrkVKalVrtFitter.h
TrigVSI::TrigVrtSecInclusive::m_fitSvc
ToolHandle< Trk::TrkVKalVrtFitter > m_fitSvc
Definition: TrigVrtSecInclusive.h:201
TrigVSI::TrigVrtSecInclusive::m_vertexPointEstimator
ToolHandle< InDet::VertexPointEstimator > m_vertexPointEstimator
Definition: TrigVrtSecInclusive.h:202
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
TrigVSI::TrigVrtSecInclusive::m_firstPassTracksName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_firstPassTracksName
Definition: TrigVrtSecInclusive.h:195
TrigVSI::TrigVrtSecInclusive::m_trkPairOutputName
SG::WriteHandleKey< xAOD::VertexContainer > m_trkPairOutputName
Definition: TrigVrtSecInclusive.h:198
TrigVSI::TrigVrtSecInclusive
Definition: TrigVrtSecInclusive.h:37
TrigVSI::TrigVrtSecInclusive::selectTrack_z0Cut
bool selectTrack_z0Cut(const xAOD::TrackParticle *trk) const
Definition: TrigVrtSecInclusive.cxx:1503
TrigVSI::TrigVrtSecInclusive::m_vtxAlgorithm
Gaudi::Property< int > m_vtxAlgorithm
Definition: TrigVrtSecInclusive.h:51
TrigVSI::TrigVrtSecInclusive::k_d0
@ k_d0
Definition: TrigVrtSecInclusive.h:169
GenericMonitoringTool.h
TrigVSI::TrigVrtSecInclusive::m_trkChi2Cut
Gaudi::Property< double > m_trkChi2Cut
Definition: TrigVrtSecInclusive.h:61
TrigVSI::TrigVrtSecInclusive::findNtrackVerticesVSI
StatusCode findNtrackVerticesVSI(WrkVrtContainer &, std::vector< std::pair< size_t, size_t >> &, std::vector< const xAOD::TrackParticle * > &, const EventContext &) const
Definition: TrigVrtSecInclusive.cxx:910
TrigVSI::TrigVrtSecInclusive::selectTrack_d0Cut
bool selectTrack_d0Cut(const xAOD::TrackParticle *trk) const
Definition: TrigVrtSecInclusive.cxx:1502
TrigVSI::TrigVrtSecInclusive::WrkVrt::chi2PerTrk
std::vector< double > chi2PerTrk
VKalVrt fit chi2 result.
Definition: TrigVrtSecInclusive.h:108
TrigVSI::TrigVrtSecInclusive::m_z0TrkPVDstMinCut
Gaudi::Property< double > m_z0TrkPVDstMinCut
Definition: TrigVrtSecInclusive.h:66
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
TrigVSI::TrigVrtSecInclusive::m_materialMapMatrix
TMatrixT< double > * m_materialMapMatrix
Definition: TrigVrtSecInclusive.h:179
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::vrtFast_r
double vrtFast_r
Definition: TrigVrtSecInclusive.h:129
TrigVSI::TrigVrtSecInclusive::k_z0z0
@ k_z0z0
Definition: TrigVrtSecInclusive.h:170
TrigVSI::TrigVrtSecInclusive::m_truncateWrkVertices
Gaudi::Property< bool > m_truncateWrkVertices
Definition: TrigVrtSecInclusive.h:95
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::dphi1
double dphi1
Definition: TrigVrtSecInclusive.h:126
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigVSI::TrigVrtSecInclusive::cleanUp
StatusCode cleanUp(WrkVrtContainer &) const
Definition: TrigVrtSecInclusive.cxx:1561
TrigVSI::TrigVrtSecInclusive::WrkVrt::trkAtVrt
std::vector< std::vector< double > > trkAtVrt
total charge of the vertex
Definition: TrigVrtSecInclusive.h:110
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam
Definition: TrigVrtSecInclusive.h:119
TrigVSI::TrigVrtSecInclusive::m_skipLargeCluster
Gaudi::Property< bool > m_skipLargeCluster
Definition: TrigVrtSecInclusive.h:89
TrigVSI::TrigVrtSecInclusive::finalize
virtual StatusCode finalize() override
Definition: TrigVrtSecInclusive.cxx:1585
TrigVSI::TrigVrtSecInclusive::m_cutSharedHits
Gaudi::Property< int > m_cutSharedHits
Definition: TrigVrtSecInclusive.h:57
TrigVSI::TrigVrtSecInclusive::~TrigVrtSecInclusive
virtual ~TrigVrtSecInclusive()
Definition: TrigVrtSecInclusive.cxx:1590
TrigVSI::TrigVrtSecInclusive::m_improveChi2ProbThreshold
Gaudi::Property< double > m_improveChi2ProbThreshold
Definition: TrigVrtSecInclusive.h:97
TrigVSI::TrigVrtSecInclusive::WrkVrt::z
virtual double z() const override
Definition: TrigVrtSecInclusive.h:160
TrigVSI::TrigVrtSecInclusive::m_recordTrkPair
Gaudi::Property< bool > m_recordTrkPair
Definition: TrigVrtSecInclusive.h:53
TrigVSI::TrigVrtSecInclusive::WrkVrt::chi2Core
double chi2Core
VKalVrt fit chi2 result.
Definition: TrigVrtSecInclusive.h:107
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::vrtFast_eta
double vrtFast_eta
Definition: TrigVrtSecInclusive.h:130
TrigVSI::TrigVrtSecInclusive::initialize
virtual StatusCode initialize() override
Definition: TrigVrtSecInclusive.cxx:38
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::twoCirc_int_r
double twoCirc_int_r
Definition: TrigVrtSecInclusive.h:122
TrigVSI::TrigVrtSecInclusive::WrkVrt::vertexCov
std::vector< double > vertexCov
VKalVrt fit vertex 4-momentum.
Definition: TrigVrtSecInclusive.h:105
TrigVSI::TrigVrtSecInclusive::m_materialMapOuterHistName
std::string m_materialMapOuterHistName
Definition: TrigVrtSecInclusive.h:184
TrigVSI::TrigVrtSecInclusive::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: TrigVrtSecInclusive.cxx:90
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts::chi2cut
bool chi2cut
Definition: TrigVrtSecInclusive.h:145
TrigVSI::TrigVrtSecInclusive::selectTrack
bool selectTrack(const xAOD::TrackParticle *trk) const
Definition: TrigVrtSecInclusive.cxx:1491
DataVector< xAOD::TrackParticle_v1 >
TrigVSI::TrigVrtSecInclusive::WrkVrt
Definition: TrigVrtSecInclusive.h:100
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::vrtFast_trkd0
std::vector< float > vrtFast_trkd0
Definition: TrigVrtSecInclusive.h:132
TrigVSI::TrigVrtSecInclusive::k_nTPU
@ k_nTPU
Definition: TrigVrtSecInclusive.h:170
TrigVSI::TrigVrtSecInclusive::selectTrack_hitPattern
bool selectTrack_hitPattern(const xAOD::TrackParticle *trk) const
Definition: TrigVrtSecInclusive.cxx:1508
TrigVSI::TrigVrtSecInclusive::m_vxCandidatesOutputName
SG::WriteHandleKey< xAOD::VertexContainer > m_vxCandidatesOutputName
Definition: TrigVrtSecInclusive.h:197
AthReentrantAlgorithm.h
VtxMap.h
point classes for clustering
TrigVSI::TrigVrtSecInclusive::m_d0TrkPVDstMaxCut
Gaudi::Property< double > m_d0TrkPVDstMaxCut
Definition: TrigVrtSecInclusive.h:65
TrigVSI::TrigVrtSecInclusive::WrkVrt::chi2
double chi2
VKalVrt fit covariance.
Definition: TrigVrtSecInclusive.h:106
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TrigVSI::TrigVrtSecInclusive::m_materialMapInnerMatrixName
std::string m_materialMapInnerMatrixName
Definition: TrigVrtSecInclusive.h:182
TrigVSI::VtxMap
The vertex map class to be used to find multi-track vertices.
Definition: VtxMap.h:40
TrigVSI::TrigVrtSecInclusive::m_cutSctHits
Gaudi::Property< int > m_cutSctHits
Definition: TrigVrtSecInclusive.h:56
TrigVSI::TrigVrtSecInclusive::WrkVrt::nTracksTotal
unsigned nTracksTotal() const
Definition: TrigVrtSecInclusive.h:116
TrigVSI::TrigVrtSecInclusive::TrkParameter
TrkParameter
Definition: TrigVrtSecInclusive.h:169
TrigVSI::TrigVrtSecInclusive::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrigVrtSecInclusive.h:204
TrigVSI::TrigVrtSecInclusive::m_materialMapInnerHistName
std::string m_materialMapInnerHistName
Definition: TrigVrtSecInclusive.h:181
TrigVSI::TrigVrtSecInclusive::WrkVrt::ndofCore
double ndofCore() const
Definition: TrigVrtSecInclusive.h:115
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TrigVSI::TrigVrtSecInclusive::m_cutPixelHits
Gaudi::Property< int > m_cutPixelHits
Definition: TrigVrtSecInclusive.h:55
TrigVSI::TrigVrtSecInclusive::m_dphiPVCut
Gaudi::Property< double > m_dphiPVCut
Definition: TrigVrtSecInclusive.h:84
TrigVSI::TrigVrtSecInclusive::m_fastD0deltaCut
Gaudi::Property< double > m_fastD0deltaCut
Definition: TrigVrtSecInclusive.h:77
TrigVSI::TrigVrtSecInclusive::m_fastD0minCut
Gaudi::Property< double > m_fastD0minCut
Definition: TrigVrtSecInclusive.h:76
VertexContainer.h
TrigVSI::TrigVrtSecInclusive::m_maxTrks
Gaudi::Property< size_t > m_maxTrks
Definition: TrigVrtSecInclusive.h:90
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrigVSI::TrigVrtSecInclusive::WrkVrtContainer
std::vector< WrkVrt > WrkVrtContainer
Definition: TrigVrtSecInclusive.h:174
TrigVSI::TrigVrtSecInclusive::selectTrack_chi2Cut
bool selectTrack_chi2Cut(const xAOD::TrackParticle *trk) const
Definition: TrigVrtSecInclusive.cxx:1505
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::vrtFast_phi
double vrtFast_phi
Definition: TrigVrtSecInclusive.h:131
IWrkVrt.h
TrigVSI::TrigVrtSecInclusive::k_z0
@ k_z0
Definition: TrigVrtSecInclusive.h:169
TrigVSI::TrigVrtSecInclusive::WrkVrt::fitQuality
double fitQuality() const
Definition: TrigVrtSecInclusive.h:117
TrigVSI::TrigVrtSecInclusive::m_cutBLayHits
Gaudi::Property< int > m_cutBLayHits
Definition: TrigVrtSecInclusive.h:59
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts::fastErrcut
bool fastErrcut
Definition: TrigVrtSecInclusive.h:142
TrigVSI::TrigVrtSecInclusive::m_selVrtChi2Cut
Gaudi::Property< double > m_selVrtChi2Cut
Definition: TrigVrtSecInclusive.h:81
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
TrigVSI::TrigVrtSecInclusive::nTrkCommon
size_t nTrkCommon(WrkVrtContainer &, const std::pair< unsigned, unsigned > &) const
Definition: TrigVrtSecInclusive.cxx:1538
TrigVSI::TrigVrtSecInclusive::k_nTP
@ k_nTP
Definition: TrigVrtSecInclusive.h:169
TrigVSI::TrigVrtSecInclusive::TrkParameterUnc
TrkParameterUnc
Definition: TrigVrtSecInclusive.h:170
TrigVSI::TrigVrtSecInclusive::m_PrimaryVxInputName
SG::ReadHandleKey< xAOD::VertexContainer > m_PrimaryVxInputName
Definition: TrigVrtSecInclusive.h:199
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgParam::vPosMomAngT
double vPosMomAngT
Definition: TrigVrtSecInclusive.h:125
TrigVSI::TrigVrtSecInclusive::WrkVrt::isPair
bool isPair
flaged true for good vertex candidates
Definition: TrigVrtSecInclusive.h:102
TrigVSI::TrigVrtSecInclusive::m_twoTrkVtxFormingD0Cut
Gaudi::Property< double > m_twoTrkVtxFormingD0Cut
Definition: TrigVrtSecInclusive.h:68
TrigVSI::TrigVrtSecInclusive::m_materialMapOuter
TH3S * m_materialMapOuter
Definition: TrigVrtSecInclusive.h:178
TrigVSI::TrigVrtSecInclusive::WrkVrt::vertexMom
TLorentzVector vertexMom
VKalVrt fit vertex position.
Definition: TrigVrtSecInclusive.h:104
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts::fitErrcut
bool fitErrcut
Definition: TrigVrtSecInclusive.h:144
TrigVSI::TrigVrtSecInclusive::m_fastZ0minCut
Gaudi::Property< double > m_fastZ0minCut
Definition: TrigVrtSecInclusive.h:78
TrigVSI::IWrkVrt
Interface for vertex classes processed in VtxMap.
Definition: IWrkVrt.h:30
TrigVSI::TrigVrtSecInclusive::m_pvCompatibilityCut
Gaudi::Property< double > m_pvCompatibilityCut
Definition: TrigVrtSecInclusive.h:85
TrigVSI::TrigVrtSecInclusive::WrkVrt::m_selectedTrackIndices
std::deque< size_t > m_selectedTrackIndices
Definition: TrigVrtSecInclusive.h:164
TrigVSI::TrigVrtSecInclusive::WrkVrt::isGood
bool isGood
Definition: TrigVrtSecInclusive.h:101
TrackParticleContainer.h
TrigVSI::TrigVrtSecInclusive::m_cutSiHits
Gaudi::Property< int > m_cutSiHits
Definition: TrigVrtSecInclusive.h:58
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts::trkd0cut
bool trkd0cut
Definition: TrigVrtSecInclusive.h:139
TrigVSI
Definition: TrigVrtSecInclusive.cxx:27
TrigVSI::TrigVrtSecInclusive::m_d0TrkPVDstMinCut
Gaudi::Property< double > m_d0TrkPVDstMinCut
Definition: TrigVrtSecInclusive.h:64
TrigVSI::TrigVrtSecInclusive::m_secondPassTracksName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_secondPassTracksName
Definition: TrigVrtSecInclusive.h:196
TrigVSI::TrigVrtSecInclusive::k_d0d0
@ k_d0d0
Definition: TrigVrtSecInclusive.h:170
TrigVSI::TrigVrtSecInclusive::WrkVrt::AlgCuts
Definition: TrigVrtSecInclusive.h:138
VertexAuxContainer.h
TrigVSI::TrigVrtSecInclusive::WrkVrt::y
virtual double y() const override
Definition: TrigVrtSecInclusive.h:159
TrigVSI::TrigVrtSecInclusive::WrkVrt::closestWrkVrtIndex
unsigned long closestWrkVrtIndex
list of track parameters wrt the reconstructed vertex
Definition: TrigVrtSecInclusive.h:111
TrigVSI::TrigVrtSecInclusive::m_maxR
Gaudi::Property< double > m_maxR
Definition: TrigVrtSecInclusive.h:71