00001 #ifndef PhysicsTools_IsolationUtils_FixedAreaIsolationCone_h 00002 #define PhysicsTools_IsolationUtils_FixedAreaIsolationCone_h 00003 00004 // -*- C++ -*- 00005 // 00006 // Package: 00007 // Class: FixedAreaIsolationCone 00008 // 00019 // 00020 // Original Author: Christian Veelken, UC Davis 00021 // Created: Wed May 16 13:47:40 CST 2007 00022 // $Id: FixedAreaIsolationCone.h,v 1.1 2007/05/23 20:23:08 veelken Exp $ 00023 // 00024 // 00025 00026 // ROOT include files 00027 #include <Math/RootFinder.h> 00028 #include <Math/RootFinderAlgorithms.h> 00029 00030 // CMSSW include files 00031 #include "PhysicsTools/IsolationUtils/interface/ConeAreaFunction.h" 00032 #include "PhysicsTools/IsolationUtils/interface/ConeAreaRootFunction.h" 00033 00034 // 00035 // class declaration 00036 // 00037 00038 class FixedAreaIsolationCone 00039 { 00040 public: 00041 // default constructor 00042 FixedAreaIsolationCone(); 00043 00044 // destructor 00045 ~FixedAreaIsolationCone(); 00046 00047 // set acceptance limit for particle reconstruction 00048 // (this will enlarge the isolation cone near the acceptance boundary 00049 // such that the area in the region where particles can be reconstructed is constant; 00050 // i.e. guarantees flat efficiency near the acceptance boundary) 00051 void setAcceptanceLimit(double etaMaxTrackingAcceptance); 00052 00053 double operator() (double coneAxisTheta, double coneAxisPhi, 00054 double openingAngleSignalCone, double areaIsolationCone, int& error); 00055 00056 private: 00057 ConeAreaFunction areaFunctionSignalCone_; 00058 ConeAreaRootFunction areaRootFunctionIsolationCone_; 00059 ROOT::Math::RootFinder<ROOT::Math::Roots::Brent> areaRootFinderIsolationCone_; 00060 00061 static const unsigned int debugLevel_ = 0; 00062 }; 00063 00064 #endif