14#ifndef TIDAUTILS_ASSOCIATOR_BESTMATCH_H
15#define TIDAUTILS_ASSOCIATOR_BESTMATCH_H
46 double deta =
t0->eta()-t1->eta();
47 double dphi =
t0->phi()-t1->phi();
50 return std::sqrt( deta*deta + dphi*dphi );
71 double dpT = fabs(
t0->pT()/1000 - t1->pT()/1000 );
73 return dpT/(fabs(
t0->pT()/1000));
93 double deta =
t0->eta()-t1->eta();
94 double dphi =
t0->phi()-t1->phi();
97 return std::sqrt( deta*deta + dphi*dphi );
119 std::cout <<
"Associator: Best RZ Matcher" << std::endl;
127 double deta =
t0->eta()-t1->eta();
128 double dphi =
t0->phi()-t1->phi();
if ( dphi>
M_PI ) dphi-=2*
M_PI;
if ( dphi<-
M_PI ) dphi+=2*
M_PI;
129 double dzed =
t0->z0()-t1->z0();
162 std::cout <<
"Associator: Best RZ Matcher" << std::endl;
170 double theta = 2*std::atan(std::exp(-t1->eta()));
172 double deta =
t0->eta()-t1->eta();
173 double dphi =
t0->phi()-t1->phi();
if ( dphi>
M_PI ) dphi-=2*
M_PI;
if ( dphi<-
M_PI ) dphi+=2*
M_PI;
175 double dzed = (
t0->z0()-t1->z0())*std::sin(
theta);
204 std::cout <<
"Associator: Best Sigma Matcher" << std::endl;
212 double deta = t1->eta()-
t0->eta();
213 double dphi = t1->phi()-
t0->phi();
216 double dzed = t1->z0()-
t0->z0();
224 double dr = std::sqrt( deta*deta + dphi*dphi + dzed*dzed );
251 double dphi =
t0->phi()-t1->phi();
254 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...
TIDA::Associator< TIDA::Track > TrackAssociator
virtual ~Associator_BestDeltaPhiMatcher()
virtual TrackAssociator * clone() override
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
Associator_BestDeltaPhiMatcher(const std::string &name, double p)
virtual TrackAssociator * clone() override
Associator_BestDeltaRMatcher(const std::string &name, double d)
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 TrackAssociator * clone() override
virtual ~Associator_BestDeltaRZMatcher()
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 double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
virtual TrackAssociator * clone() override
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
virtual ~Associator_BestSigmaMatcher()
virtual TrackAssociator * clone() override
Associator_BestSigmaMatcher(const std::string &name, double dsigma=1)
virtual ~Associator_DeltaRMatcher()
virtual double distance(const TIDA::Track *t0, const TIDA::Track *t1) const override
virtual TrackAssociator * clone() override
Associator_DeltaRMatcher(const std::string &name, double d)
virtual TrackAssociator * clone() 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)