ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHPythia6.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHPythia6.h
1 #ifndef PHPYTHIA6_PHPYTHIA6_H
2 #define PHPYTHIA6_PHPYTHIA6_H
3 
4 #include <fun4all/SubsysReco.h>
5 
7 
8 #include <string>
9 #include <vector>
10 
11 class PHCompositeNode;
12 class PHPy6GenTrigger;
13 
14 class PHPythia6 : public SubsysReco, public PHHepMCGenHelper
15 {
16  public:
17  PHPythia6(const std::string &name = "PHPythia6");
18  ~PHPythia6() override {}
19 
20  int Init(PHCompositeNode *topNode) override;
21 
22  int process_event(PHCompositeNode *topNode) override;
23 
24  int ResetEvent(PHCompositeNode *topNode) override;
25 
26  int End(PHCompositeNode *topNode) override;
27 
28  void set_config_file(const std::string &cfg_file) { _configFile = cfg_file; }
29 
30  void print_config() const;
31 
32  void beam_vertex_parameters(double beamX,
33  double beamY,
34  double beamZ,
35  double beamXsigma,
36  double beamYsigma,
37  double beamZsigma)
38  {
39  set_vertex_distribution_mean(beamX, beamY, beamZ, 0);
40  set_vertex_distribution_width(beamXsigma, beamYsigma, beamZsigma, 0);
41  }
42 
43  void save_ascii(const std::string &fname = "pythia_hepmc.dat")
44  {
45  _save_ascii = true;
47  }
48 
50  void register_trigger(PHPy6GenTrigger *theTrigger);
51  void set_trigger_OR() { _triggersOR = true; } // default true
52  void set_trigger_AND() { _triggersAND = true; }
53 
54  private:
55  int ReadConfig(const std::string &cfg_file = "");
56 
61  void IntegerTest(double number);
62 
65 
66  // Pythia6 configuration file
67  std::string _configFile;
68 
73 
77  std::string _filename_ascii;
78 
79  // event selection
80  std::vector<PHPy6GenTrigger *> _registeredTriggers;
83 
87  void initPythia();
88 };
89 
90 #endif /* PHPYTHIA6_PHPYTHIA6_H */