]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA8/pythia8175/examples/main26.cc
end-of-line normalization
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8175 / examples / main26.cc
CommitLineData
c6b60c38 1// main26.cc is a part of the PYTHIA event generator.
2// Copyright (C) 2013 Torbjorn Sjostrand.
3// PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
4// Please respect the MCnet Guidelines, see GUIDELINES for details.
5
6// This is a test program for the extra dimensions processes.
7// Author: Stefan Ask (Stefan DOT Ask AT cern DOT ch)
8// Documentation: S. Ask et al., arXiv:0809.4750 and arXiv:0912.4233
9
10#include "Pythia.h"
11
12using namespace Pythia8;
13
14// The main program.
15int main() {
16
17 // Test cases
18 // 1 = Jet + G (real G emission)
19 // 2 = Jet + U (real U emission)
20 // 3 = Z + G (real G emission)
21 // 4 = Z + U (real U emission)
22 // 5 = gamma gamma (LED G* exchange)
23 // 6 = l lbar (LED U* exchange).
24 // Note: charged leptons only!
25 // 7 = Z_KK/gamma_KK (TEV ED resonance)
26 // 8 = G* (RS resonance, SM on the TeV brane)
27 // 9 = kk-gluon* (RS resonance)
28 int nTest = 1;
29
30 // Number of events to generate. Max number of errors.
31 int nEvent = 1000;
32 int nAbort = 50;
33
34 // Pythia generator.
35 Pythia pythia;
36
37 // PYTHIA paramters:
38 pythia.readString("PhaseSpace:showViolation = off");
39
40 // Test case parameters
41 if (nTest == 1) {
42 pythia.readString("ExtraDimensionsLED:monojet = on");
43 pythia.readString("ExtraDimensionsLED:n = 4");
44 pythia.readString("ExtraDimensionsLED:MD = 4000.");
45 pythia.readString("ExtraDimensionsLED:CutOffmode = 3");
46 pythia.readString("ExtraDimensionsLED:t = 2");
47 pythia.readString("5000039:m0 = 2500.");
48 pythia.readString("5000039:mWidth = 1500.");
49 pythia.readString("5000039:mMin = 1.");
50 pythia.readString("5000039:mMax = 13990.");
51 pythia.readString("PhaseSpace:pTHatMin = 700.");
52 } else if (nTest == 2){
53 pythia.readString("ExtraDimensionsUnpart:gg2Ug = off");
54 pythia.readString("ExtraDimensionsUnpart:qg2Uq = on");
55 pythia.readString("ExtraDimensionsUnpart:qqbar2Ug = on");
56 pythia.readString("ExtraDimensionsUnpart:spinU = 1");
57 pythia.readString("ExtraDimensionsUnpart:dU = 1.2");
58 pythia.readString("ExtraDimensionsUnpart:LambdaU = 1000");
59 pythia.readString("ExtraDimensionsUnpart:lambda = 1.0");
60 pythia.readString("ExtraDimensionsUnpart:CutOffmode = 0");
61 pythia.readString("5000039:m0 = 300.");
62 pythia.readString("5000039:mWidth = 500.");
63 pythia.readString("5000039:mMin = 1.");
64 pythia.readString("5000039:mMax = 13990.");
65 pythia.readString("PhaseSpace:pTHatMin = 700.");
66 } else if (nTest == 3){
67 pythia.readString("ExtraDimensionsLED:ffbar2GZ = on");
68 pythia.readString("ExtraDimensionsLED:n = 6");
69 pythia.readString("ExtraDimensionsLED:MD = 2000.");
70 pythia.readString("ExtraDimensionsLED:CutOffmode = 1");
71 pythia.readString("5000039:m0 = 3000.");
72 pythia.readString("5000039:mWidth = 1500.");
73 pythia.readString("5000039:mMin = 1.");
74 pythia.readString("5000039:mMax = 13990.");
75 pythia.readString("PhaseSpace:pTHatMin = 50.");
76 } else if (nTest == 4){
77 pythia.readString("ExtraDimensionsUnpart:ffbar2UZ = on");
78 pythia.readString("ExtraDimensionsUnpart:spinU = 1");
79 pythia.readString("ExtraDimensionsUnpart:dU = 2.0");
80 pythia.readString("ExtraDimensionsUnpart:LambdaU = 1000");
81 pythia.readString("ExtraDimensionsUnpart:lambda = 1.000");
82 pythia.readString("ExtraDimensionsUnpart:CutOffmode = 0");
83 pythia.readString("5000039:m0 = 500.");
84 pythia.readString("5000039:mWidth = 1000.");
85 pythia.readString("5000039:mMin = 1.");
86 pythia.readString("5000039:mMax = 13990.");
87 pythia.readString("PhaseSpace:pTHatMin = 50.");
88 } else if (nTest == 5){
89 pythia.readString("ExtraDimensionsLED:ffbar2gammagamma = on");
90 pythia.readString("ExtraDimensionsLED:gg2gammagamma = on");
91 pythia.readString("ExtraDimensionsLED:LambdaT = 3300.");
92 pythia.readString("PhaseSpace:mHatMin = 800.");
93 } else if (nTest == 6){
94 pythia.readString("ExtraDimensionsUnpart:ffbar2llbar = on");
95 pythia.readString("ExtraDimensionsUnpart:gg2llbar = off");
96 pythia.readString("ExtraDimensionsUnpart:spinU = 1");
97 pythia.readString("ExtraDimensionsUnpart:dU = 1.3");
98 pythia.readString("ExtraDimensionsUnpart:LambdaU = 1000");
99 pythia.readString("ExtraDimensionsUnpart:lambda = 1.0");
100 pythia.readString("ExtraDimensionsUnpart:gXX = 0");
101 pythia.readString("ExtraDimensionsUnpart:gXY = 0");
102 pythia.readString("PhaseSpace:mHatMin = 300.");
103 } else if (nTest == 7){
104 pythia.readString("ExtraDimensionsTEV:ffbar2mu+mu- = on");
105 pythia.readString("ExtraDimensionsTEV:gmZmode = 3");
106 pythia.readString("ExtraDimensionsTEV:nMax = 100");
107 pythia.readString("ExtraDimensionsTEV:mStar = 4000");
108 pythia.readString("PhaseSpace:mHatMin = 1000");
109 pythia.readString("PhaseSpace:mHatMax = 6000");
110 pythia.readString("5000023:isResonance = false");
111 } else if (nTest == 8){
112 pythia.readString("ExtraDimensionsG*:all = on");
113 } else if (nTest == 9){
114 pythia.readString("ExtraDimensionsG*:qqbar2KKgluon* = on");
115 pythia.readString("ExtraDimensionsG*:KKintMode = 2");
116 pythia.readString("ExtraDimensionsG*:KKgqR = -0.2");
117 pythia.readString("ExtraDimensionsG*:KKgqL = -0.2");
118 pythia.readString("ExtraDimensionsG*:KKgbR = -0.2");
119 pythia.readString("ExtraDimensionsG*:KKgbL = 1.0");
120 pythia.readString("ExtraDimensionsG*:KKgtR = 5.0");
121 pythia.readString("ExtraDimensionsG*:KKgtL = 1.0");
122 pythia.readString("5100021:m0 = 2000");
123 }
124
125 // Switch off sophisticated tau treatment: not yet matched to SUSY.
126 pythia.readString("ParticleDecays:sophisticatedTau = 0");
127
128 // Initialization for LHC.
129 pythia.readString("Beams:eCM = 14000.");
130 pythia.init();
131
132 // Validation histograms
133 Hist hEtjet("dN/dETjet: monojet check", 100, 0., 7000.);
134 Hist hMass("dN/m: graviton mass spectrum", 100, 0., 7000.);
135
136 // Begin event loop.
137 int iAbort = 0;
138 for (int iEvent = 0; iEvent < nEvent; ++iEvent) {
139
140 // Generate events. Quit if many failures.
141 if (!pythia.next()) {
142 if (++iAbort < nAbort) continue;
143 std::cout << " Event generation aborted prematurely, owing to error!\n";
144 break;
145 }
146
147 // Checked particle index
148 int tmp_monojet = -1;
149
150 // Particle loop
151 for (int iPart = 0; iPart < pythia.event.size(); ++iPart) {
152
153 // From hard process (inital = 21, interm.=22, final=23 state)
154 if (pythia.event[iPart].statusAbs() == 22) {
155
156 // Find Z_KK/gamma_KK or kk-gluon
157 if( pythia.event[iPart].idAbs() == 5000023
158 || pythia.event[iPart].idAbs() == 5100021
159 || pythia.event[iPart].idAbs() == 5100039){
160 hMass.fill( pythia.event[iPart].m() );
161 }
162
163 } else if ( pythia.event[iPart].statusAbs() == 23 ) {
164
165 // Find graviton/unparticle
166 if( pythia.event[iPart].idAbs() == 5000039){
167 hMass.fill( pythia.event[iPart].m() );
168 }
169
170 // Find mono-jets
171 if (nTest == 1 || nTest == 2) {
172 if ( pythia.event[iPart].idAbs() <= 6
173 || pythia.event[iPart].idAbs() == 21 ){
174 if (tmp_monojet >= 0) {
175 std::cout << "More than one (hard process) mono-jet ! \n";
176 } else {
177 tmp_monojet = iPart;
178 }
179 }
180 }
181
182 }
183 }
184
185 // Validation mono-jet wrt G.Giudice et al. paper [hep-ph/9811291v2]
186 if (tmp_monojet >= 0) {
187 double tmp_eta = pythia.event[tmp_monojet].eta();
188 double tmp_et = pythia.event[tmp_monojet].eT();
189 double tmp_et_cut = 1000;
190 if ( tmp_et >= tmp_et_cut && abs(tmp_eta) < 3 ) {
191 hEtjet.fill( fabs(tmp_et) );
192 }
193 }
194
195 }
196
197 // Final statistics.
198 pythia.stat();
199 cout << hMass << hEtjet;
200
201 return 0;
202}