BOSS 7.0.7
BESIII Offline Software System
Loading...
Searching...
No Matches
CDLambda.cxx
Go to the documentation of this file.
1// -*- C++ -*-
2//
3// Package: <CleoDChain>
4// Module: CDLambda
5//
6// Description: <one line class summary>
7//
8// Implementation:
9// <Notes on implementation>
10//
11// Author: David Urner
12// Created: Thu Mar 22 16:23:36 EST 2001
13// $Id: CDLambda.cxx,v 1.2 2009/07/15 10:56:41 zoujh Exp $
14//
15// Revision history
16//
17// $Log: CDLambda.cxx,v $
18// Revision 1.2 2009/07/15 10:56:41 zoujh
19// *** empty log message ***
20//
21// Revision 1.1 2009/06/22 14:55:48 zoujh
22// See ChangeLog
23//
24// Revision 1.1.1.1 2009/03/03 06:05:56 maqm
25// first import of BesDChain
26//
27// Revision 1.4 2006/01/11 20:37:25 cdj
28// work with renaming done in DChain package
29//
30// Revision 1.3 2003/05/15 19:58:09 cdj
31// revamped memory handling so always use a ReferenceHolder to deal with the reference counting
32//
33// Revision 1.2 2001/11/06 15:20:46 ajm36
34// override defaultKinematicData for pi0, eta, ks, lambda
35//
36// Revision 1.1 2001/09/11 15:08:27 ajm36
37// add files for lambdas
38//
39// Revision 1.2 2001/04/25 12:52:12 ajm36
40// plugged memory leak in ctor for pi0's, k shorts, etas
41//
42// Revision 1.1 2001/04/11 13:19:02 urner
43// transition to files with CD prefix. Addition of new files
44//
45// Revision 1.2 2001/03/24 03:07:56 cdj
46// fixed CDPi0 CDLambda and CDEta classes so could properly assess info from CDCandidate class
47//
48// Revision 1.1 2001/03/23 23:05:28 urner
49// added pi0 eta and CDLambda decay lists
50//
51
52
53// user include files
57#include "BesDChain/CDProton.h"
58#include "BesDChain/CDLambda.h"
59
60
61//
62// constants, enums and typedefs
63//
64using namespace dchain;
65
66//
67// static data member definitions
68//
69
70//
71// constructors and destructor
72//
74// CDDecay(*(new CDChargedPion(aVisible.piPlus()))),
75 m_lambda(aVisible)
76{
77 EvtRecVeeVertex* lambda = const_cast<EvtRecVeeVertex*>(aVisible);
78
79 int index[2] = {0, 1};
80 if (aVisible->vertexId() < 0) {
81 index[0] = 1;
82 index[1] = 0;
83 }
84
85 ReferenceHolder<CDProton> tmp = new CDProton(lambda->daughter(index[0]));
86 addChild(*tmp);
87 ReferenceHolder<CDChargedPion> tmp2 = new CDChargedPion(lambda->daughter(index[1]));
88 addChild(*tmp2);
89}
90
91
92// CDLambda::CDLambda( const CDLambda& rhs )
93// {
94// // do actual copying here; if you implemented
95// // operator= correctly, you may be able to use just say
96// *this = rhs;
97// }
98
100{
101}
102
103
104//------ buildFromCDLambda -----
105// return `true' as CDLambda is made up from VisibleEvidence
106//
108{
109 return true;
110}
111
112
113//------ CDLambda -----
114// return NavLambda for this CDLambda
115//
117{
118 return m_lambda ;
119}
120
122{
123 KinematicData* data = new KinematicData();
124
125 const HepVector& w_lambda = m_lambda->w();
126
127 data->setP4( HepLorentzVector(w_lambda[0], w_lambda[1], w_lambda[2], w_lambda[3]) );
128
129 return data;
130}
CDChargedVisible< DBCandidate::kChargedPion > CDChargedPion
Definition: CDChargedPion.h:42
CDChargedVisible< DBCandidate::kProton > CDProton
Definition: CDProton.h:42
void addChild(const CDCandidate &aAdditionalProduct)
Definition: CDDecay.cxx:187
virtual ~CDLambda()
Definition: CDLambda.cxx:99
CDLambda(const EvtRecVeeVertex *aVisible)
Definition: CDLambda.cxx:73
virtual bool builtFromCDLambda() const
Definition: CDLambda.cxx:107
virtual DecayChain::KinematicData * defaultKinematicData() const
Definition: CDLambda.cxx:121
virtual const EvtRecVeeVertex * navLambda() const
Definition: CDLambda.cxx:116
void setP4(const HepLorentzVector &aMomentum)
SmartRef< EvtRecTrack > & daughter(int i)
int vertexId() const
const HepVector & w() const