Pluto v6.3.0
Loading...
Searching...
No Matches
pp_delta_dalitz.C
Go to the documentation of this file.
1// p + p -> p + Delta+ -> p + p + gamma* -> p + p + e- + e+
2// This macro tests:
3// 1. The mass-dependent width Breit-Wigner distribution of the Delta
4// 2. The anisotropic (s+p wave) production angle for the pp->pDelta channel
5// 3. The dilepton mass for Delta Dalitz decay
6
7{
8 gROOT->Reset();
9
10 // use to get pure QED form factors:
11 ((PDalitzDecay *) makeDistributionManager()->GetDistribution("D+_dalitz"))->SetUseQED(1);
12
13 PParticle *p1 = new PParticle("p",2.2);
14 PParticle *p2 = new PParticle("p");
15 PParticle *p3 = new PParticle("p");
16 PParticle *p4 = new PParticle("p");
18 PParticle *g = new PParticle("dilepton");
19 PParticle *em = new PParticle("e-");
20 PParticle *ep = new PParticle("e+");
21 PParticle *q = new PParticle(*p1 + *p2);
24 PParticle *s3[] = {g,em,ep};
28 PChannel *cc[] = {c1,c2,c3};
29
30 PReaction *r = new PReaction(cc, "pp_delta_dalitz", 3, 1);
31
32 //filtered dilepton pairs:
33 r->Do("theta_ep = ([e+]->Theta() * 180.)/TMath::Pi()");
34 r->Do("theta_em = ([e-]->Theta() * 180.)/TMath::Pi()");
35 r->Do("opang = ([e+]->Angle([e-]) * 180.)/TMath::Pi()");
36 r->Do("filter=1; if ((theta_ep<18 || theta_ep>85 || theta_em<18 || theta_em>85) || opang < 9) filter=0");
37 r->Do("if (filter); [dilepton]->Push(Branch(Accepted)); [e+]->Push(Branch(Accepted)); [e-]->Push(Branch(Accepted))");
38
39 makeDistributionManager()->GetDistribution("D+_dalitz")->Print();
40
41 r->Print();
42 r->loop(100000);
43}
PParticle * ep
PParticle * em
virtual void Print(const Option_t *delme=NULL) const
PParticle p4("p")
PParticle q
Definition complete_eta.C:8
PParticle p3("p")
PParticle p2("p")
PReaction r(c,"eta_dalitz", 3, 0, 0, 0, 1)
PParticle p1("p", beam_energy)
PParticle * s2[]
PParticle * s3[]
PParticle * s1[]
PChannel * c2
PChannel * cc[]
PParticle * delta
PChannel * c3
PDalitzDecay * makeDistributionManager() -> GetDistribution("D+_dalitz")) ->SetUseQED(1)
PParticle * g