ATLAS Offline Software
Cascade3Plus1.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef DERIVATIONFRAMEWORKBPHYS_CASCADE3PLUS1_H
5 #define DERIVATIONFRAMEWORKBPHYS_CASCADE3PLUS1_H
6 //*********************
7 // Cascade3Plus1 header file
8 //
9 // Adam Barton <abarton@cern.ch>
11 #include "GaudiKernel/ToolHandle.h"
12 #include <vector>
18 
19 namespace Trk {
20  class IVertexFitter;
21  class TrkVKalVrtFitter;
22  class VxTrackAtVertex;
23  class ITrackSelectorTool;
24  class VxCascadeInfo;
25  class V0Tools;
26 }
27 
28 
29 namespace DerivationFramework {
30  class CascadeTools;
31 }
32 
33 namespace DerivationFramework {
34  static const InterfaceID IID_Cascade3Plus1("Cascade3Plus1", 1, 0);
35 class Cascade3Plus1 : virtual public AthAlgTool, public IAugmentationTool
36 {
37 
38 public:
39  static const InterfaceID& interfaceID() { return IID_Cascade3Plus1;}
40  Cascade3Plus1(const std::string& t, const std::string& n, const IInterface* p);
41  virtual ~Cascade3Plus1();
42  virtual StatusCode initialize() override;
43  virtual StatusCode addBranches() const override;
44 
45 private:
46  static constexpr int s_topoN = 2;
47 
48  ToolHandle < Trk::ITrackSelectorTool > m_trkSelector;
49  ToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter;
50  ToolHandle < Trk::V0Tools > m_V0Tools;
51  ToolHandle < DerivationFramework::CascadeTools > m_CascadeTools;
52  ToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter;
53  ToolHandle < InDet::VertexPointEstimator > m_vertexEstimator;
54  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo_key{this, "EventInfo", "EventInfo", "Input event information"};
55 
56  std::unique_ptr<Trk::VxCascadeInfo> CascadeFit(std::array<const xAOD::TrackParticle*, 4> &Track)const;
57 
58  std::vector<double> m_trackMasses;
59  std::vector<std::string> m_cascadeOutputsKeys;
60  double m_2trackmassMin = 979.45;
61  double m_2trackmassMax = 1059.45;
62  double m_3trackmassMin = 1800.47;
63  double m_3trackmassMax = 2168.47;
64  double m_4trackmassMin = 5200.0;
65  double m_4trackmassMax = 5450.0;
66  double m_3tracksMass = 1968.47;
67  double m_4tracksMass = 5366.79;
68  double m_2tracksMass = 0;
69 
72  std::string m_hypoName;
73  std::string m_3TrackName;
74  int m_PV_max;
78  std::string m_refPVContainerName;
79  double m_Chi2NDFCut=0.;
81  double m_tauCut = -999999;
82  bool m_refitPV;
83  bool m_3TrackMassConstraint = false;
84  bool m_2TrackMassConstraint = false;
86  bool m_copyAllVertices = false;
87  std::bitset<4> m_muonTrackBit{0};
88  std::vector<int> m_requireMuonsOnTrack;
89  std::string m_3TrackVertexOutput;
90  std::unique_ptr<xAOD::Vertex> StandardFit(const std::vector<const xAOD::TrackParticle*> &inputTracks, const xAOD::TrackParticleContainer* importedTrackCollection) const;
91  std::vector<double> m_ptCutPerTrack;
92  std::array<double, 3> m_ptCutPerVertex;
93  const std::vector<const xAOD::TrackParticle*>& ApplyAdditionalCuts(const std::vector<const xAOD::TrackParticle*>&,
94  const std::vector<const xAOD::TrackParticle*>&,
95  std::vector<const xAOD::TrackParticle*>&, size_t) const;
96 };
97 }
98 
99 #endif
DerivationFramework::Cascade3Plus1::m_copyAllVertices
bool m_copyAllVertices
Definition: Cascade3Plus1.h:86
DerivationFramework::Cascade3Plus1::m_muonTrackBit
std::bitset< 4 > m_muonTrackBit
Definition: Cascade3Plus1.h:87
DerivationFramework::Cascade3Plus1::m_refPVContainerName
std::string m_refPVContainerName
Definition: Cascade3Plus1.h:78
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::Cascade3Plus1::m_3TrackVertexOutput
std::string m_3TrackVertexOutput
Definition: Cascade3Plus1.h:89
VertexPointEstimator.h
DerivationFramework::Cascade3Plus1::m_2TrackMassConstraint
bool m_2TrackMassConstraint
Definition: Cascade3Plus1.h:84
DerivationFramework::Cascade3Plus1::addBranches
virtual StatusCode addBranches() const override
Pass the thinning service
Definition: Cascade3Plus1.cxx:165
DerivationFramework::Cascade3Plus1::m_trackMasses
std::vector< double > m_trackMasses
Definition: Cascade3Plus1.h:58
DerivationFramework::Cascade3Plus1::m_Chi2NDFCut
double m_Chi2NDFCut
Definition: Cascade3Plus1.h:79
IAugmentationTool.h
DerivationFramework::Cascade3Plus1::m_4tracksMass
double m_4tracksMass
Definition: Cascade3Plus1.h:67
DerivationFramework::Cascade3Plus1::m_vertexEstimator
ToolHandle< InDet::VertexPointEstimator > m_vertexEstimator
Definition: Cascade3Plus1.h:53
DerivationFramework::Cascade3Plus1::m_2tracksMass
double m_2tracksMass
Definition: Cascade3Plus1.h:68
DerivationFramework::Cascade3Plus1::m_eliminateBad3Tracksfrom4Track
bool m_eliminateBad3Tracksfrom4Track
Definition: Cascade3Plus1.h:85
DerivationFramework::Cascade3Plus1::CascadeFit
std::unique_ptr< Trk::VxCascadeInfo > CascadeFit(std::array< const xAOD::TrackParticle *, 4 > &Track) const
Definition: Cascade3Plus1.cxx:478
DerivationFramework::Cascade3Plus1::m_cascadeOutputsKeys
std::vector< std::string > m_cascadeOutputsKeys
Definition: Cascade3Plus1.h:59
DerivationFramework::Cascade3Plus1::m_2trackmassMin
double m_2trackmassMin
Definition: Cascade3Plus1.h:60
DerivationFramework::Cascade3Plus1::StandardFit
std::unique_ptr< xAOD::Vertex > StandardFit(const std::vector< const xAOD::TrackParticle * > &inputTracks, const xAOD::TrackParticleContainer *importedTrackCollection) const
Definition: Cascade3Plus1.cxx:508
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PrimaryVertexRefitter.h
SG::ReadHandleKey< xAOD::EventInfo >
DerivationFramework::Cascade3Plus1
Definition: Cascade3Plus1.h:36
DerivationFramework::Cascade3Plus1::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: Cascade3Plus1.h:54
DerivationFramework::IAugmentationTool
Definition: IAugmentationTool.h:24
DerivationFramework::Cascade3Plus1::m_3trackmassMax
double m_3trackmassMax
Definition: Cascade3Plus1.h:63
DerivationFramework::Cascade3Plus1::m_hypoName
std::string m_hypoName
name of the mass hypothesis.
Definition: Cascade3Plus1.h:72
DerivationFramework::Cascade3Plus1::m_ptCutPerVertex
std::array< double, 3 > m_ptCutPerVertex
Definition: Cascade3Plus1.h:92
DerivationFramework::Cascade3Plus1::initialize
virtual StatusCode initialize() override
Definition: Cascade3Plus1.cxx:97
DerivationFramework::Cascade3Plus1::m_3TrackChi2NDFCut
float m_3TrackChi2NDFCut
Definition: Cascade3Plus1.h:80
DerivationFramework::Cascade3Plus1::m_4trackmassFinalMax
double m_4trackmassFinalMax
Definition: Cascade3Plus1.h:71
DerivationFramework::Cascade3Plus1::m_ptCutPerTrack
std::vector< double > m_ptCutPerTrack
Definition: Cascade3Plus1.h:91
python.TrigInDetConfig.inputTracks
inputTracks
Definition: TrigInDetConfig.py:168
DerivationFramework::Cascade3Plus1::m_trkSelector
ToolHandle< Trk::ITrackSelectorTool > m_trkSelector
Definition: Cascade3Plus1.h:48
beamspotman.n
n
Definition: beamspotman.py:731
DerivationFramework::Cascade3Plus1::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: Cascade3Plus1.h:52
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::Cascade3Plus1::m_tauCut
double m_tauCut
Definition: Cascade3Plus1.h:81
AthAlgTool.h
DerivationFramework::Cascade3Plus1::m_PV_minNTracks
size_t m_PV_minNTracks
Definition: Cascade3Plus1.h:76
DerivationFramework::Cascade3Plus1::m_4trackmassMin
double m_4trackmassMin
Definition: Cascade3Plus1.h:64
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::Cascade3Plus1::m_3TrackMassConstraint
bool m_3TrackMassConstraint
Definition: Cascade3Plus1.h:83
DataVector< xAOD::TrackParticle_v1 >
DerivationFramework::Cascade3Plus1::m_VxPrimaryCandidateName
std::string m_VxPrimaryCandidateName
Name of primary vertex container.
Definition: Cascade3Plus1.h:77
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
DerivationFramework::Cascade3Plus1::Cascade3Plus1
Cascade3Plus1(const std::string &t, const std::string &n, const IInterface *p)
Definition: Cascade3Plus1.cxx:45
V0Tools
EventInfo.h
TrackParticle.h
DerivationFramework::Cascade3Plus1::m_requireMuonsOnTrack
std::vector< int > m_requireMuonsOnTrack
Definition: Cascade3Plus1.h:88
DerivationFramework::Cascade3Plus1::m_V0Tools
ToolHandle< Trk::V0Tools > m_V0Tools
Definition: Cascade3Plus1.h:50
DerivationFramework::Cascade3Plus1::m_CascadeTools
ToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
Definition: Cascade3Plus1.h:51
DerivationFramework::Cascade3Plus1::interfaceID
static const InterfaceID & interfaceID()
Definition: Cascade3Plus1.h:39
DerivationFramework::Cascade3Plus1::m_iVertexFitter
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
Definition: Cascade3Plus1.h:49
DerivationFramework::Cascade3Plus1::m_3trackmassMin
double m_3trackmassMin
Definition: Cascade3Plus1.h:62
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
DerivationFramework::Cascade3Plus1::m_3tracksMass
double m_3tracksMass
Definition: Cascade3Plus1.h:66
AthAlgTool
Definition: AthAlgTool.h:26
DerivationFramework::Cascade3Plus1::~Cascade3Plus1
virtual ~Cascade3Plus1()
Definition: Cascade3Plus1.cxx:150
DerivationFramework::Cascade3Plus1::m_2trackmassMax
double m_2trackmassMax
Definition: Cascade3Plus1.h:61
DerivationFramework::Cascade3Plus1::s_topoN
static constexpr int s_topoN
Definition: Cascade3Plus1.h:46
DerivationFramework::Cascade3Plus1::ApplyAdditionalCuts
const std::vector< const xAOD::TrackParticle * > & ApplyAdditionalCuts(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TrackParticle * > &, std::vector< const xAOD::TrackParticle * > &, size_t) const
Definition: Cascade3Plus1.cxx:153
DerivationFramework::Cascade3Plus1::m_DoVertexType
int m_DoVertexType
Definition: Cascade3Plus1.h:75
DerivationFramework::Cascade3Plus1::m_PV_max
int m_PV_max
Definition: Cascade3Plus1.h:74
DerivationFramework::Cascade3Plus1::m_4trackmassFinalMin
double m_4trackmassFinalMin
Definition: Cascade3Plus1.h:70
DerivationFramework::Cascade3Plus1::m_refitPV
bool m_refitPV
Definition: Cascade3Plus1.h:82
DerivationFramework::Cascade3Plus1::m_3TrackName
std::string m_3TrackName
Definition: Cascade3Plus1.h:73
DerivationFramework::Cascade3Plus1::m_4trackmassMax
double m_4trackmassMax
Definition: Cascade3Plus1.h:65