forked from sPHENIX-Collaboration/coresoftware
/
PHG4MvtxSubsystem.h
73 lines (58 loc) · 2.07 KB
/
PHG4MvtxSubsystem.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Tell emacs that this is a C++ source
// -*- C++ -*-.
#ifndef G4MVTX_PHG4MVTXSUBSYSTEM_H
#define G4MVTX_PHG4MVTXSUBSYSTEM_H
#include <g4detectors/PHG4DetectorGroupSubsystem.h>
#include <cmath> // for asin
#include <string> // for string
class PHCompositeNode;
class PHG4Detector;
class PHG4DisplayAction;
class PHG4MvtxDetector;
class PHG4SteppingAction;
class PHG4MvtxSubsystem : public PHG4DetectorGroupSubsystem
{
public:
//! constructor
PHG4MvtxSubsystem(const std::string& name = "PHG4MvtxSubsystem", const int _n_layers = 3);
//! destructor
~PHG4MvtxSubsystem() override;
//! InitRunSubsystem
/*!
called during InitRun (the original InitRun does common setup and calls this one)
creates the detector object
creates the stepping action
creates relevant hit nodes that will be populated by the stepping action and stored in the output DST
*/
int InitRunSubsystem(PHCompositeNode*) override;
//! event processing
/*!
get all relevant nodes from top nodes (namely hit list)
and pass that to the stepping action
*/
int process_event(PHCompositeNode*) override;
//! accessors (reimplemented)
PHG4Detector* GetDetector(void) const override;
PHG4SteppingAction* GetSteppingAction(void) const override;
PHG4DisplayAction* GetDisplayAction() const override { return m_DisplayAction; }
private:
void SetDefaultParameters() override;
static double radii2Turbo(double rMin, double rMid, double rMax, double sensW)
{
// compute turbo angle from radii and sensor width
return std::asin((rMax * rMax - rMin * rMin) / (2 * rMid * sensW));
}
//! detector geometry
/*! defives from PHG4Detector */
PHG4MvtxDetector* m_Detector;
//! particle tracking "stepping" action
/*! derives from PHG4SteppingActions */
PHG4SteppingAction* steppingAction_;
//! display attribute setting
/*! derives from PHG4DisplayAction */
PHG4DisplayAction* m_DisplayAction;
// These are passed on to the detector class
unsigned int n_layers;
std::string detector_type;
};
#endif