16#include "TLorentzVector.h"
34 PParticle(Int_t, Double_t, Double_t, Double_t, Double_t m=0., Double_t
w=1.);
37 PParticle(
const char *, Double_t, Double_t, Double_t,Double_t m=0., Double_t
w=1.);
40 PParticle(Int_t,
const TVector3 &, Double_t m=0., Double_t
w=1.);
61 Int_t
Is(
const char *
id) {
64 Int_t
is(
const char *
id) {
78 Int_t
IsPi() {
return (
Is(
"pi0") ||
Is(
"pi+") ||
Is(
"pi-")); }
79 Int_t
IsRho() {
return (
Is(
"rho0") ||
Is(
"rho+") ||
Is(
"rho-")); }
80 Int_t
ID()
const {
return pid; }
92 Double_t
W()
const {
return wt; }
102 virtual Double_t
KE()
const {
return E()-M(); }
111 Double_t
px = Px(),
py = Py(),
pz = Pz();
113 SetPxPyPzE(
px,
py,
pz, lE);
116 Double_t
Life(Double_t m=0., Int_t idx=-1);
117 TLorentzVector
Vect4()
const {
return TLorentzVector(Vect(),E()); }
118 void SetVect4(
const TLorentzVector & v) { SetPxPyPzE(v[0],v[1],v[2],v[3]); }
125 void Reset(
const Int_t
id,
const TLorentzVector & v,
const Double_t
w=1.) {
133 void Reset(
const Int_t
id=0,
const Double_t
px=0.,
const Double_t
py=0.,
134 const Double_t
pz=0.,
const Double_t e=0.,
const Double_t
w=1.) {
147 return values->SetValue(
id, val);
155 if (!
values)
return kFALSE;
156 return values->GetValue(
id, val);
162 if (param < 0)
return -1;
164 if (pkey < 0)
return -1;
166 if (!
makeDataBase()->GetParamInt(pkey, param, &result))
return -1;
171 if (param < 0)
return -1;
173 if (pkey < 0)
return -1;
175 if (!
makeDataBase()->GetParamDouble(pkey, param, &result))
return -1;
180 if (param < 0)
return -1;
182 if (pkey < 0)
return -1;
184 if (!
makeDataBase()->GetParamString(pkey, param, &result))
return -1;
196 Double_t
InvariantT(Double_t m3, Double_t m4, Double_t cos_th_cm);
224 void Print(
const Option_t* delme= NULL)
const;
267 void SetVertex(Double_t x, Double_t y, Double_t z, Double_t t) {
277 inline Double_t
X()
const {
return fV.X();}
278 inline Double_t
Y()
const {
return fV.Y();}
279 inline Double_t
Z()
const {
return fV.Z();}
280 inline Double_t
R()
const {
return fV.Mag();}
281 inline Double_t
T()
const {
return fT;}
282 inline void SetT(Double_t time) {
fT = time;}
307 Error(
"SetDaughter",
"MAX_DAUGHTERS reached");
PDataBase * makeDataBase()
PStaticData * makeStaticData()
Int_t GetParamDouble(const char *paramname)
Int_t GetParamString(const char *paramname)
Int_t GetParamInt(const char *paramname, Int_t length=-1)
void SetProperTime(Double_t t)
void SetDaughterIndex(Int_t dInd)
void SetParentIndex(Int_t pInd)
PParticle & Transform(const TLorentzRotation &)
void SetDaughter(PParticle *d)
PParticle(const PParticle *)
PParticle & operator-=(const PParticle &)
PParticle * GetTarget(void)
Int_t GetParentIndex() const
void ResetDaughters(void)
Int_t index
internal activity flag
Double_t mult
inverted generator weight
void SetDecayModeIndex(Int_t pInd, Int_t i=0)
void SetVertex(TVector3 &v, Double_t t)
Int_t GetSourceId() const
Double_t InvariantT(Double_t m3, Double_t m4, Double_t cos_th_cm)
void addDebugString(char *s)
Double_t GetProperTime() const
Int_t getSourceId() const
Double_t GetMultiplicity()
void SetKE(Double_t T=0.)
Int_t HasID(const Int_t id)
Double_t GetDBDouble(char *name)
void SetInput(PParticle *p)
PParticle(Int_t, float *, Double_t w=1.)
void SetScatterClone(Int_t t)
PParticle(Int_t, Double_t, Double_t, Double_t, Double_t m=0., Double_t w=1.)
PParticle & operator=(const PParticle &)
PParticle operator-(const PParticle &b) const
void Print(const Option_t *delme=NULL) const
bool SetValue(Int_t id, Double_t val)
Int_t GetSiblingIndex() const
Double_t invgenwt
generator weight
void SetParent(PParticle *p)
void SetSibling(PParticle *p)
virtual Int_t IsFireball()
void SetVertex(Double_t x, Double_t y, Double_t z)
PParticle(Int_t, const TVector3 &, Double_t m=0., Double_t w=1.)
PParticle & SubTmp(const PParticle &p)
Double_t Life(Double_t m=0., Int_t idx=-1)
PParticle * GetBeam(void)
void Scatter(PParticle *p1, PParticle *p2)
Int_t GetScatterClone(void)
PParticle * daughters[MAX_DAUGHTERS+1]
pointer to particle object
void SetID(const Int_t id)
void SetInvGenW(Double_t w=1.)
Int_t GetDaughterIndex() const
void Reset(const Int_t id, const TLorentzVector &v, const Double_t w=1.)
Int_t HasNotID(const Int_t id)
PParticle & AddTmp(const PParticle &p)
Int_t GetDecayModeIndex(Int_t opt=0) const
char GetDBString(char *name) const
PParticle * Clone(const char *delme=NULL) const
void SetMom(Double_t mom=0.)
PParticle * qParticle1
pointer to particle object
void SetVect4(const TLorentzVector &v)
PParticle(const char *, Double_t, Double_t, Double_t, Double_t m=0., Double_t w=1.)
PParticle * pParticle
index in particle array
PParticle(Int_t id=0, Double_t T=0., Double_t w=1.)
virtual Int_t IsFileInput()
PParticle(const PParticle &)
PParticle operator+(const PParticle &b) const
TString debug
pointer to daughter array
PParticle * GetDaughter(int i)
PParticle(const char *, Double_t T=0., Double_t w=1.)
void Reset(const Int_t id=0, const Double_t px=0., const Double_t py=0., const Double_t pz=0., const Double_t e=0., const Double_t w=1.)
Double_t Sample()
Helper for PReaction.
Double_t decayTime
flag that forces particle to be treated as spectator
virtual Double_t KE() const
Bool_t make_new_qParticle
status of parent particle in PChannel::Decay
void Reset(const PParticle &p)
Int_t GetDBInt(char *name)
TLorentzVector Vect4() const
TString * GetDebugString()
PValues * values
debug string
PParticle(Int_t, Double_t *, Double_t w=1.)
Int_t GetParentId() const
virtual Int_t IsDilepton()
PParticle & Transform(const TRotation &)
bool GetValue(Int_t id, Double_t *val)
void SetGenW(Double_t w=1.)
PParticle * GetScattering(Int_t i)
Int_t destroyDecayModeIndex
PParticle & operator+=(const PParticle &)
void SetMultiplicity(Double_t w=1.)
void SetSiblingIndex(Int_t sInd)
void SetVertex(Double_t x, Double_t y, Double_t z, Double_t t)
PParticle & operator*=(const TRotation &)
void SetSpectator(Int_t s)
void SetParentId(Int_t pId)
void SetSourceId(Int_t sId)
Int_t status
pointer to value container
int GetParticleCharge(const int &id)
const char * GetParticleName(const int &id)
double GetParticleMass(const int &id)
int IsParticleMeson(const int &id)
int GetParticleLepton(const int &id)
int GetParticleKey(const int &id)
int GetParticleBaryon(const int &id)
int IsParticleHadron(const int &id)
static Double_t sampleFlat()
PParticle p1("p", beam_energy)