C++InterfacetoTauola
src/tauolaCInterfaces/TauolaEvent.h
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 class TauolaEvent{
30 
31  public:
32  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  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 
virtual std::vector< TauolaParticle * > findStableParticles(int pdg_id)=0
Abstract base class for containing the event information.
std::vector< TauolaParticle * > findPairs()
virtual std::vector< TauolaParticle * > findParticles(int pdg_id)=0