CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtPartProp.cc
Go to the documentation of this file.
2 //--------------------------------------------------------------------------
3//
4// Environment:
5// This software is part of the EvtGen package developed jointly
6// for the BaBar and CLEO collaborations. If you use all or part
7// of it, please give an appropriate acknowledgement.
8//
9// Copyright Information: See EvtGen/COPYRIGHT
10// Copyright (C) 1998 Caltech, UCSB
11//
12// Module: EvtPartProp.cc
13//
14// Description: Store particle properties for one particle.
15//
16// Modification history:
17//
18// RYD April 4, 1997 Module created
19//
20//------------------------------------------------------------------------
21//
22#include <iostream>
23#include <fstream>
24#include <stdlib.h>
25#include <ctype.h>
31#include <string>
32using std::fstream;
33
35 _id(-1,-1)
36 ,_idchgconj(-1,-1)
37 ,_chg3(0)
38 ,_stdhep(0)
39 ,_lundkc(0)
40{
41 _lineShape=0;
42 _ctau=0.0;
43 _name="*******";
44 _spintype=EvtSpinType::SCALAR;
45}
46
48
49 if (0!=x._lineShape){
50 _lineShape=x._lineShape->clone();
51 }
52 else{
53 _lineShape=0;
54 }
55 _ctau=x._ctau;
56 _name=x._name;
57 _spintype=x._spintype;
58 _id=x._id;
59 _idchgconj=x._idchgconj;
60 _chg3=x._chg3;
61 _stdhep=x._stdhep;
62 _lundkc=x._lundkc;
63
64}
65
67 if ( _lineShape ) delete _lineShape;
68 _lineShape=0;
69}
70
71
72void EvtPartProp::setName(std::string pname) {
73
74 _name=pname;
75
76}
77
78
80
81 _lineShape=x._lineShape->clone();
82
83 _ctau=x._ctau;
84 _name=x._name;
85 _chg3=x._chg3;
86 _spintype=x._spintype;
87 return *this;
88}
89
90void EvtPartProp::initLineShape(double mass, double width, double maxRange){
91
92 // _lineShape=new EvtAbsLineShape(mass,width,maxRange);
93 _lineShape=new EvtRelBreitWignerBarrierFact(mass,width,maxRange,_spintype);
94}
95
96void EvtPartProp::newLineShape(std::string type){
97
98 double m=_lineShape->getMass();
99 double w=_lineShape->getWidth();
100 double mR=_lineShape->getMaxRange();
101 EvtSpinType::spintype st=_lineShape->getSpinType();
102 delete _lineShape;
103 if ( type == "RELBW" ) {
104 _lineShape=new EvtRelBreitWignerBarrierFact(m,w,mR,st);
105 }
106 if ( type == "NONRELBW" ) {
107 _lineShape = new EvtAbsLineShape(m,w,mR,st);
108 }
109 if ( type == "FLAT" ) {
110 _lineShape = new EvtFlatLineShape(m,w,mR,st);
111 }
112 if ( type == "MANYDELTAFUNC" ) {
113 _lineShape = new EvtManyDeltaFuncLineShape(m,w,mR,st);
114 }
115}
116
117//void EvtPartProp::initLineShape(double mass, double width, double maxRange,
118// double mDaug1, double mDaug2, int l){
119//
120// _lineShape=new EvtRelBreitWignerBarrierFact(mass,width,maxRange,mDaug1,mDaug2,l);
121//}
122
124 if (!_lineShape) ::abort();
125 _lineShape->reSetMass(mass);
126}
127void EvtPartProp::reSetWidth(double width){
128 if (!_lineShape) ::abort();
129 _lineShape->reSetWidth(width);
130}
131
132void EvtPartProp::setPWForDecay( int spin, EvtId d1, EvtId d2) {
133 if (!_lineShape) ::abort();
134 _lineShape->setPWForDecay(spin,d1,d2);
135}
136
137void EvtPartProp::setPWForBirthL( int spin, EvtId par, EvtId othD) {
138 if (!_lineShape) ::abort();
139 _lineShape->setPWForBirthL(spin,par,othD);
140}
141
142
144 if (!_lineShape) ::abort();
145 _lineShape->reSetMassMin(mass);
146}
148 if (!_lineShape) ::abort();
149 _lineShape->reSetMassMax(mass);
150}
151void EvtPartProp::reSetBlatt(double blatt){
152 if (!_lineShape) ::abort();
153 _lineShape->reSetBlatt(blatt);
154}
156 if (!_lineShape) ::abort();
157 _lineShape->includeBirthFactor(yesno);
158}
160 if (!_lineShape) ::abort();
161 _lineShape->includeDecayFactor(yesno);
162}
163
164void EvtPartProp::addFactorPn(double factor=0){
165 if (!_lineShape) ::abort();
166 _lineShape->addFactorPn(factor);
167
168}
169
170
171
172
double mass
Double_t x[10]
void reSetWidth(double width)
void reSetMass(double mass)
void includeDecayFactor(bool yesno)
void addFactorPn(double factor=0.)
EvtSpinType::spintype getSpinType()
void setPWForBirthL(int spin, EvtId par, EvtId othD)
void reSetMassMax(double mass)
virtual void reSetBlatt(double blatt)
void includeBirthFactor(bool yesno)
void setPWForDecay(int spin, EvtId d1, EvtId d2)
void reSetMassMin(double mass)
Definition: EvtId.hh:27
void initLineShape(double mass, double width, double maxRange)
Definition: EvtPartProp.cc:90
void reSetBlatt(double blatt)
Definition: EvtPartProp.cc:151
void setName(std::string pname)
Definition: EvtPartProp.cc:72
void reSetMassMin(double mass)
Definition: EvtPartProp.cc:143
void setPWForDecay(int spin, EvtId d1, EvtId d2)
Definition: EvtPartProp.cc:132
void setPWForBirthL(int spin, EvtId par, EvtId othD)
Definition: EvtPartProp.cc:137
void addFactorPn(double factor)
Definition: EvtPartProp.cc:164
void includeDecayFactor(bool yesno)
Definition: EvtPartProp.cc:159
void includeBirthFactor(bool yesno)
Definition: EvtPartProp.cc:155
EvtPartProp & operator=(const EvtPartProp &x)
Definition: EvtPartProp.cc:79
void reSetMass(double mass)
Definition: EvtPartProp.cc:123
void reSetWidth(double width)
Definition: EvtPartProp.cc:127
void newLineShape(std::string type)
Definition: EvtPartProp.cc:96
void reSetMassMax(double mass)
Definition: EvtPartProp.cc:147