CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/CalibTracker/SiStripHitEfficiency/interface/TrajectoryAtInvalidHit.h

Go to the documentation of this file.
00001 #ifndef TrajectoryAtInvalidHit_H
00002 #define TrajectoryAtInvalidHit_H
00003 
00004 // Class to hold the trajectory information at a possibly invalid hit
00005 // For matched layers, the invalid hit on the trajectory is located
00006 // on the matched surface. To compare with rechits propagate the 
00007 // information to the actual sensor surface for rphi or stereo 
00008 
00009 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
00010 #include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementError.h"
00011 #include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementVector.h"
00012 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00013 #include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h"
00014 
00015 class Topology;
00016 class TransientTrackingRecHit;
00017 class StripTopology;
00018 class PixelTopology;
00019 class TrajectoryAtInvalidHit {
00020 public:
00021 
00022   TrajectoryAtInvalidHit( const TrajectoryMeasurement&, 
00023                         const TrackerGeometry * tracker, 
00024                         const Propagator& propagator,
00025                         const unsigned int mono = 0);
00026 
00027   double localX() const;
00028   double localY() const;
00029   double localErrorX() const;
00030   double localErrorY() const;
00031 
00032   double localDxDz() const;
00033   double localDyDz() const;
00034 
00035   double localZ() const;
00036 
00037   double globalX() const;
00038   double globalY() const;
00039   double globalZ() const;
00040 
00041   unsigned int monodet_id() const;
00042   bool withinAcceptance() const;
00043   bool validHit() const;
00044 
00045   bool isDoubleSided(unsigned int iidd) const;
00046   TrajectoryStateOnSurface tsos() const;
00047 
00048 private:
00049 
00050   TrajectoryStateOnSurface theCombinedPredictedState;
00051   float locX,locY, locZ;
00052   float locXError, locYError;
00053   float locDxDz, locDyDz;
00054   float globX, globY, globZ;
00055   unsigned int iidd;
00056   bool acceptance;
00057   bool hasValidHit;
00058 
00059   ConstReferenceCountingPointer<TransientTrackingRecHit> theHit;
00060 };
00061 
00062 #endif