ROOT logo
AliRoot » TPC » BASE » AliTPCPRF2D

class AliTPCPRF2D: public TObject

AliTPCPRF2D -
Pad response function object in two dimesions
This class contains the basic functions for the
calculation of PRF according generic charge distribution
In Update function object calculate table of response function
in discrete x and y position
This table is used for interpolation od response function in any position
(function GetPRF)

Origin: Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk


Function Members (Methods)

public:
AliTPCPRF2D()
virtual~AliTPCPRF2D()
voidTObject::AbstractMethod(const char* method) const
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 voidDrawDist(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx = 20, Int_t Ny = 20, Float_t thr = 0)
virtual voidDrawPRF(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx = 20, Int_t Ny = 20)
virtual voidDrawX(Float_t x1, Float_t x2, Float_t y1, Float_t y2 = 0, Int_t N = 1)
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
AliH2F*GenerDrawDistHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx = 20, Int_t Ny = 20, Float_t thr = 0)
AliH2F*GenerDrawHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx = 20, Int_t Ny = 20)
TH1F*GenerDrawXHisto(Float_t x1, Float_t x2, Float_t y)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual TF2*GetGRF()
Float_tGetGRF(Float_t xin, Float_t yin)
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
virtual Float_tGetPRF(Float_t xin, Float_t yin)
virtual Float_tGetSigmaX() const
virtual Float_tGetSigmaY() const
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
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)
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(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidSetChargeAngle(Float_t angle)
virtual voidSetChevron(Float_t hstep, Float_t shifty, Float_t fac)
virtual voidSetChParam(Float_t width, Float_t height, Float_t hstep, Float_t shifty, Float_t fac)
virtual voidSetCosh(Float_t sigmaX, Float_t sigmaY, Float_t kNorm = 1)
virtual voidSetCurrentAngle(Float_t)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetGati(Float_t K3X, Float_t K3Y, Float_t padDistance, Float_t kNorm = 1)
virtual voidSetGauss(Float_t sigmaX, Float_t sigmaY, Float_t kNorm = 1)
voidSetInterpolationType(Int_t interx, Int_t intery)
voidSetNdiv(Int_t Ndiv)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetPad(Float_t width, Float_t height)
virtual voidSetPadAngle(Float_t angle)
voidSetParam(TF2 *const GRF, Float_t kNorm, Float_t sigmaX = 0, Float_t sigmaY = 0)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidSetY(Float_t y1, Float_t y2, Int_t nYdiv)
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 voidUpdate()
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
voidDrawComment(TPaveText* comment)
Float_tGetPRFActiv(Float_t xin)
voidTObject::MakeZombie()
voidUpdate1()
virtual voidUpdateSigma()

Data Members

protected:
Float_tfChargeAngle'angle' of charge distribution refernce system to pad reference system
Float_t*fChargeArray[fNChargeArray]pointer to array of arrays
Float_tfCurrentYin reality we calculate PRF only for one fixed y
Float_tfDStepelement step for point
Float_tfDStepM1! used in GetPRFActiv to make calculation faster
Float_tfDYtoWire! used to make PRF calculation faster in GetPRF
TF2*fGRFcharge distribution function
Float_tfHeightFullheight of the full pad
Float_tfHeightSheight of the one step
Float_tfIntegintegral of GRF on +- infinity
Int_tfInterXinterpolation in X
Int_tfInterYinterpolation in Y
Float_tfKk factor of the chewron
Float_tfK3XKX parameter (only for Gati parametrization)
Float_tfK3YKY parameter (only for Gati parametrisation)
Float_tfKNormnormalisation factor of the charge integral
Float_tfMeanXmean X value
Float_tfMeanYmean Y value
Int_tfNChargeArraynumber of charge interpolation points
Int_tfNPRFnumber of interpolations point
Int_tfNYdivnumber of wires
Int_tfNdivnumber of division to calculate integral
Float_tfOrigSigmaXsigma of original distribution;
Float_tfOrigSigmaYsigma of original distribution;
Float_tfPadAngle'angle' of the pad assymetry
Float_tfPadDistancepad anode distnce (only for Gati parametrisation)
Float_tfShiftYshift of the step
Float_tfSigmaXsigma X of PAD response function
Float_tfSigmaYsigma Y of PAD response function
charfType[5]charge type
Float_tfWidthwidth of the pad
Float_tfY1position of first "virtual" vire
Float_tfY2position of last virtual vire
Float_t*fcharge!field with PRF
static const Double_tfgkDegtoRadnumeric constant
static const Int_tfgkNPRFdefault number of division
static const Double_tfgkSQRT12numeric constant
Double_tfunParam[5]parameters of used charge function

Class Charts

Inheritance Chart:
TObject
AliTPCPRF2D

Function documentation

AliTPCPRF2D()
default constructor for response function object
~AliTPCPRF2D()
void SetY(Float_t y1, Float_t y2, Int_t nYdiv)
set virtual line position
first and last line and number of lines
void SetPad(Float_t width, Float_t height)
set base chevron parameters
void SetChevron(Float_t hstep, Float_t shifty, Float_t fac)
set shaping of chewron parameters
void SetChParam(Float_t width, Float_t height, Float_t hstep, Float_t shifty, Float_t fac)
Float_t GetPRF(Float_t xin, Float_t yin)
function which return pad response
for the charge in distance xin
return  cubic aproximation of PRF or PRF at nearest virtual wire
Float_t GetPRFActiv(Float_t xin)
GEt response function on given charege line
return spline aproximaton
Float_t GetGRF(Float_t xin, Float_t yin)
function which returnoriginal charge distribution
this function is just normalised for fKnorm
void SetParam(TF2 *const GRF, Float_t kNorm, Float_t sigmaX = 0, Float_t sigmaY = 0)
adjust parameters of the original charge distribution
and pad size parameters
void SetGauss(Float_t sigmaX, Float_t sigmaY, Float_t kNorm = 1)
 set parameters for Gauss generic charge distribution

void SetCosh(Float_t sigmaX, Float_t sigmaY, Float_t kNorm = 1)
 set parameters for Cosh generic charge distribution

void SetGati(Float_t K3X, Float_t K3Y, Float_t padDistance, Float_t kNorm = 1)
 set parameters for Gati generic charge distribution

void Update()
update fields  with interpolated values for
PRF calculation
void Update1()
update fields  with interpolated values for
PRF calculation for given charge line
void UpdateSigma()
calulate effective sigma X and sigma y of PRF
void Streamer(TBuffer& )
 Stream an object of class AliTPCPRF2D
TH1F * GenerDrawXHisto(Float_t x1, Float_t x2, Float_t y)
gener one dimensional hist of pad response function
  at position y
AliH2F * GenerDrawHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx = 20, Int_t Ny = 20)
gener two dimensional histogram with PRF

