14#ifndef TIDAUTILS_ASSOCIATOR_BESTMATCH_H
15#define TIDAUTILS_ASSOCIATOR_BESTMATCH_H
45 virtual std::unique_ptr<TrackAssociator>
uclone()
const override {
return std::make_unique<Associator_DeltaRMatcher>(*
this); }
48 double deta =
t0->eta()-t1->eta();
49 double dphi =
t0->phi()-t1->phi();
52 return std::sqrt( deta*deta + dphi*dphi );
71 virtual std::unique_ptr<TrackAssociator>
uclone()
const override {
return std::make_unique<Associator_SecondBestpTMatcher>(*
this); }
74 double dpT = fabs(
t0->pT()/1000 - t1->pT()/1000 );
76 return dpT/(fabs(
t0->pT()/1000));
94 virtual std::unique_ptr<TrackAssociator>
uclone()
const override {
return std::make_unique<Associator_BestDeltaRMatcher>(*
this); }
97 double deta =
t0->eta()-t1->eta();
98 double dphi =
t0->phi()-t1->phi();
101 return std::sqrt( deta*deta + dphi*dphi );
127 virtual std::unique_ptr<TrackAssociator>
uclone()
const override {
return std::make_unique<Associator_BestDeltaRZMatcher>(*
this); }
130 double deta =
t0->eta()-t1->eta();
131 double dphi =
t0->phi()-t1->phi();
if ( dphi>
M_PI ) dphi-=2*
M_PI;
if ( dphi<-
M_PI ) dphi+=2*
M_PI;
132 double dzed =
t0->z0()-t1->z0();
172 virtual std::unique_ptr<TrackAssociator>
uclone()
const override {
return std::make_unique<Associator_BestDeltaRZSinThetaMatcher>(*
this); }
175 double theta = 2*std::atan(std::exp(-t1->eta()));
177 double deta =
t0->eta()-t1->eta();
178 double dphi =
t0->phi()-t1->phi();
if ( dphi>
M_PI ) dphi-=2*
M_PI;
if ( dphi<-
M_PI ) dphi+=2*
M_PI;
180 double dzed = (
t0->z0()-t1->z0())*std::sin(
theta);
214 virtual std::unique_ptr<TrackAssociator>
uclone()
const override {
return std::make_unique<Associator_BestSigmaMatcher>(*
this); }
217 double deta = t1->eta()-
t0->eta();
218 double dphi = t1->phi()-
t0->phi();
221 double dzed = t1->z0()-
t0->z0();
229 double dr = std::sqrt( deta*deta + dphi*dphi + dzed*dzed );
255 virtual std::unique_ptr<TrackAssociator>
uclone()
const override {
return std::make_unique<Associator_BestDeltaPhiMatcher>(*
this); }
258 double dphi =
t0->phi()-t1->phi();
261 return std::fabs( dphi );
Scalar theta() const
theta method
BestMatcher< TIDA::Track > Associator_BestMatcher
truely generic template class of a best matching algorithm based on an efficient implementation of th...
virtual ~Associator_BestDeltaPhiMatcher()
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
Associator_BestDeltaPhiMatcher(const std::string &name, double p)
virtual std::unique_ptr< TrackAssociator > uclone() const override
Associator_BestDeltaRMatcher(const std::string &name, double d)
virtual std::unique_ptr< TrackAssociator > uclone() const override
virtual ~Associator_BestDeltaRMatcher()
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
Associator_BestDeltaRZMatcher(const std::string &name, double deta=0.05, double dphi=0.05, double dzed=5)
virtual ~Associator_BestDeltaRZMatcher()
virtual std::unique_ptr< TrackAssociator > uclone() const override
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
virtual ~Associator_BestDeltaRZSinThetaMatcher()
Associator_BestDeltaRZSinThetaMatcher(const std::string &name, double deta=0.05, double dphi=0.05, double dzed=5)
virtual std::unique_ptr< TrackAssociator > uclone() const override
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
virtual ~Associator_BestSigmaMatcher()
Associator_BestSigmaMatcher(const std::string &name, double dsigma=1)
virtual std::unique_ptr< TrackAssociator > uclone() const override
virtual ~Associator_DeltaRMatcher()
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
virtual std::unique_ptr< TrackAssociator > uclone() const override
Associator_DeltaRMatcher(const std::string &name, double d)
virtual std::unique_ptr< TrackAssociator > uclone() const override
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
virtual ~Associator_SecondBestpTMatcher()
Associator_SecondBestpTMatcher(const std::string &name, double d)