19 #ifndef DERIVATIONFRAMEWORK_BPhysVertexTrackBase_H
20 #define DERIVATIONFRAMEWORK_BPhysVertexTrackBase_H
25 #include "GaudiKernel/ToolHandle.h"
42 class IInDetTrackSelectionTool;
52 typedef std::vector<const xAOD::TrackParticle*>
TrackBag;
53 typedef std::vector<const xAOD::Muon*>
MuonBag;
64 const std::string& Bname=
"iso",
65 const std::string& Prefix=
"");
68 virtual void setup(
const std::string&
Name,
69 const std::string& Bname=
"iso",
70 const std::string& Prefix=
"");
71 virtual void setPrefix(std::string Prefix);
72 virtual void resetVals();
74 virtual std::string buildName(
const std::string& qualifier=
"",
75 const std::string&
suffix=
"")
const;
76 virtual std::string
toString()
const;
92 const std::string &
prefix=
"",
const std::string &
suffix=
"",
95 void addToCounter(
const std::string &
name,
uint64_t atype=0,
98 std::string countsToString(
uint indent=0)
const;
104 typedef std::map<std::string, std::pair<uint64_t, uint64_t> >
114 enum track_type {ASSOCPV, PVTYPE0, PVTYPE1, PVTYPE2, PVTYPE3, NONE,
124 static const std::string track_type_str[];
137 static uint64_t rttor(
const std::vector<uint64_t> &vtypes);
138 static std::string wrapLines(
const std::string&
lines,
139 const std::string&
prefix);
147 const IInterface*
p);
151 virtual StatusCode addBranches()
const override;
160 virtual StatusCode addBranchesVCSetupHook(
size_t ivc)
const;
163 const unsigned int ipv,
164 const unsigned int its,
165 const unsigned int itt)
const;
167 const int ipv)
const;
178 virtual std::string buildPvAssocCacheName(
const xAOD::Vertex* vtx,
179 const int ipv)
const;
181 virtual void initPvAssocTypeVec();
190 std::vector<TVector3>
196 const unsigned int ipv,
197 const unsigned int its,
198 const unsigned int itt)
const;
203 const unsigned int ipv,
204 const unsigned int its,
205 const unsigned int itt)
const;
212 bool doDCAin3D=
false,
213 int chi2DefToUse=0)
const;
217 bool doDCAin3D=
false,
220 std::string buildBranchBaseName(
unsigned int its,
223 const std::string& preSuffix=
"")
const;
225 std::pair<const xAOD::Vertex*, double>
229 const std::vector<uint64_t>& pvtypes,
230 const int minNTracksInPV,
231 const bool useRefittedPvs,
232 const bool doDCAin3D,
233 const int chi2DefToUse)
const;
239 const std::vector<uint64_t>& pvtypes,
240 const int minNTracksInPV,
241 const bool useRefittedPvs)
const;
259 int m_doVertexType{};
261 bool m_incPrecVerticesInDecay{};
262 int m_minNTracksInPV{};
264 int m_debugTrackTypes{};
268 bool m_tvaToolHasWpLoose{};
282 mutable unsigned int m_nEvtsSeen{};
295 std::unique_ptr<TrackTypeCounter>
m_mttc;
298 mutable unsigned int m_runNumber{};
302 mutable bool m_debugTracksInThisEvent{};
307 #endif // DERIVATIONFRAMEWORK_BPhysVertexTrackBase_H