00001 #include "GaudiKernel/Bootstrap.h" 00002 #include "GaudiKernel/IJobOptionsSvc.h" 00003 #include "GaudiKernel/ISvcLocator.h" 00004 #include "GaudiKernel/PropertyMgr.h" 00005 00006 #include "EvtRecEvent/EvtRecPi0.h" 00007 #include "DTagAlg/LocalPi0Selector.h" 00008 00009 LocalPi0Selector::LocalPi0Selector() 00010 { 00011 IJobOptionsSvc* jobSvc; 00012 Gaudi::svcLocator()->service("JobOptionsSvc", jobSvc); 00013 00014 PropertyMgr m_propMgr; 00015 00016 m_propMgr.declareProperty("Pi0MinMassCut", m_minMass = 0.098 ); 00017 m_propMgr.declareProperty("Pi0MaxMassCut", m_maxMass = 0.165 ); 00018 m_propMgr.declareProperty("Pi0MaxChisqCut", m_maxChisq = 2500 ); 00019 00020 00021 jobSvc->setMyProperties("LocalPi0Selector", &m_propMgr); 00022 } 00023 00024 bool LocalPi0Selector::operator() (CDPi0& aPi0) { 00025 00026 aPi0.setUserTag(1); 00027 EvtRecPi0* pi0 = const_cast<EvtRecPi0*>( aPi0.navPi0() ); 00028 00029 double mass = pi0->unconMass(); 00030 double chi2 = pi0->chisq(); 00031 if ((mass <= m_minMass) || (mass >= m_maxMass) || (chi2 >= m_maxChisq)) return false; 00032 00033 if(mass < 0.115 || mass > 0.150) 00034 aPi0.setUserTag(2); 00035 00036 return true; 00037 } 00038 00039 LocalPi0Selector pi0Selector;