00001 #ifndef MSLayersKeeperX0AtEta_H 00002 #define MSLayersKeeperX0AtEta_H 00003 00004 #include "RecoTracker/TkMSParametrization/interface/MSLayersKeeper.h" 00005 #include "FWCore/Framework/interface/EventSetup.h" 00006 class SumX0AtEtaDataProvider; 00007 class MSLayersKeeperX0Averaged; 00008 00009 class MSLayersKeeperX0AtEta : public MSLayersKeeper { 00010 public: 00011 MSLayersKeeperX0AtEta() : isInitialised(false) { } 00012 virtual ~MSLayersKeeperX0AtEta() { } 00013 virtual void init(const edm::EventSetup &iSetup); 00014 virtual const MSLayersAtAngle & layers(float cotTheta) const; 00015 00016 private: 00017 float eta(int idxBin) const; 00018 int idxBin(float eta) const; 00019 void setX0(std::vector<MSLayer>&, float eta, const SumX0AtEtaDataProvider &) const; 00020 00021 private: 00022 bool isInitialised; 00023 int theHalfNBins; float theDeltaEta; 00024 std::vector<MSLayersAtAngle> theLayersData ; 00025 friend class MSLayersKeeperX0Averaged; 00026 }; 00027 00028 #endif