Fix for definitions for CINT
[u/mrichter/AliRoot.git] / TEvtGen / EvtGen / EvtGenBase / EvtPartProp.hh
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/EvtPartProp.hh
12 //
13 // Description: Class to keep the particle properties for
14 //              one particle
15 //
16 // Modification history:
17 //
18 //    RYD     April 4, 1997         Module created
19 //
20 //------------------------------------------------------------------------
21
22 #ifndef EVTPARTPROP_HH
23 #define EVTPARTPROP_HH
24
25 #include "EvtGenBase/EvtSpinType.hh"
26 #include "EvtGenBase/EvtId.hh"
27 #include <string>
28 #include "EvtGenBase/EvtAbsLineShape.hh"
29
30
31 class EvtPartProp {
32
33 public:
34
35   EvtPartProp(); 
36   EvtPartProp(const EvtPartProp& x); 
37
38   ~EvtPartProp(); 
39
40   double getMass() {return _lineShape->getMass();} 
41   double getMassMin() {return _lineShape->getMassMin();} 
42   double getMassMax() {return _lineShape->getMassMax();} 
43   double getMaxRange() {return _lineShape->getMaxRange();} 
44   double getWidth() {return _lineShape->getWidth();} 
45
46   double getRandMass(EvtId *parId, int nDaug, EvtId *dauId,EvtId *othDauId,double maxMass, double *dauMasses) {return _lineShape->getRandMass(parId,nDaug,dauId,othDauId,maxMass,dauMasses);}
47   double getMassProb(double mass, double massPar, int nDaug, double *massDau) { return _lineShape->getMassProb(mass,massPar,nDaug,massDau);}
48
49   double getctau() {return _ctau; } 
50   void   setctau(double tau) { _ctau=tau; }
51
52   int    getChg3() {return _chg3; } 
53   void   setChg3(int c3) { _chg3=c3; }
54
55   EvtSpinType::spintype  getSpinType() {return _spintype; }
56   void   setSpinType(EvtSpinType::spintype stype ) { _spintype=stype; }
57
58   const std::string&  getName() {return _name;}
59   void   setName(std::string pname);
60
61   EvtId  getId() {return _id;}
62   void   setId(EvtId id) {_id=id;}
63
64   EvtId  getIdChgConj() {return _idchgconj;}
65   void   setIdChgConj(EvtId idchgconj) {_idchgconj=idchgconj;}
66
67   int  getStdHep() {return _stdhep;}
68   void   setStdHep(int stdhep) {_stdhep=stdhep;}
69
70   int  getLundKC() {return _lundkc;}
71   void   setLundKC(int lundkc) {_lundkc=lundkc;}
72
73   EvtAbsLineShape* getLineShape() {return _lineShape;}
74   void initLineShape(double mass, double width, double maxRange);
75   //  void initLineShape(double mass, double width, double maxRange, double mDaug1, double mDaug2, int l);
76
77   // setLineShape takes ownership of l
78   void setLineShape(EvtAbsLineShape *l) { _lineShape=l;}
79   double rollMass(){return _lineShape->rollMass();}
80
81   EvtPartProp& operator=(const EvtPartProp& x);
82
83   void reSetMass(double mass);
84   void reSetWidth(double width);
85
86   void reSetMassMin(double mass);
87   void reSetMassMax(double mass);
88   void reSetBlatt(double blatt);
89   void reSetBlattBirth(double blatt);
90   void includeBirthFactor(bool yesno);
91   void includeDecayFactor(bool yesno);
92   void newLineShape(std::string type);
93   void setPWForDecay( int spin, EvtId d1, EvtId d2);
94   void setPWForBirthL( int spin, EvtId par, EvtId othD);
95
96 private:
97
98   EvtAbsLineShape *_lineShape;
99
100   double _ctau;
101   EvtId  _id;
102   EvtId  _idchgconj;
103   EvtSpinType::spintype  _spintype;
104   int _chg3;
105   int _stdhep;
106   int _lundkc;
107   std::string _name;
108   
109 }; 
110
111 #endif
112