50 Warning(
"Init",
"Primary not found");
60 Warning(
"Init",
"Parent not found");
70 Warning(
"Init",
"More than 2 side particle found");
79 Warning(
"Init",
"Less then 2 side particle found");
100 TLorentzVector M00 = (*(TLorentzVector *) primary) + (*(TLorentzVector *) side_particle[0]);
101 TLorentzVector M01 = (*(TLorentzVector *) primary) + (*(TLorentzVector *) side_particle[1]);
103 double myvariable = M01.M2();
104 double myvariable2 = M00.M2();
106 double factor = POmega3Pi::diffgam(myvariable, myvariable2);
110 Warning(
"IsNotRejected",
"Dalitz factor %f > max %f", factor, max);
112 Warning(
"IsNotRejected",
"Dalitz factor max not set");
129double POmega3Pi::diffgam(
double M00,
double M01) {
131 double pi = TMath::Pi();
134 double mv, hp, ha,
f, mpi, mom;
140 TComplex
h1,
h2,
h3, addh;
144 TComplex a,b,
c,
d,e,ff;
147 if (RhoPropagator == NULL) {
149 if (RhoPropagator == NULL)
150 Fatal (
"diffgam",
"RhoPropagator not defined");
161 M02 = -M00 - M01 + TMath::Power(mom,2) + 3*TMath::Power(mpi,2);
164 p = -1./3.*((TMath::Power(M00,2)*M01)/4. + (M00*TMath::Power(M01,2))/4.
165 - (M00*M01*TMath::Power(mom,2))/4. -
166 (3*M00*M01*TMath::Power(mpi,2))/4. + (TMath::Power(mom,4)*TMath::Power(mpi,2))/4. -
167 (TMath::Power(mom,2)*TMath::Power(mpi,4))/2. + TMath::Power(mpi,6)/4.);
171 a = M00 + TMath::Power(mom,2);
172 h1 = RhoPropagator->GetAmplitude(&M00)*a.Re();
174 b = M01 + TMath::Power(mom,2);
175 h2 = RhoPropagator->GetAmplitude(&M01)*b.Re();
177 c = M02 + TMath::Power(mom,2);
178 h3 = RhoPropagator->GetAmplitude(&M02)*
c.Re();
183 e = ha*hp*mv / (4.*TMath::Power(
f,3)*mom);
186 ff =
p*
cc*TComplex::Conjugate(
cc);
187 dg = ff/(8.*
pi*
pi*
pi*32.*mom*mom*mom);
#define PARTICLE_LIST_PARENT
#define PARTICLE_LIST_DAUGHTER
PDynamicData * makeDynamicData()
ClassImp(POmega3Pi) POmega3Pi
PParticle * particle[MAX_PARTICLE_LIST]
PParticle * GetParticle(const Char_t *pflag=NULL)
Int_t particle_flag[MAX_PARTICLE_LIST]
PChannelModel * GetParticleSecondaryModel(const char *name, const char *modelname)
PDistribution * Clone(const char *delme=NULL) const
Bool_t IsNotRejected(void)
static Double_t sampleFlat()