Line data Source code
1 : #ifndef _TauolaEvent_h_included_
2 : #define _TauolaEvent_h_included_
3 :
4 : #include <stdio.h>
5 : #include <stdlib.h>
6 : #include <iostream>
7 : #include "TauolaParticlePair.h"
8 :
9 : /**
10 : * @class TauolaEvent
11 : *
12 : * @brief Abstract base class for containing the event information.
13 : *
14 : * TauolaEvent contains virtual methods, which need to be implemented
15 : * by the appropriate interface class to the event record. Currently only
16 : * TauolaHepMCEvent does this. An object of TauolaEvent type should be
17 : * created by the user and can be decayed via the decayTaus() method.
18 : *
19 : * This class is responsible for finding taus, (or tau and
20 : * it's neutrino) and creating TauolaParticlePairs out of them.
21 : *
22 : * @author Nadia Davidson
23 : * @date 16 June 2008
24 : */
25 :
26 : namespace Tauolapp
27 : {
28 :
29 0 : class TauolaEvent{
30 :
31 : public:
32 0 : virtual ~TauolaEvent(){};
33 :
34 : /** create TauolaParticlePairs */
35 : std::vector<TauolaParticle*> findPairs();
36 :
37 : /** Decay taus in this event.*/
38 : void decayTaus();
39 :
40 : /** Undecay taus in this event but removing their daughters and
41 : returning the status cods to 1.*/
42 : void undecayTaus();
43 :
44 : /** Final touches to event record after all decays are finished.
45 : Some event records (e.g. HepMC) need it. */
46 0 : virtual void eventEndgame() {}
47 :
48 : /** return a list of all particle with pdg_id = absolute value of pdg_id.
49 : This method must be implemented by a derived class. eg.
50 : TauolaHepMCEvent */
51 : virtual std::vector<TauolaParticle*> findParticles(int pdg_id)=0;
52 :
53 : /** return a list of all particle with pdg_id = absolute value of pdg_id
54 : and stable status code. This method must be implemented by a derived class.
55 : eg. TauolaHepMCEvent */
56 : virtual std::vector<TauolaParticle*> findStableParticles(int pdg_id)=0;
57 :
58 :
59 : private:
60 :
61 : };
62 :
63 : } // namespace Tauolapp
64 : #endif
65 :
|