StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Herwig6.cxx
1 #include "Herwig6.h"
2 
3 //
4 // Declare f77 functions/subroutines
5 //
6 #define hwigin F77_NAME(hwigin,HWIGIN) /* initialize Herwig common blocks*/
7 #define hwissp F77_NAME(hwissp,HWISSP) /* input SUSY particle (and top quark) data */
8 #define hwuinc F77_NAME(hwuinc,HWUINC) /* Computer parameter-dependent constansts */
9 #define hwusta F77_NAME(hwusta,HWUSTA) /* Call HWUSTA to make any particle stable */
10 //#define hwabeg F77_NAME(hwabeg,HWABEG) /* Users initial calculations */
11 #define hweini F77_NAME(hweini,HWEINI) /* Initialize elementary processes */
12 #define hwuine F77_NAME(hwuine,HWUINE) /* Initialize event */
13 #define hwepro F77_NAME(hwepro,HWEPRO) /* Generate hard subprocess */
14 #define hwbgen F77_NAME(hwbgen,HWBGEN) /* Generate parton cascades */
15 #define hwdhob F77_NAME(hwdhob,HWDHOB) /* Do heavy object decays */
16 #define hwcfor F77_NAME(hwcfor,HWCFOR) /* Do cluster formation */
17 #define hwcdec F77_NAME(hwcdec,HWCDED) /* Do cluster decays */
18 #define hwdhad F77_NAME(hwdhad,HWDHAD) /* Do unstable particle decays */
19 #define hwdhvy F77_NAME(hwdhvy,HWDHVY) /* Do heavy flavor hadron decays */
20 #define hwmevt F77_NAME(hwmevt,HWMEVT) /* Add soft underlying event if needed */
21 #define hwufne F77_NAME(hwufne,HWUFNE) /* Finish event */
22 //#define hwanal F77_NAME(hwanal,HWANAL) /* Users event analysis*/
23 #define hwefin F77_NAME(hwefin,HWEFIN) /* Terminate elementary process */
24 //#define hwaend F77_NAME(hwaend,HWAEND) /* User's terminal calculations */
25 #define hwrgen F77_NAME(hwrgen,HWRGEN) /* Main random number generator */
26 #define setbeams F77_NAME(setbeams,SETBEAMS) /* Sets Beam species */
27 
28 extern "C" void type_of_call hwigin();
29 extern "C" void type_of_call hwissp();
30 extern "C" void type_of_call hwuinc();
31 extern "C" void type_of_call hwusta( const char *name, int nname );
32 extern "C" void type_of_call hweini();
33 extern "C" void type_of_call hwuine();
34 extern "C" void type_of_call hwepro();
35 extern "C" void type_of_call hwbgen();
36 extern "C" void type_of_call hwdhob();
37 extern "C" void type_of_call hwcfor();
38 extern "C" void type_of_call hwcdec();
39 extern "C" void type_of_call hwdhad();
40 extern "C" void type_of_call hwdhvy();
41 extern "C" void type_of_call hwmevt();
42 extern "C" void type_of_call hwufne();
43 extern "C" void type_of_call hwefin();
44 //extern "C" double type_of_call hwrgen( int i );
45 extern "C" void type_of_call setbeams( const char *part1, const char *part2, int npart1, int npart2 );
46 
47 void HWUSTA( string name ){ hwusta( name.c_str(), name.size() ); }
48 void HWEFIN(){ hwefin(); }
49 void HWSetBeams( string part1, string part2 ){ setbeams( part1.c_str(), part2.c_str(), part1.size(), part2.size() ); }
50 void InitializeEvent( vector<string> particles )
51  {
53  hwigin();
55  //hwissp();
57  hwuinc();
59  for( unsigned int i=0;i<particles.size();i++)
60  {
61  HWUSTA(particles[i]);
62  }
64  hweini();
65  }
66 void GenerateEvent()
67  {
69  hwuine();
71  hwepro();
73  hwbgen();
75  hwdhob();
77  hwcfor();
79  hwcdec();
81  hwdhad();
83  hwdhvy();
84  //ADD SOFT UNDERLYING EVENT IF NEEDED
85  //HWMEVT();
87  hwufne();
88  }