CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPETemplateReco.h

Go to the documentation of this file.
00001 #ifndef RecoLocalTracker_SiPixelRecHits_PixelCPETemplateReco_H
00002 #define RecoLocalTracker_SiPixelRecHits_PixelCPETemplateReco_H
00003 
00004 #include "PixelCPEBase.h"
00005 
00006 // Already in the base class
00007 //#include "Geometry/CommonDetUnit/interface/GeomDetType.h"
00008 //#include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h"
00009 //#include "Geometry/TrackerGeometryBuilder/interface/RectangularPixelTopology.h"
00010 //#include "Geometry/CommonDetAlgo/interface/MeasurementPoint.h"
00011 //#include "Geometry/CommonDetAlgo/interface/MeasurementError.h"
00012 //#include "Geometry/Surface/interface/GloballyPositioned.h"
00013 //#include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 
00015 
00016 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
00017 #include "SiPixelTemplate.h"
00018 #else
00019 #include "SiPixelTemplate.h"
00020 #endif
00021 
00022 #include <utility>
00023 #include <vector>
00024 
00025 
00026 #if 0
00027 
00031 #endif
00032 
00033 class MagneticField;
00034 class PixelCPETemplateReco : public PixelCPEBase
00035 {
00036  public:
00037   // PixelCPETemplateReco( const DetUnit& det );
00038   PixelCPETemplateReco(edm::ParameterSet const& conf, const MagneticField *, const SiPixelLorentzAngle *, const SiPixelTemplateDBObject *);
00039   ~PixelCPETemplateReco();
00040 
00041   // We only need to implement measurementPosition, since localPosition() from
00042   // PixelCPEBase will call it and do the transformation
00043   // Gavril : put it back
00044   LocalPoint localPosition (const SiPixelCluster& cluster, const GeomDetUnit & det) const; 
00045   
00046   // However, we do need to implement localError().
00047   LocalError localError   (const SiPixelCluster& cl, const GeomDetUnit & det) const;
00048   
00049   MeasurementPoint measurementPosition ( const SiPixelCluster&, const GeomDetUnit & det) const;
00050 
00051   // &&& Do we need to overload measurementError() ? 
00052 
00053  protected:
00054   //--- These functions are no longer needed, yet they are declared 
00055   //--- pure virtual in the base class.
00056   float xpos( const SiPixelCluster& ) const { return -999000.0; }  // &&& should abort
00057   float ypos( const SiPixelCluster& ) const { return -999000.0; }  // &&& should abort
00058 
00059  private:
00060   // Template storage
00061   mutable SiPixelTemplate templ_ ;
00062  //---------------------------
00063   // [Morris, 6/25/08]
00064   // Cache the template ID number
00065   mutable int templID_;   // in general this will change in time and via DetID
00066   
00067   // The result of PixelTemplateReco2D
00068   mutable float templXrec_ ; 
00069   mutable float templYrec_ ;
00070   mutable float templSigmaX_ ;
00071   mutable float templSigmaY_ ;
00072   // Add new information produced by SiPixelTemplateReco::PixelTempReco2D &&&
00073   // These can only be accessed if we change silicon pixel data formats and add them to the rechit
00074   mutable float templProbX_ ;
00075   mutable float templProbY_ ;
00076 
00077   mutable float templProbQ_;
00078 
00079   mutable int templQbin_ ;
00080 
00081   mutable int speed_ ;
00082 
00083   mutable int ierr;
00084 
00085   mutable bool UseClusterSplitter_;
00086 
00087   mutable bool DoCosmics_;
00088 
00089   mutable bool LoadTemplatesFromDB_;
00090 
00091 };
00092 
00093 #endif
00094 
00095 
00096 
00097