PointGeomAnalyzer.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::geometry::PointGeomAnalyzer
5 
6 \brief The PointGeomAnalyzer class is the simplest implementation of the
7  GeomAnalyserI interface and defines a simple 'point-like' geometry.
8 
9  Use this geometry analyzer to generate events when you do not want
10  to use a detailed GEANT/ROOT geometry description but you only need
11  to generate events for a 'single' nuclear target while you still want
12  to use the GENIE MC job driver 'loaded' with a GENIE flux driver.
13  The geometry can also support a mix of targets, each with its
14  corresponding weight.
15 
16 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
17  University of Liverpool & STFC Rutherford Appleton Laboratory
18 
19 \created July 14, 2005
20 
21 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
22  For the full text of the license visit http://copyright.genie-mc.org
23 */
24 //____________________________________________________________________________
25 
26 #ifndef _POINT_GEOMETRY_ANALYZER_H_
27 #define _POINT_GEOMETRY_ANALYZER_H_
28 
29 #include <map>
30 
32 
33 using std::map;
34 
35 namespace genie {
36 namespace geometry {
37 
39 
40 public :
41  PointGeomAnalyzer(int tgtpdgc);
42  PointGeomAnalyzer(unsigned int n, const int tgt_pdg[], const double weight[]);
43  PointGeomAnalyzer(const map<int,double> & tgtmap /* pdg -> weight*/);
45 
46  // implement the GeomAnalyzerI interface
47 
48  const PDGCodeList & ListOfTargetNuclei (void);
50 
51  const PathLengthList &
53  (const TLorentzVector & x, const TLorentzVector & p);
54  const TVector3 &
56  (const TLorentzVector & x, const TLorentzVector & p, int tgtpdg);
57 private:
58 
59  void Initialize (const map<int,double> & tgtmap);
60  void CleanUp (void);
61 
62  TVector3 * fCurrVertex; ///< current generated vertex
63  PathLengthList * fCurrPathLengthList; ///< current list of path-lengths
64  PDGCodeList * fCurrPDGCodeList; ///< current list of target nuclei
65 };
66 
67 } // geometry namespace
68 } // genie namespace
69 
70 #endif // _POINT_GEOMETRY_ANALYZER_H_
const TVector3 & GenerateVertex(const TLorentzVector &x, const TLorentzVector &p, int tgtpdg)
PDGCodeList * fCurrPDGCodeList
current list of target nuclei
void Initialize(const map< int, double > &tgtmap)
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
TVector3 * fCurrVertex
current generated vertex
const PathLengthList & ComputePathLengths(const TLorentzVector &x, const TLorentzVector &p)
const PathLengthList & ComputeMaxPathLengths(void)
weight
Definition: test.py:257
A list of PDG codes.
Definition: PDGCodeList.h:32
const PDGCodeList & ListOfTargetNuclei(void)
PathLengthList * fCurrPathLengthList
current list of path-lengths
Object to be filled with the neutrino path-length, for all detector geometry materials, when starting from a position x and travelling along the direction of the neutrino 4-momentum.
std::void_t< T > n
p
Definition: test.py:223
list x
Definition: train.py:276
Defines the GENIE Geometry Analyzer Interface.
Definition: GeomAnalyzerI.h:29
The PointGeomAnalyzer class is the simplest implementation of the GeomAnalyserI interface and defines...