BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
DsSelector.cxx
Go to the documentation of this file.
1#include "GaudiKernel/Bootstrap.h"
2
3#include "DsSelector.h"
4
6
7DsSelector::DsSelector( const std::string& type, const std::string& name,
8 const IInterface* parent )
9 : base_class( type, name, parent ) {
10 declareProperty( "UseMbcCuts", m_useMbcCuts = true );
11 declareProperty( "UseDeltaECuts", m_useDeltaECuts = false );
12 declareProperty( "UseDeltaMassCuts", m_useDeltaMassCuts = true );
13
14 declareProperty( "DMbcMinCut", m_minMbc = 1.93 );
15 declareProperty( "DMbcMaxCut", m_maxMbc = 10.0 );
16 declareProperty( "DDeltaEMinCut", m_minDeltaE = -0.1 );
17 declareProperty( "DDeltaEMaxCut", m_maxDeltaE = +0.1 );
18 declareProperty( "DDeltaMassMinCut", m_minDeltaMass = -0.085 );
19 declareProperty( "DDeltaMassMaxCut", m_maxDeltaMass = +0.085 );
20}
21
23
24 /// Calculating mbc and deltaE
25 HepLorentzVector p4( theD.momentum(), theD.energy() );
26 p4.boost( -m_beta );
27 double mbc2 = m_ebeam * m_ebeam - p4.v().mag2();
28 double mbc = mbc2 > 0 ? sqrt( mbc2 ) : -10;
29 double deltaE = p4.t() - m_ebeam;
30
31 if ( m_useMbcCuts && ( ( mbc <= m_minMbc ) || ( mbc >= m_maxMbc ) ) ) return false;
32 if ( m_useDeltaECuts && ( ( deltaE <= m_minDeltaE ) || ( deltaE >= m_maxDeltaE ) ) )
33 return false;
34
35 /// Calculating invariant mass difference
36 double chargedDMass = 1.9685;
37 double deltaMass = theD.mass() - chargedDMass;
38
39 if ( m_useDeltaMassCuts &&
40 ( ( deltaMass <= m_minDeltaMass ) || ( deltaMass >= m_maxDeltaMass ) ) )
41 return false;
42
43 return true;
44}
DECLARE_COMPONENT(BesBdkRc)
double energy() const
const Hep3Vector & momentum() const
double mass() const
DsSelector(const std::string &type, const std::string &name, const IInterface *parent)
Definition DsSelector.cxx:7
bool operator()(CDDecay &theD)