CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/RecoTracker/TkMSParametrization/src/MSLayersAtAngle.h

Go to the documentation of this file.
00001 #ifndef MSLayersAtAngle_H
00002 #define MSLayersAtAngle_H
00003 
00008 #include <vector>
00009 #include <cmath>
00010 
00011 #include "RecoTracker/TkMSParametrization/interface/MSLayer.h"
00012 #include "FWCore/Utilities/interface/GCC11Compatibility.h"
00013 
00014 class PixelRecoLineRZ;
00015 
00016 class dso_hidden MSLayersAtAngle {
00017 
00018 public:
00019   MSLayersAtAngle() { }
00020   MSLayersAtAngle(const std::vector<MSLayer> & layers);
00021   void update(const MSLayer & layer);
00022   const MSLayer * findLayer(const MSLayer & layer) const;
00023 
00024   float sumX0D(const PixelRecoPointRZ & pointI,
00025                const PixelRecoPointRZ & pointO,
00026                float tip = 0.) const;
00027   float sumX0D(const PixelRecoPointRZ & pointI,
00028                const PixelRecoPointRZ & pointM,
00029                const PixelRecoPointRZ & pointO,
00030                float tip = 0.) const;
00031 
00032   int size() const { return theLayers.size(); }
00033   void print() const;
00034 
00035 private:
00036   std::vector<MSLayer> theLayers;
00037 
00038 private:
00039   typedef std::vector<MSLayer>::const_iterator LayerItr;
00040   LayerItr findLayer(const PixelRecoPointRZ & point,
00041                      LayerItr i1, LayerItr i2) const;
00042   float sum2RmRn(LayerItr i1, LayerItr i2,
00043                  float rTarget, const PixelRecoLineRZ & line) const;
00044 };
00045 
00046 #endif