ROOT logo
Podd » SRC » THaSecondaryKine

class THaSecondaryKine: public THaPhysicsModule


 Secondary particle kinematics module.
 This module calculates kinematical quantities for the hadron side of
 two-arm coincidence reactions. The reaction is

 e + A -> e' + X + B

 where e' and X are measured, and B is undetected.
 As input, the module requires information about the electron kinematics
 (from a THaPrimaryKine module, e.g. THaElectronKine), the momentum of
 the secondary particle X (from a THaTrackingModule, e.g. a THaSpectrometer),
 and the mass of X.

Function Members (Methods)

THaSecondaryKine(const char* name, const char* description, const char* secondary_spectro = "", const char* primary_kine = "", Double_t secondary_mass = 0.0)
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual Int_tTHaAnalysisObject::Begin(THaRunBase* r = 0)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* opt = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
boolTHaPhysicsModule::DataValid() const
static Int_tTHaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix, const TObject* obj, const char* prefix, const char* here)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual Int_tTHaAnalysisObject::End(THaRunBase* r = 0)
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static voidTHaAnalysisObject::GeoToSph(Double_t th_geo, Double_t ph_geo, Double_t& th_sph, Double_t& ph_sph)
const char*THaAnalysisObject::GetClassName() const
const char*THaAnalysisObject::GetConfig() const
virtual const char*THaAnalysisObject::GetDBFileName() const
Int_tTHaAnalysisObject::GetDebug() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Double_tGetEmiss() const
Double_tGetErecoil() const
virtual const char*TObject::GetIconName() const
TDatimeTHaAnalysisObject::GetInitDate() const
Double_tGetMandelS() const
Double_tGetMandelT() const
Double_tGetMandelU() const
Double_tGetMrecoil() const
Double_tGetMX() const
virtual const char*TNamed::GetName() const
static TString&THaAnalysisObject::GetObjArrayString(const TObjArray* params, Int_t pos)
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const TLorentzVector*GetPB() const
Double_tGetPhi_b_cm() const
Double_tGetPhi_bq() const
Double_tGetPhi_x_cm() const
Double_tGetPhi_xq() const
Double_tGetPmiss() const
Double_tGetPmiss_x() const
Double_tGetPmiss_y() const
Double_tGetPmiss_z() const
Double_tGetPrecoil_x() const
Double_tGetPrecoil_y() const
Double_tGetPrecoil_z() const
const char*THaAnalysisObject::GetPrefix() const
THaPrimaryKine*GetPrimary() const
const TLorentzVector*GetPX() const
Double_tGetPX_cm() const
Double_tGetTB() const
Double_tGetTB_cm() const
Double_tGetTheta_b_cm() const
Double_tGetTheta_bq() const
Double_tGetTheta_x_cm() const
Double_tGetTheta_xq() const
virtual const char*TNamed::GetTitle() const
Double_tGetTtot_cm() const
Double_tGetTX() const
Double_tGetTX_cm() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetXangle() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual THaAnalysisObject::EStatusInit(const TDatime& run_time)
virtual Int_tTHaAnalysisObject::InitOutput(THaOutput*)
virtual voidTObject::Inspect() constMENU
static Bool_tTHaAnalysisObject::IntersectPlaneWithRay(const TVector3& xax, const TVector3& yax, const TVector3& org, const TVector3& ray_start, const TVector3& ray_vect, Double_t& length, TVector3& intersect)
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTHaAnalysisObject::IsInit() const
boolTHaPhysicsModule::IsMultiTrack() const
Bool_tTHaAnalysisObject::IsOK() const
Bool_tTObject::IsOnHeap() const
boolTHaPhysicsModule::IsSingleTrack() const
virtual Bool_tTNamed::IsSortable() const
static boolTHaAnalysisObject::IsTag(const char* buf)
Bool_tTObject::IsZombie() const
static Int_tTHaAnalysisObject::LoadDB(FILE* file, const TDatime& date, const DBRequest* request, const char* prefix, Int_t search = 0, const char* here = "THaAnalysisObject::LoadDB")
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Double_t& value)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Int_t& value)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, string& text)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, TString& text)
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static FILE*THaAnalysisObject::OpenFile(const char* name, const TDatime& date, const char* here = "OpenFile()", const char* filemode = "r", const int debug_flag = 1)
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TNamed&TNamed::operator=(const TNamed& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTHaAnalysisObject::Print(Option_t* opt = "") const
static voidTHaAnalysisObject::PrintObjects(Option_t* opt = "")
virtual Int_tProcess(const THaEvData&)
virtual Int_tTObject::Read(const char* name)
static Int_tTHaAnalysisObject::ReadDBline(FILE* fp, char* buf, size_t bufsiz, string& line)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
static Int_tTHaAnalysisObject::SeekDBconfig(FILE* file, const char* tag, const char* label = "config", Bool_t end_on_tag = false)
static Int_tTHaAnalysisObject::SeekDBdate(FILE* file, const TDatime& date, Bool_t end_on_tag = false)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTHaAnalysisObject::SetConfig(const char* label)
virtual voidTHaAnalysisObject::SetDebug(Int_t level)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetMX(Double_t m)
virtual voidTHaAnalysisObject::SetName(const char* name)
virtual voidTHaAnalysisObject::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPrimary(const char* name)
voidSetSpectrometer(const char* name)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
static voidTHaAnalysisObject::SphToGeo(Double_t th_sph, Double_t ph_sph, Double_t& th_geo, Double_t& ph_geo)
THaAnalysisObject::EStatusTHaAnalysisObject::Status() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
static vector<std::string>THaAnalysisObject::vsplit(const string& s)
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual const char*THaAnalysisObject::ClassNameHere(const char*) const
virtual Int_tDefineVariables(THaAnalysisObject::EMode mode = kDefine)
Int_tTHaAnalysisObject::DefineVarsFromList(const VarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const
Int_tTHaAnalysisObject::DefineVarsFromList(const RVarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const
Int_tTHaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix = "") const
virtual voidTHaAnalysisObject::DoError(int level, const char* location, const char* fmt, va_list va) const
THaAnalysisObject*THaAnalysisObject::FindModule(const char* name, const char* classname, bool do_error = true)
static vector<std::string>THaAnalysisObject::GetDBFileList(const char* name, const TDatime& date, const char* here = "GetDBFileList()")
virtual const char*THaAnalysisObject::Here(const char*) const
Int_tTHaAnalysisObject::LoadDB(FILE* f, const TDatime& date, const DBRequest* req, Int_t search = 0)
virtual voidTHaAnalysisObject::MakePrefix()
voidTHaAnalysisObject::MakePrefix(const char* basename)
virtual FILE*THaAnalysisObject::OpenFile(const TDatime& date)
virtual FILE*THaAnalysisObject::OpenRunDBFile(const TDatime& date)
voidTHaPhysicsModule::PrintInitError(const char* here)
static char*THaAnalysisObject::ReadComment(FILE* fp, char* buf, const int len)
virtual Int_tTHaAnalysisObject::ReadDatabase(const TDatime& date)
virtual Int_tReadRunDatabase(const TDatime& date)
virtual Int_tTHaAnalysisObject::RemoveVariables()

Data Members

enum THaPhysicsModule::ESpecialRetval { kFatal
enum THaAnalysisObject::EStatus { kOK
enum THaAnalysisObject::EType { kVarDef
enum THaAnalysisObject::EMode { kDefine
enum THaAnalysisObject::EProperties { kNeedsRunDB
enum TObject::EStatusBits { kCanDelete
enum TObject::[unnamed] { kIsOnHeap
static const Double_tTHaAnalysisObject::kBig= 1.e38; // default junk value
TLorentzVectorfBRecoil system 4-momentum (GeV)
TStringTHaAnalysisObject::fConfigConfiguration to use from database
boolTHaPhysicsModule::fDataValidData valid
Int_tTHaAnalysisObject::fDebugDebug level
Double_tfEmissMissing energy (GeV), nuclear physics definition omega-Tx-Tb
Double_tfErecoilTotal energy of recoil system (GeV)
TDatimeTHaAnalysisObject::fInitDateDate passed to Init
Bool_tTHaAnalysisObject::fIsInitFlag indicating that ReadDatabase done
Bool_tTHaAnalysisObject::fIsSetupFlag indicating that DefineVariables done.
Double_tfMXMass of secondary particle (GeV)
Double_tfMandelSMandelstam s for secondary vertex (GeV^2)
Double_tfMandelTMandelstam t for secondary vertex (GeV^2)
Double_tfMandelUMandelstam u for secondary vertex (GeV^2)
Double_tfMrecoilInvariant mass of recoil system (GeV)
boolTHaPhysicsModule::fMultiTrkFlag for multi-track mode
TStringTNamed::fNameobject identifier
Bool_tTHaAnalysisObject::fOKOutFlag indicating object-output prepared
Double_tfPX_cmMagnitude of X momentum in CM system (GeV)
Double_tfPhi_b_cmAzimuth of recoil system in CM wrt q (rad)
Double_tfPhi_bqAzimuth of recoil system with scattering plane (rad)
Double_tfPhi_x_cmAzimuth of X in CM system wrt q (rad)
Double_tfPhi_xqAzimuth of detected particle with scattering plane (rad)
Double_tfPmissMissing momentum magnitude (GeV), nuclear physics definition (-pB)
Double_tfPmiss_xx-component of p_miss wrt q (GeV)
Double_tfPmiss_yy-component of p_miss wrt q (GeV)
Double_tfPmiss_zz-component of p_miss, along q (GeV)
char*THaAnalysisObject::fPrefixName prefix for global variables
THaPrimaryKine*fPrimaryPointer to primary kinematics module
TStringfPrimaryNameName of module for primary interaction kinematics
UInt_tTHaAnalysisObject::fPropertiesProperties of this object (see EProperties)
THaTrackingModule*fSpectroPointer to spectrometer object
TStringfSpectroNameName of spectrometer for secondary particle
THaAnalysisObject::EStatusTHaAnalysisObject::fStatusInitialization status flag
Double_tfTBKinetic energy of recoil system (GeV)
Double_tfTB_cmKinetic energy of B in CM (GeV)
Double_tfTXKinetic energy of detected particle (GeV)
Double_tfTX_cmKinetic energy of X in CM (GeV)
Double_tfTheta_b_cmPolar angle of recoil systm in CM wrt q (rad)
Double_tfTheta_bqPolar angle of recoil system with q (rad)
Double_tfTheta_x_cmPolar angle of X in CM system wrt q (rad)
Double_tfTheta_xqPolar angle of detected particle with q (rad)
TStringTNamed::fTitleobject title
Double_tfTtot_cmTotal CM kinetic energy
TLorentzVectorfXDetected secondary particle 4-momentum (GeV)
Double_tfXangleAngle of detected particle with scattered electron (rad)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

THaSecondaryKine(const char* name, const char* description, const char* secondary_spectro = "", const char* primary_kine = "", Double_t secondary_mass = 0.0)
void Clear(Option_t* opt = "")
 Clear all internal variables.
Int_t DefineVariables(THaAnalysisObject::EMode mode = kDefine)
 Define/delete global variables.
THaAnalysisObject::EStatus Init(const TDatime& run_time)
 Initialize the module.
 Locate the kinematics module named in fPrimaryName, which describes
 the primary interaction kinematics, and save pointer to it.
Int_t Process(const THaEvData& )
 Calculate the kinematics.
Int_t ReadRunDatabase(const TDatime& date)
 Query the run database for any parameters of the module that were not
 set by the constructor. This module has only one parameter,
 the mass of the detected secondary particle X.

 First searches for "<prefix>.MX", then, if not found, for "MX".
 If still not found, use proton mass.
void SetMX(Double_t m)
void SetSpectrometer(const char* name)
void SetPrimary(const char* name)
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; }
THaPrimaryKine* GetPrimary() const
{ return fPrimary; }