Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:57

0001 #ifndef RecoEGAMMA_ConversionForwardEstimator_H
0002 #define RecoEGAMMA_ConversionForwardEstimator_H
0003 
0004 /**
0005  * \class ConversionForwardEstimator
0006  *  Defines the search area in the  forward 
0007  *
0008  *  \author Nancy Marinelli, U. of Notre Dame, US
0009  */
0010 
0011 #include "TrackingTools/DetLayers/interface/MeasurementEstimator.h"
0012 #include "DataFormats/GeometryVector/interface/Vector2DBase.h"
0013 #include "DataFormats/GeometryVector/interface/LocalTag.h"
0014 
0015 #include <iostream>
0016 class RecHit;
0017 class TrajectoryStateOnSurface;
0018 class Plane;
0019 
0020 class ConversionForwardEstimator : public MeasurementEstimator {
0021 public:
0022   ConversionForwardEstimator(){};
0023   ConversionForwardEstimator(float phiRangeMin, float phiRangeMax, float dr, double nSigma = 3.)
0024       : thePhiRangeMin(phiRangeMin), thePhiRangeMax(phiRangeMax), dr_(dr), theNSigma(nSigma) {
0025     //std::cout << " ConversionForwardEstimator CTOR " << std::endl;
0026   }
0027 
0028   // zero value indicates incompatible ts - hit pair
0029   std::pair<bool, double> estimate(const TrajectoryStateOnSurface& ts, const TrackingRecHit& hit) const override;
0030   bool estimate(const TrajectoryStateOnSurface& ts, const Plane& plane) const override;
0031   ConversionForwardEstimator* clone() const override { return new ConversionForwardEstimator(*this); }
0032 
0033   Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface& ts, const Plane& plane) const override;
0034 
0035   double nSigmaCut() const { return theNSigma; }
0036 
0037 private:
0038   float thePhiRangeMin;
0039   float thePhiRangeMax;
0040   float dr_;
0041   double theNSigma;
0042 };
0043 
0044 #endif  // ConversionForwardEstimator_H