BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtAbsLineShape.hh
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CLEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtGen/EvtAbsLineShape.hh
12//
13// Description: Class to keep the particle properties for
14// one particle
15//
16// Modification history:
17//
18// Lange March 10, 2001 Module created
19//
20//------------------------------------------------------------------------
21
22#ifndef EVTABSLINESHAPE_HH
23#define EVTABSLINESHAPE_HH
24
26#include "EvtGenBase/EvtId.hh"
27#include <vector>
28
29class EvtId;
30
32
33public:
34
36 EvtAbsLineShape(double mass, double width, double maxRange, EvtSpinType::spintype sp);
37 virtual ~EvtAbsLineShape();
40
41 double getMass() {return _mass;}
42 double getMassMin() {return _massMin;}
43 double getMassMax() {return _massMax;}
44 double getMaxRange() {return _maxRange;}
45 double getWidth() {return _width;}
47 virtual double rollMass();
48 virtual EvtAbsLineShape* clone();
49
50 void reSetMass(double mass) { _mass=mass;}
51 void reSetWidth(double width) {
52 _width=width;
53 // <--- added by L.L. Wang to fix a bug
54 double maxdelta=15.0*width;
55 if ( _maxRange > 0.00001 ) {
56 _massMax=_mass+maxdelta;
58 }
59 else{
60 _massMax=_mass+maxdelta;
61 _massMin=_mass-15.0*width;
62 }
63 if ( _massMin< 0. ) _massMin=0.;
64 _massMax=_mass+maxdelta;
65 // ---> //
66 }
67 void reSetMassMin(double mass) { _massMin=mass;}
68 void reSetMassMax(double mass) { _massMax=mass;}
69 virtual void reSetBlatt(double blatt) {};
70 void includeBirthFactor(bool yesno) { _includeBirthFact = yesno; }
71 void addFactorPn(double factor=0.) { _addFactorPn = factor;}
72 void includeDecayFactor(bool yesno) { _includeDecayFact = yesno; }
73 void setPWForDecay( int spin, EvtId d1, EvtId d2) {
74 _userSetPW.push_back(spin);
75 _userSetPWD1.push_back(d1);
76 _userSetPWD2.push_back(d2);
77 }
78 void setPWForBirthL( int spin, EvtId par, EvtId othD) {
79 _userSetBirthPW.push_back(spin);
80 _userSetBirthOthD.push_back(othD);
81 _userSetBirthPar.push_back(par);
82 }
83
84 virtual double getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId,double maxMass, double *dauMasses);
85 virtual double getMassProb(double mass, double massPar, int nDaug, double *massDau);
86
87 void fixForSP8() { _applyFixForSP8=true;}
88protected:
89
93 double _mass;
94 double _massMin;
95 double _massMax;
96 double _width;
97 double _maxRange;
98
99 // allow for special cases where the default method of picking the
100 //lowest allowed partial wave for a decay is not the right answer.
101 // string is "<spin> <daughter1> <daughter2>"
102 //new 9/12/2003 Lange
103 std::vector<EvtId> _userSetPWD1,_userSetPWD2;
104 std::vector<int> _userSetPW;
105
106 // also do it for birth factors
108 std::vector<int> _userSetBirthPW;
109
111
113};
114
115#endif
116
double mass
Double_t x[10]
void reSetWidth(double width)
std::vector< EvtId > _userSetBirthOthD
virtual EvtAbsLineShape * clone()
EvtSpinType::spintype _spin
virtual double getMassProb(double mass, double massPar, int nDaug, double *massDau)
std::vector< EvtId > _userSetPWD1
void reSetMass(double mass)
std::vector< int > _userSetPW
virtual ~EvtAbsLineShape()
void includeDecayFactor(bool yesno)
void addFactorPn(double factor=0.)
EvtSpinType::spintype getSpinType()
EvtAbsLineShape & operator=(const EvtAbsLineShape &x)
virtual double getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses)
void setPWForBirthL(int spin, EvtId par, EvtId othD)
std::vector< int > _userSetBirthPW
void reSetMassMax(double mass)
virtual double rollMass()
virtual void reSetBlatt(double blatt)
std::vector< EvtId > _userSetPWD2
void includeBirthFactor(bool yesno)
void setPWForDecay(int spin, EvtId d1, EvtId d2)
std::vector< EvtId > _userSetBirthPar
void reSetMassMin(double mass)
Definition: EvtId.hh:27