File indexing completed on 2024-04-06 12:28:51
0001 #ifndef MSLayersAtAngle_H
0002 #define MSLayersAtAngle_H
0003
0004
0005
0006
0007
0008 #include <vector>
0009 #include <cmath>
0010 #include "FWCore/Utilities/interface/Visibility.h"
0011
0012 #include "RecoTracker/TkMSParametrization/interface/MSLayer.h"
0013
0014 class PixelRecoLineRZ;
0015
0016 class dso_hidden MSLayersAtAngle {
0017 public:
0018 MSLayersAtAngle() {}
0019 MSLayersAtAngle(const std::vector<MSLayer>& layers);
0020 void update(const MSLayer& layer);
0021 const MSLayer* findLayer(const MSLayer& layer) const;
0022
0023 float sumX0D(const PixelRecoPointRZ& pointI, const PixelRecoPointRZ& pointO) const;
0024
0025 float sumX0D(int il, int ol, const PixelRecoPointRZ& pointI, const PixelRecoPointRZ& pointO) const;
0026
0027 float sumX0D(const PixelRecoPointRZ& pointI, const PixelRecoPointRZ& pointM, const PixelRecoPointRZ& pointO) const;
0028
0029
0030
0031 float sumX0D(float zV, int il, int ol, const PixelRecoPointRZ& pointI, const PixelRecoPointRZ& pointO) const;
0032
0033 int size() const { return theLayers.size(); }
0034 void print() const;
0035
0036 private:
0037 std::vector<MSLayer> theLayers;
0038 std::vector<int> indeces;
0039
0040 private:
0041 void init();
0042
0043 typedef std::vector<MSLayer>::const_iterator LayerItr;
0044 LayerItr findLayer(const PixelRecoPointRZ& point, LayerItr i1, LayerItr i2) const;
0045 float sum2RmRn(LayerItr i1, LayerItr i2, float rTarget, const SimpleLineRZ& line) const;
0046 };
0047
0048 #endif