]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8175/examples/main09.cc
CID 21236: Uninitialized scalar field (UNINIT_CTOR)
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8175 / examples / main09.cc
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
10 using namespace Pythia8;
11  
12 int 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 }