49 const char* secondary_spectro,
50 const char* primary_kine,
52 const char* vertex_module) :
53 THcSecondaryKine(name, description, secondary_spectro, primary_kine, secondary_mass),
57 fVertexModuleName(vertex_module),
58 fVertexModule(nullptr),
118 {
"th_xq",
"Polar angle of detected particle with q (rad)",
120 {
"ph_xq",
"Azimuth of detected particle with scattering plane (rad)",
122 {
"th_bq",
"Polar angle of recoil system with q (rad)",
"fTheta_bq" },
123 {
"ph_bq",
"Azimuth of recoil system with scattering plane (rad)",
125 {
"xangle",
"Angle of detected particle with scattered electron (rad)",
127 {
"pmiss",
"Missing momentum magnitude (GeV), nuclear physics "
128 "definition (-pB)",
"fPmiss" },
129 {
"pmiss_x",
"x-component of p_miss wrt q (GeV)",
"fPmiss_x" },
130 {
"pmiss_y",
"y-component of p_miss wrt q (GeV)",
"fPmiss_y" },
131 {
"pmiss_z",
"z-component of p_miss, along q (GeV)",
"fPmiss_z" },
132 {
"emiss_nuc",
"Missing energy (GeV), nuclear physics definition "
133 "omega-Tx-Tb",
"fEmiss_nuc" },
134 {
"emiss",
"Missing energy (GeV), ENGINE definition "
135 "omega-Mt-Ex",
"fEmiss" },
136 {
"Mrecoil",
"Invariant mass of recoil system (GeV)",
"fMrecoil" },
137 {
"Erecoil",
"Total energy of recoil system (GeV)",
"fErecoil" },
138 {
"Prec_x",
"x-component of recoil system in lab (GeV/c)",
"fB.X()" },
139 {
"Prec_y",
"y-component of recoil system in lab (GeV/c)",
"fB.Y()" },
140 {
"Prec_z",
"z-component of recoil system in lab (GeV/c)",
"fB.Z()" },
141 {
"tx",
"Kinetic energy of detected particle (GeV)",
"fTX" },
142 {
"tb",
"Kinetic energy of recoil system (GeV)",
"fTB" },
143 {
"px_cm",
"Magnitude of X momentum in CM system (GeV)",
"fPX_cm" },
144 {
"thx_cm",
"Polar angle of X in CM system wrt q (rad)",
"fTheta_x_cm" },
145 {
"phx_cm",
"Azimuth of X in CM system wrt q (rad)",
"fPhi_x_cm" },
146 {
"thb_cm",
"Polar angle of recoil systm in CM wrt q (rad)",
148 {
"phb_cm",
"Azimuth of recoil system in CM wrt q (rad)",
"fPhi_b_cm" },
149 {
"tx_cm",
"Kinetic energy of X in CM (GeV)",
"fTX_cm" },
150 {
"tb_cm",
"Kinetic energy of B in CM (GeV)",
"fTB_cm" },
151 {
"t_tot_cm",
"Total CM kinetic energy",
"fTtot_cm" },
152 {
"MandelS",
"Mandelstam s for secondary vertex (GeV^2)",
"fMandelS" },
153 {
"MandelT",
"Mandelstam t for secondary vertex (GeV^2)",
"fMandelT" },
154 {
"MandelU",
"Mandelstam u for secondary vertex (GeV^2)",
"fMandelU" },
170 if( !
IsOK() )
return -1;
193 if( cluster.E() > ClusterMaxE )
195 ClusterMaxE = cluster.E();
198 if(
vertex.Mag() < 1.e-38 ) cluster.SetVertexFlag(
false);
286 x_cm_vect *= rot_to_A1;
341 cout <<
"THcSecondaryKine particleMASS: " <<
fMX << endl;
Option_t Option_t TPoint TPoint const char mode
ClassImp(VDC::AnalyticTTDConv) using namespace std
R__EXTERN class THcParmList * gHcParms
static Int_t DefineVarsFromList(const void *list, EType type, EMode mode, const char *def_prefix, const TObject *obj, const char *prefix, const char *here, const char *comment_subst="")
THaAnalysisObject * FindModule(const char *name, const char *classname, bool do_error=true)
virtual THaDetector * GetDetector(const char *name)
void PrintInitError(const char *here)
virtual Bool_t HasVertex() const
virtual const TVector3 & GetVertex() const
A dummy spectrometer apparatus for testing detectors.
Generic segmented shower detector.
vector< THcNPSCluster > GetClusters()
THcNPSCalorimeter * fNPSCalo
TString fVertexModuleName
virtual Int_t Process(const THaEvData &)
virtual ~THcNPSSecondaryKine()
THcReactionPoint * fVertexModule
THcNPSApparatus * fApparatus
virtual Int_t DefineVariables(EMode mode=kDefine)
void SetApparatus(const char *name)
THcNPSSecondaryKine(const char *name, const char *description="", const char *secondary_spectro="", const char *primary_kine="", Double_t secondary_mass=0.0, const char *vertex_module="")
virtual Int_t ReadDatabase(const TDatime &date)
Int_t LoadParmValues(const DBRequest *list, const char *prefix="")
Double_t GetOmega() const
const FourVect * GetA1() const
const FourVect * GetQ() const
const FourVect * GetA() const
const FourVect * GetP1() const
THcPrimaryKine * fPrimary
Double_t fOopCentralOffset
Double_t Angle(const TVector3 &v) const
void Boost(const TVector3 &)
void SetVectM(const TVector3 &spatial, Double_t mass)
TRotation & SetZAxis(const TVector3 &axis)
const char * Data() const
void SetXYZ(Double_t x, Double_t y, Double_t z)
double beta(double x, double y)
LVector boost(const LVector &v, const BoostVector &b)
int Invert(LASymMatrix &)
constexpr Double_t DegToRad()