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

class HParticleAngleCor: public TObject

Function Members (Methods)

public:
HParticleAngleCor()
HParticleAngleCor(const HParticleAngleCor&)
virtual~HParticleAngleCor()
voidTObject::AbstractMethod(const char* method) const
static Bool_talignRichRing(HParticleCand* pCand)
static Bool_talignRichRing(const Double_t theta, const Double_t phi, Double_t& thetaCor, Double_t& phiCor)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidcalcSegVector(const Double_t z, const Double_t rho, const Double_t phi, const Double_t theta, HGeomVector& base, HGeomVector& dir)
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()
HGeomVectorgetGlobalVertex(Int_t v = Particle::kVertexParticle, Bool_t warn = kFALSE)
virtual const char*TObject::GetIconName() const
Bool_tgetMeanXYVertex(Float_t& xValue, Float_t& yValue)
Float_tgetMeanZTarget()
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
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Int_tgetVertexType()
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
static Float_tmatchRingTrack(HParticleCand* cand)
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)
HParticleAngleCor&operator=(const HParticleAngleCor&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
static Bool_trealignRichRing(HParticleCand* pCand)
static Bool_trealignRichRing(const HParticleCand* pCand, Double_t& thetaCor, Double_t& phiCor)
Bool_trecalcAngles(const HParticleCand* pCand, Double_t& thetaCor, Double_t& phiCor)
Bool_trecalcEmission(const HParticleCand* pCand, Double_t& zCor, Double_t& rhoCor, Double_t& thetaCor, Double_t& phiCor)
Bool_trecalcEmission(const Double_t z, const Double_t rho, const Double_t theta, const Double_t phi, Double_t& zCor, Double_t& rhoCor, Double_t& thetaCor, Double_t& phiCor)
Bool_trecalcSetAngles(HParticleCand* pCand)
Bool_trecalcSetEmission(HParticleCand* pCand)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidresetMeanVertex()
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)
Bool_tsetDefaults(const TString beamtime)
voidsetDoWarning(Bool_t warn)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
Bool_tsetGlobalVertex()
voidsetMaxAverage(UInt_t n)
voidsetMeanZTarget(const Float_t zValue)
static voidTObject::SetObjectStat(Bool_t stat)
voidsetShield(const Bool_t shieldFlag)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetUseEventXYVertex()
voidsetUseMeanXYVertex()
voidsetVertexType(Int_t v = Particle::kVertexSegment)
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
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

protected:
Bool_tbDoWarn
Float_tdrShieldadditional distance from target center to effective multiple scattering point due to delta electron shield
UInt_tevtSeqNo
HGeomVectorglobalVertexif useMeanXY=true x,y values are mean values averaged over maxAverage events
UInt_tmaxAverage
Float_tmaxRhoShieldend of delta electron shield (perpendicular to beam axis projected onto mirror/shell sphere)
Float_tmeanZTargettypical shift of target centroid in lab coordinates (in mm)
queue<Float_t>qxVertex
queue<Float_t>qyVertex
Float_trMirroreffective radius for dominant multiple scattering source (in between mirror and shell radius).
Double_tsumXVertex
Double_tsumYVertex
Bool_tuseMeanXY
Bool_tuseShielddelta electron shield provides significant contribution to multiple scattering
Int_tvertexTypeswitch cluster,segment,particle global vertex (see Particle:VertexXXX)
Float_tzMirrorcenter of Rich mirror in lab coordinates. Depends on zRichCenter and RICH geometry.
Float_tzRichCentertypical shift of rich as compared to design value. Determined via meanZTarget (in mm)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HParticleAngleCor(const HParticleAngleCor& )
void initParam()
void resetMeanVertex()
 reset moving average and start with X,Y values
 from global vertex of next event
Bool_t recalcEmission(const Double_t z, const Double_t rho, const Double_t theta, const Double_t phi, Double_t& zCor, Double_t& rhoCor, Double_t& thetaCor, Double_t& phiCor)
 calculate new emission angles and emission point based on global vertex.
 Assume that the Rich mirror and Rich housing (+ delta electron shield)
 produce the dominant multiple scattering kick which generate an off-vertex
 behaviour of a particle originating from global vertex.
 Returns kFALSE, if correction fails.In this case: New values = old values
Bool_t recalcEmission(const HParticleCand* pCand, Double_t& zCor, Double_t& rhoCor, Double_t& thetaCor, Double_t& phiCor)
 same as above, get old emission values from ParticleCandidate
Bool_t recalcAngles(const HParticleCand* pCand, Double_t& thetaCor, Double_t& phiCor)
 return only angles theta, phi. Emission point is global vertex
 (x,y could be mean values of global vertex)
Bool_t recalcSetAngles(HParticleCand* pCand)
 calculate new emission angles based on global vertex
 and replace theta and phi of the particle candidate
