1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
// -*- C++ -*-
//
// EventInfoBase.h is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2011 Leif Lonnblad
//
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
#ifndef ThePEG_EventInfoBase_H
#define ThePEG_EventInfoBase_H
// This is the declaration of the EventInfoBase class.
#include "ThePEG/EventRecord/EventConfig.h"
#include "ThePEG/Utilities/ClassDescription.h"
namespace ThePEG {
/**
* EventInfoBase is a base class for information objects. It is used
* as a base class for classes representing user-defined information
* which may be associated with a Particle. The class itself is
* practically empty. Information added in sub-classes can be accessed
* from a Particle by the Particle::getInfo() function and the
* resulting pointers need to be dynamically cast to check if they are
* of a desired class.
*/
class EventInfoBase: public EventRecordBase {
public:
/**
* Rebind to cloned objects. If an EventInfoBase is cloned together
* with a whole Event and this has pointers to other event record
* objects, these should be rebound to their clones in this
* function.
*/
virtual void rebind(const EventTranslationMap & ) {}
/**
* Standard Init function. @see Base::Init().
*/
static void Init() {}
/**
* Standard clone method.
*/
virtual EIPtr clone() const { return new_ptr(*this); }
private:
/**
* Describe concrete class without persistent data.
*/
static NoPIOClassDescription<EventInfoBase> initEventInfoBase;
/**
* Private and non-existent assignment operator.
*/
EventInfoBase & operator=(const EventInfoBase &);
};
/** @cond TRAITSPECIALIZATIONS */
ThePEG_DECLARE_CLASS_TRAITS(EventInfoBase,EventRecordBase);
/** @endcond */
}
#endif /* ThePEG_EventInfoBase_H */
|