source: HiSusy/trunk/Pythia8/pythia8170/include/RHadrons.h @ 1

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

first import of structure, PYTHIA8 and DELPHES

File size: 4.0 KB
Line 
1// RHadrons.h 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 file contains a class for the production and decay
7// of long-lived heavy coloured particles, for now the gluino.
8
9#ifndef Pythia8_RHadrons_H
10#define Pythia8_RHadrons_H
11
12#include "Basics.h"
13#include "Event.h"
14#include "FragmentationFlavZpT.h"
15#include "FragmentationSystems.h"
16#include "Info.h"
17#include "ParticleData.h"
18#include "PythiaStdlib.h"
19#include "Settings.h"
20
21namespace Pythia8 {
22 
23//==========================================================================
24
25// The RHadrons class contains the routines for the production and decay
26// of long-lived heavy coloured particles.
27
28class RHadrons {
29
30public:
31
32  // Constructor.
33  RHadrons() : nRHad(0) {} 
34 
35  // Initialization of R-hadron handling.
36  bool init( Info* infoPtrIn, Settings& settings,
37    ParticleData* particleDataPtrIn, Rndm* rndmPtrIn);
38
39  // Pointers to flavours and z sent from HadronLevel.
40  void fragPtrs( StringFlav* flavSelPtrIn, StringZ* zSelPtrIn) 
41    { flavSelPtr = flavSelPtrIn; zSelPtr = zSelPtrIn;}
42
43  // Produce R-hadrons.
44  bool produce( ColConfig& colConfig, Event& event); 
45
46  // Decay R-hadrons.
47  bool decay( Event& event); 
48
49  // Tell whether a given particle is supposed to form R-hadrons.
50  bool givesRHadron(int id);
51
52  // Tell whether any R-hadrons have been formed.
53  bool exist() {return (nRHad > 0);}
54
55  // Tell whether a R-hadron production+decay happened, and trace down.
56  int trace(int i) { for (int iR = 0; iR < nRHad; ++iR)
57    if (iBefRHad[iR] == i || iCreRHad[iR] == i) return iAftRHad[iR]; 
58    return 0;} 
59
60private: 
61
62  // Constants: could only be changed in the code itself.
63  static const int    IDRHADSB[14], IDRHADST[14], IDRHADGO[38], NTRYMAX;
64  static const double MSAFETY, EGBORROWMAX;
65
66  // Initialization data, mainly read from Settings.
67  bool   allowRH, allowRSb, allowRSt, allowRGo, allowSomeR, setMassesRH;
68  int    idRSb, idRSt, idRGo; 
69  double maxWidthRH, probGluinoballRH, mOffsetCloudRH, mCollapseRH,
70         diquarkSpin1RH, m0Sb, m0St, m0Go;
71
72  // Current event properties.
73  vector<int>  iBefRHad, iCreRHad, iRHadron, iAftRHad;
74  vector<bool> isTriplet;
75  int          nRHad, iRHad, iBef, iSys;
76  ColSinglet*  systemPtr;
77
78  // Pointer to various information on the generation.
79  Info*          infoPtr;
80
81  // Pointer to the particle data table.
82  ParticleData*  particleDataPtr;
83
84  // Pointer to the random number generator.
85  Rndm*          rndmPtr;
86
87  // Pointers to classes for flavour and z generation.
88  StringFlav*    flavSelPtr;
89  StringZ*       zSelPtr;
90
91  // Split a system that contains both a sparticle and a junction.
92  bool splitOffJunction( ColConfig& colConfig, Event& event); 
93
94  // Open up a closed gluon/gluino loop.
95  bool openClosedLoop( ColConfig& colConfig, Event& event); 
96
97  // Split a single colour singlet that contains two sparticles.
98  bool splitSystem( ColConfig& colConfig, Event& event); 
99
100  // Produce a R-hadron from a squark.
101  bool produceSquark( ColConfig& colConfig, Event& event); 
102
103  // Produce a R-hadron from a gluino.
104  bool produceGluino( ColConfig& colConfig, Event& event); 
105
106  // Construct R-hadron code from squark and (di)quark codes.
107  int toIdWithSquark( int id1, int id2); 
108
109  // Construct squark and (di)quark codes from R-hadron code.
110  pair<int,int> fromIdWithSquark( int idRHad); 
111
112  // Construct R-hadron code from endpoints and a gluino.
113  int toIdWithGluino( int id1, int id2); 
114
115  // Construct endpoint codes from R-hadron code with a gluino.
116  pair<int,int> fromIdWithGluino( int idRHad); 
117
118  // Construct modified four-vectors to match modified masses.
119  bool newKin( Vec4 pOld1, Vec4 pOld2, double mNew1, double mNew2,
120    Vec4& pNew1, Vec4& pNew2, bool checkMargin = true); 
121 
122};
123
124//==========================================================================
125
126} // end namespace Pythia8
127
128#endif // Pythia8_RHadrons_H
Note: See TracBrowser for help on using the repository browser.