ROOT logo
AliRoot » TPC » BASE » AliTPCCalROC

class AliTPCCalROC: public TNamed


Calibration base class for a single ROC
Contains one float value per pad
mapping of the pads taken form AliTPCROC


Function Members (Methods)

public:
AliTPCCalROC()
AliTPCCalROC(UInt_t sector)
AliTPCCalROC(const AliTPCCalROC& c)
virtual~AliTPCCalROC()
voidTObject::AbstractMethod(const char* method) const
voidAdd(Float_t c1)
voidAdd(const AliTPCCalROC* roc, Double_t c1 = 1)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
Bool_tConvolute(Double_t sigmaPad, Double_t sigmaRow, AliTPCCalROC* outlierPad = 0, TF1* fpad = 0, TF1* frow = 0)
virtual voidTNamed::Copy(TObject& named) const
static AliTPCCalROC*CreateGlobalFitCalROC(TVectorD& fitParam, Int_t sector)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
voidDivide(const AliTPCCalROC* roc)
virtual voidDraw(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 voidTNamed::FillBuffer(char*& buffer)
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
Double_tGetLTM(Double_t *const sigma = 0, Double_t fraction = 0.9, AliTPCCalROC *const outlierROC = 0)
Double_tGetMean(AliTPCCalROC *const outlierROC = 0) const
Double_tGetMedian(AliTPCCalROC *const outlierROC = 0) const
virtual const char*TNamed::GetName() const
UInt_tGetNchannels() const
UInt_tGetNPads(UInt_t row) const
UInt_tGetNrows() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tGetRMS(AliTPCCalROC *const outlierROC = 0) const
UInt_tGetSector() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Float_tGetValue(UInt_t channel) const
Float_tGetValue(UInt_t row, UInt_t pad) const
voidGlobalFit(const AliTPCCalROC* ROCoutliers, Bool_t robust, TVectorD& fitParam, TMatrixD& covMatrix, Float_t& chi2, Int_t fitType = 1, Double_t chi2Threshold = 5, Double_t robustFraction = 0.7, Double_t err = 1)
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 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_tIsInRange(UInt_t row, UInt_t pad)
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
AliTPCCalROC*LocalFit(Int_t rowRadius, Int_t padRadius, AliTPCCalROC* ROCoutliers = 0, Bool_t robust = kFALSE, Double_t chi2Threshold = 5, Double_t robustFraction = 0.7)
virtual voidTNamed::ls(Option_t* option = "") const
Bool_tLTMFilter(Int_t deltaRow, Int_t deltaPad, Float_t fraction, Int_t type, AliTPCCalROC* outlierROC = 0, Bool_t doEdge = kTRUE)
TH1F*MakeHisto1D(Float_t min = 4, Float_t max = -4, Int_t type = 0)
TH2F*MakeHisto2D(Float_t min = 4, Float_t max = -4, Int_t type = 0)
TH2F*MakeHistoOutliers(Float_t delta = 4, Float_t fraction = 0.7, Int_t mode = 0)
voidTObject::MayNotUse(const char* method) const
Bool_tMedianFilter(Int_t deltaRow, Int_t deltaPad, AliTPCCalROC* outlierROC = 0, Bool_t doEdge = kTRUE)
voidMultiply(Float_t c1)
voidMultiply(const AliTPCCalROC* roc)
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)
AliTPCCalROC&operator=(const AliTPCCalROC& param)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidReset()
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 voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetValue(UInt_t channel, Float_t vd)
voidSetValue(UInt_t row, UInt_t pad, Float_t vd)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
static voidTest()
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
voidGetNeighbourhood(TArrayI*& rowArray, TArrayI*& padArray, Int_t row, Int_t pad, Int_t rRadius, Int_t pRadius)
Double_tGetNeighbourhoodValue(TLinearFitter* fitterQ, Int_t row, Int_t pad, Int_t rRadius, Int_t pRadius, AliTPCCalROC *const ROCoutliers, Bool_t robust, Double_t chi2Threshold, Double_t robustFraction)
voidTObject::MakeZombie()

