Back to home page

Project CMSSW displayed by LXR

 
 

    


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   // as used in seeding
0030   // z at beamline, point on two layers
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