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 <costas.andreopoulos \at stfc.ac.uk>
17  University of Liverpool & STFC Rutherford Appleton Lab
18 
19 \created July 14, 2005
20 
21 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
22  For the full text of the license visit http://copyright.genie-mc.org
23  or see $GENIE/LICENSE
24 */
25 //____________________________________________________________________________
26 
27 #ifndef _POINT_GEOMETRY_ANALYZER_H_
28 #define _POINT_GEOMETRY_ANALYZER_H_
29 
30 #include <map>
31 
33 
34 using std::map;
35 
36 namespace genie {
37 namespace geometry {
38 
40 
41 public :
42  PointGeomAnalyzer(int tgtpdgc);
43  PointGeomAnalyzer(unsigned int n, const int tgt_pdg[], const double weight[]);
44  PointGeomAnalyzer(const map<int,double> & tgtmap /* pdg -> weight*/);
46 
47  // implement the GeomAnalyzerI interface
48 
49  const PDGCodeList & ListOfTargetNuclei (void);
51 
52  const PathLengthList &
54  (const TLorentzVector & x, const TLorentzVector & p);
55  const TVector3 &
57  (const TLorentzVector & x, const TLorentzVector & p, int tgtpdg);
58 private:
59 
60  void Initialize (const map<int,double> & tgtmap);
61  void CleanUp (void);
62 
63  TVector3 * fCurrVertex; ///< current generated vertex
64  PathLengthList * fCurrPathLengthList; ///< current list of path-lengths
65  PDGCodeList * fCurrPDGCodeList; ///< current list of target nuclei
66 };
67 
68 } // geometry namespace
69 } // genie namespace
70 
71 #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: GeneratorBase.h:8
TVector3 * fCurrVertex
current generated vertex
const Var weight
const PathLengthList & ComputePathLengths(const TLorentzVector &x, const TLorentzVector &p)
const PathLengthList & ComputeMaxPathLengths(void)
const char * p
Definition: xmltok.h:285
A list of PDG codes.
Definition: PDGCodeList.h:33
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.
Defines the GENIE Geometry Analyzer Interface.
Definition: GeomAnalyzerI.h:30
The PointGeomAnalyzer class is the simplest implementation of the GeomAnalyserI interface and defines...