]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA8/pythia8175/examples/main09.cc
end-of-line normalization
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8175 / examples / main09.cc
CommitLineData
c6b60c38 1// main09.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// Generate a predetermined second hard interaction.
7
8#include "Pythia.h"
9
10using namespace Pythia8;
11
12int main() {
13
14 // Generator.
15 Pythia pythia;
16 Event& event = pythia.event;
17
18 // Select first hard process (just a small sample of possibilities).
19 //pythia.readString("HardQCD:all = on");
20 pythia.readString("Top:all = on");
21 //pythia.readString("WeakSingleBoson:ffbar2gmZ = on");
22 //pythia.readString("WeakSingleBoson:ffbar2W = on");
23
24 // Select second hard process (complete list of options).
25 pythia.readString("SecondHard:generate = on");
26 //pythia.readString("SecondHard:TwoJets = on");
27 pythia.readString("SecondHard:PhotonAndJet = on");
28 //pythia.readString("SecondHard:TwoPhotons = on");
29 //pythia.readString("SecondHard:SingleGmZ = on");
30 //pythia.readString("SecondHard:SingleW = on");
31 //pythia.readString("SecondHard:TwoBJets = on");
32
33 // Kinematics cuts, common for the two.
34 pythia.readString("PhaseSpace:mHatMin = 40.");
35 pythia.readString("PhaseSpace:pTHatMin = 20.");
36
37 // Initialize for LHC at 8 TeV.
38 pythia.readString("Beams:eCM = 8000.");
39 pythia.init();
40
41 // Histogram.
42 Hist pTfirst("pT first collision", 100, 0., 400.);
43 Hist pTsecond("pT second collision", 100, 0., 200.);
44 Hist pTdiff("pT first-second collision", 100, -100., 300.);
45 Hist nMult("number of multiparton interactions", 100, -0.5, 99.5);
46 Hist bMore("b enhancement factor", 100, 0., 10.);
47 Hist nChg("charged multiplicity", 100, -0.5, 999.5);
48
49 // Generate events.
50 for (int iev = 0; iev < 1000; ++iev) {
51 pythia.next();
52
53 // Histogram pT.
54 double pT1 = pythia.info.pTMPI(0);
55 double pT2 = pythia.info.pTMPI(1);
56 pTfirst.fill( pT1 );
57 pTsecond.fill( pT2 );
58 pTdiff.fill( pT1 - pT2 );
59
60 // Histogram multiparton interactions
61 double nMPI = pythia.info.nMPI();
62 nMult.fill( nMPI );
63 bMore.fill( pythia.info.enhanceMPI() );
64
65 // Histogram charged multiplicity.
66 int nCharged = 0;
67 for (int i = 0; i < event.size(); ++i)
68 if (event[i].isFinal() && event[i].isCharged()) ++nCharged;
69 nChg.fill( nCharged );
70
71 }
72
73 // Compare full statistics listing with what is set in info.
74 pythia.stat();
75 cout << scientific << setprecision(3) << "\n From pythia.info: sigma = "
76 << pythia.info.sigmaGen() << " +- " << pythia.info.sigmaErr()
77 << endl;
78
79 // Print histograms.
80 cout << pTfirst << pTsecond << pTdiff << nMult << bMore << nChg;
81
82 // Done.
83 return 0;
84}