CMS 3D CMS Logo

Cascade2Hadronizer.h
Go to the documentation of this file.
1 #ifndef gen_Cascade2Hadronizer_h
2 #define gen_Cascade2Hadronizer_h
3 
4 #include <memory>
5 #include <string>
6 #include <vector>
7 
11 
12 namespace HepMC {
13  class GenEvent;
14 }
15 
16 namespace CLHEP {
17  class HepRandomEngine;
18 }
19 
20 namespace gen {
21 
22  class Pythia6Service;
23 
25 
26  public:
27 
29  ~Cascade2Hadronizer() override;
30 
31  bool readSettings(int);
32  bool initializeForExternalPartons(); //-- initializer for the LHE input
33  bool initializeForInternalPartons();
34 
35  //-- Read the parameters and pass them to the common blocks
36  bool cascadeReadParameters(const std::string& ParameterString);
37  void cascadePrintParameters();
38  void pythia6PrintParameters();
39  bool declareStableParticles(const std::vector<int>&);
40  bool declareSpecialSettings( const std::vector<std::string>& ) { return true; }
41  void statistics();
42 
43  bool generatePartonsAndHadronize();
44  bool hadronize(); //-- hadronizer for the LHE input
45  bool decay();
46  bool residualDecay();
47  void finalizeEvent();
48 
49  const char* classname() const;
50 
51  private:
52 
53  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
54  std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }
55 
56  static const std::vector<std::string> theSharedResources;
57 
58  //-- methods
59 
60  void flushTmpStorage();
61  void fillTmpStorage();
62  void imposeProperTime(); //-- to correctly treat particle decay
63 
64  //-- data members
65 
67 
69 
70  double fComEnergy ; //-- irrelevant for setting py6 as hadronizer (or if anything, it should be picked up from LHERunInfoProduct)
74 
75  unsigned int fMaxEventsToPrint ;
77  unsigned int fPythiaListVerbosity ; //-- p6 specific
78 
79  bool fDisplayPythiaBanner; //-- p6 specific
80  bool fDisplayPythiaCards; //-- p6 specific
81 
82  bool fConvertToPDG; //-- conversion of Py6 PID's into PDG convention
83  };
84 }
85 
86 #endif
Pythia6Service * fPy6Service
std::vector< std::string > const & doSharedResources() const override
edm::ParameterSet fParameters
bool declareSpecialSettings(const std::vector< std::string > &)
static const std::vector< std::string > theSharedResources