File indexing completed on 2026-08-06 09:20:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVTPARTPROP_HH
0022 #define EVTPARTPROP_HH
0023
0024 #include "EvtGenBase/EvtAbsLineShape.hh"
0025 #include "EvtGenBase/EvtId.hh"
0026 #include "EvtGenBase/EvtSpinType.hh"
0027
0028 #include <memory>
0029 #include <string>
0030
0031 class EvtPartProp {
0032 public:
0033 EvtPartProp();
0034 EvtPartProp( const EvtPartProp& x );
0035
0036 double getMass() { return _lineShape->getMass(); }
0037 double getMassMin() { return _lineShape->getMassMin(); }
0038 double getMassMax() { return _lineShape->getMassMax(); }
0039 double getMaxRange() { return _lineShape->getMaxRange(); }
0040 double getWidth() { return _lineShape->getWidth(); }
0041
0042 double getRandMass( EvtId* parId, int nDaug, EvtId* dauId, EvtId* othDauId,
0043 double maxMass, double* dauMasses )
0044 {
0045 return _lineShape->getRandMass( parId, nDaug, dauId, othDauId, maxMass,
0046 dauMasses );
0047 }
0048 double getMassProb( double mass, double massPar, int nDaug, double* massDau )
0049 {
0050 return _lineShape->getMassProb( mass, massPar, nDaug, massDau );
0051 }
0052
0053 double getctau() { return _ctau; }
0054 void setctau( double tau ) { _ctau = tau; }
0055
0056 int getChg3() { return _chg3; }
0057 void setChg3( int c3 ) { _chg3 = c3; }
0058
0059 EvtSpinType::spintype getSpinType() { return _spintype; }
0060 void setSpinType( EvtSpinType::spintype stype ) { _spintype = stype; }
0061
0062 const std::string& getName() { return _name; }
0063 void setName( std::string pname );
0064
0065 EvtId getId() { return _id; }
0066 void setId( EvtId id ) { _id = id; }
0067
0068 EvtId getIdChgConj() { return _idchgconj; }
0069 void setIdChgConj( EvtId idchgconj ) { _idchgconj = idchgconj; }
0070
0071 int getStdHep() { return _stdhep; }
0072 void setStdHep( int stdhep ) { _stdhep = stdhep; }
0073
0074 int getLundKC() { return _lundkc; }
0075 void setLundKC( int lundkc ) { _lundkc = lundkc; }
0076
0077 EvtAbsLineShape* getLineShape() { return _lineShape.get(); }
0078 void initLineShape( double mass, double width, double maxRange );
0079
0080
0081
0082 void setLineShape( EvtAbsLineShape* l ) { _lineShape.reset( l ); }
0083 double rollMass() { return _lineShape->rollMass(); }
0084
0085 EvtPartProp& operator=( const EvtPartProp& x );
0086
0087 void reSetMass( double mass );
0088 void reSetWidth( double width );
0089
0090 void reSetMassMin( double mass );
0091 void reSetMassMax( double mass );
0092 void reSetBlatt( double blatt );
0093 void reSetBlattBirth( double blatt );
0094 void includeBirthFactor( bool yesno );
0095 void includeDecayFactor( bool yesno );
0096 void newLineShape( std::string type );
0097 void setPWForDecay( int spin, EvtId d1, EvtId d2 );
0098 void setPWForBirthL( int spin, EvtId par, EvtId othD );
0099
0100 private:
0101 std::unique_ptr<EvtAbsLineShape> _lineShape;
0102
0103 double _ctau;
0104 EvtId _id;
0105 EvtId _idchgconj;
0106 EvtSpinType::spintype _spintype;
0107 int _chg3;
0108 int _stdhep;
0109 int _lundkc;
0110 std::string _name;
0111 };
0112
0113 #endif