BOSS 7.0.6
BESIII Offline Software System
Loading...
Searching...
No Matches
ChargedDSelector.cxx
Go to the documentation of this file.
1#include "GaudiKernel/Bootstrap.h"
2#include "GaudiKernel/IJobOptionsSvc.h"
3#include "GaudiKernel/ISvcLocator.h"
4#include "GaudiKernel/PropertyMgr.h"
5
6#include "CLHEP/Vector/LorentzVector.h"
8
9
11
12 IJobOptionsSvc* jobSvc;
13 Gaudi::svcLocator()->service("JobOptionsSvc", jobSvc);
14
15 PropertyMgr m_propMgr;
16
17 m_propMgr.declareProperty("UseMbcCuts", m_useMbcCuts = true );
18 m_propMgr.declareProperty("UseDeltaECuts", m_useDeltaECuts = true );
19 m_propMgr.declareProperty("UseDeltaMassCuts", m_useDeltaMassCuts = false );
20
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 );
27
28 jobSvc->setMyProperties("ChargedDSelector", &m_propMgr);
29}
30
32
33 /// Calculating mbc and deltaE
34 HepLorentzVector p4( theD.momentum(), theD.energy() );
35 p4.boost(-m_beta);
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;
39
40 if(m_useMbcCuts&&((mbc <= m_minMbc)||(mbc >= m_maxMbc))) return false;
41 if(m_useDeltaECuts&&((deltaE <= m_minDeltaE)||(deltaE >= m_maxDeltaE))) return false;
42
43 /// Calculating invariant mass difference
44 double chargedDMass = 1.8696;
45 double deltaMass = theD.mass() - chargedDMass;
46
47 if(m_useDeltaMassCuts &&
48 ((deltaMass <= m_minDeltaMass)||(deltaMass >= m_maxDeltaMass))) return false;
49
50
51 return true;
52}
53
54
ChargedDSelector chargedDSelector
double energy() const
const Hep3Vector & momentum() const
double mass() const
bool operator()(CDDecay &theD)