CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Attributes
DTSegmentExtendedCand Class Reference

#include <DTSegmentExtendedCand.h>

Inheritance diagram for DTSegmentExtendedCand:
DTSegmentCand

Classes

struct  DTSLRecClusterForFit
 

Public Member Functions

void addClus (const DTSegmentExtendedCand::DTSLRecClusterForFit &clus)
 
std::vector
< DTSegmentExtendedCand::DTSLRecClusterForFit
clusters () const
 
 DTSegmentExtendedCand (DTSegmentCand *cand)
 
virtual bool good () const
 
bool isCompatible (const DTSegmentExtendedCand::DTSLRecClusterForFit &clus)
 
virtual unsigned int nHits () const
 
virtual ~DTSegmentExtendedCand ()
 
- Public Member Functions inherited from DTSegmentCand
virtual void add (DTHitPairForFit *hit, DTEnums::DTCellSide code)
 add hits to the hit list. More...
 
virtual double chi2 () const
 the chi2 (NOT chi2/NDOF) of the fit More...
 
virtual double chi2ndof () const
 the chi2/NDOF of the fit More...
 
virtual AssPointCont conflictingHitPairs (const DTSegmentCand &seg) const
 
virtual AlgebraicSymMatrix covMatrix () const
 the covariance matrix More...
 
virtual LocalVector direction () const
 
 DTSegmentCand (AssPointCont &hits, const DTSuperLayer *sl)
 Constructor. More...
 
 DTSegmentCand (AssPointCont hits, LocalPoint &position, LocalVector &direction, double chi2, AlgebraicSymMatrix covMat, const DTSuperLayer *sl)
 
virtual AssPointCont hits () const
 the used hits More...
 
virtual bool hitsShareLayer () const
 
virtual unsigned int NDOF () const
 
virtual int nLayers () const
 number of different layers with hits More...
 
virtual int nSharedHitPairs (const DTSegmentCand &seg) const
 number of shared hit pair with other segment candidate More...
 
 operator DTChamberRecSegment2D * () const
 convert this DTSegmentCand into a DTChamberRecSegment2D More...
 
 operator DTSLRecSegment2D * () const
 convert this DTSegmentCand into a DTRecSegment2D More...
 
virtual bool operator< (const DTSegmentCand &seg)
 less operator based on nHits and chi2 More...
 
virtual bool operator== (const DTSegmentCand &seg)
 equality operator based on position, direction, chi2 and nHits More...
 
virtual LocalPoint position () const
 
virtual void removeHit (AssPoint hit)
 remove hit from the candidate More...
 
virtual void setChi2 (double &chi2)
 set chi2 More...
 
virtual void setCovMatrix (AlgebraicSymMatrix &cov)
 set the cov matrix More...
 
virtual void setDirection (LocalVector &dir)
 set direction More...
 
virtual void setPosition (LocalPoint &pos)
 set position More...
 
const DTSuperLayersuperLayer () const
 the super layer on which relies More...
 
virtual ~DTSegmentCand ()
 Destructor. More...
 

Private Attributes

std::vector< DTSLRecClusterForFittheClus
 

Additional Inherited Members

- Public Types inherited from DTSegmentCand
typedef std::pair
< DTHitPairForFit
*, DTEnums::DTCellSide
AssPoint
 
typedef std::set< AssPoint,
AssPointLessZ
AssPointCont
 
- Static Protected Attributes inherited from DTSegmentCand
static double chi2max =20.
 
static unsigned int nHitsMin =3
 

Detailed Description

Description:

detailed description

Author
: Stefano Lacaprara - INFN LNL stefa.nosp@m.no.l.nosp@m.acapr.nosp@m.ara@.nosp@m.pd.in.nosp@m.fn.i.nosp@m.t $date : 15/05/2008 15:33:52 CEST $

Modification:

Definition at line 30 of file DTSegmentExtendedCand.h.

Constructor & Destructor Documentation

DTSegmentExtendedCand::DTSegmentExtendedCand ( DTSegmentCand cand)
inline

Definition at line 36 of file DTSegmentExtendedCand.h.

