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
00050 float operator()(float pt,
00051 const PixelRecoPointRZ & point1,
00052 const PixelRecoPointRZ & point2,
00053 Consecutive consecutive = notAssumeConsecutive,
00054 float transverseIP = 0.) const;
00055
00056 private:
00057
00058 MSLayer theLayer;
00059 MSLayersKeeper const * theLayerKeeper;
00060 static const float x0ToSigma;
00061
00062 };
00063 #endif