1#include "GaudiKernel/Bootstrap.h"
2#include "GaudiKernel/IJobOptionsSvc.h"
3#include "GaudiKernel/ISvcLocator.h"
4#include "GaudiKernel/PropertyMgr.h"
6#include "CLHEP/Vector/LorentzVector.h"
12 IJobOptionsSvc* jobSvc;
13 Gaudi::svcLocator()->service(
"JobOptionsSvc", jobSvc);
15 PropertyMgr m_propMgr;
17 m_propMgr.declareProperty(
"UseMbcCuts", m_useMbcCuts =
true );
18 m_propMgr.declareProperty(
"UseDeltaECuts", m_useDeltaECuts =
true );
19 m_propMgr.declareProperty(
"UseDeltaMassCuts", m_useDeltaMassCuts =
false );
21 m_propMgr.declareProperty(
"DMbcMinCut", m_minMbc = 1.83 );
22 m_propMgr.declareProperty(
"DMbcMaxCut", m_maxMbc = 10.0 );
23 m_propMgr.declareProperty(
"DDeltaEMinCut", m_minDeltaE = -0.1 );
24 m_propMgr.declareProperty(
"DDeltaEMaxCut", m_maxDeltaE = +0.1 );
25 m_propMgr.declareProperty(
"DDeltaMassMinCut", m_minDeltaMass = -0.085 );
26 m_propMgr.declareProperty(
"DDeltaMassMaxCut", m_maxDeltaMass = +0.085 );
28 jobSvc->setMyProperties(
"NeutralDSelector", &m_propMgr);
36 double mbc2 = m_ebeam*m_ebeam -
p4.v().mag2();
37 double mbc = mbc2 > 0 ? sqrt( mbc2 ) : -10;
38 double deltaE =
p4.t() - m_ebeam;
40 if(m_useMbcCuts&&((mbc <= m_minMbc)||(mbc >= m_maxMbc)))
return false;
41 if(m_useDeltaECuts&&((deltaE <= m_minDeltaE)||(deltaE >= m_maxDeltaE)))
return false;
44 double neutralDMass = 1.8648;
45 double deltaMass = theD.
mass() - neutralDMass;
47 if(m_useDeltaMassCuts &&
48 ((deltaMass <= m_minDeltaMass)||(deltaMass >= m_maxDeltaMass)))
return false;
NeutralDSelector neutralDSelector
const Hep3Vector & momentum() const
bool operator()(CDDecay &theD)
double double double * p4