00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef EVTPARTPROP_HH
00023 #define EVTPARTPROP_HH
00024
00025 #include "EvtGenBase/EvtSpinType.hh"
00026 #include "EvtGenBase/EvtId.hh"
00027 #include <string>
00028 #include "EvtGenBase/EvtAbsLineShape.hh"
00029
00030
00031 class EvtPartProp {
00032
00033 public:
00034
00035 EvtPartProp();
00036 EvtPartProp(const EvtPartProp& x);
00037
00038 ~EvtPartProp();
00039
00040 double getMass() {return _lineShape->getMass();}
00041 double getMassMin() {return _lineShape->getMassMin();}
00042 double getMassMax() {return _lineShape->getMassMax();}
00043 double getMaxRange() {return _lineShape->getMaxRange();}
00044 double getWidth() {return _lineShape->getWidth();}
00045
00046 double getRandMass(EvtId *parId, int nDaug, EvtId *dauId,EvtId *othDauId,double maxMass, double *dauMasses) {return _lineShape->getRandMass(parId,nDaug,dauId,othDauId,maxMass,dauMasses);}
00047 double getMassProb(double mass, double massPar, int nDaug, double *massDau) { return _lineShape->getMassProb(mass,massPar,nDaug,massDau);}
00048
00049 double getctau() {return _ctau; }
00050 void setctau(double tau) { _ctau=tau; }
00051
00052 int getChg3() {return _chg3; }
00053 void setChg3(int c3) { _chg3=c3; }
00054
00055 EvtSpinType::spintype getSpinType() {return _spintype; }
00056 void setSpinType(EvtSpinType::spintype stype ) { _spintype=stype; }
00057
00058 const std::string& getName() {return _name;}
00059 void setName(std::string pname);
00060
00061 EvtId getId() {return _id;}
00062 void setId(EvtId id) {_id=id;}
00063
00064 EvtId getIdChgConj() {return _idchgconj;}
00065 void setIdChgConj(EvtId idchgconj) {_idchgconj=idchgconj;}
00066
00067 int getStdHep() {return _stdhep;}
00068 void setStdHep(int stdhep) {_stdhep=stdhep;}
00069
00070 int getLundKC() {return _lundkc;}
00071 void setLundKC(int lundkc) {_lundkc=lundkc;}
00072
00073 EvtAbsLineShape* getLineShape() {return _lineShape;}
00074 void initLineShape(double mass, double width, double maxRange);
00075
00076
00077
00078 void setLineShape(EvtAbsLineShape *l) { _lineShape=l;}
00079 double rollMass(){return _lineShape->rollMass();}
00080
00081 EvtPartProp& operator=(const EvtPartProp& x);
00082
00083 void reSetMass(double mass);
00084 void reSetWidth(double width);
00085
00086 void reSetMassMin(double mass);
00087 void reSetMassMax(double mass);
00088 void reSetBlatt(double blatt);
00089 void includeBirthFactor(bool yesno);
00090 void includeDecayFactor(bool yesno);
00091 void addFactorPn(double factor);
00092 void newLineShape(std::string type);
00093 void setPWForDecay( int spin, EvtId d1, EvtId d2);
00094 void setPWForBirthL( int spin, EvtId par, EvtId othD);
00095 void fixLSForSP8() {_lineShape->fixForSP8();}
00096
00097 private:
00098
00099 EvtAbsLineShape *_lineShape;
00100
00101 double _ctau;
00102 EvtId _id;
00103 EvtId _idchgconj;
00104 EvtSpinType::spintype _spintype;
00105 int _chg3;
00106 int _stdhep;
00107 int _lundkc;
00108 std::string _name;
00109
00110 };
00111
00112 #endif
00113