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