herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
21namespace Herwig {
22
23using namespace ThePEG;
24
34class ProcessData: public HandlerBase {
35
36public:
37
44
48 virtual ~ProcessData();
50
51public:
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
92
93public:
94
102
108 void persistentInput(PersistentIStream & is, int version);
110
117 static void Init();
118
119protected:
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
140private:
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
157private:
158
163 ProcessData & operator=(const ProcessData &) = delete;
164
165};
166
167}
168
169#endif /* Herwig_ProcessData_H */
Provide storage for process data.
Definition: ProcessData.h:34
map< PDVector, vector< Ptr< Tree2toNDiagram >::ptr > > & diagramMap()
Access diagrams contributing to a given subprocess.
Definition: ProcessData.h:56
ProcessData()
The default constructor.
tGenericMassGeneratorPtr massGenerator(cPDPtr)
Return the mass generator (or NULL)
const map< PDVector, vector< Ptr< Tree2toNDiagram >::ptr > > & diagramMap() const
Return diagrams contributing to a given subprocess.
Definition: ProcessData.h:61
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
map< PDVector, vector< Ptr< Tree2toNDiagram >::ptr > > theDiagramMap
The diagrams contributing to a subprocess.
Definition: ProcessData.h:145
map< Ptr< Tree2toNDiagram >::tcptr, vector< ColourLines * > > theColourFlowMap
Colour flows contributing to a given diagram.
Definition: ProcessData.h:150
const map< Ptr< Tree2toNDiagram >::tcptr, vector< ColourLines * > > & colourFlowMap() const
Return colour flows contributing to a given diagram.
Definition: ProcessData.h:71
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
map< Ptr< Tree2toNDiagram >::tcptr, vector< ColourLines * > > & colourFlowMap()
Access colour flows contributing to a given diagram.
Definition: ProcessData.h:66
map< cPDPtr, tGenericMassGeneratorPtr > & massGenerators()
Access the mass generators to be used for the given particles.
Definition: ProcessData.h:76
ProcessData & operator=(const ProcessData &)=delete
The assignment operator is private and must never be called.
static void Init()
The standard Init function used to initialize the interfaces.
virtual ~ProcessData()
The destructor.
void fillMassGenerators(const PDVector &)
Fill the mass generators for the given process.
map< cPDPtr, tGenericMassGeneratorPtr > theMassGenerators
The mass generators to be used for the given particles.
Definition: ProcessData.h:155
virtual IBPtr clone() const
Make a simple clone of this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
const map< cPDPtr, tGenericMassGeneratorPtr > & massGenerators() const
Return the mass generators to be used for the given particles.
Definition: ProcessData.h:81
-*- C++ -*-
vector< PDPtr > PDVector
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< ParticleData >::const_pointer cPDPtr