ATLAS Offline Software
JetFitterMultiStageFit.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /*
6  * This tooltakes the tracks divided into those for a first fit, and additional tracks for a second
7  * It initializes a jet candidate, which consists of vertices with tracks fitted to them
8  * It runs the full JetFitter fitting algorithm, that is the merge cluster and kalman fit
9  * It returns the JetFitter output info
10  */
11 
13 #include "GaudiKernel/ToolHandle.h"
15 #include "TLorentzVector.h"
16 
21 
22 namespace Trk {
23  class VxJetCandidate;
24  class RecVertex;
25 }
26 
27 namespace InDet {
28 
29 
30 static const InterfaceID IID_JetFitterMultiStageFit("JetFitterMultiStageFit", 1, 0);
31 
33 public:
34 
35  static const InterfaceID &interfaceID() {
36  return IID_JetFitterMultiStageFit;
37  }
38 
39  virtual StatusCode initialize() override;
40 
41  JetFitterMultiStageFit(const std::string &t, const std::string &n, const IInterface *p);
42 
44 
45  /*
46  * Method for performing the two stage fit
47  */
48  Trk::VxJetCandidate* doTwoStageFit( const Trk::RecVertex & primaryVertex,
49  const TLorentzVector & jetMomentum,
50  const std::vector<const Trk::ITrackLink*> & firstInputTracks,
51  const std::vector<const Trk::ITrackLink*> & secondInputTracks,
52  const Amg::Vector3D & vtxSeedDirection) const;
53 
54 
55 private:
56  /*
57  * Method which runs the merge procedure, at each cycle using the kalman filter
58  */
59  void doTheFit(Trk::VxJetCandidate* myJetCandidate,
60  bool performClustering=true) const;
61 
62  int getIndexByMass(const double mass) const;
63 
64  ToolHandle< Trk::JetFitterInitializationHelper > m_initializationHelper {this,"JetFitterInitializationHelper","Trk::JetFitterInitializationHelper",""};
65  ToolHandle< Trk::JetFitterHelper > m_helper {this,"JetFitterHelper","Trk::JetFitterHelper",""};
66  ToolHandle< Trk::JetFitterRoutines > m_routines {this,"JetFitterRoutines","Trk::JetFitterRoutines",""};
67  ToolHandle< InDet::InDetJetFitterUtils > m_jetFitterUtils {this,"InDetJetFitterUtils","InDet::InDetJetFitterUtils/InDetJetFitterUtils",""};
68 
69  Gaudi::Property< int > m_maxNumDeleteIterations {this,"MaxNumDeleteIterations",30,""};
70  Gaudi::Property< double > m_vertexProbCut {this,"VertexProbCut",0.001,""};
71  Gaudi::Property< int > m_maxClusteringIterations {this,"MaxClusteringIterations",30,""};
72 
73  Gaudi::Property< bool > m_useFastClustering {this,"UseFastClustering",false,""};
74 
75  // to avoid combinatoric slow down, limit on max tracks for detailed clustering
76  Gaudi::Property< int > m_maxTracksForDetailedClustering {this,"maxTracksForDetailedClustering",25,""};
77 
78  Gaudi::Property< double > m_vertexClusteringProbabilityCut {this,"VertexClusteringProbabilityCut",0.005,""};
79 
81  {this, "VertexClusteringProbabilityCutWithMasses",
82  {0.002, 0.002, 0.050, 0.100, 0.200, 0.500, 0.700, 0.900, 0.900}, ""};
83  const std::vector<double> m_massBins = {1000., 1500., 2000., 2500.,
84  3000., 4000., 5000., 6000.};
85 
86 };
87 
88 }
InDet::JetFitterMultiStageFit::m_massBins
const std::vector< double > m_massBins
Definition: JetFitterMultiStageFit.h:83
InDet::JetFitterMultiStageFit
Definition: JetFitterMultiStageFit.h:32
JetFitterRoutines.h
InDet::JetFitterMultiStageFit::interfaceID
static const InterfaceID & interfaceID()
Definition: JetFitterMultiStageFit.h:35
InDet::JetFitterMultiStageFit::m_maxTracksForDetailedClustering
Gaudi::Property< int > m_maxTracksForDetailedClustering
Definition: JetFitterMultiStageFit.h:76
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::JetFitterMultiStageFit::m_initializationHelper
ToolHandle< Trk::JetFitterInitializationHelper > m_initializationHelper
Definition: JetFitterMultiStageFit.h:64
InDetJetFitterUtils.h
InDet::JetFitterMultiStageFit::getIndexByMass
int getIndexByMass(const double mass) const
Definition: JetFitterMultiStageFit.cxx:302
InDet::JetFitterMultiStageFit::m_vertexClusteringProbabilityCut
Gaudi::Property< double > m_vertexClusteringProbabilityCut
Definition: JetFitterMultiStageFit.h:78
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::JetFitterMultiStageFit::m_maxClusteringIterations
Gaudi::Property< int > m_maxClusteringIterations
Definition: JetFitterMultiStageFit.h:71
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
Trk::RecVertex
Trk::RecVertex inherits from Trk::Vertex.
Definition: RecVertex.h:44
JetFitterHelper.h
InDet::JetFitterMultiStageFit::JetFitterMultiStageFit
JetFitterMultiStageFit(const std::string &t, const std::string &n, const IInterface *p)
Definition: JetFitterMultiStageFit.cxx:21
JetFitterInitializationHelper.h
InDet::JetFitterMultiStageFit::doTwoStageFit
Trk::VxJetCandidate * doTwoStageFit(const Trk::RecVertex &primaryVertex, const TLorentzVector &jetMomentum, const std::vector< const Trk::ITrackLink * > &firstInputTracks, const std::vector< const Trk::ITrackLink * > &secondInputTracks, const Amg::Vector3D &vtxSeedDirection) const
Definition: JetFitterMultiStageFit.cxx: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
InDet::JetFitterMultiStageFit::m_helper
ToolHandle< Trk::JetFitterHelper > m_helper
Definition: JetFitterMultiStageFit.h:65
AthAlgTool.h
InDet::JetFitterMultiStageFit::m_vertexClusteringProbabilityCutWithMasses
DoubleArrayProperty m_vertexClusteringProbabilityCutWithMasses
Definition: JetFitterMultiStageFit.h:81
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDet::JetFitterMultiStageFit::m_useFastClustering
Gaudi::Property< bool > m_useFastClustering
Definition: JetFitterMultiStageFit.h:73
Trk::VxJetCandidate
Definition: VxJetCandidate.h:72
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::JetFitterMultiStageFit::m_vertexProbCut
Gaudi::Property< double > m_vertexProbCut
Definition: JetFitterMultiStageFit.h:70
InDet::JetFitterMultiStageFit::m_routines
ToolHandle< Trk::JetFitterRoutines > m_routines
Definition: JetFitterMultiStageFit.h:66
InDet::JetFitterMultiStageFit::m_jetFitterUtils
ToolHandle< InDet::InDetJetFitterUtils > m_jetFitterUtils
Definition: JetFitterMultiStageFit.h:67
InDet::JetFitterMultiStageFit::~JetFitterMultiStageFit
~JetFitterMultiStageFit()
InDet::JetFitterMultiStageFit::doTheFit
void doTheFit(Trk::VxJetCandidate *myJetCandidate, bool performClustering=true) const
Definition: JetFitterMultiStageFit.cxx:142
AthAlgTool
Definition: AthAlgTool.h:26
InDet::JetFitterMultiStageFit::initialize
virtual StatusCode initialize() override
Definition: JetFitterMultiStageFit.cxx:31
InDet::JetFitterMultiStageFit::m_maxNumDeleteIterations
Gaudi::Property< int > m_maxNumDeleteIterations
Definition: JetFitterMultiStageFit.h:69