00001 // Dear emacs, this is -*- c++ -*- 00002 #ifndef ISOLATIONSELECTION_ISOLATIONCONDITIONFORMULA_H 00003 #define ISOLATIONSELECTION_ISOLATIONCONDITIONFORMULA_H 00004 00005 #include <memory> 00006 #include <vector> 00007 #include <map> 00008 // #include "xAODPrimitives/IsolationType.h" 00009 // #include "AthContainers/AuxElement.h" 00010 // #include "xAODBase/IParticle.h" 00011 #include "IsolationCondition.h" 00012 00013 // Forward Declaration(s) 00014 class TF1; 00015 class TH3F; 00016 00017 namespace CP 00018 { 00019 class IsolationConditionFormula: public IsolationCondition{ 00020 public: 00021 IsolationConditionFormula(std::string name, xAOD::Iso::IsolationType isoType, const std::string& cutFunction); 00022 virtual ~IsolationConditionFormula(){} 00023 00024 // IsolationConditionFormula() = delete; 00025 IsolationConditionFormula(const IsolationConditionFormula& rhs) = delete; 00026 IsolationConditionFormula& operator=(const IsolationConditionFormula& rhs) = delete; 00027 void setCut(xAOD::Iso::IsolationType isoType, const std::string& cutFunction); 00028 00029 bool accept(const xAOD::IParticle& x, std::map< xAOD::Iso::IsolationType, float >* cutValues=0); 00030 bool accept(const strObj& x, std::map< xAOD::Iso::IsolationType, float >* cutValues=0); 00031 void getCutValue(const float pt); 00032 00033 private: 00034 std::shared_ptr<TF1> m_cutFunction; 00035 }; 00036 } 00037 #endif