AliH2F * GenerDrawDistHisto(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx = 20, Int_t Ny = 20, Float_t thr = 0)
return histogram with distortion
void DrawX(Float_t x1, Float_t x2, Float_t y1, Float_t y2 = 0, Int_t N = 1)
draw pad response function at interval <x1,x2> at  given y position

void DrawPRF(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx = 20, Int_t Ny = 20)

void DrawDist(Float_t x1, Float_t x2, Float_t y1, Float_t y2, Int_t Nx = 20, Int_t Ny = 20, Float_t thr = 0)
draw distortion of the COG method - for different threshold parameter
void DrawComment(TPaveText* comment)
function to write comment to picture
AliTPCPRF2D()
Float_t GetGRF(Float_t xin, Float_t yin)
return generic response function  in xin
void SetChargeAngle(Float_t angle)
axes
{fChargeAngle = angle;}
void SetCurrentAngle(Float_t )
{return;}
void SetPadAngle(Float_t angle)
{fPadAngle = angle;}
void SetInterpolationType(Int_t interx, Int_t intery)
{fInterX=interx; fInterY =intery;}
void SetNdiv(Int_t Ndiv)
{fNdiv=Ndiv;}
Float_t GetSigmaX() const
{return fSigmaX;}
Float_t GetSigmaY() const
{return fSigmaY;}