11#include <framework/gearbox/Unit.h>
12#include <framework/gearbox/Const.h>
13#include <framework/datastore/RelationsObject.h>
14#include <pxd/dataobjects/PXDCluster.h>
15#include <tracking/dataobjects/RecoTrack.h>
16#include <tracking/dataobjects/PXDIntercept.h>
17#include <genfit/MeasuredStateOnPlane.h>
22#include <mdst/dataobjects/Track.h>
23#include <mdst/dataobjects/HitPatternCDC.h>
24#include <mdst/dataobjects/HitPatternVXD.h>
97 const std::string& recoTracksName =
"",
98 const std::string& pxdTrackClustersName =
"PXDClustersFromTracks",
111 template <
typename TTrackCluster>
130 void setValues(
const RecoTrack& recoTrack,
const ROOT::Math::XYZVector& ip = ROOT::Math::XYZVector(0, 0, 0),
131 const std::string& recoTracksName =
"",
132 const std::string& pxdInterceptsName =
"",
133 const std::string& pxdTrackClustersName =
"PXDClustersFromTracks"
156 template <
typename TTrackCluster>
162 B2ERROR(
"Expect the track fit result. Found Nothing!");
174 if (ip != ROOT::Math::XYZVector(0, 0, 0)) {
178 d0p = uHelix.getD0();
179 z0p = uHelix.getZ0();
183 template <
typename TTrackCluster>
185 const RecoTrack& recoTrack,
const ROOT::Math::XYZVector& ip,
186 const std::string& recoTracksName,
187 const std::string& pxdInterceptsName,
188 const std::string& pxdTrackClustersName
194 B2ERROR(
"Expect a track for fitted recotracks. Found nothing!");
204 for (
auto& pxdIntercept : pxdIntercepts) {
207 if (temp.setValues(pxdIntercept, recoTracksName, pxdTrackClustersName))
static const ChargedStable pion
charged pion particle
static const double electronMass
electron mass
unsigned short getNHits() const
Get the total Number of CDC hits in the fit.
unsigned short getNPXDHits() const
Get total number of hits in the PXD.
unsigned short getNSVDHits() const
Get total number of hits in the SVD.
The PXD Cluster class This class stores all information about reconstructed PXD clusters The position...
PXDIntercept stores the U,V coordinates and uncertainties of the intersection of a track with an PXD ...
This is the Reconstruction Event-Data Model Track.
T * getRelated(const std::string &name="", const std::string &namedRelation="") const
Get the object to or from which this object has a relation.
RelationVector< TO > getRelationsTo(const std::string &name="", const std::string &namedRelation="") const
Get the relations that point from this object to another store array.
Values of the result of a track fit with a given particle hypothesis.
double getCotTheta() const
Getter for tanLambda with CDF naming convention.
double getD0() const
Getter for d0.
double getZ0() const
Getter for z0.
ROOT::Math::XYZVector getMomentum() const
Getter for vector of momentum at closest approach of track in r/phi projection.
HitPatternCDC getHitPatternCDC() const
Getter for the hit pattern in the CDC;.
UncertainHelix getUncertainHelix() const
Conversion to framework Uncertain Helix (i.e., with covariance).
double getPhi0() const
Getter for phi0.
HitPatternVXD getHitPatternVXD() const
Getter for the hit pattern in the VXD;.
Class that bundles various TrackFitResults.
const TrackFitResult * getTrackFitResultWithClosestMass(const Const::ChargedStable &requestedType) const
Return the track fit for the fit hypothesis with the closest mass.
double passiveMoveBy(const ROOT::Math::XYZVector &by)
Moves origin of the coordinate system (passive transformation) by the given vector.
Namespace to encapsulate code needed for simulation and reconstrucion of the PXD.
TrackBase_t< TrackCluster_t > Track_t
Typedef TrackBase_t<TrackCluster_t> Track_t.
Abstract base class for different kinds of events.
Struct to hold variables for PXD clusters.
float posV
Local position along z.
Cluster_t()
Default constructor.
float posU
Local position in r-phi.
unsigned short pxdID
Human readable id: layer * 1000 + ladder * 10 + sensor.
void setValues(const PXDCluster &pxdCluster)
Update values from a PXDCluster.
unsigned short charge
Cluster charge in ADU.
unsigned short uSize
Cluster size in U.
unsigned short vSize
Cluster size in V.
unsigned short size
Cluster size.
Struct to hold variables from a track which contains a vector of data type like TrackCluster.
TrackBase_t()
Default constructor.
void setTrackVariables(const TrackFitResult *tfrPtr, const ROOT::Math::XYZVector &ip)
update track level variables from TrackFitResult
void setValues(const RecoTrack &recoTrack, const ROOT::Math::XYZVector &ip=ROOT::Math::XYZVector(0, 0, 0), const std::string &recoTracksName="", const std::string &pxdInterceptsName="", const std::string &pxdTrackClustersName="PXDClustersFromTracks")
Update values from a RecoTrack.
std::vector< TrackCluster_t > trackClusters
TrackCluster_t()
Default constructor.
float dU
Residual (meas - prediction) in U.
bool usedInTrack
True if the cluster is used in tracking.
RecoTrack * setValues(const PXDIntercept &pxdIntercept, const std::string &recoTracksName="", const std::string &pxdTrackClustersName="PXDClustersFromTracks", const double &mass=Const::electronMass)
Update values from a PXDIntercept.
Cluster_t cluster
Cluster associated to the track.
TrackPoint_t intersection
The track-module intersection.
float dV
Residual (meas - prediction) in V.
Struct to hold variables for intersection points.
bool inside
True if it's inside the active region.
float chargeMPV
Expected charge in ADU.
RecoTrack * setValues(const PXDIntercept &pxdIntercept, const std::string &recoTracksName="", const double &mass=Const::electronMass)
Update values from a PXDCluster.
float tol
The variables below are included here as they can be calculated w.o.
float y
Global position in y.
float x
Global position in x.
TrackPoint_t()
Default constructor.
float z
Global position in z.