ROOT logo
Podd » SRC » THaPrimaryKine

class THaPrimaryKine: public THaPhysicsModule


 THaPrimaryKine

 Calculate kinematics of scattering of the primary (beam) particle.
 These are usually the electron kinematics.
 For backwards-compatibility, primary electron kinematics are also
 available through the derived class THaElectronKine.


Function Members (Methods)

public:
THaPrimaryKine(const char* name, const char* description, const char* spectro = "", Double_t particle_mass = 0.0, Double_t target_mass = 0.0)
THaPrimaryKine(const char* name, const char* description, const char* spectro, const char* beam, Double_t target_mass = 0.0)
virtual~THaPrimaryKine()
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 FourVect*GetA() const
const FourVect*GetA1() const
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_tGetEpsilon() const
virtual const char*TObject::GetIconName() const
TDatimeTHaAnalysisObject::GetInitDate() const
Double_tGetMass() const
virtual const char*TNamed::GetName() const
Double_tGetNu() 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()
Double_tGetOmega() const
virtual Option_t*TObject::GetOption() const
const FourVect*GetP0() const
const FourVect*GetP1() const
Double_tGetPhiQ() const
const char*THaAnalysisObject::GetPrefix() const
const FourVect*GetQ() const
Double_tGetQ2() const
Double_tGetQ3mag() const
Double_tGetScatAngle() const
Double_tGetTargetMass() const
Double_tGetThetaQ() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetW2() const
Double_tGetXbj() 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_tTHaAnalysisObject::IsOKOut()
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)
voidSetBeam(const char* name)
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)
voidSetMass(Double_t m)
virtual voidTHaAnalysisObject::SetName(const char* name)
virtual voidTHaAnalysisObject::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetSpectrometer(const char* name)
voidSetTargetMass(Double_t m)
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
protected:
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)
voidTObject::MakeZombie()
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

public:
enum THaPhysicsModule::ESpecialRetval { kFatal
kTerminate
};
enum THaAnalysisObject::EStatus { kOK
kNotinit
kInitError
kFileError
};
enum THaAnalysisObject::EType { kVarDef
kRVarDef
};
enum THaAnalysisObject::EMode { kDefine
kDelete
};
enum THaAnalysisObject::EProperties { kNeedsRunDB
kConfigOverride
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
static const Double_tTHaAnalysisObject::kBig= 1.e38; // default junk value
protected:
FourVectfATarget 4-momentum
FourVectfA1Recoil system 4-momentum
THaBeamModule*fBeamPointer to beam position apparatus
TStringfBeamNameName of beam position apparatus
TStringTHaAnalysisObject::fConfigConfiguration to use from database
boolTHaPhysicsModule::fDataValidData valid
Int_tTHaAnalysisObject::fDebugDebug level
Double_tfEpsilonVirtual photon polarization factor
TDatimeTHaAnalysisObject::fInitDateDate passed to Init
Bool_tTHaAnalysisObject::fIsInitFlag indicating that ReadDatabase done
Bool_tTHaAnalysisObject::fIsSetupFlag indicating that DefineVariables done.
Double_tfMMass of incident particle (GeV/c^2)
Double_tfMATarget mass (GeV/c^2)
boolTHaPhysicsModule::fMultiTrkFlag for multi-track mode
TStringTNamed::fNameobject identifier
Bool_tTHaAnalysisObject::fOKOutFlag indicating object-output prepared
Double_tfOmegaEnergy transfer (GeV)
FourVectfP0Beam 4-momentum
FourVectfP1Scattered electron 4-momentum
Double_tfPhiQPhi of 3-momentum transfer (rad)
char*THaAnalysisObject::fPrefixName prefix for global variables
UInt_tTHaAnalysisObject::fPropertiesProperties of this object (see EProperties)
FourVectfQMomentum transfer 4-vector
Double_tfQ24-momentum transfer squared (GeV^2)
Double_tfQ3magMagnitude of 3-momentum transfer
Double_tfScatAngleScattering angle (rad)
THaTrackingModule*fSpectroPointer to spectrometer object
TStringfSpectroNameName of spectrometer to consider
THaAnalysisObject::EStatusTHaAnalysisObject::fStatusInitialization status flag
Double_tfThetaQTheta of 3-momentum vector (rad)
TStringTNamed::fTitleobject title
Double_tfW2Invariant mass of recoil system (GeV^2)
Double_tfXbjx Bjorken

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

THaPrimaryKine(const char* name, const char* description, const char* spectro = "", Double_t particle_mass = 0.0, Double_t target_mass = 0.0)
 Standard constructor. Must specify particle mass. Incident particles
 are assumed to be along z_lab.
THaPrimaryKine(const char* name, const char* description, const char* spectro, const char* beam, Double_t target_mass = 0.0)
 Constructor with specification of optional beam module.
 Particle mass will normally come from the beam module.
~THaPrimaryKine()
 Destructor
void Clear(Option_t* opt = "")
 Clear event-by-event variables.
Int_t DefineVariables(THaAnalysisObject::EMode mode = kDefine)
 Define/delete global variables.
THaAnalysisObject::EStatus Init(const TDatime& run_time)
 Initialize the module.
 Locate the spectrometer apparatus named in fSpectroName and save
 pointer to it.
Int_t Process(const THaEvData& )
 Calculate electron kinematics for the Golden Track of the spectrometer
Int_t ReadRunDatabase(const TDatime& date)
 Query the run database for particle and target masses.

 If the particle or target masses weren't given to the constructor,
 then search for them in the run database.

 For the particle mass, first search for "<prefix>.M", then,
 if not found, for "M". If still not found, use electron mass mass.

 For the target mass, first search for "<prefix>.MA", then, if not found,
 for "MA". If still not found, use proton mass.
void SetMass(Double_t m)
void SetTargetMass(Double_t m)
void SetSpectrometer(const char* name)
void SetBeam(const char* name)
Double_t GetQ2() const
{ return fQ2; }
Double_t GetOmega() const
{ return fOmega; }
Double_t GetNu() const
{ return fOmega; }
Double_t GetW2() const
{ return fW2; }
Double_t GetXbj() const
{ return fXbj; }
Double_t GetScatAngle() const
{ return fScatAngle; }
Double_t GetEpsilon() const
{ return fEpsilon; }
Double_t GetQ3mag() const
{ return fQ3mag; }
Double_t GetThetaQ() const
{ return fThetaQ; }
Double_t GetPhiQ() const
{ return fPhiQ; }
Double_t GetMass() const
{ return fM; }
Double_t GetTargetMass() const
{ return fMA; }
const FourVect* GetP0() const
{ return &fP0; }
const FourVect* GetP1() const
{ return &fP1; }
const FourVect* GetA() const
{ return &fA; }
const FourVect* GetA1() const
{ return &fA1; }
const FourVect* GetQ() const
{ return &fQ; }