CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisation.h

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