ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » (UNKNOWN) » HParticleBtAngleTrafo

class HParticleBtAngleTrafo: public TObject

_HADES_CLASS_DESCRIPTION


 calculate x,y (xPad,yPad) of a ring center on the Rich Padplane for a given theta and phi
 of a lepton track, Phi = 0: middle of the sector, sector edge: +-30°
 theta, phi in degree, x,y in mm, xPad, yPad in fraction of a pad
 target-center 5 mm downstream of rich-center (the latter normally shifted by about 35 mm upstream)
 Some transformations (angles2x, angles2xPad, xy2Phi,xy2yPad, xy2Theta, xy2yPadPad2x, zY2dTheta, zYPad2dTheta)
 are inline code implemented in hrichangles2xy.h. Refer to the '.h' file for full set of implemented transformations.
 Dependence on vertex position along the beam axis gives correction terms dy, dx or dyPad, dxPad.
 dx, dxPad are calculated simultaneously with dy, dyPad but called by special inline functions.
 The latter (zTheta2dx(), ztheta2dxPad() need a call to the corresponding functions zTheta2dy(), zTheta2dyPad() before.
 To correct for the vertex dependence of the theta, phi to y, x conversion requires to set the Rich Lab position (default -35 mm).
 This can be done via 'setRichPos(richLabPos)' function or by specifying a beamtime 'setRichPos("apr12")'
 Only Rich alignment for apr12, aug11 and sep08 is implemented by refering to beamtimes.
 The inverse Vertex correction deltaTheta calculated from z-vertex and x,y padplane is available as well.
 Version 2.0, Nov. 2013, W.Koenig
 V2.1: debugged V2.0, zTheta2dTheta added:
 correct Rich theta to match Track Theta as function of Vertex , Dec. 2013, W.Koenig


Function Members (Methods)

public:
HParticleBtAngleTrafo()
HParticleBtAngleTrafo(const HParticleBtAngleTrafo&)
virtual~HParticleBtAngleTrafo()
voidTObject::AbstractMethod(const char* method) const
Float_tangles2x(const Float_t theta, const Float_t phi)
Float_tangles2xPad(const Float_t theta, const Float_t phi)
Float_tangles2y(const Float_t theta, const Float_t phi)
Float_tangles2yPad(const Float_t theta, const Float_t phi)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
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 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 TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Float_tgetRichPos()
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::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
voidinitParam()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::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 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)
HParticleBtAngleTrafo&operator=(const HParticleBtAngleTrafo&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
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 = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
voidsetRichPos(const Float_t zRichPos)
voidsetRichPos(const char* beamtime)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
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()
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
Float_tx2xPad(const Float_t x)
Float_txPad2x(const Float_t xPad)
Float_txPadyPad2Phi(const Float_t xPad, const Float_t yPad)
Float_txPadyPad2Theta(const Float_t xPad, const Float_t yPad)
Float_txPadyPad2y(const Float_t xPad, const Float_t yPad)
Float_txy2Phi(const Float_t x, const Float_t y)
Float_txy2Theta(const Float_t x, const Float_t y)
Float_txy2yPad(const Float_t x, const Float_t y)
Float_tyPad2y(const Float_t yPad)
Float_tyPadPhi2Theta(const Float_t yPad, const Float_t phi)
Float_tyPadPhi2x(const Float_t yPad, const Float_t phi)
Float_tyPadPhi2y(const Float_t yPad, const Float_t phi)
Float_tyPhi2Theta(const Float_t y, const Float_t phi)
Float_tyPhi2x(const Float_t y, const Float_t phi)
Float_tyPhi2xPad(const Float_t y, const Float_t phi)
Float_tyPhi2yPad(const Float_t y, const Float_t phi)
Float_tzTheta2dTheta(const Float_t z, const Float_t theta, const Float_t phi)
Float_tzTheta2dX()
Float_tzTheta2dXPad()
Float_tzTheta2dY(const Float_t z, const Float_t theta, const Float_t phi)
Float_tzTheta2dYPad(const Float_t z, const Float_t theta, const Float_t phi)
Float_tzY2dTheta(const Float_t z, const Float_t y, const Float_t x)
Float_tzYPad2dTheta(const Float_t z, const Float_t yPad, const Float_t xPad)
Float_tzYPhi2dTheta(const Float_t z, const Float_t y, const Float_t phi)
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

protected:
Float_tdxPadVertexintermediate storage, calculated by zTheta2dYPad, called by zTheta2dXPad
Float_tdxVertexintermediate storage, calculated by zTheta2dY, called by zTheta2dX
Float_tdyPadSlope[4]correction for x,y->yPad: dyPadSlope*dy*phi**2 and alike
Float_tdz2PadPar[6]
Float_tdz2Par[6]
Float_tdz2ThetaPar[6]
Float_tdz2ThetaPhiPar[2]
Float_tdz2YPar[6]
Float_tdzPadPar[6]
Float_tdzPar[6]
Float_tdzTarg
Float_tdzThetaPar[6]
Float_tdzThetaPhiPar[2]
Float_tdzYPar[6]
Float_tpadThetaSlope[4]correction for yPad -> theta: padThetaSlope*yPad*phi**2 (or dyPad**2)
Float_tphiOffsetfor theta yPad fit
Float_tphiPadSlope[4]0-2: correction for theta,phi->yPad: phiPadSlope*phi**2; 3: y,phi->yPad
Float_tphiSlope[2]correction for theta,phi->y: phiSlope*phi**2
Float_tphiThetaSlope[5]correction for y or yPad -> theta: phiThetaSlope*phi**2 (dPhi**2)
Float_trad2deg
Float_tthetaOffset[3]0: y fit, 1,2: yPad fit
Float_tthetaPadSlope[6]correction for theta,phi->yPad: thetaPadSlope*theta*phi**2
static const Int_tthetaParMax
Float_tthetaRef
Float_tthetaSlope[2]correction for theta,phi->y: thetaSlope*theta*phi**2
Float_tthetaYPadPar[6]
Float_tthetaYPar[7]
Float_txPadOffsetx-pad number of the center of a sector (phi=0)
Float_txPadPar[5]
static const Int_txPadParMax
Float_txPadSizeconstant value, does not depend on x nor y
Float_txPar[2]
static const Int_txParMax
Float_tyOffset[6]used for y,phi -> yPad, xPad, yPad -> Phi, z,y -> deltaTheta
Float_tyPadOffset[3][0],[1]: yPad,phi -> theta, [2]: yPad,phi -> y
Float_tyPadThetaPar[6]
Float_tyPadYPar[6]
static const Int_tyParMax
Float_tyProjOffset[2]used for y,phi -> theta
Float_tyRef
Float_tyThetaPar[6]
Float_tyThetaSlope[4]correction for y -> theta: yThetaSlope*y*phi**2 (or dy**2)
Float_tyYPadPar[6]
Float_tzNorm
static const Int_tzParMax
Float_tzRef
Float_tzRichCenter

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

Float_t yPhi2yPad(const Float_t y, const Float_t phi)
Converts y position and phi angle  to y pad number
Float_t yPadPhi2y(const Float_t yPad, const Float_t phi)
Converts y pad number and phi angle to y position
Float_t angles2yPad(const Float_t theta, const Float_t phi)
Convertes theta and phi angle to y pad number
Float_t angles2y(const Float_t theta, const Float_t phi)
Converts theta and phi angle to y position
Float_t xPadyPad2Phi(const Float_t xPad, const Float_t yPad)
Converts x and y pad number to phi angle
Float_t yPhi2Theta(const Float_t y, const Float_t phi)
Converts y position and phi angle to theta angle
Float_t yPadPhi2Theta(const Float_t yPad, const Float_t phi)
Converts y pad number and phi angle to theta angle
Float_t zTheta2dY(const Float_t z, const Float_t theta, const Float_t phi)
 calculate deviation of the y position of the ring-center as function of vertex position.
 depends on theta but not on phi.
Float_t zTheta2dYPad(const Float_t z, const Float_t theta, const Float_t phi)
 calculate deviation of the yPad position of the ring-center as function of vertex position.
 depends on theta but not on phi.
Float_t zYPhi2dTheta(const Float_t z, const Float_t y, const Float_t phi)
Calculates theta correction for different vertices
for y position and phi angle as input
Float_t zTheta2dTheta(const Float_t z, const Float_t theta, const Float_t phi)
Calculates theta correction for different vertices
for theta and phi angle as input
void setRichPos(const char* beamtime)
Sets RICH position by consideration of beamtime
void initParam()
HParticleBtAngleTrafo(const HParticleBtAngleTrafo& )
~HParticleBtAngleTrafo(void)
{}
Float_t x2xPad(const Float_t x)
Converts x position to x pad number
Float_t xPad2x(const Float_t xPad)
Converts x pad number to x position
Float_t yPhi2x(const Float_t y, const Float_t phi)
Converts y position and phi angle to x position
Float_t yPhi2xPad(const Float_t y, const Float_t phi)
Converts y position and phi angle to x pad number
Float_t angles2x(const Float_t theta, const Float_t phi)
Converts theta and phi angle to x position
Float_t angles2xPad(const Float_t theta, const Float_t phi)
Convertes theta and phi angle to x pad number
Float_t xy2Phi(const Float_t x, const Float_t y)
Converts x and y position to phi angle
Float_t yPad2y(const Float_t yPad)
 Converts y pad number to y position for phi = 8°
 helper function, do not use!
Float_t yPadPhi2x(const Float_t yPad, const Float_t phi)
Converts y pad number and phi angle to x position
Float_t xy2yPad(const Float_t x, const Float_t y)
Convert x and y position to y pad
Float_t xPadyPad2y(const Float_t xPad, const Float_t yPad)
Converts x and y pad number to y position
Float_t xy2Theta(const Float_t x, const Float_t y)
Converts x and y position to theta angle
Float_t xPadyPad2Theta(const Float_t xPad, const Float_t yPad)
Converts x and y pad to theta angle
Float_t zTheta2dX()
calculated by zTheta2dY
Float_t zTheta2dXPad()
calculated by zTheta2dYPad
Float_t zY2dTheta(const Float_t z, const Float_t y, const Float_t x)
Theta correction for given vertex position y and x position
Float_t zYPad2dTheta(const Float_t z, const Float_t yPad, const Float_t xPad)
Theta correction for given vertex position y and x pad number
void setRichPos(const Float_t zRichPos)
{zRichCenter = zRichPos;}
Float_t getRichPos()
{return zRichCenter;}