Hall C ROOT/C++ Analyzer (hcana)
Loading...
Searching...
No Matches
THcPrimaryKine.h
Go to the documentation of this file.
1#ifndef ROOT_THcPrimaryKine
2#define ROOT_THcPrimaryKine
3
5//
6// THaPrimaryKine
7//
9
10#include "THaPhysicsModule.h"
11#include "TLorentzVector.h"
12#include "TString.h"
13
15class THaBeamModule;
17
19
20public:
21 THcPrimaryKine( const char* name, const char* description,
22 const char* spectro = "",
23 Double_t particle_mass = 0.0, /* GeV */
24 Double_t target_mass = 0.0 /* GeV */ );
25 THcPrimaryKine( const char* name, const char* description,
26 const char* spectro, const char* beam,
27 Double_t target_mass = 0.0 /* GeV */ );
28 virtual ~THcPrimaryKine();
29
30 virtual void Clear( Option_t* opt="" );
31
32 Double_t GetQ2() const { return fQ2; }
33 Double_t GetOmega() const { return fOmega; }
34 Double_t GetNu() const { return fOmega; }
35 Double_t GetW2() const { return fW2; }
36 Double_t GetXbj() const { return fXbj; }
37 Double_t GetScatAngle() const { return fScatAngle; }
38 Double_t GetEpsilon() const { return fEpsilon; }
39 Double_t GetQ3mag() const { return fQ3mag; }
40 Double_t GetThetaQ() const { return fThetaQ; }
41 Double_t GetPhiQ() const { return fPhiQ; }
42 Double_t GetMass() const { return fM; }
43 Double_t GetTargetMass() const { return fMA; }
44
45 const FourVect* GetP0() const { return &fP0; }
46 const FourVect* GetP1() const { return &fP1; }
47 const FourVect* GetA() const { return &fA; }
48 const FourVect* GetA1() const { return &fA1; }
49 const FourVect* GetQ() const { return &fQ; }
50
51 virtual EStatus Init( const TDatime& run_time );
52 virtual Int_t Process( const THaEvData& );
53 virtual Int_t ReadDatabase(const TDatime& date);
54 void SetMass( Double_t m );
55 void SetTargetMass( Double_t m );
56 void SetSpectrometer( const char* name );
57 void SetBeam( const char* name );
58
59protected:
60
61 Double_t fQ2; // 4-momentum transfer squared (GeV^2)
62 Double_t fOmega; // Energy transfer (GeV)
63 Double_t fW2; // s = Invariant mass using Mp (GeV^2)
64 Double_t fW; // sqrt(s) (GeV)
65 Double_t fXbj; // x Bjorken
66 Double_t fScatAngle; // Scattering angle (rad)
67 Double_t fScatAngle_deg; // Scattering angle (deg)
68 Double_t fEpsilon; // Virtual photon polarization factor
69 Double_t fQ3mag; // Magnitude of 3-momentum transfer
70 Double_t fThetaQ; // Theta of 3-momentum vector (rad)
71 Double_t fPhiQ; // Phi of 3-momentum transfer (rad)
72 FourVect fP0; // Beam 4-momentum
73 FourVect fP1; // Scattered electron 4-momentum
74 FourVect fA; // Target 4-momentum
75 FourVect fA1; // Recoil system 4-momentum
76 FourVect fQ; // Momentum transfer 4-vector
77 FourVect fMp; // Mp 4-momentum
78 FourVect fMp1; // Recoil Mp 4-momentum
79
80 Double_t fM; // Mass of incident particle (GeV/c^2)
81 Double_t fMA; // Target mass (GeV/c^2)
82 Double_t fMA_amu; // Target mass (amu)
83 Double_t fOopCentralOffset; // Out plane offset of spectrometer
84
85 virtual Int_t DefineVariables( EMode mode = kDefine );
86
87 TString fSpectroName; // Name of spectrometer to consider
88 TString fBeamName; // Name of beam position apparatus
89 THcHallCSpectrometer* fSpectro; // Pointer to spectrometer object
90 THaBeamModule* fBeam; // Pointer to beam position apparatus
91
92 ClassDef(THcPrimaryKine,0) //Single arm kinematics module
93};
94
95#endif
int Int_t
double Double_t
const char Option_t
#define ClassDef(name, id)
TLorentzVector FourVect
A standard Hall C spectrometer apparatus.
Class for the Calculate kinematics of scattering of the primary (beam) particle. These are usually th...
Double_t GetQ2() const
virtual Int_t DefineVariables(EMode mode=kDefine)
void SetMass(Double_t m)
THaBeamModule * fBeam
const FourVect * GetP0() const
THcPrimaryKine(const char *name, const char *description, const char *spectro="", Double_t particle_mass=0.0, Double_t target_mass=0.0)
virtual Int_t ReadDatabase(const TDatime &date)
THcHallCSpectrometer * fSpectro
Double_t GetScatAngle() const
Double_t GetOmega() const
Double_t fScatAngle_deg
const FourVect * GetA1() const
Double_t GetW2() const
Double_t fScatAngle
void SetSpectrometer(const char *name)
virtual void Clear(Option_t *opt="")
Double_t GetEpsilon() const
const FourVect * GetQ() const
void SetBeam(const char *name)
Double_t GetQ3mag() const
virtual ~THcPrimaryKine()
Double_t GetNu() const
void SetTargetMass(Double_t m)
Double_t GetMass() const
Double_t fOopCentralOffset
Double_t GetPhiQ() const
Double_t GetTargetMass() const
Double_t GetThetaQ() const
const FourVect * GetA() const
Double_t GetXbj() const
virtual Int_t Process(const THaEvData &)
const FourVect * GetP1() const