Go to the documentation of this file.00001 #ifndef UtilAlgos_IMASelector_h
00002 #define UtilAlgos_IMASelector_h
00003 #include "CommonTools/UtilAlgos/interface/ParameterAdapter.h"
00004 #include <iostream>
00005
00006
00007 struct IMASelector {
00008 IMASelector( double ESCOPinMin, double ESeedOPoutMin, double PinMPoutOPinMin,
00009 double ESCOPinMax, double ESeedOPoutMax, double PinMPoutOPinMax,
00010 double EMPoutMin, double EMPoutMax) :
00011 ESCOPinMin_ (ESCOPinMin),
00012 ESeedOPoutMin_ (ESeedOPoutMin),
00013 PinMPoutOPinMin_ (PinMPoutOPinMin),
00014 ESCOPinMax_ (ESCOPinMax),
00015 ESeedOPoutMax_ (ESeedOPoutMax),
00016 PinMPoutOPinMax_ (PinMPoutOPinMax),
00017 EMPoutMin_ (EMPoutMin),
00018 EMPoutMax_ (EMPoutMax) {}
00019
00020 template<typename T>
00021 bool operator()( const T & t ) const {
00022 double pin = t.trackMomentumAtVtx ().R () ;
00023 double poMpiOpi = (pin - t.trackMomentumOut ().R ()) / pin ;
00024 double ESC = t.energy () ;
00025 double pOut = t.trackMomentumOut().R();
00026 double EseedOPout = t.eSeedClusterOverPout () ;
00027 double EoPin = t.eSuperClusterOverP () ;
00028 double EoPout = (ESC)/pOut;
00029 return (poMpiOpi > PinMPoutOPinMin_ && poMpiOpi < PinMPoutOPinMax_ &&
00030 EseedOPout > ESeedOPoutMin_ && EseedOPout < ESeedOPoutMax_ &&
00031 EoPin > ESCOPinMin_ && EoPin < ESCOPinMax_ &&
00032 EoPout > EMPoutMin_ && EoPout < EMPoutMax_) ;
00033 }
00034 private:
00035 double ESCOPinMin_, ESeedOPoutMin_, PinMPoutOPinMin_ ;
00036 double ESCOPinMax_, ESeedOPoutMax_, PinMPoutOPinMax_ ;
00037 double EMPoutMin_, EMPoutMax_;
00038 };
00039
00040
00041 namespace reco {
00042 namespace modules {
00043 template<>
00044 struct ParameterAdapter<IMASelector> {
00045 static IMASelector make(const edm::ParameterSet & cfg) {
00046 return IMASelector(cfg.getParameter<double>("ESCOPinMin"),
00047 cfg.getParameter<double>("ESeedOPoutMin"),
00048 cfg.getParameter<double>("PinMPoutOPinMin"),
00049 cfg.getParameter<double>("ESCOPinMax"),
00050 cfg.getParameter<double>("ESeedOPoutMax"),
00051 cfg.getParameter<double>("PinMPoutOPinMax"),
00052 cfg.getParameter<double>("EMPoutMin"),
00053 cfg.getParameter<double>("EMPoutMax")
00054 );
00055 }
00056 };
00057 }
00058 }
00059
00060 #endif