ATLAS Offline Software
Loading...
Searching...
No Matches
Rec::TwoTrackVrtBDTSelector Class Reference

#include <TwoTrackVrtBDTSelector.h>

Inheritance diagram for Rec::TwoTrackVrtBDTSelector:
Collaboration diagram for Rec::TwoTrackVrtBDTSelector:

Public Member Functions

 TwoTrackVrtBDTSelector (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~TwoTrackVrtBDTSelector ()
StatusCode initialize ()
StatusCode finalize ()
bool isgood (const std::pair< const xAOD::TrackParticle *, const xAOD::TrackParticle * > tracks, const xAOD::Vertex &candV, std::pair< ROOT::Math::XYZTVector, ROOT::Math::XYZTVector > moms, const xAOD::Vertex &tPV) const final
bool isgood (const std::pair< const xAOD::TrackParticle *, const xAOD::TrackParticle * > tracks, const xAOD::Vertex &candV, std::pair< ROOT::Math::XYZTVector, ROOT::Math::XYZTVector > moms, const xAOD::Vertex &tPV, float &quality) const final
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Static Private Member Functions

static double vrtRadiusError (const Amg::Vector3D &secVrt, const std::vector< float > &vrtErr)
static int getIBLHit (const xAOD::TrackParticle *Part)
static int getBLHit (const xAOD::TrackParticle *Part)

Private Attributes

Gaudi::Property< float > m_vrt2TrMassLimit {this,"Vrt2TrMassLimit",4000., "Maximal allowed mass for 2-track vertices" }
Gaudi::Property< float > m_vrt2TrPtMin {this, "Vrt2TrPtMin", 1000., "Minimal allowed Pt for 2-track vertices." }
Gaudi::Property< float > m_vrt2TrPtMax {this, "Vrt2TrPtMax", 5.e5, "Maximal allowed Pt for 2-track vertices. Calibration limit" }
Gaudi::Property< float > m_sel2VrtProbCut {this, "Sel2VrtProbCut", 0.02, "Cut on probability of 2-track vertex for initial selection" }
Gaudi::Property< float > m_maxSVRadiusCut {this, "MaxSVRadiusCut", 140., "Cut on maximal radius of SV (def = Pixel detector size)" }
Gaudi::Property< float > m_cosSVPVCut {this, "cosSVPVCut", 0., "Cut on cos of angle between SV-PV and full vertex momentum" }
Gaudi::Property< bool > m_do2TrkIBLChecks {this, "do2TrkIBLChecks", true, "IBL and B-layer hit requrirements based on the position of 2-track DV." }
Gaudi::Property< bool > m_useVertexCleaning {this, "useVertexCleaning", true, "Clean vertices by requiring pixel hit presence according to vertex position" }
Gaudi::Property< float > m_firstPixelLayerR {this, "FirstPixelLayerR", 32.0,"Radius of the first Pixel layer" }
Gaudi::Property< float > m_v2tBDTCut {this, "v2tBDTCut", -0.5, "BDT cut to select 2-track vertices" }
Gaudi::Property< std::string > m_calibFileName {this, "CalibFileName", "Fake2TrVertexReject.MVA.v02.root", " MVA calibration file for 2-track fake vertices removal" }
std::unique_ptr< MVAUtils::BDTm_SV2T_BDT
ToolHandle< Trk::TrkVKalVrtFitterm_fitSvc {this, "VertexFitterTool", "Trk::TrkVKalVrtFitter/VertexFitterTool", "Vertex Fitter tool for 2-track selector"}
double m_massPi {}
double m_massP {}
double m_massE {}
std::string m_instanceName {}
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 36 of file TwoTrackVrtBDTSelector.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TwoTrackVrtBDTSelector()

Rec::TwoTrackVrtBDTSelector::TwoTrackVrtBDTSelector ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 26 of file TwoTrackVrtBDTSelector.cxx.

28 :
29 AthAlgTool(type,name,parent),
30 m_SV2T_BDT(nullptr),
31 m_instanceName(name)
32 {
33//
34// Declare additional interface
35//
36 declareInterface< ITwoTrackVertexSelector >(this);
37//
41 }
AthAlgTool()
Default constructor:
std::unique_ptr< MVAUtils::BDT > m_SV2T_BDT
constexpr double mass[PARTICLEHYPOTHESES]
the array of masses

◆ ~TwoTrackVrtBDTSelector()

Rec::TwoTrackVrtBDTSelector::~TwoTrackVrtBDTSelector ( )
virtual

Definition at line 44 of file TwoTrackVrtBDTSelector.cxx.

44 {
45 ATH_MSG_DEBUG("TwoTrackVertBDTSelector destructor called");
46 }
#define ATH_MSG_DEBUG(x)

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode Rec::TwoTrackVrtBDTSelector::finalize ( )

Definition at line 70 of file TwoTrackVrtBDTSelector.cxx.

71 {
72 ATH_MSG_DEBUG("TwoTrackVrtBDTSelector finalize()");
73 return StatusCode::SUCCESS;
74 }

◆ getBLHit()

int Rec::TwoTrackVrtBDTSelector::getBLHit ( const xAOD::TrackParticle * Part)
staticprivate

Definition at line 183 of file TwoTrackVrtBDTSelector.cxx.

184 {
185 uint8_t BLhit,BLexp;
186 if(!Part->summaryValue( BLexp, xAOD::expectNextToInnermostPixelLayerHit) ) BLexp = 0;
187 if( BLexp==0 ) return -1;
188 if(!Part->summaryValue( BLhit, xAOD::numberOfNextToInnermostPixelLayerHits) ) BLhit = 0;
189 if(BLhit) return 1;
190 else return 0;
191 }
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?

◆ getIBLHit()

int Rec::TwoTrackVrtBDTSelector::getIBLHit ( const xAOD::TrackParticle * Part)
staticprivate

Definition at line 174 of file TwoTrackVrtBDTSelector.cxx.

175 {
176 uint8_t IBLhit,IBLexp;
177 if(!Part->summaryValue( IBLexp, xAOD::expectInnermostPixelLayerHit) ) IBLexp = 0;
178 if( IBLexp==0 ) return -1;
179 if(!Part->summaryValue( IBLhit, xAOD::numberOfInnermostPixelLayerHits) ) IBLhit = 0;
180 if(IBLhit) return 1;
181 else return 0;
182 }
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer

◆ initialize()

StatusCode Rec::TwoTrackVrtBDTSelector::initialize ( )

Definition at line 49 of file TwoTrackVrtBDTSelector.cxx.

49 {
50 ATH_MSG_DEBUG( "Initialising TwoTrackVrtBDTSelector" );
51
52 ATH_CHECK( m_fitSvc.retrieve() );
53//--------------------------------------------------------
54 //std::string fileName="NewVrtSecInclusiveTool/Fake2TrVertexReject.MVA.v01.root"; ///For local calibration file
55 //std::string rootFilePath = PathResolver::find_file(fileName, "DATAPATH"); ///
56 std::string rootFilePath = PathResolver::find_calib_file("NewVrtSecInclusiveTool/"+m_calibFileName);
57 std::unique_ptr<TFile> rootFile(TFile::Open(rootFilePath.c_str(), "READ"));
58 if (!rootFile) {
59 ATH_MSG_FATAL("Could not retrieve root file: " << m_calibFileName);
60 return StatusCode::FAILURE;
61 }
62 std::unique_ptr<TTree> training((TTree*)rootFile->Get("BDT"));
63 m_SV2T_BDT = std::make_unique<MVAUtils::BDT>(training.get());
64//--------------------------------------------------------
65 return StatusCode::SUCCESS;
66 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
static std::string find_calib_file(const std::string &logical_file_name)
ToolHandle< Trk::TrkVKalVrtFitter > m_fitSvc
Gaudi::Property< std::string > m_calibFileName

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & Rec::ITwoTrackVertexSelector::interfaceID ( )
inlinestaticinherited

Definition at line 35 of file ITwoTrackVertexSelector.h.

static const InterfaceID IID_ITwoTrackVertexSelector("ITwoTrackVertexSelector", 1, 0)

◆ isgood() [1/2]

bool Rec::TwoTrackVrtBDTSelector::isgood ( const std::pair< const xAOD::TrackParticle *, const xAOD::TrackParticle * > tracks,
const xAOD::Vertex & candV,
std::pair< ROOT::Math::XYZTVector, ROOT::Math::XYZTVector > moms,
const xAOD::Vertex & tPV ) const
finalvirtual

Implements Rec::ITwoTrackVertexSelector.

Definition at line 77 of file TwoTrackVrtBDTSelector.cxx.

81 {
82 float quality;
83 return isgood(iTrks, candV, moms,tPV,quality);
84 }
bool isgood(const std::pair< const xAOD::TrackParticle *, const xAOD::TrackParticle * > tracks, const xAOD::Vertex &candV, std::pair< ROOT::Math::XYZTVector, ROOT::Math::XYZTVector > moms, const xAOD::Vertex &tPV) const final

◆ isgood() [2/2]

bool Rec::TwoTrackVrtBDTSelector::isgood ( const std::pair< const xAOD::TrackParticle *, const xAOD::TrackParticle * > tracks,
const xAOD::Vertex & candV,
std::pair< ROOT::Math::XYZTVector, ROOT::Math::XYZTVector > moms,
const xAOD::Vertex & tPV,
float & quality ) const
finalvirtual

Implements Rec::ITwoTrackVertexSelector.

Definition at line 86 of file TwoTrackVrtBDTSelector.cxx.

91 {
92 quality=-99.;
93 double Prob2v=TMath::Prob(candV.chiSquared(),1);
94 if( Prob2v < m_sel2VrtProbCut ) return false; // Vertex probability check
95 double vrtR=candV.position().perp();
96 auto sumMom=moms.first+moms.second;
97 if( sumMom.M() > m_vrt2TrMassLimit ) return false; // Invariant mass check
98 if( vrtR > m_maxSVRadiusCut) return false; // Too far from interaction point
99 if( sumMom.Pt() < m_vrt2TrPtMin) return false; // Summary momentum > minimal allowed 2-track vertex pt
100 if( sumMom.Pt() > m_vrt2TrPtMax) return false; // Maximal allowed 2-track vertex Pt
101
102 ROOT::Math::XYZVector vSVPV(candV.x()-tPV.x(),candV.y()-tPV.y(),candV.z()-tPV.z());
103 double cosSVPV=vSVPV.Unit().Dot(sumMom.Vect().Unit());
104 if(cosSVPV < m_cosSVPVCut) return false; // Angle between tV-PV direction and summary momentum
105
106
107 double vrtRErr=vrtRadiusError(candV.position(),candV.covariance() );
108//
109// Check pixel hits vs vertex positions.
110 int ihitIBL = getIBLHit(iTrks.first);
111 int jhitIBL = getIBLHit(iTrks.second);
112 if( m_do2TrkIBLChecks && ( (ihitIBL==0&&jhitIBL>0) || (ihitIBL>0&&jhitIBL==0) ) ) return false;
113 int ihitBL = getBLHit (iTrks.first);
114 int jhitBL = getBLHit (iTrks.second);
115//--Very general cleaning cuts based on ID geometry and applicable to all processes
116 if( m_do2TrkIBLChecks && vrtR<m_firstPixelLayerR-2.*vrtRErr ){
117 if( ihitIBL<1 && ihitBL<1) return false;
118 if( jhitIBL<1 && jhitBL<1) return false;
119 }
120 float ihitR = iTrks.first->radiusOfFirstHit();
121 float jhitR = iTrks.second->radiusOfFirstHit();
122 if(std::abs(ihitR-jhitR)>50.)return false; //- FMPs are in very different layers
123 if( vrtR-std::min(ihitR,jhitR) > 50.) return false; //- FMP is closer to (0,0) than SV itself
124 if(ihitR-vrtR > 180.+2.*vrtRErr)return false; //- Distance FMP-vertex should be less then SCT-Pixel gap
125 if(jhitR-vrtR > 180.+2.*vrtRErr)return false; //- Distance FMP-vertex should be less then SCT-Pixel gap
126//-------------------------------------------------------
127 if(m_useVertexCleaning){ //More agressive cleaning
128 if(std::abs(ihitR-jhitR)>12.) return false;
129 if( ihitR-vrtR > 36.) return false; // Too big dR between vertex and hit in pixel
130 if( jhitR-vrtR > 36.) return false; // Should be another layer in between
131 if( ihitR-vrtR <-2.*vrtRErr) return false; // Vertex is behind hit in pixel
132 if( jhitR-vrtR <-2.*vrtRErr) return false; // Vertex is behind hit in pixel
133 }
134//-------------------BDT based rejection
135 std::vector<double> impact,impactError;
136 m_fitSvc->VKalGetImpact( iTrks.first, tPV.position(), 1, impact, impactError);
137 float trk1Signif = sqrt( impact[0]*impact[0]/impactError[0] + impact[1]*impact[1]/impactError[2]);
138 m_fitSvc->VKalGetImpact( iTrks.second, tPV.position(), 1, impact, impactError);
139 float trk2Signif = sqrt( impact[0]*impact[0]/impactError[0] + impact[1]*impact[1]/impactError[2]);
140 float minPtT = std::min(iTrks.first->pt(),iTrks.second->pt());
141 std::vector<float> VARS(10);
142 VARS[0]=Prob2v;
143 VARS[1]=log(sumMom.Pt());
144 VARS[2]=log(minPtT);
145 VARS[3]=log(vrtR<20. ? vSVPV.Rho() : vrtR);
146 VARS[4]=log(std::min(trk1Signif,trk2Signif));
147 VARS[5]=log(std::max(trk1Signif,trk2Signif));
148 VARS[6]=sumMom.M();
149 VARS[7]=sqrt(std::abs(1.-cosSVPV*cosSVPV));
150 VARS[8]=vSVPV.Eta();
151 VARS[9]=std::max(ihitR,jhitR);
152 quality=m_SV2T_BDT->GetGradBoostMVA(VARS);
153 if(quality<m_v2tBDTCut) return false; // BDT rejection
154
155 return true;
156 }
Gaudi::Property< bool > m_useVertexCleaning
Gaudi::Property< float > m_vrt2TrMassLimit
Gaudi::Property< float > m_maxSVRadiusCut
static int getIBLHit(const xAOD::TrackParticle *Part)
Gaudi::Property< float > m_cosSVPVCut
Gaudi::Property< float > m_vrt2TrPtMin
Gaudi::Property< bool > m_do2TrkIBLChecks
static int getBLHit(const xAOD::TrackParticle *Part)
Gaudi::Property< float > m_firstPixelLayerR
Gaudi::Property< float > m_sel2VrtProbCut
Gaudi::Property< float > m_vrt2TrPtMax
static double vrtRadiusError(const Amg::Vector3D &secVrt, const std::vector< float > &vrtErr)
Gaudi::Property< float > m_v2tBDTCut
float z() const
Returns the z position.
float y() const
Returns the y position.
float chiSquared() const
Returns the of the vertex fit as float.
const Amg::Vector3D & position() const
Returns the 3-pos.
float x() const
Returns the x position.
const std::vector< float > & covariance() const
Returns the covariance matrix as a simple vector of values.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

◆ vrtRadiusError()

double Rec::TwoTrackVrtBDTSelector::vrtRadiusError ( const Amg::Vector3D & secVrt,
const std::vector< float > & vrtErr )
staticprivate

Definition at line 161 of file TwoTrackVrtBDTSelector.cxx.

162 {
163 double DirX=SecVrt.x(), DirY=SecVrt.y();
164 double Covar = DirX*VrtErr[0]*DirX
165 +2.*DirX*VrtErr[1]*DirY
166 +DirY*VrtErr[2]*DirY;
167 Covar /= DirX*DirX + DirY*DirY;
168 Covar=std::sqrt(std::abs(Covar));
169 if(Covar != Covar) Covar = 0.;
170 return Covar;
171 }

Member Data Documentation

◆ m_calibFileName

Gaudi::Property<std::string> Rec::TwoTrackVrtBDTSelector::m_calibFileName {this, "CalibFileName", "Fake2TrVertexReject.MVA.v02.root", " MVA calibration file for 2-track fake vertices removal" }
private

Definition at line 78 of file TwoTrackVrtBDTSelector.h.

78{this, "CalibFileName", "Fake2TrVertexReject.MVA.v02.root", " MVA calibration file for 2-track fake vertices removal" };

◆ m_cosSVPVCut

Gaudi::Property<float> Rec::TwoTrackVrtBDTSelector::m_cosSVPVCut {this, "cosSVPVCut", 0., "Cut on cos of angle between SV-PV and full vertex momentum" }
private

Definition at line 69 of file TwoTrackVrtBDTSelector.h.

69{this, "cosSVPVCut", 0., "Cut on cos of angle between SV-PV and full vertex momentum" };

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_do2TrkIBLChecks

Gaudi::Property<bool> Rec::TwoTrackVrtBDTSelector::m_do2TrkIBLChecks {this, "do2TrkIBLChecks", true, "IBL and B-layer hit requrirements based on the position of 2-track DV." }
private

Definition at line 72 of file TwoTrackVrtBDTSelector.h.

72{this, "do2TrkIBLChecks", true, "IBL and B-layer hit requrirements based on the position of 2-track DV." };

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_firstPixelLayerR

Gaudi::Property<float> Rec::TwoTrackVrtBDTSelector::m_firstPixelLayerR {this, "FirstPixelLayerR", 32.0,"Radius of the first Pixel layer" }
private

Definition at line 74 of file TwoTrackVrtBDTSelector.h.

74{this, "FirstPixelLayerR", 32.0,"Radius of the first Pixel layer" };

◆ m_fitSvc

ToolHandle<Trk::TrkVKalVrtFitter> Rec::TwoTrackVrtBDTSelector::m_fitSvc {this, "VertexFitterTool", "Trk::TrkVKalVrtFitter/VertexFitterTool", "Vertex Fitter tool for 2-track selector"}
private

Definition at line 82 of file TwoTrackVrtBDTSelector.h.

82{this, "VertexFitterTool", "Trk::TrkVKalVrtFitter/VertexFitterTool", "Vertex Fitter tool for 2-track selector"};

◆ m_instanceName

std::string Rec::TwoTrackVrtBDTSelector::m_instanceName {}
private

Definition at line 91 of file TwoTrackVrtBDTSelector.h.

91{};

◆ m_massE

double Rec::TwoTrackVrtBDTSelector::m_massE {}
private

Definition at line 90 of file TwoTrackVrtBDTSelector.h.

90{};

◆ m_massP

double Rec::TwoTrackVrtBDTSelector::m_massP {}
private

Definition at line 89 of file TwoTrackVrtBDTSelector.h.

89{};

◆ m_massPi

double Rec::TwoTrackVrtBDTSelector::m_massPi {}
private

Definition at line 88 of file TwoTrackVrtBDTSelector.h.

88{};

◆ m_maxSVRadiusCut

Gaudi::Property<float> Rec::TwoTrackVrtBDTSelector::m_maxSVRadiusCut {this, "MaxSVRadiusCut", 140., "Cut on maximal radius of SV (def = Pixel detector size)" }
private

Definition at line 68 of file TwoTrackVrtBDTSelector.h.

68{this, "MaxSVRadiusCut", 140., "Cut on maximal radius of SV (def = Pixel detector size)" };

◆ m_sel2VrtProbCut

Gaudi::Property<float> Rec::TwoTrackVrtBDTSelector::m_sel2VrtProbCut {this, "Sel2VrtProbCut", 0.02, "Cut on probability of 2-track vertex for initial selection" }
private

Definition at line 67 of file TwoTrackVrtBDTSelector.h.

67{this, "Sel2VrtProbCut", 0.02, "Cut on probability of 2-track vertex for initial selection" };

◆ m_SV2T_BDT

std::unique_ptr<MVAUtils::BDT> Rec::TwoTrackVrtBDTSelector::m_SV2T_BDT
private

Definition at line 80 of file TwoTrackVrtBDTSelector.h.

◆ m_useVertexCleaning

Gaudi::Property<bool> Rec::TwoTrackVrtBDTSelector::m_useVertexCleaning {this, "useVertexCleaning", true, "Clean vertices by requiring pixel hit presence according to vertex position" }
private

Definition at line 73 of file TwoTrackVrtBDTSelector.h.

73{this, "useVertexCleaning", true, "Clean vertices by requiring pixel hit presence according to vertex position" };

◆ m_v2tBDTCut

Gaudi::Property<float> Rec::TwoTrackVrtBDTSelector::m_v2tBDTCut {this, "v2tBDTCut", -0.5, "BDT cut to select 2-track vertices" }
private

Definition at line 77 of file TwoTrackVrtBDTSelector.h.

77{this, "v2tBDTCut", -0.5, "BDT cut to select 2-track vertices" };

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vrt2TrMassLimit

Gaudi::Property<float> Rec::TwoTrackVrtBDTSelector::m_vrt2TrMassLimit {this,"Vrt2TrMassLimit",4000., "Maximal allowed mass for 2-track vertices" }
private

Definition at line 64 of file TwoTrackVrtBDTSelector.h.

64{this,"Vrt2TrMassLimit",4000., "Maximal allowed mass for 2-track vertices" };

◆ m_vrt2TrPtMax

Gaudi::Property<float> Rec::TwoTrackVrtBDTSelector::m_vrt2TrPtMax {this, "Vrt2TrPtMax", 5.e5, "Maximal allowed Pt for 2-track vertices. Calibration limit" }
private

Definition at line 66 of file TwoTrackVrtBDTSelector.h.

66{this, "Vrt2TrPtMax", 5.e5, "Maximal allowed Pt for 2-track vertices. Calibration limit" };

◆ m_vrt2TrPtMin

Gaudi::Property<float> Rec::TwoTrackVrtBDTSelector::m_vrt2TrPtMin {this, "Vrt2TrPtMin", 1000., "Minimal allowed Pt for 2-track vertices." }
private

Definition at line 65 of file TwoTrackVrtBDTSelector.h.

65{this, "Vrt2TrPtMin", 1000., "Minimal allowed Pt for 2-track vertices." };

The documentation for this class was generated from the following files: