CMS 3D CMS Logo

Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes

TSiStripRecHit2DLocalPos Class Reference

#include <TSiStripRecHit2DLocalPos.h>

Inheritance diagram for TSiStripRecHit2DLocalPos:
TransientTrackingRecHit TrackingRecHit ReferenceCountedPoolAllocated BlockWipedPoolAllocated

List of all members.

Public Types

typedef SiStripRecHit2D::ClusterRef SiStripClusterRef
typedef edm::LazyGetter
< SiStripCluster >::value_ref 
SiStripRegionalClusterRef

Public Member Functions

virtual bool canImproveWithTrack () const
virtual RecHitPointer clone (const TrajectoryStateOnSurface &ts) const
const
StripClusterParameterEstimator
cpe () const
virtual const GeomDetUnitdetUnit () const
virtual int dimension () const
virtual void getKfComponents (KfComponentsHolder &holder) const
virtual const TrackingRecHithit () const
virtual LocalPoint localPosition () const
virtual LocalError localPositionError () const
virtual AlgebraicVector parameters () const
virtual AlgebraicSymMatrix parametersError () const
virtual AlgebraicMatrix projectionMatrix () const
virtual std::vector
< TrackingRecHit * > 
recHits ()
 Non-const access to component RecHits (if any)
virtual std::vector< const
TrackingRecHit * > 
recHits () const
 Access to component RecHits (if any)
const SiStripRecHit2DspecificHit () const
virtual ~TSiStripRecHit2DLocalPos ()

Static Public Member Functions

static RecHitPointer build (const GeomDet *geom, const SiStripRecHit2D *rh, const StripClusterParameterEstimator *cpe, float weight=1., float annealing=1., bool computeCoarseLocalPosition=false)
static RecHitPointer build (const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripRegionalClusterRef clust, const StripClusterParameterEstimator *cpe, float weight=1., float annealing=1.)
static RecHitPointer build (const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripClusterRef clust, const StripClusterParameterEstimator *cpe, float weight=1., float annealing=1.)

Private Member Functions

virtual TSiStripRecHit2DLocalPosclone () const
virtual ConstRecHitContainer transientHits () const
 Composite interface: returns the component hits, if any.
 TSiStripRecHit2DLocalPos (const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripClusterRef clust, const StripClusterParameterEstimator *cpe, float weight, float annealing)
 Creates the TrackingRecHit internally, avoids redundent cloning.
 TSiStripRecHit2DLocalPos (const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripRegionalClusterRef clust, const StripClusterParameterEstimator *cpe, float weight, float annealing)
 TSiStripRecHit2DLocalPos (const GeomDet *geom, const SiStripRecHit2D *rh, const StripClusterParameterEstimator *cpe, float weight, float annealing, bool computeCoarseLocalPosition)

Private Attributes

const
StripClusterParameterEstimator
theCPE
SiStripRecHit2D theHitData

Detailed Description

Definition at line 12 of file TSiStripRecHit2DLocalPos.h.


Member Typedef Documentation

Definition at line 15 of file TSiStripRecHit2DLocalPos.h.

Definition at line 17 of file TSiStripRecHit2DLocalPos.h.


Constructor & Destructor Documentation

virtual TSiStripRecHit2DLocalPos::~TSiStripRecHit2DLocalPos ( ) [inline, virtual]

Definition at line 19 of file TSiStripRecHit2DLocalPos.h.

{}
TSiStripRecHit2DLocalPos::TSiStripRecHit2DLocalPos ( const GeomDet geom,
const SiStripRecHit2D rh,
const StripClusterParameterEstimator cpe,
float  weight,
float  annealing,
bool  computeCoarseLocalPosition 
) [inline, private]

Definition at line 89 of file TSiStripRecHit2DLocalPos.h.

References SiStripRecHit2D::cluster(), SiStripRecHit2D::cluster_regional(), GeomDet::geographicalId(), relativeConstraints::geom, BaseSiTrackerRecHit2DLocalPos::hasPositionAndError(), ClusterParameterEstimator< T >::localParameters(), LogDebug, theCPE, and theHitData.

Referenced by build(), and clone().

                                                             : 
    TransientTrackingRecHit(geom, weight, annealing), theCPE(cpe) 
    {
      if (rh->hasPositionAndError() || !computeCoarseLocalPosition)
        theHitData = SiStripRecHit2D(*rh);
      else{
        if (computeCoarseLocalPosition && !cpe){
          edm::LogError("TSiStripRecHit2DLocalPos")<<" trying to compute coarse local position but CPE is not provided. Not computing local position from disk for the transient tracking rechit.";
          theHitData = SiStripRecHit2D(*rh);
        }
        else{
          const GeomDetUnit* gdu = dynamic_cast<const GeomDetUnit*>(geom);
          LogDebug("TSiStripRecHit2DLocalPos")<<"calculating coarse position/error.";
          if (gdu){
            if (rh->cluster().isNonnull()){
              StripClusterParameterEstimator::LocalValues lval= theCPE->localParameters(*rh->cluster(), *gdu);
              theHitData = SiStripRecHit2D(lval.first, lval.second, geom->geographicalId(),rh->cluster());
            }else{
              StripClusterParameterEstimator::LocalValues lval= theCPE->localParameters(*rh->cluster_regional(), *gdu);
              theHitData = SiStripRecHit2D(lval.first, lval.second, geom->geographicalId(),rh->cluster_regional());
            }
          }else{
            edm::LogError("TSiStripRecHit2DLocalPos")<<" geomdet does not cast into geomdet unit. cannot create strip local parameters.";
            theHitData = SiStripRecHit2D(*rh);
          }
        }
      }
    }
TSiStripRecHit2DLocalPos::TSiStripRecHit2DLocalPos ( const LocalPoint pos,
const LocalError err,
const GeomDet det,
const SiStripClusterRef  clust,
const StripClusterParameterEstimator cpe,
float  weight,
float  annealing 
) [inline, private]

Creates the TrackingRecHit internally, avoids redundent cloning.

Definition at line 122 of file TSiStripRecHit2DLocalPos.h.

                                                           :
    TransientTrackingRecHit(det, weight, annealing), theHitData(pos, err, det->geographicalId(), clust), 
    theCPE(cpe){} 
TSiStripRecHit2DLocalPos::TSiStripRecHit2DLocalPos ( const LocalPoint pos,
const LocalError err,
const GeomDet det,
const SiStripRegionalClusterRef  clust,
const StripClusterParameterEstimator cpe,
float  weight,
float  annealing 
) [inline, private]

Definition at line 135 of file TSiStripRecHit2DLocalPos.h.

                                                           :
    TransientTrackingRecHit(det, weight, annealing), theHitData(pos, err, det->geographicalId(), clust), 
    theCPE(cpe){} 

Member Function Documentation

static RecHitPointer TSiStripRecHit2DLocalPos::build ( const GeomDet geom,
const SiStripRecHit2D rh,
const StripClusterParameterEstimator cpe,
float  weight = 1.,
float  annealing = 1.,
bool  computeCoarseLocalPosition = false 
) [inline, static]
static RecHitPointer TSiStripRecHit2DLocalPos::build ( const LocalPoint pos,
const LocalError err,
const GeomDet det,
const SiStripClusterRef  clust,
const StripClusterParameterEstimator cpe,
float  weight = 1.,
float  annealing = 1. 
) [inline, static]

Definition at line 66 of file TSiStripRecHit2DLocalPos.h.

References TSiStripRecHit2DLocalPos(), and TransientTrackingRecHit::weight().

                                                                   {
    return RecHitPointer( new TSiStripRecHit2DLocalPos( pos, err, det, clust, cpe, weight, annealing));
  }
