Hall A ROOT/C++ Analyzer (podd)
Loading...
Searching...
No Matches
THaBeam.cxx
Go to the documentation of this file.
1//*-- Author : Ole Hansen 25-Mar-2003
2
4//
5// THaBeam
6//
7// Abstract apparatus class that provides position and direction of
8// a particle beam, usually event by event.
9//
11
12#include "THaBeam.h"
13#include "VarDef.h"
14#include "THaRunBase.h"
15#include "THaRunParameters.h"
16#include "THaGlobals.h"
17
18//_____________________________________________________________________________
19THaBeam::THaBeam( const char* name, const char* desc ) :
20 THaApparatus( name,desc ), fRunParam(nullptr)
21{
22 // Constructor.
23 // Protected. Can only be called by derived classes.
24
25 fBeamIfo.SetBeam( this );
26}
27
28
29//_____________________________________________________________________________
31{
32 // Destructor
33
35}
36
37//_____________________________________________________________________________
39{
40 // Init method for a beam apparatus. Calls the standard THaApparatus
41 // initialization and, in addition, finds pointer to the current
42 // run parameters.
43
44 if( !gHaRun || !gHaRun->IsInit() ) {
45 Error( Here("Init"), "Current run not initialized. "
46 "Failed to initialize beam apparatus %s (\"%s\"). ",
47 GetName(), GetTitle() );
48 return fStatus = kInitError;
49 }
51 if( !fRunParam ) {
52 Error( Here("Init"), "Current run has no parameters?!? "
53 "Failed to initialize beam apparatus %s (\"%s\"). ",
54 GetName(), GetTitle() );
55 return fStatus = kInitError;
56 }
57
58 return THaApparatus::Init(run_time);
59}
60
61//_____________________________________________________________________________
63{
64 // Initialize global variables and lookup table for decoder
65
66 RVarDef vars[] = {
67 { "x", "reconstructed x-position at nom. interaction point", "fPosition.fX" },
68 { "y", "reconstructed y-position at nom. interaction point", "fPosition.fY" },
69 { "z", "reconstructed z-position at nom. interaction point", "fPosition.fZ" },
70 { "dir.x", "reconstructed x-component of beam direction", "fDirection.fX" },
71 { "dir.y", "reconstructed y-component of beam direction", "fDirection.fY" },
72 { "dir.z", "reconstructed z-component of beam direction", "fDirection.fZ" },
73 { nullptr }
74 };
75
76 Int_t ret = DefineVarsFromList(vars, mode);
77 if( ret )
78 return ret;
79
80 // Define the variables for the beam info subobject
82}
83
84//_____________________________________________________________________________
86{
87 // Update the fBeamIfo data with the info from the current event
88
90 if( rp )
92 rp->GetBeamPol() );
93 else
95}
96
97//_____________________________________________________________________________
99
100
int Int_t
const Data_t kBig
Definition DataType.h:15
Option_t Option_t TPoint TPoint const char mode
char name[80]
R__EXTERN class THaRunBase * gHaRun
Definition THaGlobals.h:16
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="")
virtual const char * Here(const char *) const
void SetBeam(THaBeam *obj)
Definition THaBeamInfo.h:71
void Set(const TVector3 &pvect, const TVector3 &position, Double_t pol=0.0)
Definition THaBeamInfo.h:63
static const RVarDef * GetRVarDef()
THaBeamInfo fBeamIfo
virtual ~THaBeam()
Definition THaBeam.cxx:30
THaBeam(const char *name, const char *description)
Definition THaBeam.cxx:19
virtual Int_t DefineVariables(EMode mode=kDefine)
Definition THaBeam.cxx:62
THaRunParameters * fRunParam
Definition THaBeam.h:35
TVector3 fPosition
Definition THaBeam.h:32
virtual void Update()
Definition THaBeam.cxx:85
TVector3 fDirection
Definition THaBeam.h:33
Bool_t IsInit() const
Definition THaRunBase.h:64
THaRunParameters * GetParameters() const
Definition THaRunBase.h:61
Double_t GetBeamP() const
Double_t GetBeamPol() const
const char * GetName() const override
const char * GetTitle() const override
virtual void Error(const char *method, const char *msgfmt,...) const
ClassImp(TPyArg)