Bool_t recalcSetEmission(HParticleCand* pCand)
 calculate new emission point and angles based on global vertex
 and replace theta, phi, z and rho of the particle candidate
Bool_t alignRichRing(HParticleCand* pCand)
 correct angles theta and phi of a rich ring. Accounts for the missing rich
 sector alignment.The lookup table was obtained from fits to ring-track
 matches in theta and phi. Alignment parameters where obtained for beamtime
 Apr12 based on Gen1 Dst's. Values are changed inside HParticleCand!
Bool_t alignRichRing(const Double_t theta, const Double_t phi, Double_t& thetaCor, Double_t& phiCor)
 correct angles theta and phi of a rich ring. Accounts for the missing rich
 sector alignment.The lookup table was obtained from fits to ring-track
 matches in theta and phi. Alignment parameters where obtained for beamtime
 Apr12 based on Gen1 Dst's. theta, phi in degree, lab coordinate system
Bool_t realignRichRing(const HParticleCand* pCand, Double_t& thetaCor, Double_t& phiCor)
 correct angles theta and phi of a rich ring. Its supposed to called after
 recalulating emmission from target ("MS suppresion") for candidate RK theta/phi.
 Accounts for the missing rich sector alignment.
 Lookup table was obtained from fits to ring-track matches in theta and phi.
 Alignment parameters where obtained for beamtime Apr12 based on Gen3 Dst's.
 theta, phi in degree, lab coordinate system.
 nSector is NOT the standard labeling: Sector0 corresponds to nSector=1
Bool_t realignRichRing(HParticleCand* pCand)
 same as realignRichRing(const HParticleCand* pCand, Float_t & thetaCor, Float_t & phiCor)
 but changes the RICH angles inside the candidate
Float_t matchRingTrack(HParticleCand* cand)
 match angles theta and phi of a track with a rich ring attached in terms of resolution sigma
 Lookup table for sigma was obtained from fits to ring-track matches in 4 theta and 4 phi bins.
 momentum dependence was calculated from 2 momentum bins assuming a constant term
 and a term which reflects multiple scattering: sigma proportional to (1/p + const).
 return value is a normalized matching parameter: radial deviation/sigma
 Matching parameters where obtained for beamtime Apr12 based on Gen2 Dst's.
 theta, phi in degree, lab coordinate system
 thetaSwitch: <= low theta range, > high theta range
void calcSegVector(const Double_t z, const Double_t rho, const Double_t phi, const Double_t theta, HGeomVector& base, HGeomVector& dir)
 calculate position and direction vectors from a segment which
 is defined by z-point and closest distance to z-axis (rho) and
 by emission angles theta, phi. TMath::PiOver2() = pi/2
void setMeanZTarget(const Float_t zValue)
void setShield(const Bool_t shieldFlag)
 activate / deactivate delta-electron shield.
 This changes the multiple scattering point at small angles
 by an increased radius of the sphere
Bool_t setDefaults(const TString beamtime)
 beamtime is a character string like "apr12".
 If beamtime defaults are not implemented return value
 is kFALSE otherwise kTRUE
void setUseMeanXYVertex(void)
 Use the center of the X-, Y- event vertex distribution.
 For small target/beamspot diameters appropriate. Beamspot smaller
 than global vertex resolution. Set mean Values, if different
 from zero (default)
void setUseEventXYVertex(void)
 Use X-, Y- values from the global vertex determined event by event.
 For large beam spots and large target diameters appropriate.
 Good, if beam spot on target is larger than resolution of global vertex.
Bool_t getMeanXYVertex(Float_t& xValue, Float_t& yValue)
 return the (mean) x- and y- vertex points.
 returns kTRUE, if the mean values replace the x- and y points
 of the global event vertex
HGeomVector getGlobalVertex(Int_t v = Particle::kVertexParticle, Bool_t warn = kFALSE)
  return the global vertex position
  v can be Particle::kVertexCluster, Particle::kVertexSegment,
  Particle::kVertexParticle. In case of Particle::kVertexSegment
  and Particle::kVertexParticle the chi2 of the vertex fit is
  checked. If the the fit Particle::kVertexSegment failed the position of
  Particle::kVertexCluster is returned instead. If Particle::kVertexParticle
  fails Particle::kVertexSegment is used if possible otherwise fallback
  is Particle::kVertexCluster.
Bool_t setGlobalVertex(void)
HParticleAngleCor(const HParticleAngleCor& )
~HParticleAngleCor(void)
{}
void setMaxAverage(UInt_t n)
{ if (n > 1 ) maxAverage = n; }
void setDoWarning(Bool_t warn)
{ bDoWarn = warn; }
Float_t getMeanZTarget(void)
{return meanZTarget;}
void setVertexType(Int_t v = Particle::kVertexSegment)
{ vertexType = v ;}
Int_t getVertexType()
{ return vertexType ;}