Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:59:53

0001 #ifndef TrajectoryAtInvalidHit_H
0002 #define TrajectoryAtInvalidHit_H
0003 
0004 // Class to hold the trajectory information at a possibly invalid hit
0005 // For matched layers, the invalid hit on the trajectory is located
0006 // on the matched surface. To compare with rechits propagate the
0007 // information to the actual sensor surface for rphi or stereo
0008 
0009 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
0010 #include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementError.h"
0011 #include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementVector.h"
0012 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0013 #include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h"
0014 
0015 class Topology;
0016 class TrackingRecHit;
0017 class StripTopology;
0018 class PixelTopology;
0019 class TrackerTopology;
0020 
0021 class TrajectoryAtInvalidHit {
0022 public:
0023   TrajectoryAtInvalidHit(const TrajectoryMeasurement&,
0024                          const TrackerTopology* tTopo,
0025                          const TrackerGeometry* tracker,
0026                          const Propagator& propagator,
0027                          const unsigned int mono = 0);
0028 
0029   double localX() const;
0030   double localY() const;
0031   double localErrorX() const;
0032   double localErrorY() const;
0033 
0034   double localDxDz() const;
0035   double localDyDz() const;
0036 
0037   double localZ() const;
0038 
0039   double globalX() const;
0040   double globalY() const;
0041   double globalZ() const;
0042 
0043   unsigned int monodet_id() const;
0044   bool withinAcceptance() const;
0045   bool validHit() const;
0046 
0047   bool isDoubleSided(unsigned int iidd, const TrackerTopology* tTopo) const;
0048   TrajectoryStateOnSurface tsos() const;
0049 
0050 private:
0051   TrajectoryStateOnSurface theCombinedPredictedState;
0052   float locX, locY, locZ;
0053   float locXError, locYError;
0054   float locDxDz, locDyDz;
0055   float globX, globY, globZ;
0056   unsigned int iidd;
0057   bool acceptance;
0058   bool hasValidHit;
0059 
0060   TrackingRecHit::ConstRecHitPointer theHit;
0061 };
0062 
0063 #endif