herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
ProcessData.h
1 // -*- C++ -*-
2 //
3 // ProcessData.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef Herwig_ProcessData_H
10 #define Herwig_ProcessData_H
11 //
12 // This is the declaration of the ProcessData class.
13 //
14 
15 #include "ThePEG/Handlers/HandlerBase.h"
16 #include "ThePEG/MatrixElement/Tree2toNDiagram.h"
17 #include "ThePEG/Handlers/StandardXComb.h"
18 #include "Herwig/PDT/GenericMassGenerator.h"
19 #include "Herwig/MatrixElement/Matchbox/Utility/ProcessData.fh"
20 
21 namespace Herwig {
22 
23 using namespace ThePEG;
24 
34 class ProcessData: public HandlerBase {
35 
36 public:
37 
43  ProcessData();
44 
48  virtual ~ProcessData();
50 
51 public:
52 
56  map<PDVector,vector<Ptr<Tree2toNDiagram>::ptr> >& diagramMap() { return theDiagramMap; }
57 
61  const map<PDVector,vector<Ptr<Tree2toNDiagram>::ptr> >& diagramMap() const { return theDiagramMap; }
62 
66  map<Ptr<Tree2toNDiagram>::tcptr,vector<ColourLines*> >& colourFlowMap() { return theColourFlowMap; }
67 
71  const map<Ptr<Tree2toNDiagram>::tcptr,vector<ColourLines*> >& colourFlowMap() const { return theColourFlowMap; }
72 
76  map<cPDPtr,tGenericMassGeneratorPtr>& massGenerators() { return theMassGenerators; }
77 
81  const map<cPDPtr,tGenericMassGeneratorPtr>& massGenerators() const { return theMassGenerators; }
82 
86  tGenericMassGeneratorPtr massGenerator(cPDPtr);
87 
91  void fillMassGenerators(const PDVector&);
92 
93 public:
94 
101  void persistentOutput(PersistentOStream & os) const;
102 
108  void persistentInput(PersistentIStream & is, int version);
110 
117  static void Init();
118 
119 protected:
120 
127  virtual IBPtr clone() const;
128 
133  virtual IBPtr fullclone() const;
135 
136 
137 // If needed, insert declarations of virtual function defined in the
138 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
139 
140 private:
141 
145  map<PDVector,vector<Ptr<Tree2toNDiagram>::ptr> > theDiagramMap;
146 
150  map<Ptr<Tree2toNDiagram>::tcptr,vector<ColourLines*> > theColourFlowMap;
151 
155  map<cPDPtr,tGenericMassGeneratorPtr> theMassGenerators;
156 
157 private:
158 
163  ProcessData & operator=(const ProcessData &) = delete;
164 
165 };
166 
167 }
168 
169 #endif /* Herwig_ProcessData_H */
map< Ptr< Tree2toNDiagram >::tcptr, vector< ColourLines * > > & colourFlowMap()
Access colour flows contributing to a given diagram.
Definition: ProcessData.h:66
Provide storage for process data.
Definition: ProcessData.h:34
const map< PDVector, vector< Ptr< Tree2toNDiagram >::ptr > > & diagramMap() const
Return diagrams contributing to a given subprocess.
Definition: ProcessData.h:61
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
map< Ptr< Tree2toNDiagram >::tcptr, vector< ColourLines * > > theColourFlowMap
Colour flows contributing to a given diagram.
Definition: ProcessData.h:150
ThePEG::Ptr< ParticleData >::const_pointer cPDPtr
const map< Ptr< Tree2toNDiagram >::tcptr, vector< ColourLines * > > & colourFlowMap() const
Return colour flows contributing to a given diagram.
Definition: ProcessData.h:71
const map< cPDPtr, tGenericMassGeneratorPtr > & massGenerators() const
Return the mass generators to be used for the given particles.
Definition: ProcessData.h:81
map< PDVector, vector< Ptr< Tree2toNDiagram >::ptr > > & diagramMap()
Access diagrams contributing to a given subprocess.
Definition: ProcessData.h:56
map< cPDPtr, tGenericMassGeneratorPtr > theMassGenerators
The mass generators to be used for the given particles.
Definition: ProcessData.h:155
-*- C++ -*-
vector< PDPtr > PDVector
map< PDVector, vector< Ptr< Tree2toNDiagram >::ptr > > theDiagramMap
The diagrams contributing to a subprocess.
Definition: ProcessData.h:145
map< cPDPtr, tGenericMassGeneratorPtr > & massGenerators()
Access the mass generators to be used for the given particles.
Definition: ProcessData.h:76