-
Stephen A. Wood authored
Not doing so leads to build error on some systems with cmake.
Stephen A. Wood authoredNot doing so leads to build error on some systems with cmake.
THcSecondaryKine.h 5.51 KiB
#ifndef ROOT_THcSecondaryKine
#define ROOT_THcSecondaryKine
//////////////////////////////////////////////////////////////////////////
//
// THcSecondaryKine
//
//////////////////////////////////////////////////////////////////////////
#include "THaPhysicsModule.h"
#include "THcHallCSpectrometer.h"
#include "TLorentzVector.h"
#include "TString.h"
class THcPrimaryKine;
class THcHallCSpectrometer;
typedef TLorentzVector FourVect;
class THcSecondaryKine : public THaPhysicsModule {
public:
THcSecondaryKine( const char* name, const char* description,
const char* secondary_spectro = "",
const char* primary_kine = "",
Double_t secondary_mass = 0.0 /* GeV */ );
virtual ~THcSecondaryKine();
virtual void Clear( Option_t* opt="" );
Double_t GetTheta_xq() const { return fTheta_xq; }
Double_t GetPhi_xq() const { return fPhi_xq; }
Double_t GetTheta_bq() const { return fTheta_bq; }
Double_t GetPhi_bq() const { return fPhi_bq; }
Double_t GetXangle() const { return fXangle; }
Double_t GetPmiss() const { return fPmiss; }
Double_t GetPmiss_x() const { return fPmiss_x; }
Double_t GetPmiss_y() const { return fPmiss_y; }
Double_t GetPmiss_z() const { return fPmiss_z; }
Double_t GetEmiss() const { return fEmiss; }
Double_t GetMrecoil() const { return fMrecoil; }
Double_t GetErecoil() const { return fErecoil; }
Double_t GetPrecoil_x() const { return fB.X(); }
Double_t GetPrecoil_y() const { return fB.Y(); }
Double_t GetPrecoil_z() const { return fB.Z(); }
Double_t GetTX() const { return fTX; }
Double_t GetTB() const { return fTB; }
Double_t GetPX_cm() const { return fPX_cm; }
Double_t GetTheta_x_cm() const { return fTheta_x_cm; }
Double_t GetPhi_x_cm() const { return fPhi_x_cm; }
Double_t GetTheta_b_cm() const { return fTheta_b_cm; }
Double_t GetPhi_b_cm() const { return fPhi_b_cm; }
Double_t GetTX_cm() const { return fTX_cm; }
Double_t GetTB_cm() const { return fTB_cm; }
Double_t GetTtot_cm() const { return fTtot_cm; }
Double_t GetMandelS() const { return fMandelS; }
Double_t GetMandelT() const { return fMandelT; }
Double_t GetMandelU() const { return fMandelU; }
Double_t GetMX() const { return fMX; }
const TLorentzVector* GetPX() const { return &fX; }
const TLorentzVector* GetPB() const { return &fB; }
virtual EStatus Init( const TDatime& run_time );
virtual Int_t Process( const THaEvData& );
void SetSpectrometer( const char* name );
void SetPrimary( const char* name );
void SetMX( Double_t m );
THcPrimaryKine* GetPrimary() const { return fPrimary; }
protected:
// Event data
Double_t fTheta_xq; // Polar angle of detected particle with q (rad)
Double_t fPhi_xq; // Azimuth of detected particle with scattering plane (rad)
Double_t fTheta_bq; // Polar angle of recoil system with q (rad)
Double_t fPhi_bq; // Azimuth of recoil system with scattering plane (rad)
Double_t fXangle; // Angle of detected particle with scattered electron (rad)
Double_t fPmiss; // Missing momentum magnitude (GeV), nuclear physics definition (-pB)
Double_t fPmiss_x; // x-component of p_miss wrt q (GeV)
Double_t fPmiss_y; // y-component of p_miss wrt q (GeV)
Double_t fPmiss_z; // z-component of p_miss, along q (GeV)
Double_t fEmiss_nuc; // Missing energy (GeV), nuclear physics definition omega-Tx-Tb
Double_t fEmiss; // Missing energy (GeV), correct definition omega+Mt-Ex
Double_t fMrecoil; // Invariant mass of recoil system (GeV)
Double_t fErecoil; // Total energy of recoil system (GeV)
Double_t fTX; // Kinetic energy of detected particle (GeV)
Double_t fTB; // Kinetic energy of recoil system (GeV)
Double_t fPX_cm; // Magnitude of X momentum in CM system (GeV)
Double_t fTheta_x_cm; // Polar angle of X in CM system wrt q (rad)
Double_t fPhi_x_cm; // Azimuth of X in CM system wrt q (rad)
Double_t fTheta_b_cm; // Polar angle of recoil systm in CM wrt q (rad)
Double_t fPhi_b_cm; // Azimuth of recoil system in CM wrt q (rad)
Double_t fTX_cm; // Kinetic energy of X in CM (GeV)
Double_t fTB_cm; // Kinetic energy of B in CM (GeV)
Double_t fTtot_cm; // Total CM kinetic energy
Double_t fMandelS; // Mandelstam s for secondary vertex (GeV^2)
Double_t fMandelT; // Mandelstam t for secondary vertex (GeV^2)
Double_t fMandelU; // Mandelstam u for secondary vertex (GeV^2)
TLorentzVector fX; // Detected secondary particle 4-momentum (GeV)
TLorentzVector fB; // Recoil system 4-momentum (GeV)
// Parameters
Double_t fMX; // Mass of secondary particle (GeV)
Double_t fOopCentralOffset; //Offset of central out-of-plane angle (rad)
TString fSpectroName; // Name of spectrometer for secondary particle
THcHallCSpectrometer* fSpectro; // Pointer to spectrometer object
TString fPrimaryName; // Name of module for primary interaction kinematics
THcPrimaryKine* fPrimary; // Pointer to primary kinematics module
virtual Int_t DefineVariables( EMode mode = kDefine );
virtual Int_t ReadDatabase( const TDatime& date );
ClassDef(THcSecondaryKine,0) //Secondary particle kinematics module
};
#endif