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