Go to the documentation of this file.00001 #ifndef MultipleScatteringParametrisation_H
00002 #define MultipleScatteringParametrisation_H
00003
00007 #include "TrackingTools/DetLayers/interface/DetLayer.h"
00008 #include "RecoTracker/TkMSParametrization/interface/PixelRecoPointRZ.h"
00009 #include "RecoTracker/TkMSParametrization/interface/MSLayer.h"
00010 #include "FWCore/Framework/interface/EventSetup.h"
00011 #include "FWCore/Utilities/interface/GCC11Compatibility.h"
00012
00013
00014 class MSLayersKeeper;
00015 class PixelRecoPointRZ;
00016 class DetLayer;
00017
00018
00019
00020 class MultipleScatteringParametrisation {
00021
00022 public:
00023
00024 static void initKeepers(const edm::EventSetup &iSetup);
00025
00026 enum X0Source { useDetLayer=0, useX0AtEta=1, useX0DataAveraged=2 };
00027 enum Consecutive { notAssumeConsecutive, useConsecutive };
00028
00029 MultipleScatteringParametrisation( const DetLayer* layer,
00030 const edm::EventSetup &iSetup,
00031 X0Source x0source = useX0AtEta);
00032
00033
00036 float operator()(float pt, float cotTheta, float transverseIP = 0.) const;
00037
00041 float operator()(float pt,
00042 float cotTheta,
00043 const PixelRecoPointRZ & point,
00044 float transverseIP=0.) const;
00045 float operator()(float pt,
00046 float cotTheta,
00047 const PixelRecoPointRZ & point, int ol) const;
00048
00049
00054 float operator()(float pt,
00055 const PixelRecoPointRZ & point1,
00056 const PixelRecoPointRZ & point2,
00057 Consecutive consecutive = notAssumeConsecutive,
00058 float transverseIP = 0.) const;
00059
00060
00061 float operator()(
00062 float pT,
00063 const PixelRecoPointRZ & pointV,
00064 const PixelRecoPointRZ & pointO,
00065 int ol) const;
00066
00067
00068 private:
00069
00070 MSLayer theLayer;
00071 MSLayersKeeper const * theLayerKeeper;
00072 static const float x0ToSigma;
00073
00074 };
00075 #endif