Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:39

0001 /*
0002  *
0003 * This is a part of CTPPS offline software.
0004 * Author:
0005 *   Fabrizio Ferro (ferro@ge.infn.it)
0006 *   Enrico Robutti (robutti@ge.infn.it)
0007 *   Fabio Ravera   (fabio.ravera@cern.ch)
0008 *
0009 */
0010 #ifndef RecoPPS_Local_RPixDetPatternFinder_H
0011 #define RecoPPS_Local_RPixDetPatternFinder_H
0012 
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 
0015 #include "DataFormats/Common/interface/DetSetVector.h"
0016 #include "DataFormats/Common/interface/DetSet.h"
0017 
0018 #include "DataFormats/CTPPSReco/interface/CTPPSPixelRecHit.h"
0019 #include "DataFormats/CTPPSDetId/interface/CTPPSPixelDetId.h"
0020 
0021 #include "Geometry/VeryForwardGeometryBuilder/interface/CTPPSGeometry.h"
0022 #include "DataFormats/Math/interface/Error.h"
0023 
0024 #include <vector>
0025 
0026 class RPixDetPatternFinder {
0027 public:
0028   RPixDetPatternFinder(edm::ParameterSet const &parameterSet) {}
0029 
0030   virtual ~RPixDetPatternFinder(){};
0031 
0032   typedef struct {
0033     CTPPSGeometry::Vector globalPoint;
0034     math::Error<3>::type globalError;
0035     CTPPSPixelRecHit recHit;
0036     CTPPSPixelDetId detId;
0037   } PointInPlane;
0038   typedef std::vector<PointInPlane> Road;
0039 
0040   void setHits(const edm::DetSetVector<CTPPSPixelRecHit> *hitVector) { hitVector_ = hitVector; }
0041   virtual void findPattern(bool *is2planepot) = 0;
0042   void clear() { patternVector_.clear(); }
0043   std::vector<Road> const &getPatterns() const { return patternVector_; }
0044   void setGeometry(const CTPPSGeometry *geometry) { geometry_ = geometry; }
0045 
0046 protected:
0047   const edm::DetSetVector<CTPPSPixelRecHit> *hitVector_;
0048   std::vector<Road> patternVector_;
0049   const CTPPSGeometry *geometry_;
0050 };
0051 
0052 #endif