ATLAS Offline Software
InDetTrkInJetType.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 #include "TLorentzVector.h"
9 
10 #include "MVAUtils/BDT.h"
11 #include "TFile.h"
12 #include "TTree.h"
13 #include "GaudiKernel/IChronoStatSvc.h"
14 //
15 //-------------------------------------------------
16 namespace InDet {
17 //
18 //Constructor--------------------------------------------------------------
20  const std::string& name,
21  const IInterface* parent):
22  base_class(type,name,parent),
23  m_trkSctHitsCut(4),
24  m_trkPixelHitsCut(1),
25  m_trkChi2Cut(5.),
26  m_trkMinPtCut(700.),
27  m_jetMaxPtCut(3500000.),
28  m_jetMinPtCut( 35000.),
29  m_d0_limLow(-5.),
30  m_d0_limUpp( 5.),
31  m_Z0_limLow(-15.),
32  m_Z0_limUpp( 15.),
33  m_calibFileName("TrackClassif_3cl.v03.root"),
34  m_calibFileNameFivePtJetBin("TrackClassif_3cl.v04.root"),
35  m_jetCollection(""), //AntiKt4EMPFlowJets
36  m_useFivePtJetBinVersion(kFALSE)
37  {
38  declareProperty("trkSctHits", m_trkSctHitsCut , "Cut on track SCT hits number" );
39  declareProperty("trkPixelHits", m_trkPixelHitsCut , "Cut on track Pixel hits number" );
40  declareProperty("trkChi2", m_trkChi2Cut , "Cut on track Chi2/Ndf" );
41  declareProperty("trkMinPt", m_trkMinPtCut , "Minimal track Pt cut" );
42  declareProperty("jetMaxPt", m_jetMaxPtCut , "Maximal jet Pt cut" );
43  declareProperty("jetMinPt", m_jetMinPtCut , "Minimal jet Pt cut from training" );
44  declareProperty("d0_limLow", m_d0_limLow , "Low d0 impact cut" );
45  declareProperty("d0_limUpp", m_d0_limUpp , "Upper d0 impact cut" );
46  declareProperty("Z0_limLow", m_Z0_limLow , "Low Z0 impact cut" );
47  declareProperty("Z0_limUpp", m_Z0_limUpp , "Upper Z0 impact cut" );
48  declareProperty("useFivePtJetBinVersion", m_useFivePtJetBinVersion, "Use five ptjet bin BDT model of TCT");
49  declareProperty("JetCollection",m_jetCollection, "Type of JetContainer which should be decorated with TCT scores and TrackLinks");
50  m_timingProfile=nullptr;
51 
52  }
53 
54 //Destructor---------------------------------------------------------------
56  ATH_MSG_DEBUG("InDetTrkInJetType destructor called");
57  }
58 
59 //Initialize---------------------------------------------------------------
61  m_initialised = 0;
62 //
63 //-- Calibration file
64 //
65  std::string fullPathToFile = PathResolverFindCalibFile("InDetVKalVxInJetTool/"+m_calibFileName);
66  if(m_useFivePtJetBinVersion) {fullPathToFile = PathResolverFindCalibFile("InDetVKalVxInJetTool/"+m_calibFileNameFivePtJetBin);}
67  std::unique_ptr<TFile> rootFile(TFile::Open(fullPathToFile.c_str(), "READ"));
68  if (!rootFile) {
69  if(!m_useFivePtJetBinVersion) {ATH_MSG_ERROR("Can not retrieve TrackClassification calibration root file: " << m_calibFileName); }
70  else {ATH_MSG_ERROR("Can not retrieve TrackClassification five ptjet bin calibration root file: " << m_calibFileNameFivePtJetBin); }
71  return StatusCode::FAILURE;
72  }
74  {
75  std::unique_ptr<TTree> training((TTree*)rootFile->Get("BDT"));
76  m_vTrkClassBDT.push_back(std::make_unique<MVAUtils::BDT>(training.get()));
77  }
78  else
79  {
80  unsigned int nPtjetRanges=5;
81  std::vector<std::string> v_BDTName(nPtjetRanges,"");
82 
83  v_BDTName.at(e_ptjet0to0p2TeV) = "BDTG_0_200GeV";
84  v_BDTName.at(e_ptjet0p2to0p5TeV) = "BDTG_200_500GeV";
85  v_BDTName.at(e_ptjet0p5to1TeV) = "BDTG_500_1000GeV";
86  v_BDTName.at(e_ptjet1to2TeV) = "BDTG_1000_2000GeV";
87  v_BDTName.at(e_ptjet2to7TeV) = "BDTG_gt2000GeV";
88 
89  for(const auto& bdtname : v_BDTName)
90  {
91  std::unique_ptr<TTree> training((TTree*)rootFile->Get(bdtname.c_str()));
92  m_vTrkClassBDT.push_back(std::make_unique<MVAUtils::BDT>(training.get()));
93  }
94  if(m_vTrkClassBDT.size() != nPtjetRanges) {ATH_MSG_ERROR("TrackClassification five ptjet bin BDT model not correctly loaded."); }
95  }
96  if(!m_useFivePtJetBinVersion) {if(m_vTrkClassBDT.size() != 1) {ATH_MSG_ERROR("TrackClassification BDT model not correctly loaded."); }}
97  //-------
98  if (m_fitterSvc.retrieve().isFailure()) {
99  ATH_MSG_DEBUG("Could not find Trk::TrkVKalVrtFitter");
100  return StatusCode::SUCCESS;
101  } else {
102  ATH_MSG_DEBUG("InDetTrkInJetTool TrkVKalVrtFitter found");
103  }
104  m_fitSvc = dynamic_cast<Trk::TrkVKalVrtFitter*>(&(*m_fitterSvc));
105  if(!m_fitSvc){
106  ATH_MSG_DEBUG(" No implemented Trk::ITrkVKalVrtFitter interface");
107  return StatusCode::SUCCESS;
108  }
109 
110  if(!m_jetCollection.empty())
111  {
112 
113  //from https://acode-browser1.usatlas.bnl.gov/lxr/source/athena/Event/xAOD/xAODTrackingCnv/src/TrackParticleCnvAlg.cxx
114  m_trackWriteDecorKeyTCTScore = "InDetTrackParticles.TCTScore_"+m_jetCollection;
115  m_trackWriteDecorKeyJetLink = "InDetTrackParticles.TCTJetLink_"+m_jetCollection;
116 
118  m_jetWriteDecorKeyTrackLink = m_jetCollection +".TCTTrackLink";
119 
120  //initialize SG WriteDecorHandleKeys needed for decorating tracks
123 
124  //initialize SG WriteDecorHandleKeys needed for decorating jets
125  ATH_CHECK( m_jetWriteDecorKeyTCTScore.initialize());
126  ATH_CHECK( m_jetWriteDecorKeyTrackLink.initialize());
127  }
128 
129 
130  m_initialised = 1; // Tool is initialised successfully.
131 //-----
132  if(msgLvl(MSG::DEBUG)) ATH_CHECK(service("ChronoStatSvc", m_timingProfile));
133 //-----
134  return StatusCode::SUCCESS;
135  }
136 
138  {
139  if(m_timingProfile)m_timingProfile->chronoPrint("InDet_TrkInJetType");
140  ATH_MSG_DEBUG("InDetTrkInJetType finalize()");
141  return StatusCode::SUCCESS;
142  }
143 
144  std::vector<float> InDetTrkInJetType::trkTypeWgts(const xAOD::TrackParticle * Trk, const xAOD::Vertex & PV, const TLorentzVector & Jet) const
145  {
146 //-- Track quality checks
147  std::vector<float> safeReturn(3,0.);
148  if( !m_initialised ) return safeReturn;
149  double wrkJetPt= Jet.Perp() < m_jetMaxPtCut ? Jet.Perp() : m_jetMaxPtCut; // Jet above m_jetMaxPtCut is considered as having m_jetMaxPtCut
150  if(Trk->pt() < m_trkMinPtCut) return safeReturn; // Don't classify track below m_trkMinPtCut
151  if(Trk->pt() > wrkJetPt) return safeReturn; // Don't classify track with Pt above JetPt
152  if(Trk->numberDoF() == 0) return safeReturn; // Safety
153  if(Trk->chiSquared()/Trk->numberDoF() > m_trkChi2Cut) return safeReturn;
154  uint8_t PixelHits,SctHits;
155  if( !(Trk->summaryValue(PixelHits,xAOD::numberOfPixelHits)) ) return safeReturn; // No Pixel hits. Bad.
156  if( !(Trk->summaryValue( SctHits,xAOD::numberOfSCTHits)) ) return safeReturn; // No SCT hits. Bad.
157  if( PixelHits < m_trkPixelHitsCut ) return safeReturn;
158  if( SctHits < m_trkSctHitsCut ) return safeReturn;
159  std::vector<double> Impact,ImpactError;
160  float Sig3D=m_fitSvc->VKalGetImpact(Trk, PV.position(), 1, Impact, ImpactError);
161  AmgVector(5) tmpPerigee = Trk->perigeeParameters().parameters();
162  if( std::sin(tmpPerigee[2]-Jet.Phi())*Impact[0] < 0 ){ Impact[0] = -std::abs(Impact[0]);}
163  else{ Impact[0] = std::abs(Impact[0]);}
164  if( (tmpPerigee[3]-Jet.Theta())*Impact[1] < 0 ) { Impact[1] = -std::abs(Impact[1]);}
165  else{ Impact[1] = std::abs(Impact[1]);}
166  double SignifR = Impact[0]/ std::sqrt(ImpactError[0]);
167  double SignifZ = Impact[1]/ std::sqrt(ImpactError[2]);
168 //---Calibrated range selection
169  if(Impact[1]<m_Z0_limLow || Impact[1]>m_Z0_limUpp) return safeReturn; //Don't classify track far from PV in Z
170  if( std::sqrt(SignifR*SignifR +SignifZ*SignifZ) < 1.) return safeReturn; //Don't classify track too close to PV
171 //---IBL/BL hits
172  int hitIBL=0, hitBL=0;
173  uint8_t IBLhit,BLhit,IBLexp,BLexp;
174  if(!Trk->summaryValue( IBLhit, xAOD::numberOfInnermostPixelLayerHits) ) IBLhit = 0;
175  if(!Trk->summaryValue( BLhit, xAOD::numberOfNextToInnermostPixelLayerHits) ) BLhit = 0;
176  if(!Trk->summaryValue( IBLexp, xAOD::expectInnermostPixelLayerHit) ) IBLexp = 0;
177  if(!Trk->summaryValue( BLexp, xAOD::expectNextToInnermostPixelLayerHit) ) BLexp = 0;
178  hitIBL=IBLhit; if( IBLexp==0 ) hitIBL=-1;
179  hitBL = BLhit; if( BLexp==0 ) hitBL =-1;
180 /*---PV constraint (doesn't improve rejection in first try)
181  Amg::Vector3D FitVrt;
182  TLorentzVector Momentum;
183  long int Charge=0;
184  std::vector<double> ErrorMatrix, Chi2PerTrk;
185  std::vector< std::vector<double> > TrkAtVrt;
186  std::vector<const xAOD::TrackParticle *> TrkForFit(1,Trk);
187  std::vector<const xAOD::NeutralParticle*> netralDummy(0);
188  m_fitSvc->setDefault(); //Reset VKalVrt settings
189  std::vector<float> covPV=PV.covariance();
190  m_fitSvc->setVertexForConstraint(PV.x(),PV.y(),PV.z());
191  m_fitSvc->setCovVrtForConstraint(covPV[0],covPV[1],covPV[2],covPV[3],covPV[4],covPV[5]);
192  m_fitSvc->setCnstType(6); // Set primary vertex constraint
193  StatusCode sc=m_fitSvc->VKalVrtFit( TrkForFit, netralDummy, FitVrt, Momentum, Charge, ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2);
194  if(sc.isFailure())Chi2=std::exp(11.);
195  if(Chi2>std::exp(11.))Chi2=std::exp(11.);
196 */
197 //====================== BDT weights
198  double coeffPt=10.;
199  double pfrac=(Trk->pt()-m_trkMinPtCut)/sqrt(wrkJetPt);
200  float prbP= pfrac/(coeffPt+pfrac);
201  float etatrk=Trk->eta();
202 //---
203  double coeffSig=1.0;
204  if(Sig3D<coeffSig) return safeReturn; // Safety
205 //---
206  float d0=Impact[0]; d0=std::max(d0,m_d0_limLow); d0=std::min(d0,m_d0_limUpp); //Track
207  float SigZ=SignifZ;
208  float SigR=SignifR;
209 //---
210  float ptjet=wrkJetPt>m_jetMinPtCut ? wrkJetPt : m_jetMinPtCut ; //Very low jet pt is replaced by Pt=35GeV
211 //---
212  TLorentzVector TLV;
213  TLV.SetPtEtaPhiE(Trk->pt(),Trk->eta(),Trk->phi(),Trk->e());
214  float pTvsJet=TLV.Perp(Jet.Vect());
215 //---
216  if(m_timingProfile)m_timingProfile->chronoStart("InDet_TrkInJetType");
217  //-----Use MVAUtils to save CPU
218  std::vector<float> bdt_vars={Sig3D, prbP, pTvsJet, d0, SigR, SigZ, ptjet, (float)hitIBL, (float)hitBL, etatrk};
219  std::vector<float> weights;
220  if(!m_useFivePtJetBinVersion) {weights =m_vTrkClassBDT.at(0)->GetMultiResponse(bdt_vars,3);}
221  else{
222  e_ptjetRange e_ptjet;
223  if(ptjet < 0.2e6) {e_ptjet = e_ptjet0to0p2TeV; }
224  else if(ptjet > 0.2e6 && ptjet < 0.5e6) {e_ptjet = e_ptjet0p2to0p5TeV; }
225  else if(ptjet > 0.5e6 && ptjet < 1.e6) {e_ptjet = e_ptjet0p5to1TeV; }
226  else if(ptjet > 1.e6 && ptjet < 2.e6) {e_ptjet = e_ptjet1to2TeV; }
227  else if(ptjet > 2.e6) {e_ptjet = e_ptjet2to7TeV; }
228  else {ATH_MSG_ERROR("Not a valid ptjet value in five ptjet bin TrackClassification application: " << ptjet); return safeReturn; }
229  weights = m_vTrkClassBDT.at(e_ptjet)->GetMultiResponse(bdt_vars,3);
230  }
231 
232  //-----
233  if(m_timingProfile)m_timingProfile->chronoStop("InDet_TrkInJetType");
234  return weights; //order: wgtB, wgtL, wgtG
235  }
236 
237  void InDetTrkInJetType::decorateTrack(const xAOD::TrackParticle* trk, const xAOD::Vertex & PV, const xAOD::JetContainer & jets, const xAOD::Jet* curjet) const
238  {
239  if(m_jetCollection.empty()) {ATH_MSG_FATAL("No JetContainer chosen for decorating tracks!"); }
240 
243  std::vector<float> v_tctScore = trkTypeWgts(trk,PV,curjet->p4());
244  trackWriteDecorHandleTCTScore(*trk) = v_tctScore;
246  linkJet.toContainedElement(jets, curjet);
247  trackWriteDecorHandleJetLink(*trk) = linkJet;
248  }
249 
250 
251  void InDetTrkInJetType::decorateJet(const std::vector<const xAOD::TrackParticle*> & trks, const xAOD::TrackParticleContainer& trkContainer, const xAOD::Vertex & PV, const xAOD::Jet* curjet) const
252  {
253  if(m_jetCollection.empty()) {ATH_MSG_FATAL("No JetContainer chosen for decorating tracks!"); }
256 
257  for(const auto *itrk : trks)
258  {
259  std::vector<float> v_tctScore = trkTypeWgts(itrk,PV,curjet->p4());
260  jetWriteDecorHandleTCTScore(*curjet).push_back(v_tctScore);
261  //adapted from https://acode-browser1.usatlas.bnl.gov/lxr/source/athena/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetBTaggingAlg.cxx
262  //line 253-255
264  linkTrack.toContainedElement(trkContainer, itrk);
265  jetWriteDecorHandleTrackLink(*curjet).push_back(linkTrack);
266  } // end track loop
267  }
268 
269 }// close namespace
270 
InDet::InDetTrkInJetType::m_jetWriteDecorKeyTrackLink
SG::WriteDecorHandleKey< xAOD::JetContainer > m_jetWriteDecorKeyTrackLink
Definition: InDetTrkInJetType.h:134
InDet::InDetTrkInJetType::m_fitterSvc
ToolHandle< Trk::IVertexFitter > m_fitterSvc
Definition: InDetTrkInJetType.h:116
InDet::InDetTrkInJetType::m_vTrkClassBDT
std::vector< std::unique_ptr< MVAUtils::BDT > > m_vTrkClassBDT
Definition: InDetTrkInJetType.h:98
InDet::InDetTrkInJetType::m_useFivePtJetBinVersion
bool m_useFivePtJetBinVersion
Definition: InDetTrkInJetType.h:114
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
InDet::InDetTrkInJetType::finalize
virtual StatusCode finalize() override
Definition: InDetTrkInJetType.cxx:137
max
#define max(a, b)
Definition: cfImp.cxx:41
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
Jet
Basic data class defines behavior for all Jet objects The Jet class is the principal data class for...
Definition: Reconstruction/Jet/JetEvent/JetEvent/Jet.h:47
InDet::InDetTrkInJetType::m_timingProfile
IChronoStatSvc * m_timingProfile
Definition: InDetTrkInJetType.h:99
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::InDetTrkInJetType::m_trkSctHitsCut
int m_trkSctHitsCut
Definition: InDetTrkInJetType.h:101
Trk::TrkVKalVrtFitter::VKalGetImpact
virtual double VKalGetImpact(const xAOD::TrackParticle *, const Amg::Vector3D &Vertex, const long int Charge, dvect &Impact, dvect &ImpactError, IVKalState &istate) const override final
Definition: VKalGetImpact.cxx:91
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
xAOD::expectInnermostPixelLayerHit
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
Definition: TrackingPrimitives.h:236
InDet::InDetTrkInJetType::m_jetCollection
std::string m_jetCollection
Definition: InDetTrkInJetType.h:113
xAOD::Vertex_v1::position
const Amg::Vector3D & position() const
Returns the 3-pos.
InDetTrkInJetType.h
InDet::InDetTrkInJetType::decorateTrack
virtual void decorateTrack(const xAOD::TrackParticle *, const xAOD::Vertex &, const xAOD::JetContainer &, const xAOD::Jet *) const override
Definition: InDetTrkInJetType.cxx:237
TrkVKalVrtFitter.h
InDet::InDetTrkInJetType::e_ptjet1to2TeV
@ e_ptjet1to2TeV
Definition: InDetTrkInJetType.h:122
InDet::InDetTrkInJetType::InDetTrkInJetType
InDetTrkInJetType(const std::string &type, const std::string &name, const IInterface *parent)
Definition: InDetTrkInJetType.cxx:19
InDet::InDetTrkInJetType::m_calibFileNameFivePtJetBin
std::string m_calibFileNameFivePtJetBin
Definition: InDetTrkInJetType.h:112
InDet::InDetTrkInJetType::e_ptjet0p2to0p5TeV
@ e_ptjet0p2to0p5TeV
Definition: InDetTrkInJetType.h:122
InDet::InDetTrkInJetType::m_d0_limUpp
float m_d0_limUpp
Definition: InDetTrkInJetType.h:108
InDet::InDetTrkInJetType::~InDetTrkInJetType
virtual ~InDetTrkInJetType()
Definition: InDetTrkInJetType.cxx:55
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::expectNextToInnermostPixelLayerHit
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
Definition: TrackingPrimitives.h:247
InDet::InDetTrkInJetType::m_trkMinPtCut
float m_trkMinPtCut
Definition: InDetTrkInJetType.h:104
InDet::InDetTrkInJetType::m_d0_limLow
float m_d0_limLow
Definition: InDetTrkInJetType.h:107
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:99
InDet::InDetTrkInJetType::m_Z0_limUpp
float m_Z0_limUpp
Definition: InDetTrkInJetType.h:110
InDet::InDetTrkInJetType::e_ptjet0p5to1TeV
@ e_ptjet0p5to1TeV
Definition: InDetTrkInJetType.h:122
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
test_pyathena.parent
parent
Definition: test_pyathena.py:15
InDet::InDetTrkInJetType::trkTypeWgts
virtual std::vector< float > trkTypeWgts(const xAOD::TrackParticle *, const xAOD::Vertex &, const TLorentzVector &) const override
Definition: InDetTrkInJetType.cxx:144
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
makeComparison.rootFile
rootFile
Definition: makeComparison.py:27
BDT.h
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
InDet::InDetTrkInJetType::e_ptjetRange
e_ptjetRange
Definition: InDetTrkInJetType.h:122
InDet::InDetTrkInJetType::m_jetMaxPtCut
float m_jetMaxPtCut
Definition: InDetTrkInJetType.h:105
min
#define min(a, b)
Definition: cfImp.cxx:40
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
xAOD::numberOfNextToInnermostPixelLayerHits
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
Definition: TrackingPrimitives.h:248
PathResolver.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
InDet::InDetTrkInJetType::m_jetMinPtCut
float m_jetMinPtCut
Definition: InDetTrkInJetType.h:106
InDet::InDetTrkInJetType::m_fitSvc
Trk::TrkVKalVrtFitter * m_fitSvc
Definition: InDetTrkInJetType.h:117
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
InDet::InDetTrkInJetType::e_ptjet0to0p2TeV
@ e_ptjet0to0p2TeV
Definition: InDetTrkInJetType.h:122
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
InDet::InDetTrkInJetType::e_ptjet2to7TeV
@ e_ptjet2to7TeV
Definition: InDetTrkInJetType.h:122
xAOD::Jet_v1::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: Jet_v1.cxx:71
InDet::InDetTrkInJetType::m_Z0_limLow
float m_Z0_limLow
Definition: InDetTrkInJetType.h:109
SG::WriteDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::InDetTrkInJetType::m_calibFileName
std::string m_calibFileName
Definition: InDetTrkInJetType.h:111
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
InDet::InDetTrkInJetType::m_trkChi2Cut
float m_trkChi2Cut
Definition: InDetTrkInJetType.h:103
DEBUG
#define DEBUG
Definition: page_access.h:11
InDet::InDetTrkInJetType::m_trkPixelHitsCut
int m_trkPixelHitsCut
Definition: InDetTrkInJetType.h:102
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
InDet::InDetTrkInJetType::m_trackWriteDecorKeyJetLink
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_trackWriteDecorKeyJetLink
Definition: InDetTrkInJetType.h:128
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
InDet::InDetTrkInJetType::initialize
virtual StatusCode initialize() override
Definition: InDetTrkInJetType.cxx:60
InDet::InDetTrkInJetType::m_trackWriteDecorKeyTCTScore
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_trackWriteDecorKeyTCTScore
The write key for adding TCT score as decoration to TrackParticle objects.
Definition: InDetTrkInJetType.h:126
InDet::InDetTrkInJetType::m_jetWriteDecorKeyTCTScore
SG::WriteDecorHandleKey< xAOD::JetContainer > m_jetWriteDecorKeyTCTScore
The write key for adding TCT score as decoration to Jet objects.
Definition: InDetTrkInJetType.h:132
readCCLHist.float
float
Definition: readCCLHist.py:83
InDet::InDetTrkInJetType::m_initialised
int m_initialised
Definition: InDetTrkInJetType.h:119
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237
InDet::InDetTrkInJetType::decorateJet
virtual void decorateJet(const std::vector< const xAOD::TrackParticle * > &, const xAOD::TrackParticleContainer &, const xAOD::Vertex &, const xAOD::Jet *) const override
Definition: InDetTrkInJetType.cxx:251
Trk::TrkVKalVrtFitter
Definition: TrkVKalVrtFitter.h:67