GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HNLDecayRecordVisitorI.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::hnl::DecayRecordVisitorI
5 
6 \brief Expands the EventRecordVisitorI interface to include public interfaces
7  for the HNL Decayer module.
8  Concrete implementations of this interface use the 'Visitor' Design
9  Pattern to perform an operation on an EventRecord.
10 
11 \author John Plows <komninos-john.plows \at physics.ox.ac.uk>
12  University of Oxford
13 
14  Costas Andreopoulos <c.andreopoulos \at cern.ch>
15  University of Liverpool
16 
17 \created January 23rd, 2023
18 
19 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
20  For the full text of the license visit http://copyright.genie-mc.org
21 */
22 //____________________________________________________________________________
23 
24 #ifndef _HNL_DECAY_RECORD_VISITOR_I_H_
25 #define _HNL_DECAY_RECORD_VISITOR_I_H_
26 
28 
29 namespace genie {
30 
31  class GHepRecord;
32 
33  namespace hnl {
34 
36 
37  public:
38 
39  virtual ~DecayRecordVisitorI();
40 
41  //-- define the DecayRecordVisitorI interface
42 
43  virtual void ProcessEventRecord(GHepRecord * event_rec) const = 0;
44 
45  virtual double GetHNLLifetime() const = 0;
46  virtual double GetHNLMass() const = 0;
47  virtual std::vector< double > GetHNLCouplings() const = 0;
48  virtual bool IsHNLMajorana() const = 0;
49 
50  virtual std::string GetHNLInterestingChannels() const = 0;
51 
52  //-- additional methods for particle-gun
53 
54  virtual std::vector< double > GetPGunOrigin() const = 0;
55  virtual std::vector< double > GetPGunDOrigin() const = 0;
56 
57  virtual double GetPGunEnergy() const = 0;
58  virtual std::vector< double > GetPGunDirection() const = 0;
59  virtual std::vector< double > GetPGunDeviation() const = 0;
60 
61  protected:
62 
64  DecayRecordVisitorI(string name);
65  DecayRecordVisitorI(string name, string config);
66 
67  };
68 
69  } // namespace hnl
70 
71 } // namespace genie
72 
73 #endif // #ifndef _HNL_DECAY_RECORD_VISITOR_I_H_
virtual std::vector< double > GetPGunOrigin() const =0
virtual bool IsHNLMajorana() const =0
virtual std::vector< double > GetPGunDOrigin() const =0
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
virtual std::vector< double > GetPGunDirection() const =0
virtual std::vector< double > GetPGunDeviation() const =0
virtual double GetHNLMass() const =0
virtual double GetPGunEnergy() const =0
virtual void ProcessEventRecord(GHepRecord *event_rec) const =0
virtual std::vector< double > GetHNLCouplings() const =0
virtual double GetHNLLifetime() const =0
virtual std::string GetHNLInterestingChannels() const =0
Expands the EventRecordVisitorI interface to include public interfaces for the HNL Decayer module...
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45