CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/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 
00012 class MSLayersKeeper;
00013 class PixelRecoPointRZ;
00014 class DetLayer;
00015 
00016 
00017 
00018 class MultipleScatteringParametrisation {
00019 
00020 public:
00021 
00022   enum X0Source { useDetLayer, useX0AtEta, useX0DataAveraged };
00023   enum Consecutive { notAssumeConsecutive, useConsecutive };
00024 
00025   MultipleScatteringParametrisation( const DetLayer* layer, 
00026                                      const edm::EventSetup &iSetup,
00027                                      X0Source x0source = useX0AtEta);
00028 
00029 
00032   float operator()(float pt, float cotTheta, float transverseIP = 0.) const;
00033 
00037   float operator()(float pt,
00038                    float cotTheta,
00039                    const PixelRecoPointRZ & point,
00040                    float transverseIP = 0.) const;
00041 
00046   float operator()(float pt,
00047                    const PixelRecoPointRZ & point1,
00048                    const PixelRecoPointRZ & point2,
00049                    Consecutive consecutive = notAssumeConsecutive,
00050                    float transverseIP = 0.) const;
00051 
00052 private:
00053 
00054   MSLayer theLayer;
00055   MSLayersKeeper * theLayerKeeper;
00056   static const float x0ToSigma;
00057 
00058 };
00059 #endif