14#ifndef TRACKPARTICLETRAITS_H
15#define TRACKPARTICLETRAITS_H
28 uint8_t n(0); t.summaryValue(n,
type);
return n;
41 if ( t.qOverP()==0 )
throw std::runtime_error(
"divide by 0 - track qOverP() is 0" );
60 double sintheta = std::sin(th);
61 double costheta = std::cos(th);
64 double dpt2 = (p_*p_*sintheta)*(p_*p_*sintheta)*dqovp*dqovp + (p_*costheta)*(p_*costheta)*dth*dth - 2*(p_*p_*sintheta)*(p_*costheta)*
covthetaOvP(t);
65 if ( dpt2>0 )
return std::sqrt( dpt2 );
Scalar theta() const
theta method
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
SummaryType
Enumerates the different types of information stored in Summary.
@ numberOfInnermostPixelLayerSharedEndcapHits
number of Pixel 0th layer endcap hits shared by several tracks.
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfInnermostPixelLayerEndcapHits
these are the hits in the 0th pixel layer endcap [unit8_t].
@ numberOfInnermostPixelLayerSharedHits
number of Pixel 0th layer barrel hits shared by several tracks.
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
@ numberOfTRTHighThresholdHitsTotal
total number of TRT hits which pass the high threshold [unit8_t].
@ numberOfNextToInnermostPixelLayerEndcapHits
these are the hits in the 0.5th and 1st pixel layer endcap rings [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
@ numberOfSCTHoles
number of SCT holes [unit8_t].
raw track traits - use for the TrackParticle by default, specialise for anything else,...
static int nPixels(const T &)
static int nPixelHoles(const T &)
static int nSCT(const T &)
static float dqOverP(const T &)
static int nSCTHoles(const T &)
static float p(const T &)
static float dtheta(const T &)
static float covthetaOvP(const T &)
static int nPixelsBlayer(const xAOD::TrackParticle &t)
static uint8_t summary_value(const xAOD::TrackParticle &t, xAOD::SummaryType type)
static int nSCTShared(const xAOD::TrackParticle &t)
static int nPixelsInnerShared(const xAOD::TrackParticle &t)
static int nTRT(const xAOD::TrackParticle &t)
static int nSi(const xAOD::TrackParticle &t)
static int nPixelsInnerSharedEndcap(const xAOD::TrackParticle &t)
static int nPixelsInnerEndcap(const xAOD::TrackParticle &t)
static float ET(const xAOD::TrackParticle &t)
static int nTRTHi(const xAOD::TrackParticle &t)
static int nSCT(const xAOD::TrackParticle &t)
as mentoned, do we actually need so many ?
static float deta(const xAOD::TrackParticle &t)
static float E(const xAOD::TrackParticle &t)
static float dz0(const xAOD::TrackParticle &t)
static float z0(const xAOD::TrackParticle &t)
static float ndof(const xAOD::TrackParticle &t)
static int nSCTHoles(const xAOD::TrackParticle &t)
static int nPixelsShared(const xAOD::TrackParticle &t)
static int nSiHoles(const xAOD::TrackParticle &t)
static float time(const xAOD::TrackParticle &t)
static float dtheta(const xAOD::TrackParticle &t)
static float qOverP(const xAOD::TrackParticle &t)
static float dqOverP(const xAOD::TrackParticle &t)
static float p(const xAOD::TrackParticle &t)
static int nPixelsBlayerEndcap(const xAOD::TrackParticle &t)
static float dd0(const xAOD::TrackParticle &t)
static float covthetaOvP(const xAOD::TrackParticle &t)
static float d0(const xAOD::TrackParticle &t)
static int nPixelHoles(const xAOD::TrackParticle &t)
static float chi2(const xAOD::TrackParticle &t)
a covariance not an error
static int nPixels(const xAOD::TrackParticle &t)
again, will we need these in the future, leave here lest we forget ...
static int nPixelsInner(const xAOD::TrackParticle &t)
static float dpt(const xAOD::TrackParticle &t)
static float dphi(const xAOD::TrackParticle &t)
given the complexity of these, perhaps the TruthParticle should be the default template implementatio...
static float theta(const xAOD::TrackParticle &t)
static uint8_t hasValidTime(const xAOD::TrackParticle &t)
not an integer ???