Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-07-01 07:05:42

0001 /**
0002  \file
0003  Declaration of class erhic::VirtualEvent.
0004  
0005  \author    Thomas Burton
0006  \date      2011-08-19
0007  \copyright 2011 Brookhaven National Lab
0008  */
0009 
0010 #ifndef INCLUDE_EICSMEAR_ERHIC_VIRTUALEVENT_H_
0011 #define INCLUDE_EICSMEAR_ERHIC_VIRTUALEVENT_H_
0012 
0013 #include <TObject.h>
0014 
0015 #include <vector>
0016 
0017 namespace erhic {
0018 
0019 class VirtualParticle;
0020 
0021 /**
0022  \brief   Abstract base class for a physics event.
0023  \details Defines an "event" simply as a collection of tracks.
0024  */
0025 class VirtualEvent : public TObject {
0026  public:
0027   /**
0028    Destructor
0029    */
0030   virtual ~VirtualEvent() { }
0031 
0032   /**
0033    Returns the nth track from the event.
0034    
0035    Indices run from 0 to (n-1).
0036    */
0037   virtual const VirtualParticle* GetTrack(UInt_t /* number */) const = 0;
0038 
0039   /**
0040    \overload
0041    */
0042   virtual VirtualParticle* GetTrack(UInt_t /*number*/) = 0;
0043 
0044   /**
0045    Returns the number of tracks in the event.
0046    */
0047   virtual UInt_t GetNTracks() const = 0;
0048 
0049   /**
0050    typedef for a track pointer collection.
0051    */
0052   typedef std::vector<const erhic::VirtualParticle*> ParticlePtrList;
0053 
0054   /**
0055    Populate a track list with the hadronic final-state.
0056    Note that the method is a bit of a misnomer - it will return ALL final
0057    particles other than the scattered lepton
0058    (intentionally, since you want to take decay products into account as well)
0059    */
0060   virtual void HadronicFinalState(ParticlePtrList&) const { }
0061 
0062   ClassDef(erhic::VirtualEvent, 1)
0063 };
0064 
0065 }  // namespace erhic
0066 
0067 #endif  // INCLUDE_EICSMEAR_ERHIC_VIRTUALEVENT_H_