CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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  public:
27  ~Cascade2Hadronizer() override;
28 
29  bool readSettings(int);
30  bool initializeForExternalPartons(); //-- initializer for the LHE input
32 
33  //-- Read the parameters and pass them to the common blocks
34  bool cascadeReadParameters(const std::string& ParameterString);
37  bool declareStableParticles(const std::vector<int>&);
38  bool declareSpecialSettings(const std::vector<std::string>&) { return true; }
39  void statistics();
40 
42  bool hadronize(); //-- hadronizer for the LHE input
43  bool decay();
44  bool residualDecay();
45  void finalizeEvent();
46 
47  const char* classname() const;
48 
49  private:
50  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
51  std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }
52 
53  static const std::vector<std::string> theSharedResources;
54 
55  //-- methods
56 
57  void flushTmpStorage();
58  void fillTmpStorage();
59  void imposeProperTime(); //-- to correctly treat particle decay
60 
61  //-- data members
62 
64 
66 
67  double
68  fComEnergy; //-- irrelevant for setting py6 as hadronizer (or if anything, it should be picked up from LHERunInfoProduct)
72 
73  unsigned int fMaxEventsToPrint;
75  unsigned int fPythiaListVerbosity; //-- p6 specific
76 
77  bool fDisplayPythiaBanner; //-- p6 specific
78  bool fDisplayPythiaCards; //-- p6 specific
79 
80  bool fConvertToPDG; //-- conversion of Py6 PID's into PDG convention
81  };
82 } // namespace gen
83 
84 #endif
Cascade2Hadronizer(edm::ParameterSet const &ps)
std::vector< std::string > const & doSharedResources() const override
Pythia6Service * fPy6Service
double v[5][pyjets_maxn]
void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
edm::ParameterSet fParameters
bool declareStableParticles(const std::vector< int > &)
const char * classname() const
bool cascadeReadParameters(const std::string &ParameterString)
bool declareSpecialSettings(const std::vector< std::string > &)
static const std::vector< std::string > theSharedResources