All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IRayTrace.h
Go to the documentation of this file.
1 /**
2  * @file IRayTrace.h
3  *
4  * @brief This provides an interface for an art tool which ray traces "Prtl"
5  * (massive) particles from their production position to impinge on a detector
6  * surface. It provides the intersection points of a MeVPrtlFlux object, along with
7  * a weight.
8  *
9  * @author grayputnam@uchicago.edu
10  *
11  */
12 #ifndef IRayTrace_h
13 #define IRayTrace_h
14 
15 // Framework Includes
16 #include "fhiclcpp/ParameterSet.h"
17 #include "art/Framework/Principal/Event.h"
18 
19 // Algorithm includes
20 #include "TVector3.h"
21 
22 #include "IMeVPrtlStage.h"
23 
24 // cpp includes
25 #include <vector>
26 #include <array>
27 
29 
30 
31 //------------------------------------------------------------------------------------------------------------------------------------------
32 
33 namespace evgen
34 {
35 namespace ldm {
36 /**
37  * @brief IRayTrace interface class definiton
38  */
39 class IRayTrace: virtual public IMeVPrtlStage
40 {
41 public:
42  /**
43  * @brief Virtual Destructor
44  */
45  virtual ~IRayTrace() noexcept = default;
46 
47  virtual bool IntersectDetector(MeVPrtlFlux &flux, std::array<TVector3, 2> &intersect, double &weight) = 0;
48 };
49 
50 } // namespace ldm
51 } // namespace evgen
52 #endif
53 
virtual bool IntersectDetector(MeVPrtlFlux &flux, std::array< TVector3, 2 > &intersect, double &weight)=0
virtual ~IRayTrace() noexcept=default
Virtual Destructor.
IMeVPrtlStage interface class definiton. General interface behind each stage. Provides random number ...
Definition: IMeVPrtlStage.h:36
IRayTrace interface class definiton.
Definition: IRayTrace.h:39
This provides an art tool interface definition for tools which can create fake particles to overlay o...