CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoTracker/TkMSParametrization/src/MSLayersKeeper.h

Go to the documentation of this file.
00001 #ifndef MSLayersKeeper_H
00002 #define MSLayersKeeper_H
00003 
00004 class DetLayer;
00005 
00006 #include "RecoTracker/TkMSParametrization/interface/MSLayer.h"
00007 #include "MSLayersAtAngle.h"
00008 #include "FWCore/Framework/interface/EventSetup.h"
00009 #include "FWCore/Utilities/interface/GCC11Compatibility.h"
00010 
00011 class dso_hidden MSLayersKeeper {
00012 public:
00013   virtual ~MSLayersKeeper() { }
00014   virtual MSLayer layer(const DetLayer* dl) const 
00015     { return MSLayer(dl,DataX0(this)); }
00016   virtual const MSLayersAtAngle & layers(float cotTheta) const = 0;  
00017   virtual void init(const edm::EventSetup &iSetup) { }
00018 protected:
00019   typedef MSLayer::DataX0 DataX0;
00020   static const DataX0 & getDataX0(const MSLayer & l) { return l.theX0Data; }
00021   static void  setDataX0(MSLayer & l, DataX0 x0Data) { l.theX0Data = x0Data; }  
00022 };
00023 
00024 #endif