source: HiSusy/trunk/Pythia8/pythia8170/examples/main26.cc @ 9

Last change on this file since 9 was 1, checked in by zerwas, 11 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 7.5 KB
Line 
1// main26.cc is a part of the PYTHIA event generator.
2// Copyright (C) 2012 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}
Note: See TracBrowser for help on using the repository browser.