Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:25:06

0001 #ifndef RecoLocalTracker_SiPixelRecHits_PixelCPETemplateReco_H
0002 #define RecoLocalTracker_SiPixelRecHits_PixelCPETemplateReco_H
0003 
0004 #include "RecoLocalTracker/SiPixelRecHits/interface/PixelCPEBase.h"
0005 
0006 // Already in the base class

0007 //#include "Geometry/CommonDetUnit/interface/GeomDetType.h"

0008 //#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h"

0009 //#include "Geometry/TrackerGeometryBuilder/interface/RectangularPixelTopology.h"

0010 //#include "Geometry/CommonDetAlgo/interface/MeasurementPoint.h"

0011 //#include "Geometry/CommonDetAlgo/interface/MeasurementError.h"

0012 //#include "Geometry/Surface/interface/GloballyPositioned.h"

0013 //#include "FWCore/ParameterSet/interface/ParameterSet.h"

0014 
0015 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
0016 #include "CondFormats/SiPixelTransient/interface/SiPixelTemplate.h"
0017 #else
0018 #include "SiPixelTemplate.h"
0019 #endif
0020 
0021 #include <utility>
0022 #include <vector>
0023 
0024 #if 0
0025 /** \class PixelCPETemplateReco

0026  * Perform the position and error evaluation of pixel hits using

0027  * the Det angle to estimate the track impact angle

0028  */
0029 #endif
0030 
0031 class MagneticField;
0032 class PixelCPETemplateReco : public PixelCPEBase {
0033 public:
0034   struct ClusterParamTemplate : ClusterParam {
0035     ClusterParamTemplate(const SiPixelCluster &cl) : ClusterParam(cl) {}
0036     // The result of PixelTemplateReco2D

0037     float templXrec_;
0038     float templYrec_;
0039     float templSigmaX_;
0040     float templSigmaY_;
0041     // Add new information produced by SiPixelTemplateReco::PixelTempReco2D &&&

0042     // These can only be accessed if we change silicon pixel data formats and add them to the rechit

0043     float templProbX_;
0044     float templProbY_;
0045 
0046     float templProbQ_;
0047 
0048     int templQbin_;
0049 
0050     int ierr;
0051   };
0052 
0053   // PixelCPETemplateReco( const DetUnit& det );

0054   PixelCPETemplateReco(edm::ParameterSet const &conf,
0055                        const MagneticField *,
0056                        const TrackerGeometry &,
0057                        const TrackerTopology &,
0058                        const SiPixelLorentzAngle *,
0059                        const SiPixelTemplateDBObject *);
0060 
0061   ~PixelCPETemplateReco() override;
0062 
0063   static void fillPSetDescription(edm::ParameterSetDescription &desc);
0064 
0065 private:
0066   std::unique_ptr<ClusterParam> createClusterParam(const SiPixelCluster &cl) const override;
0067 
0068   // We only need to implement measurementPosition, since localPosition() from

0069   // PixelCPEBase will call it and do the transformation

0070   // Gavril : put it back

0071   LocalPoint localPosition(DetParam const &theDetParam, ClusterParam &theClusterParam) const override;
0072 
0073   // However, we do need to implement localError().

0074   LocalError localError(DetParam const &theDetParam, ClusterParam &theClusterParam) const override;
0075 
0076   // Template storage

0077   std::vector<SiPixelTemplateStore> thePixelTemp_;
0078 
0079   int speed_;
0080 
0081   bool UseClusterSplitter_;
0082 
0083   // Template file management (when not getting the templates from the DB)

0084   int barrelTemplateID_;
0085   int forwardTemplateID_;
0086   std::string templateDir_;
0087 
0088   //bool DoCosmics_;

0089   //bool LoadTemplatesFromDB_;

0090 };
0091 
0092 #endif