FairRoot/PandaRoot
Classes | Functions
DecayTreeFitter Namespace Reference

Classes

class  ChiSquare
 
class  Configuration
 
class  Constraint
 
class  DecayChain
 
class  ErrCode
 
class  FitParams
 
class  Fitter
 
class  InteractionPoint
 
class  InternalParticle
 
class  KalmanCalculator
 
class  Line
 
class  MergedConstraint
 
class  MissingParticle
 
class  ParticleBase
 
class  Projection
 
class  RecoComposite
 
class  RecoParticle
 
class  RecoPhoton
 
class  RecoResonance
 
class  RecoTrack
 
class  RecoTrackStateProvider
 
class  Resonance
 
class  State
 

Functions

double fastsymmatrixaccess (double *m, int row, int col)
 
double symmatrixaccess (double *m, int row, int col)
 
std::ostreamoperator<< (std::ostream &os, const Line &rhs)
 
bool closestPointParams (const Line &line0, const Line &line1, double &mu0, double &mu1)
 
bool sortByType (const ParticleBase *lhs, const ParticleBase *rhs)
 
bool compTrkTransverseMomentum (const RecoTrack *lhs, const RecoTrack *rhs)
 
std::ostreamoperator<< (std::ostream &str, const State &obj)
 

Function Documentation

bool DecayTreeFitter::closestPointParams ( const Line &  line0,
const Line &  line1,
double &  mu0,
double &  mu1 
)
inline

Definition at line 67 of file LineTool.h.

References b1, DecayTreeFitter::Line::beginPoint(), DecayTreeFitter::Line::direction(), and fabs().

Referenced by DecayTreeFitter::InternalParticle::initPar1().

71  {
72  // lhs:
73 
74  bool OK = true;
75 
76  // the matrix:
77  const double a00 = line0.direction().Mag2() ;
78  const double a10 = line0.direction().Dot( line1.direction() ) ;
79  const double a01 = -a10 ;
80  const double a11 = -line1.direction().Mag2() ;
81 
82  // the inverse determinant:
83  const double det = ( a00 * a11 - a01 * a10 ) ; // det = -sin^2(angle(line0.dir,line1.dir))
84  if ( std::fabs(det) < 1e-10 )
85  {
86  OK = false; // parallel
87  }
88  else
89  {
90 
91  const double detinv = 1.0 / det;
92 
93  // rhs:
94  const TVector3 p1_p0 = line1.beginPoint() - line0.beginPoint() ;
95 
96  const double b0 = p1_p0.Dot ( line0.direction() ) ;
97  const double b1 = p1_p0.Dot ( line1.direction() ) ;
98 
99  // get the Kramer solutions:
100 
101  mu0 = ( b0 * a11 - b1 * a01 ) * detinv ;
102  mu1 = ( a00 * b1 - a10 * b0 ) * detinv ;
103 
104  }
105 
106  return OK ;
107  }
double mu1
Definition: reco_analys2.C:56
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
bool DecayTreeFitter::compTrkTransverseMomentum ( const RecoTrack *  lhs,
const RecoTrack *  rhs 
)
inline

Definition at line 37 of file SortTool.h.

References DecayTreeFitter::ParticleBase::particle(), and RhoCandidate::Pt().

Referenced by DecayTreeFitter::InternalParticle::initPar1().

38  {
39  return lhs->particle()->Pt() > rhs->particle()->Pt() ;
40  }
double DecayTreeFitter::fastsymmatrixaccess ( double *  m,
int  row,
int  col 
)
inline

Definition at line 20 of file KalmanCalculator.cxx.

Referenced by symmatrixaccess().

21  {
22  return *(m+(row*(row-1))/2+(col-1));
23  }
int row
Definition: anaLmdDigi.C:67
__m128 m
Definition: P4_F32vec4.h:28
int col
Definition: anaLmdDigi.C:67
std::ostream& DecayTreeFitter::operator<< ( std::ostream os,
const Line &  rhs 
)
inline

Definition at line 58 of file LineTool.h.

60  {
61  return rhs.fillStream(os);
62  }
std::ostream& DecayTreeFitter::operator<< ( std::ostream str,
const State &  obj 
)
inline

Definition at line 174 of file State.h.

References DecayTreeFitter::State::fillStream().

175  {
176  return obj.fillStream(str);
177  }
PndAnaPidSelector *& obj
bool DecayTreeFitter::sortByType ( const ParticleBase *  lhs,
const ParticleBase *  rhs 
)
inline

Definition at line 24 of file SortTool.h.

References DecayTreeFitter::ParticleBase::kRecoTrack, RhoCandidate::NDaughters(), DecayTreeFitter::ParticleBase::nFinalChargedCandidates(), DecayTreeFitter::ParticleBase::particle(), RhoCandidate::Pt(), and DecayTreeFitter::ParticleBase::type().

25  {
26  int lhstype = lhs->type() ;
27  int rhstype = rhs->type() ;
28  bool rc = false ;
29  if( lhstype == rhstype && lhstype == ParticleBase::kRecoTrack )
30  rc = lhs->particle()->Pt() > rhs->particle()->Pt() ;
31  else if( lhs->particle()->NDaughters()>0 && rhs->particle()->NDaughters()>0 )
32  rc = lhs->nFinalChargedCandidates() > rhs->nFinalChargedCandidates() ;
33  else
34  rc = lhstype < rhstype ;
35  return rc ;
36  }
double DecayTreeFitter::symmatrixaccess ( double *  m,
int  row,
int  col 
)
inline

Definition at line 25 of file KalmanCalculator.cxx.

References fastsymmatrixaccess().

26  {
28  }
int row
Definition: anaLmdDigi.C:67
__m128 m
Definition: P4_F32vec4.h:28
int col
Definition: anaLmdDigi.C:67
double fastsymmatrixaccess(double *m, int row, int col)