00001 #ifndef JETUNCERTAINTIES_PUNCHTHROUGHUNCERTAINTYCOMPONENT_H 00002 #define JETUNCERTAINTIES_PUNCHTHROUGHUNCERTAINTYCOMPONENT_H 00003 00004 #include "JetUncertainties/UncertaintyComponent.h" 00005 00006 namespace jet 00007 { 00008 00009 class PunchthroughUncertaintyComponent : public UncertaintyComponent 00010 { 00011 public: 00012 // Constructor/destructor/initialization 00013 PunchthroughUncertaintyComponent(const ComponentHelper& component); 00014 PunchthroughUncertaintyComponent(const PunchthroughUncertaintyComponent& toCopy); 00015 virtual PunchthroughUncertaintyComponent* clone() const; 00016 virtual ~PunchthroughUncertaintyComponent() {} 00017 00018 protected: 00019 00020 // Uncertainty/validity retrieval helper methods 00021 virtual bool getValidityImpl(const xAOD::Jet& jet, const xAOD::EventInfo& eInfo) const; 00022 virtual double getUncertaintyImpl(const xAOD::Jet& jet, const xAOD::EventInfo& eInfo) const; 00023 00024 private: 00025 PunchthroughUncertaintyComponent(const std::string& name = ""); 00026 const bool m_absEta; 00027 int getNumSegments(const xAOD::Jet& jet) const; 00028 }; 00029 00030 } // end jet namespace 00031 00032 #endif 00033