Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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