CMS 3D CMS Logo

CrossingPtBasedLinearizationPointFinder Class Reference

A linearization point finder. More...

#include <RecoVertex/LinearizationPointFinders/interface/CrossingPtBasedLinearizationPointFinder.h>

Inheritance diagram for CrossingPtBasedLinearizationPointFinder:

LinearizationPointFinder FsmwLinearizationPointFinder HSMLinearizationPointFinder LMSLinearizationPointFinder SMSLinearizationPointFinder SubsetHSMLinearizationPointFinder DefaultLinearizationPointFinder

List of all members.

Public Member Functions

virtual
CrossingPtBasedLinearizationPointFinder
clone () const
 Clone method.
 CrossingPtBasedLinearizationPointFinder (const CrossingPtBasedLinearizationPointFinder &)
 CrossingPtBasedLinearizationPointFinder (const RecTracksDistanceMatrix *m, const ModeFinder3d &algo, const signed int n_pairs=-1)
 This constructor exploits the information stored in a RecTracksDistanceMatrix object.
 CrossingPtBasedLinearizationPointFinder (const ModeFinder3d &algo, const signed int n_pairs=5)
 
Parameters:
n_pairs,: how many track pairs will be considered (maximum) a value of -1 means full combinatorics.

virtual GlobalPoint getLinearizationPoint (const vector< FreeTrajectoryState > &) const
virtual GlobalPoint getLinearizationPoint (const vector< reco::TransientTrack > &) const
 Method giving back the Initial Linearization Point.
 ~CrossingPtBasedLinearizationPointFinder ()

Protected Attributes

const RecTracksDistanceMatrixtheMatrix
signed int theNPairs
const bool useMatrix

Private Member Functions

GlobalPoint find (const vector< pair< GlobalPoint, float > > &) const
 calls (*theAglo) (input) can optionally save input / output in .root file
vector< reco::TransientTrackgetBestTracks (const vector< reco::TransientTrack > &) const
GlobalPoint useAllTracks (const vector< reco::TransientTrack > &) const
GlobalPoint useFullMatrix (const vector< reco::TransientTrack > &) const

Private Attributes

ModeFinder3dtheAlgo

Classes

struct  CompareTwoTracks
 Private struct to order tracks by momentum. More...


Detailed Description

A linearization point finder.

It works the following way: 1. Calculate in an optimal way 'n_pairs' different crossing points. Optimal in this context means the following: a. Try to use as many different tracks as possible; avoid using the same track all the time. b. Use the most energetic tracks. c. Try not to group the most energetic tracks together. Try to group more energetic tracks with less energetic tracks. We assume collimated bundles here, so this is why. d. Perform optimally. Do not sort more tracks (by total energy, see b) than necessary. e. If n_pairs >= (number of all possible combinations), do not leave any combinations out. ( a. and e. are almost but not entirely fulfilled in the current impl ) 2. Apply theAlgo on the n points.

Definition at line 26 of file CrossingPtBasedLinearizationPointFinder.h.


Constructor & Destructor Documentation

CrossingPtBasedLinearizationPointFinder::CrossingPtBasedLinearizationPointFinder ( const ModeFinder3d algo,
const signed int  n_pairs = 5 
)

Parameters:
n_pairs,: how many track pairs will be considered (maximum) a value of -1 means full combinatorics.

Definition at line 104 of file CrossingPtBasedLinearizationPointFinder.cc.

Referenced by clone().

00105                                                           :
00106         useMatrix ( false ) , theNPairs ( n_pairs ), theMatrix ( 0 ),
00107         theAlgo ( algo.clone() )
00108 {}

CrossingPtBasedLinearizationPointFinder::CrossingPtBasedLinearizationPointFinder ( const RecTracksDistanceMatrix m,
const ModeFinder3d algo,
const signed int  n_pairs = -1 
)

This constructor exploits the information stored in a RecTracksDistanceMatrix object.

Parameters:
n_pairs,: how many track pairs will be considered (maximum) a value of -1 means full combinatorics.

Definition at line 110 of file CrossingPtBasedLinearizationPointFinder.cc.

00112                                :
00113         useMatrix ( m->hasCrossingPoints() ) ,
00114         theNPairs ( n_pairs ), theMatrix ( m ), theAlgo ( algo.clone() )
00115 {}

CrossingPtBasedLinearizationPointFinder::CrossingPtBasedLinearizationPointFinder ( const CrossingPtBasedLinearizationPointFinder o  ) 

Definition at line 118 of file CrossingPtBasedLinearizationPointFinder.cc.