static RecHitPointer TSiStripRecHit2DLocalPos::build ( const LocalPoint pos,
const LocalError err,
const GeomDet det,
const SiStripRegionalClusterRef  clust,
const StripClusterParameterEstimator cpe,
float  weight = 1.,
float  annealing = 1. 
) [inline, static]

Definition at line 74 of file TSiStripRecHit2DLocalPos.h.

References TSiStripRecHit2DLocalPos(), and TransientTrackingRecHit::weight().

                                                                   {
    return RecHitPointer( new TSiStripRecHit2DLocalPos( pos, err, det, clust, cpe, weight, annealing));
  }
virtual bool TSiStripRecHit2DLocalPos::canImproveWithTrack ( ) const [inline, virtual]

Returns true if the clone( const TrajectoryStateOnSurface&) method returns an improved hit, false if it returns an identical copy. In order to avoid redundent copies one should call canImproveWithTrack() before calling clone( const TrajectoryStateOnSurface&).

Reimplemented from TransientTrackingRecHit.

Definition at line 49 of file TSiStripRecHit2DLocalPos.h.

{return true;}
virtual TSiStripRecHit2DLocalPos* TSiStripRecHit2DLocalPos::clone ( void  ) const [inline, private, virtual]

Implements TransientTrackingRecHit.

Definition at line 145 of file TSiStripRecHit2DLocalPos.h.

References TSiStripRecHit2DLocalPos().

Referenced by clone().

                                                  {
    return new TSiStripRecHit2DLocalPos(*this);
  }
TransientTrackingRecHit::RecHitPointer TSiStripRecHit2DLocalPos::clone ( const TrajectoryStateOnSurface ts) const [virtual]

Returns a copy of the hit with parameters and errors computed with respect to the TrajectoryStateOnSurface given as argument. For concrete hits not capable to improve their parameters and errors this method returns an exact copy, and is equivalent to clone() without arguments.

FIXME: this only uses the first cluster and ignores the others

FIXME: should report the problem somehow

Reimplemented from TransientTrackingRecHit.

Definition at line 9 of file TSiStripRecHit2DLocalPos.cc.

References build(), clone(), SiStripRecHit2D::cluster(), SiStripRecHit2D::cluster_regional(), TransientTrackingRecHit::det(), detUnit(), TransientTrackingRecHit::getAnnealingFactor(), ClusterParameterEstimator< T >::localParameters(), specificHit(), theCPE, and TransientTrackingRecHit::weight().

{
  if (theCPE != 0) {


     if(!specificHit()->cluster().isNull()){
       const SiStripCluster&  clust = *specificHit()->cluster();  
           StripClusterParameterEstimator::LocalValues lv = 
      theCPE->localParameters( clust, *detUnit(), ts);
           return TSiStripRecHit2DLocalPos::build( lv.first, lv.second, det(), 
                                                   specificHit()->cluster(), theCPE, weight(), getAnnealingFactor());
     }else{
       const SiStripCluster&  clust = *specificHit()->cluster_regional();  
       StripClusterParameterEstimator::LocalValues lv = 
         theCPE->localParameters( clust, *detUnit(), ts);
       return TSiStripRecHit2DLocalPos::build( lv.first, lv.second, det(), 
                                               specificHit()->cluster_regional(), theCPE, weight(), getAnnealingFactor());       
     }

  }
  else return clone();
}
const StripClusterParameterEstimator* TSiStripRecHit2DLocalPos::cpe ( ) const [inline]

Definition at line 57 of file TSiStripRecHit2DLocalPos.h.

References theCPE.

Referenced by ProjectedRecHit2D::ProjectedRecHit2D(), and transientHits().

{return theCPE;}
const GeomDetUnit * TSiStripRecHit2DLocalPos::detUnit ( ) const [virtual]

CAUTION: the GeomDetUnit* is zero for composite hits (matched hits in the tracker, segments in the muon). Always check this pointer before using it!

