Hall A ROOT/C++ Analyzer (podd)
Loading...
Searching...
No Matches
THaSecondaryKine.h
Go to the documentation of this file.
1#ifndef Podd_THaSecondaryKine_h_
2#define Podd_THaSecondaryKine_h_
3
5//
6// THaSecondaryKine
7//
9
10#include "THaPhysicsModule.h"
11#include "TLorentzVector.h"
12#include "TString.h"
13
14class THaPrimaryKine;
17
19
20public:
21 THaSecondaryKine( const char* name, const char* description,
22 const char* secondary_spectro = "",
23 const char* primary_kine = "",
24 Double_t secondary_mass = 0.0 /* GeV */ );
25 virtual ~THaSecondaryKine();
26
27 virtual void Clear( Option_t* opt="" );
28
29 Double_t GetTheta_xq() const { return fTheta_xq; }
30 Double_t GetPhi_xq() const { return fPhi_xq; }
31 Double_t GetTheta_bq() const { return fTheta_bq; }
32 Double_t GetPhi_bq() const { return fPhi_bq; }
33 Double_t GetXangle() const { return fXangle; }
34 Double_t GetPmiss() const { return fPmiss; }
35 Double_t GetPmiss_x() const { return fPmiss_x; }
36 Double_t GetPmiss_y() const { return fPmiss_y; }
37 Double_t GetPmiss_z() const { return fPmiss_z; }
38 Double_t GetEmiss() const { return fEmiss; }
39 Double_t GetMrecoil() const { return fMrecoil; }
40 Double_t GetErecoil() const { return fErecoil; }
41 Double_t GetPrecoil_x() const { return fB.X(); }
42 Double_t GetPrecoil_y() const { return fB.Y(); }
43 Double_t GetPrecoil_z() const { return fB.Z(); }
44 Double_t GetTX() const { return fTX; }
45 Double_t GetTB() const { return fTB; }
46 Double_t GetPX_cm() const { return fPX_cm; }
48 Double_t GetPhi_x_cm() const { return fPhi_x_cm; }
50 Double_t GetPhi_b_cm() const { return fPhi_b_cm; }
51 Double_t GetTX_cm() const { return fTX_cm; }
52 Double_t GetTB_cm() const { return fTB_cm; }
53 Double_t GetTtot_cm() const { return fTtot_cm; }
54 Double_t GetMandelS() const { return fMandelS; }
55 Double_t GetMandelT() const { return fMandelT; }
56 Double_t GetMandelU() const { return fMandelU; }
57
58 Double_t GetMX() const { return fMX; }
59
60 const FourVect* GetPX() const { return &fX; }
61 const FourVect* GetPB() const { return &fB; }
62
63 virtual EStatus Init( const TDatime& run_time );
64 virtual Int_t Process( const THaEvData& );
65 void SetSpectrometer( const char* name );
66 void SetPrimary( const char* name );
67 void SetMX( Double_t m );
68
69 THaPrimaryKine* GetPrimary() const { return fPrimary; }
70
71protected:
72
73 // Event data
74 Double_t fTheta_xq; // Polar angle of detected particle with q (rad)
75 Double_t fPhi_xq; // Azimuth of detected particle with scattering plane (rad)
76 Double_t fTheta_bq; // Polar angle of recoil system with q (rad)
77 Double_t fPhi_bq; // Azimuth of recoil system with scattering plane (rad)
78 Double_t fXangle; // Angle of detected particle with scattered electron (rad)
79 Double_t fPmiss; // Missing momentum magnitude (GeV), nuclear physics definition (-pB)
80 Double_t fPmiss_x; // x-component of p_miss wrt q (GeV)
81 Double_t fPmiss_y; // y-component of p_miss wrt q (GeV)
82 Double_t fPmiss_z; // z-component of p_miss, along q (GeV)
83 Double_t fEmiss; // Missing energy (GeV), nuclear physics definition omega-Tx-Tb
84 Double_t fMrecoil; // Invariant mass of recoil system (GeV)
85 Double_t fErecoil; // Total energy of recoil system (GeV)
86 Double_t fTX; // Kinetic energy of detected particle (GeV)
87 Double_t fTB; // Kinetic energy of recoil system (GeV)
88 Double_t fPX_cm; // Magnitude of X momentum in CM system (GeV)
89 Double_t fTheta_x_cm; // Polar angle of X in CM system wrt q (rad)
90 Double_t fPhi_x_cm; // Azimuth of X in CM system wrt q (rad)
91 Double_t fTheta_b_cm; // Polar angle of recoil system in CM wrt q (rad)
92 Double_t fPhi_b_cm; // Azimuth of recoil system in CM wrt q (rad)
93 Double_t fTX_cm; // Kinetic energy of X in CM (GeV)
94 Double_t fTB_cm; // Kinetic energy of B in CM (GeV)
95 Double_t fTtot_cm; // Total CM kinetic energy
96 Double_t fMandelS; // Mandelstam s for secondary vertex (GeV^2)
97 Double_t fMandelT; // Mandelstam t for secondary vertex (GeV^2)
98 Double_t fMandelU; // Mandelstam u for secondary vertex (GeV^2)
99
100 FourVect fX; // Detected secondary particle 4-momentum (GeV)
101 FourVect fB; // Recoil system 4-momentum (GeV)
102
103 // Parameters
104 Double_t fMX; // Mass of secondary particle (GeV)
105
106 TString fSpectroName; // Name of spectrometer for secondary particle
107 THaTrackingModule* fSpectro; // Pointer to spectrometer object
108 TString fPrimaryName; // Name of module for primary interaction kinematics
109 THaPrimaryKine* fPrimary; // Pointer to primary kinematics module
110
111 virtual Int_t DefineVariables( EMode mode = kDefine );
112 virtual Int_t ReadRunDatabase( const TDatime& date );
113
114 ClassDef(THaSecondaryKine,0) //Secondary particle kinematics module
115};
116
117#endif
int Int_t
double Double_t
const char Option_t
#define ClassDef(name, id)
TLorentzVector FourVect
Double_t GetTheta_xq() const
Double_t GetTX_cm() const
void SetPrimary(const char *name)
Double_t GetPhi_bq() const
Double_t GetMX() const
Double_t GetTB() const
THaTrackingModule * fSpectro
void SetSpectrometer(const char *name)
Double_t GetEmiss() const
const FourVect * GetPX() const
void SetMX(Double_t m)
THaPrimaryKine * GetPrimary() const
Double_t GetPhi_x_cm() const
Double_t GetErecoil() const
Double_t GetPmiss() const
Double_t GetTheta_bq() const
Double_t GetMrecoil() const
Double_t GetTheta_x_cm() const
Double_t GetPX_cm() const
THaSecondaryKine(const char *name, const char *description, const char *secondary_spectro="", const char *primary_kine="", Double_t secondary_mass=0.0)
Double_t GetPrecoil_z() const
virtual Int_t Process(const THaEvData &)
Double_t GetPrecoil_x() const
Double_t GetPmiss_z() const
Double_t GetTheta_b_cm() const
virtual void Clear(Option_t *opt="")
Double_t GetMandelS() const
Double_t GetMandelU() const
Double_t GetPrecoil_y() const
THaPrimaryKine * fPrimary
const FourVect * GetPB() const
Double_t GetPhi_b_cm() const
Double_t GetPmiss_y() const
Double_t GetTtot_cm() const
virtual Int_t DefineVariables(EMode mode=kDefine)
virtual Int_t ReadRunDatabase(const TDatime &date)
Double_t GetXangle() const
Double_t GetTB_cm() const
Double_t GetMandelT() const
Double_t GetPmiss_x() const
Double_t GetPhi_xq() const
Double_t GetTX() const
Double_t Y() const
Double_t X() const
Double_t Z() const