Data Members

protected:
Float_t*fData[fNChannels] Data
UInt_tfNChannelsnumber of channels
UInt_tfNRowsnumber of rows
TStringTNamed::fNameobject identifier
UInt_tfSectorsector number
TStringTNamed::fTitleobject title
const UInt_t*fkIndexes!indexes

Class Charts

Inheritance Chart:
TNamed
AliTPCCalROC

Function documentation

AliTPCCalROC()
 Default constructor

AliTPCCalROC(UInt_t sector)
 Constructor that initializes a given sector

AliTPCCalROC(const AliTPCCalROC& c)
 AliTPCCalROC copy constructor

~AliTPCCalROC()
 AliTPCCalROC destructor

void Streamer(TBuffer& )
 Stream an object of class AliTPCCalROC.

Bool_t MedianFilter(Int_t deltaRow, Int_t deltaPad, AliTPCCalROC* outlierROC = 0, Bool_t doEdge = kTRUE)
){

   Modify content of the object - raplace value by median in neighorhood

Bool_t LTMFilter(Int_t deltaRow, Int_t deltaPad, Float_t fraction, Int_t type, AliTPCCalROC* outlierROC = 0, Bool_t doEdge = kTRUE)
){


 
   Modify content of the class
   write LTM mean or median
Bool_t Convolute(Double_t sigmaPad, Double_t sigmaRow, AliTPCCalROC* outlierPad = 0, TF1* fpad = 0, TF1* frow = 0)
 convolute the calibration with function fpad,frow
 in range +-4 sigma
void Add(Float_t c1)
 add c1 to each channel of the ROC

void Multiply(Float_t c1)
 multiply each channel of the ROC with c1

void Add(const AliTPCCalROC* roc, Double_t c1 = 1)
 multiply AliTPCCalROC roc by c1 and add each channel to the coresponing channel in the ROC
  - pad by pad

void Multiply(const AliTPCCalROC* roc)
 multiply each channel of the ROC with the coresponding channel of 'roc'
     - pad by pad -

void Divide(const AliTPCCalROC* roc)
 divide each channel of the ROC by the coresponding channel of 'roc'
     - pad by pad -

void Reset()
 reset to ZERO

Double_t GetMean(AliTPCCalROC *const outlierROC = 0) const
  returns the mean value of the ROC
  pads with value != 0 in outlierROC are not used for the calculation
  return 0 if no data is accepted by the outlier cuts

Double_t GetMedian(AliTPCCalROC *const outlierROC = 0) const
  returns the median value of the ROC
  pads with value != 0 in outlierROC are not used for the calculation
  return 0 if no data is accepted by the outlier cuts

Double_t GetRMS(AliTPCCalROC *const outlierROC = 0) const
  returns the RMS value of the ROC
  pads with value != 0 in outlierROC are not used for the calculation
  return 0 if no data is accepted by the outlier cuts

Double_t GetLTM(Double_t *const sigma = 0, Double_t fraction = 0.9, AliTPCCalROC *const outlierROC = 0)
  returns the LTM and sigma
  pads with value != 0 in outlierROC are not used for the calculation
  return 0 if no data is accepted by the outlier cuts

TH1F * MakeHisto1D(Float_t min = 4, Float_t max = -4, Int_t type = 0)
 make 1D histo
 type -1 = user defined range
       0 = nsigma cut nsigma=min
       1 = delta cut around median delta=min

TH2F * MakeHisto2D(Float_t min = 4, Float_t max = -4, Int_t type = 0)
 make 2D histo
 type -1 = user defined range
       0 = nsigma cut nsigma=min
       1 = delta cut around median delta=min

TH2F * MakeHistoOutliers(Float_t delta = 4, Float_t fraction = 0.7, Int_t mode = 0)
 Make Histogram with outliers
 mode = 0 - sigma cut used
 mode = 1 - absolute cut used
 fraction - fraction of values used to define sigma
 delta - in mode 0 - nsigma cut
            mode 1 - delta cut

void Draw(Option_t* option = "")
 create histogram with values and draw it

void Test()
 example function to show functionality and test AliTPCCalROC

AliTPCCalROC * LocalFit(Int_t rowRadius, Int_t padRadius, AliTPCCalROC* ROCoutliers = 0, Bool_t robust = kFALSE, Double_t chi2Threshold = 5, Double_t robustFraction = 0.7)
 MakeLocalFit - smoothing
 returns a AliTPCCalROC with smoothed data
 rowRadius and padRadius specifies a window around a given pad.
 The data of this window are fitted with a parabolic function.
 This function is evaluated at the pad's position.
 At the edges the window is shifted, so that the specified pad is not anymore in the center of the window.
 rowRadius  -  radius - rows to be used for smoothing
 padradius  -  radius - pads to be used for smoothing
 ROCoutlier -  map of outliers - pads not to be used for local smoothing
 robust     -  robust method of fitting  - (much slower)
 chi2Threshold: Threshold for chi2 when EvalRobust is called
 robustFraction: Fraction of data that will be used in EvalRobust

Double_t GetNeighbourhoodValue(TLinearFitter* fitterQ, Int_t row, Int_t pad, Int_t rRadius, Int_t pRadius, AliTPCCalROC *const ROCoutliers, Bool_t robust, Double_t chi2Threshold, Double_t robustFraction)
 AliTPCCalROC::GetNeighbourhoodValue - smoothing - PRIVATE
 in this function the fit for LocalFit is done

void GetNeighbourhood(TArrayI*& rowArray, TArrayI*& padArray, Int_t row, Int_t pad, Int_t rRadius, Int_t pRadius)
 AliTPCCalROC::GetNeighbourhood - PRIVATE
 in this function the window for LocalFit is determined

void GlobalFit(const AliTPCCalROC* ROCoutliers, Bool_t robust, TVectorD& fitParam, TMatrixD& covMatrix, Float_t& chi2, Int_t fitType = 1, Double_t chi2Threshold = 5, Double_t robustFraction = 0.7, Double_t err = 1)
 Makes a  GlobalFit for the given secotr and return fit-parameters, covariance and chi2
 The origin of the fit function is the center of the ROC!
 fitType == 0: fit plane function
 fitType == 1: fit parabolic function
 ROCoutliers - pads with value !=0 are not used in fitting procedure
 chi2Threshold: Threshold for chi2 when EvalRobust is called
 robustFraction: Fraction of data that will be used in EvalRobust
 err: error of the data points

AliTPCCalROC* CreateGlobalFitCalROC(TVectorD& fitParam, Int_t sector)
 Create ROC with global fit parameters
 The origin of the fit function is the center of the ROC!
 loop over all channels, write fit values into new ROC and return it

UInt_t GetSector() const
{ return fSector;}
UInt_t GetNrows() const
{ return fNRows;}
UInt_t GetNchannels() const
{ return fNChannels;}
Bool_t IsInRange(UInt_t row, UInt_t pad)
{ return (row<fNRows)? (fkIndexes[row]+pad)<fNChannels:kFALSE;}
UInt_t GetNPads(UInt_t row) const
{ return (row<fNRows)? AliTPCROC::Instance()->GetNPads(fSector,row):0;}
Float_t GetValue(UInt_t row, UInt_t pad) const
{ return ( (row<fNRows) && (fkIndexes[row]+pad)<fNChannels)? fData[fkIndexes[row]+pad]: 0; }
Float_t GetValue(UInt_t channel) const
{ return fData[channel]; }
void SetValue(UInt_t row, UInt_t pad, Float_t vd)
{ if ( row<fNRows && (fkIndexes[row]+pad)<fNChannels)fData[fkIndexes[row]+pad]= vd; }
void SetValue(UInt_t channel, Float_t vd)
{fData[channel]= vd; }