Pluto v6.3.0
Loading...
Searching...
No Matches
He3_breakup_macro.C
Go to the documentation of this file.
1/*************************************************************************************
2** **
3** Breakup Reaction: **
4** g+A -> D33+(A-1) -> Delta0+eta+(A-1) -> pi0+N+eta+(A-1) -> 2g+N+2g+(A-1) **
5** The scattering of a photon and a proton inside 3He **
6** (This macro demonstrates how the model PFermiMomentumGA can be used) **
7** ***************** **
8** Author: **
9** Lilian Witthauer and Manuel Dieterle **
10** Date: **
11** April 2009 **
12** ****************** **
13** (All energies and masses in GeV) **
14** **
15*************************************************************************************/
16
17//#include "../src/PValues.h"
18
19void He3_breakup_macro(Int_t EventNumber=10000, Double_t StartEBeam = 1.5, Double_t iter=500./1000.)
20{
21 // PStaticData *mass = new PStaticData();
22 char NameFile1[100];
23 Double_t EBeamMax = 1.508; // Maximum MAMI beam energy
24 Double_t EBeam = StartEBeam;
25 Int_t EBeamMeV = EBeam*1000;
26 Double_t DeltaEnergy;
27
28 makeDistributionManager()->Exec("nucleus_fermi:gamma");
29
30 Int_t i=0;
31
32 while (EBeam <= EBeamMax)
33 {
34 // Define projectile (g), target (3He), nucleus fragment (d)
35 PParticle *GammaB = new PParticle("g",EBeam);
36 PParticle *Nucleus = new PParticle("3He");
37 PParticle *NucRest = new PParticle("d");
38
39 // IS particle
40 PParticle *s = new PParticle(*GammaB+*Nucleus);
41
42 // Quasi-free sub-reaction:
43 PParticle *GammaB2 = new PParticle("g");
44 PParticle *QFtarget = new PParticle("p");
45 PParticle *s2 = new PParticle(*GammaB2+*QFtarget);
46
47 // Outgoing products of g-N scattering process:
48 PParticle *Delta = new PParticle("D+");
49 PParticle *Eta = new PParticle("eta");
50
51 PParticle *Pi0 = new PParticle("pi0");
52 PParticle *Proton = new PParticle("p");
53
54 PParticle *GammaE1 = new PParticle("g");
55 PParticle *GammaE2 = new PParticle("g");
56 PParticle *GammaP1 = new PParticle("g");
57 PParticle *GammaP2 = new PParticle("g");
58
59 // Define group of particles of each step
60 PParticle *cc1[] = {s,NucRest,s2};
61 PParticle *cc2[] = {s2,Delta,Eta};
62 PParticle *cc3[] = {Delta,Pi0,Proton};
63 PParticle *cc4[] = {Pi0,GammaP1,GammaP2};
64 PParticle *cc5[] = {Eta,GammaE1,GammaE2};
65
66 // Allocate groups to decay channel
67 PChannel *c1 = new PChannel(cc1,2);
68 PChannel *c2 = new PChannel(cc2,2);
69 PChannel *ccD0 = new PChannel(cc3,2);
70 PChannel *ccPi0 = new PChannel(cc4,2);
71 PChannel *ccEta = new PChannel(cc5,2);
72
73 // Allocate channels
74 PChannel *cc[] = {c1,c2,ccD0,ccPi0,ccEta};
75
76 sprintf(NameFile1, "3He_breakup_%i_MeV_in_GeV", EBeamMeV); //File name
77 PReaction *Reac = new PReaction(cc,NameFile1,5,1,0,0,0); // Define reaction
78
79 cout << "******************************************" << endl;
80 cout << "Beam Energy:" << EBeam << endl;
81 cout << "******************************************" << endl;
82
83 Reac->Print(); // Write to .root file
84 Reac->loop(EventNumber); //Number of events
85
86
87
88 //Increase energy
89 i++;
90 DeltaEnergy=i*iter;
91 EBeam = StartEBeam+DeltaEnergy;
92 EBeamMeV = EBeam*1000;
93 }
94}
void He3_breakup_macro(Int_t EventNumber=10000, Double_t StartEBeam=1.5, Double_t iter=500./1000.)
PDistributionManager * makeDistributionManager()
Bool_t Exec(const char *command)
int loop(int i=-1, int wf=0, int verbose=1)
Definition PReaction.h:69
void Print(const Option_t *delme=NULL) const
PParticle * s2[]
PChannel * c2
PChannel * cc[]
PParticle * s
Definition dp_mult.C:25
PParticle * cc2[]
Definition fermi_dd.C:31
PParticle * cc1[]
Definition fermi_dd.C:30