/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/DTagAlg/DTagAlg-00-01-04/src/NeutralDSelector.cxx

Go to the documentation of this file.
00001 #include "GaudiKernel/Bootstrap.h"
00002 #include "GaudiKernel/IJobOptionsSvc.h"
00003 #include "GaudiKernel/ISvcLocator.h"
00004 #include "GaudiKernel/PropertyMgr.h"
00005 
00006 #include "CLHEP/Vector/LorentzVector.h"
00007 #include "DTagAlg/NeutralDSelector.h"
00008 
00009 
00010 NeutralDSelector::NeutralDSelector( ){
00011   
00012   IJobOptionsSvc* jobSvc;
00013   Gaudi::svcLocator()->service("JobOptionsSvc", jobSvc);
00014   
00015   PropertyMgr m_propMgr;
00016   
00017   m_propMgr.declareProperty("UseMbcCuts",        m_useMbcCuts       = true );
00018   m_propMgr.declareProperty("UseDeltaECuts",     m_useDeltaECuts    = true );
00019   m_propMgr.declareProperty("UseDeltaMassCuts",  m_useDeltaMassCuts = false );
00020 
00021   m_propMgr.declareProperty("DMbcMinCut",        m_minMbc  = 1.83 );
00022   m_propMgr.declareProperty("DMbcMaxCut",        m_maxMbc  = 10.0 );
00023   m_propMgr.declareProperty("DDeltaEMinCut",     m_minDeltaE = -0.1 );
00024   m_propMgr.declareProperty("DDeltaEMaxCut",     m_maxDeltaE = +0.1 );
00025   m_propMgr.declareProperty("DDeltaMassMinCut",  m_minDeltaMass = -0.085 );
00026   m_propMgr.declareProperty("DDeltaMassMaxCut",  m_maxDeltaMass = +0.085 );
00027  
00028   jobSvc->setMyProperties("NeutralDSelector", &m_propMgr);
00029 }
00030 
00031 bool NeutralDSelector::operator() (CDDecay& theD) {
00032   
00034   HepLorentzVector p4( theD.momentum(), theD.energy() );
00035   p4.boost(-m_beta);
00036   double mbc2 = m_ebeam*m_ebeam - p4.v().mag2();
00037   double mbc = mbc2 > 0 ? sqrt( mbc2 ) : -10;
00038   double deltaE = p4.t() - m_ebeam;
00039  
00040   if(m_useMbcCuts&&((mbc <= m_minMbc)||(mbc >= m_maxMbc))) return false;
00041   if(m_useDeltaECuts&&((deltaE <= m_minDeltaE)||(deltaE >= m_maxDeltaE))) return false;
00042 
00044   double neutralDMass = 1.8648;
00045   double deltaMass = theD.mass() - neutralDMass;
00046 
00047   if(m_useDeltaMassCuts &&
00048      ((deltaMass <= m_minDeltaMass)||(deltaMass >= m_maxDeltaMass))) return false;
00049 
00050 
00051   return true;
00052 }
00053 
00054 
00055 NeutralDSelector neutralDSelector;

Generated on Tue Nov 29 23:13:12 2016 for BOSS_7.0.2 by  doxygen 1.4.7