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