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 (AssPoint newHit)
 add hits to the hit list. More...
 
virtual void add (std::shared_ptr< DTHitPairForFit > hit, DTEnums::DTCellSide code)
 
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 (const AssPointCont &hits, LocalPoint &position, LocalVector &direction, double chi2, const AlgebraicSymMatrix &covMat, const DTSuperLayer *sl)
 
virtual const AssPointConthits () 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...
 
virtual void sett0 (double &t0)
 set t0 More...
 
const DTSuperLayersuperLayer () const
 the super layer on which relies More...
 
virtual double t0 () const
 the t0 of the segment More...
 
virtual ~DTSegmentCand ()
 Destructor. More...
 

Private Attributes

std::vector< DTSLRecClusterForFittheClus
 

Additional Inherited Members

- Public Types inherited from DTSegmentCand
typedef std::pair
< std::shared_ptr
< DTHitPairForFit >
, DTEnums::DTCellSide
AssPoint
 
typedef std::set< AssPoint,
AssPointLessZ
AssPointCont
 
- Static Protected Attributes inherited from DTSegmentCand
static const double chi2max =20.
 
static const 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

Modification:

Definition at line 29 of file DTSegmentExtendedCand.h.

Constructor & Destructor Documentation

DTSegmentExtendedCand::DTSegmentExtendedCand ( DTSegmentCand cand)
inline

Definition at line 35 of file DTSegmentExtendedCand.h.

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

Definition at line 40 of file DTSegmentExtendedCand.h.

40 {}

Member Function Documentation

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

Definition at line 43 of file DTSegmentExtendedCand.h.

References theClus.

Referenced by DTCombinatorialExtendedPatternReco::extendCandidates().

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

Definition at line 47 of file DTSegmentExtendedCand.h.

References theClus.

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

Reimplemented from DTSegmentCand.

Definition at line 43 of file DTSegmentExtendedCand.cc.

References HLT_FULL_cff::chi2, and DTSegmentCand::nHits().

Referenced by DTCombinatorialExtendedPatternReco::buildSegments().

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

Definition at line 29 of file DTSegmentExtendedCand.cc.

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

Referenced by DTCombinatorialExtendedPatternReco::extendCandidates().

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

Reimplemented from DTSegmentCand.

Definition at line 39 of file DTSegmentExtendedCand.cc.

References DTSegmentCand::nHits().

Referenced by DTCombinatorialExtendedPatternReco::extendCandidates().

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

Member Data Documentation

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

Definition at line 71 of file DTSegmentExtendedCand.h.

Referenced by addClus(), and clusters().