36  : DTSegmentCand(*cand),
37  theClus(std::vector<DTSLRecClusterForFit>()) {
38  }
DTSegmentCand(AssPointCont &hits, const DTSuperLayer *sl)
Constructor.
std::vector< DTSLRecClusterForFit > theClus
virtual DTSegmentExtendedCand::~DTSegmentExtendedCand ( )
inlinevirtual

Definition at line 41 of file DTSegmentExtendedCand.h.

41 {}

Member Function Documentation

void DTSegmentExtendedCand::addClus ( const DTSegmentExtendedCand::DTSLRecClusterForFit clus)
inline

Definition at line 44 of file DTSegmentExtendedCand.h.

References theClus.

Referenced by DTCombinatorialExtendedPatternReco::extendCandidates().

44  {
45  theClus.push_back(clus);
46  }
std::vector< DTSLRecClusterForFit > theClus
std::vector<DTSegmentExtendedCand::DTSLRecClusterForFit> DTSegmentExtendedCand::clusters ( ) const
inline

Definition at line 48 of file DTSegmentExtendedCand.h.

References theClus.

48  {
49  return theClus;
50  }
std::vector< DTSLRecClusterForFit > theClus
bool DTSegmentExtendedCand::good ( ) const
virtual

Reimplemented from DTSegmentCand.

Definition at line 44 of file DTSegmentExtendedCand.cc.

References DTSegmentCand::nHits().

Referenced by DTCombinatorialExtendedPatternReco::buildSegments().

44  {
45  if (superLayer()->id().superLayer()==2)
46  return DTSegmentCand::nHits()>=nHitsMin && chi2()/NDOF() < chi2max*2.;
47  return DTSegmentCand::nHits()>=nHitsMin && chi2()/NDOF() < chi2max ;
48 }
static unsigned int nHitsMin
virtual unsigned int NDOF() const
Definition: DTSegmentCand.h:88
virtual double chi2() const
the chi2 (NOT chi2/NDOF) of the fit
Definition: DTSegmentCand.h:65
const DTSuperLayer * superLayer() const
the super layer on which relies
Definition: DTSegmentCand.h:77
virtual unsigned int nHits() const
Definition: DTSegmentCand.h:62
static double chi2max
bool DTSegmentExtendedCand::isCompatible ( const DTSegmentExtendedCand::DTSLRecClusterForFit clus)

Definition at line 30 of file DTSegmentExtendedCand.cc.

References funct::cos(), DTSegmentExtendedCand::DTSLRecClusterForFit::err, max(), DTSegmentExtendedCand::DTSLRecClusterForFit::pos, position, mathSSE::sqrt(), LocalError::xx(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by DTCombinatorialExtendedPatternReco::extendCandidates().

30  {
31  LocalPoint posAtSL =
32  position()+direction()*(clus.pos.z()-position().z())/cos(direction().theta());
33  // cout << "pos :" << clus.pos << " posAtSL " << posAtSL << endl;
34  static float errScaleFact=10.;
35  static float minError=25.; // (cm)
36  // cout << "clus.err.xx() " << clus.err << endl;
37  return fabs((posAtSL-clus.pos).x())<max(errScaleFact*sqrt(clus.err.xx()), minError);
38 }
float xx() const
Definition: LocalError.h:24
Geom::Theta< T > theta() const
Definition: PV3DBase.h:74
const T & max(const T &a, const T &b)
T sqrt(T t)
Definition: SSEVec.h:46
T z() const
Definition: PV3DBase.h:63
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
virtual LocalPoint position() const
Definition: DTSegmentCand.h:80
virtual LocalVector direction() const
Definition: DTSegmentCand.h:83
unsigned int DTSegmentExtendedCand::nHits ( void  ) const
virtual

Reimplemented from DTSegmentCand.

Definition at line 40 of file DTSegmentExtendedCand.cc.

References DTSegmentCand::nHits().

Referenced by DTCombinatorialExtendedPatternReco::extendCandidates().

40  {
41  return DTSegmentCand::nHits()+theClus.size();
42 }
std::vector< DTSLRecClusterForFit > theClus
virtual unsigned int nHits() const
Definition: DTSegmentCand.h:62

Member Data Documentation

std::vector<DTSLRecClusterForFit> DTSegmentExtendedCand::theClus
private

Definition at line 72 of file DTSegmentExtendedCand.h.

Referenced by addClus(), and clusters().