00118                                                       :
00119         useMatrix ( o.useMatrix ), theNPairs ( o.theNPairs ),
00120         theMatrix ( o.theMatrix /* nope, we dont clone!! */ ),
00121         theAlgo ( o.theAlgo->clone() )
00122 {}

CrossingPtBasedLinearizationPointFinder::~CrossingPtBasedLinearizationPointFinder (  ) 

Definition at line 124 of file CrossingPtBasedLinearizationPointFinder.cc.

References theAlgo.

00125 {
00126     delete theAlgo;
00127 }


Member Function Documentation

virtual CrossingPtBasedLinearizationPointFinder* CrossingPtBasedLinearizationPointFinder::clone (  )  const [inline, virtual]

Clone method.

Implements LinearizationPointFinder.

Reimplemented in FsmwLinearizationPointFinder, HSMLinearizationPointFinder, LMSLinearizationPointFinder, SMSLinearizationPointFinder, and SubsetHSMLinearizationPointFinder.

Definition at line 55 of file CrossingPtBasedLinearizationPointFinder.h.

References CrossingPtBasedLinearizationPointFinder().

00055                                                                   {
00056     return new CrossingPtBasedLinearizationPointFinder ( * this );
00057   };

GlobalPoint CrossingPtBasedLinearizationPointFinder::find ( const vector< pair< GlobalPoint, float > > &   )  const [private]

calls (*theAglo) (input) can optionally save input / output in .root file

Referenced by useAllTracks().

vector<reco::TransientTrack> CrossingPtBasedLinearizationPointFinder::getBestTracks ( const vector< reco::TransientTrack > &   )  const [private]

virtual GlobalPoint CrossingPtBasedLinearizationPointFinder::getLinearizationPoint ( const vector< FreeTrajectoryState > &   )  const [virtual]

virtual GlobalPoint CrossingPtBasedLinearizationPointFinder::getLinearizationPoint ( const vector< reco::TransientTrack > &   )  const [virtual]

Method giving back the Initial Linearization Point.

GlobalPoint CrossingPtBasedLinearizationPointFinder::useAllTracks ( const vector< reco::TransientTrack > &  tracks  )  const [private]

Definition at line 152 of file CrossingPtBasedLinearizationPointFinder.cc.

References TwoTrackMinimumDistance::calculate(), end, find(), TwoTrackMinimumDistance::points(), StDecayID::status, v, x, and y.

00154 {
00155     vector< PointAndDistance > vgp;
00156     // vgp.reserve ( ( tracks.size() * ( tracks.size()-1 ) ) / 2 - 1 );
00157     TwoTrackMinimumDistance ttmd;
00158     bool status;
00159     vector<reco::TransientTrack>::const_iterator end=tracks.end();
00160     vector<reco::TransientTrack>::const_iterator endm1=(end-1);
00161     for ( std::vector<reco::TransientTrack>::const_iterator x=tracks.begin();
00162             x!=endm1 ; ++x )
00163     {
00164         for ( std::vector<reco::TransientTrack>::const_iterator y=x+1;
00165                 y!=end; ++y )
00166         {
00167          status = ttmd.calculate( (*x).impactPointState(), (*y).impactPointState() );
00168          if (status) {
00169            std::pair < GlobalPoint, GlobalPoint > pts = ttmd.points();
00170            std::pair < GlobalPoint , float > v ( ( pts.second + pts.first ) / 2. ,
00171                  ( pts.second - pts.first ).mag() );
00172            vgp.push_back( v );
00173          } // If sth goes wrong, we just dont add. Who cares?
00174         }
00175     }
00176     if (! vgp.size() )
00177     {
00178         return FallbackLinearizationPointFinder().getLinearizationPoint ( tracks );
00179     }
00180     return find ( vgp );
00181 }

GlobalPoint CrossingPtBasedLinearizationPointFinder::useFullMatrix ( const vector< reco::TransientTrack > &   )  const [private]


Member Data Documentation

ModeFinder3d* CrossingPtBasedLinearizationPointFinder::theAlgo [private]

Definition at line 68 of file CrossingPtBasedLinearizationPointFinder.h.

Referenced by ~CrossingPtBasedLinearizationPointFinder().

const RecTracksDistanceMatrix* CrossingPtBasedLinearizationPointFinder::theMatrix [protected]

Definition at line 61 of file CrossingPtBasedLinearizationPointFinder.h.

signed int CrossingPtBasedLinearizationPointFinder::theNPairs [protected]

Definition at line 60 of file CrossingPtBasedLinearizationPointFinder.h.

const bool CrossingPtBasedLinearizationPointFinder::useMatrix [protected]

Definition at line 57 of file CrossingPtBasedLinearizationPointFinder.h.


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:17:00 2009 for CMSSW by  doxygen 1.5.4