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 class PixelRecoLineRZ;
00013
00014 class MSLayersAtAngle {
00015
00016 public:
00017 MSLayersAtAngle() { }
00018 MSLayersAtAngle(const std::vector<MSLayer> & layers);
00019 void update(const MSLayer & layer);
00020 const MSLayer * findLayer(const MSLayer & layer) const;
00021
00022 float sumX0D(const PixelRecoPointRZ & pointI,
00023 const PixelRecoPointRZ & pointO,
00024 float tip = 0.) const;
00025 float sumX0D(const PixelRecoPointRZ & pointI,
00026 const PixelRecoPointRZ & pointM,
00027 const PixelRecoPointRZ & pointO,
00028 float tip = 0.) const;
00029
00030 int size() const { return theLayers.size(); }
00031 void print() const;
00032
00033 private:
00034 std::vector<MSLayer> theLayers;
00035
00036 private:
00037 typedef std::vector<MSLayer>::const_iterator LayerItr;
00038 LayerItr findLayer(const PixelRecoPointRZ & point,
00039 LayerItr i1, LayerItr i2) const;
00040 float sum2RmRn(LayerItr i1, LayerItr i2,
00041 float rTarget, const PixelRecoLineRZ & line) const;
00042 };
00043
00044 #endif