Reimplemented from TransientTrackingRecHit.

Definition at line 34 of file TSiStripRecHit2DLocalPos.cc.

References TransientTrackingRecHit::det().

Referenced by clone().

{
  return static_cast<const GeomDetUnit*>(det());
}
virtual int TSiStripRecHit2DLocalPos::dimension ( ) const [inline, virtual]

Implements TrackingRecHit.

Definition at line 33 of file TSiStripRecHit2DLocalPos.h.

References RecHit2DLocalPos::dimension(), and theHitData.

{return theHitData.dimension();}
virtual void TSiStripRecHit2DLocalPos::getKfComponents ( KfComponentsHolder holder) const [inline, virtual]
virtual const TrackingRecHit* TSiStripRecHit2DLocalPos::hit ( void  ) const [inline, virtual]

Implements TransientTrackingRecHit.

Definition at line 38 of file TSiStripRecHit2DLocalPos.h.

References theHitData.

Referenced by recHits().

{return &theHitData;};
virtual LocalPoint TSiStripRecHit2DLocalPos::localPosition ( ) const [inline, virtual]
virtual LocalError TSiStripRecHit2DLocalPos::localPositionError ( ) const [inline, virtual]
virtual AlgebraicVector TSiStripRecHit2DLocalPos::parameters ( void  ) const [inline, virtual]

Implements TrackingRecHit.

Definition at line 26 of file TSiStripRecHit2DLocalPos.h.

References RecHit2DLocalPos::parameters(), and theHitData.

{return theHitData.parameters();}
virtual AlgebraicSymMatrix TSiStripRecHit2DLocalPos::parametersError ( ) const [inline, virtual]
virtual AlgebraicMatrix TSiStripRecHit2DLocalPos::projectionMatrix ( ) const [inline, virtual]

Implements TrackingRecHit.

Definition at line 32 of file TSiStripRecHit2DLocalPos.h.

References RecHit2DLocalPos::projectionMatrix(), and theHitData.

virtual std::vector<TrackingRecHit*> TSiStripRecHit2DLocalPos::recHits ( ) [inline, virtual]

Non-const access to component RecHits (if any)

Implements TrackingRecHit.

Definition at line 43 of file TSiStripRecHit2DLocalPos.h.

References RecHit2DLocalPos::recHits(), and theHitData.

                                               {
    return theHitData.recHits();
  }
virtual std::vector<const TrackingRecHit*> TSiStripRecHit2DLocalPos::recHits ( ) const [inline, virtual]

Access to component RecHits (if any)

Implements TrackingRecHit.

Definition at line 40 of file TSiStripRecHit2DLocalPos.h.

References hit(), and TrackingRecHit::recHits().

                                                           {
    return hit()->recHits();
  }
const SiStripRecHit2D* TSiStripRecHit2DLocalPos::specificHit ( ) const [inline]

Definition at line 56 of file TSiStripRecHit2DLocalPos.h.

References theHitData.

Referenced by clone(), TkAlCaOverlapTagger::produce(), and transientHits().

{return &theHitData;};
TransientTrackingRecHit::ConstRecHitContainer TSiStripRecHit2DLocalPos::transientHits ( ) const [private, virtual]

Composite interface: returns the component hits, if any.

Reimplemented from TransientTrackingRecHit.

Definition at line 40 of file TSiStripRecHit2DLocalPos.cc.

References TSiStripRecHit1D::build(), cpe(), TransientTrackingRecHit::det(), query::result, and specificHit().

                                               {
  ConstRecHitContainer result;
  SiStripRecHit1D hit1d(specificHit());
  result.push_back(TSiStripRecHit1D::build( det(),&hit1d,
                                            cpe()));

  return result;
}

Member Data Documentation

Definition at line 87 of file TSiStripRecHit2DLocalPos.h.

Referenced by clone(), cpe(), and TSiStripRecHit2DLocalPos().