AliTRDCalibraFit This class is for the TRD calibration of the relative gain factor, the drift velocity, the time 0 and the pad response function. It fits the histos. The 2D histograms or vectors (first converted in 1D histos) will be fitted if they have enough entries, otherwise the (default) value of the choosen database will be put. For the relative gain calibration the resulted factors will be globally normalized to the gain factors of the choosen database. It unables to precise previous calibration procedure. The function SetDebug enables the user to see: _fDebug = 0: nothing, only the values are written in the tree if wanted _fDebug = 1: only the fit of the choosen calibration group fFitVoir (SetFitVoir) _fDebug = 2: a comparaison of the coefficients found and the default values in the choosen database. fCoef , histogram of the coefs as function of the calibration group number fDelta , histogram of the relative difference of the coef with the default value in the database as function of the calibration group number fError , dirstribution of this relative difference _fDebug = 3: The coefficients in the choosen detector fDet (SetDet) as function of the pad row and col number _fDebug = 4; The coeffcicients in the choosen detector fDet (SetDet) like in the 3 but with also the comparaison histograms of the 1 for this detector Author: R. Bailhache (R.Bailhache@gsi.de)
AliTRDCalibraFit(const AliTRDCalibraFit& c) | |
void | TObject::AbstractMethod(const char* method) const |
Bool_t | AnalyseCH(const TH2I* ch) |
Bool_t | AnalyseCH(AliTRDCalibraVector* calvect) |
Double_t | AnalyseCHAllTogether(const TH2I* ch) |
Bool_t | AnalyseExbAltFit(AliTRDCalibraExbAltFit* calivdli) |
Bool_t | AnalyseLinearFitters(AliTRDCalibraVdriftLinearFit* calivdli) |
void | AnalyseLinearFittersAllTogether(AliTRDCalibraVdriftLinearFit* calivdli, Double_t& vdriftoverall, Double_t& exboverall) |
Bool_t | AnalysePH(const TProfile2D* ph) |
Bool_t | AnalysePH(AliTRDCalibraVector* calvect) |
Double_t | AnalysePHAllTogether(const TProfile2D* ph) |
Bool_t | AnalysePRF(const TProfile2D* prf) |
Bool_t | AnalysePRF(AliTRDCalibraVector* calvect) |
Bool_t | AnalysePRFMarianFit(const TProfile2D* prf) |
Bool_t | AnalysePRFMarianFit(AliTRDCalibraVector* calvect) |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
void | CalculPolynomeLagrange2(const Double_t* x, const Double_t* y, Double_t& c0, Double_t& c1, Double_t& c2, Double_t& c3, Double_t& c4) const |
void | CalculPolynomeLagrange3(const Double_t* x, const Double_t* y, Double_t& c0, Double_t& c1, Double_t& c2, Double_t& c3, Double_t& c4) const |
void | CalculPolynomeLagrange4(const Double_t* x, const Double_t* y, Double_t& c0, Double_t& c1, Double_t& c2, Double_t& c3, Double_t& c4) const |
void | ChooseMethod(Short_t method) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
virtual void | TObject::Copy(TObject& object) const |
AliTRDCalDet* | CreateDetObjectExbAlt(const TObjArray* vectorFit) |
AliTRDCalDet* | CreateDetObjectGain(const TObjArray* vectorFit, Bool_t meanOtherBefore = kTRUE, Double_t scaleFitFactor = 0.02431, Bool_t perdetector = kTRUE) |
AliTRDCalDet* | CreateDetObjectLorentzAngle(const TObjArray* vectorFit) |
AliTRDCalDet* | CreateDetObjectT0(const TObjArray* vectorFit, Bool_t perdetector = kFALSE) |
AliTRDCalDet* | CreateDetObjectVdrift(const TObjArray* vectorFit, Bool_t perdetector = kFALSE) |
TObject* | CreatePadObjectGain(const TObjArray* vectorFit = 0, Double_t scaleFitFactor = 1.0, const AliTRDCalDet* detobject = 0) |
TObject* | CreatePadObjectPRF(const TObjArray* vectorFit) |
TObject* | CreatePadObjectT0(const TObjArray* vectorFit = 0, const AliTRDCalDet* detobject = 0) |
TObject* | CreatePadObjectVdrift(const TObjArray* vectorFit = 0, const AliTRDCalDet* detobject = 0) |
virtual void | TObject::Delete(Option_t* option = "")MENU |
static void | Destroy() |
void | DestroyDebugStreamer() |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
virtual void | TObject::Dump() constMENU |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
void | FitLagrangePoly(TH1* projPH) |
Bool_t | GetAccCDB() const |
AliTRDCalibraMode* | GetCalibraMode() const |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
Float_t | GetFitOutliersChargeHigh() const |
Float_t | GetFitOutliersChargeLow() const |
virtual const char* | TObject::GetIconName() const |
Int_t | GetMinEntries() const |
virtual const char* | TObject::GetName() const |
Int_t | GetNumberEnt() const |
Int_t | GetNumberFit() const |
Int_t | GetNumberFitSuccess() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
Int_t | GetPeriodeFitPH() const |
Float_t | GetRangeFitPRF() const |
Short_t | GetRebin() const |
Float_t | GetScaleFactorGain() const |
Double_t | GetScaleFitFactor() const |
Double_t | GetStatisticMean() const |
Float_t | GetT0Shift0() const |
Float_t | GetT0Shift1() const |
Bool_t | GetTakeTheMaxPH() const |
virtual const char* | TObject::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
TObjArray | GetVectorFit() const |
TObjArray | GetVectorFit2() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() constMENU |
static AliTRDCalibraFit* | Instance() |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
virtual void | TObject::ls(Option_t* option = "") const |
AliTRDCalDet* | MakeOutliersStatDet(const TObjArray* vectorFit, const char* name, Double_t& mean) |
TObject* | MakeOutliersStatPad(const TObjArray* vectorFit, const char* name, Double_t& mean) |
void | TObject::MayNotUse(const char* method) const |
virtual Bool_t | TObject::Notify() |
void | TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::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) |
AliTRDCalibraFit& | operator=(const AliTRDCalibraFit&) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TObject::Print(Option_t* option = "") const |
void | PutMeanValueOtherVectorFit(Int_t ofwhat = 1, Bool_t perdetector = kFALSE) |
void | PutMeanValueOtherVectorFit2(Int_t ofwhat = 1, Bool_t perdetector = kFALSE) |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
void | RemoveOutliers(Int_t type, Bool_t perdetector = kFALSE) |
void | RemoveOutliers2(Bool_t perdetector = kFALSE) |
void | TObject::ResetBit(UInt_t f) |
void | ResetVectorFit() |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
void | SetAccCDB() |
void | SetBeginFitCharge(Float_t beginFitCharge) |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
void | SetCalDetVdriftExB(AliTRDCalDet* calDetVdriftUsed, AliTRDCalDet* calDetExBUsed) |
void | SetDebugLevel(Short_t level) |
void | SetDet(Int_t iLayer, Int_t iStack, Int_t iSector) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
void | SetFitOutliersChargeHigh(Float_t fitOutliersChargeHigh) |
void | SetFitOutliersChargeLow(Float_t fitOutliersChargeLow) |
void | SetFitVoir(Int_t fitVoir) |
void | SetMagneticField(Float_t magneticfield) |
void | SetMinEntries(Int_t minEntries) |
Bool_t | SetModeCalibration(TString name, Int_t i) |
static void | TObject::SetObjectStat(Bool_t stat) |
void | SetPeriodeFitPH(Int_t periodeFitPH) |
void | SetRangeFitPRF(Float_t rangeFitPRF) |
void | SetRebin(Short_t rebin) |
void | SetT0Shift0(Float_t t0Shift0) |
void | SetT0Shift1(Float_t t0Shift1) |
void | SetTakeTheMaxPH() |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector&) |
virtual void | Streamer(TBuffer&) |
void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
static void | Terminate() |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
AliTRDCalibraFit() | |
(unknown) | () |
static Double_t | AsymmGauss(const Double_t* x, const Double_t* par) |
static Double_t | FuncLandauGaus(const Double_t* x, const Double_t* par) |
TF1* | LanGauFit(TH1* his, const Double_t* fitrange, const Double_t* startvalues, const Double_t* parlimitslo, const Double_t* parlimitshi, Double_t* fitparams, Double_t* fiterrors, Double_t* chiSqr, Int_t* ndf) const |
TF1* | LanGauFitEx(TH1* his, const Double_t* fitrange, const Double_t* startvalues, const Double_t* parlimitslo, const Double_t* parlimitshi, Double_t* fitparams, Double_t* fiterrors, Double_t* chiSqr, Int_t* ndf) const |
static Double_t | LanGauFun(const Double_t* x, const Double_t* par) |
static Double_t | LanGauFunEx(const Double_t* x, const Double_t* par) |
static Double_t | PH(const Double_t* x, const Double_t* par) |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
Bool_t | fAccCDB | If there is a calibration database to be compared with.... |
Float_t | fBeginFitCharge | The fit begins at mean/fBeginFitCharge for the gain calibration |
AliTRDCalDet* | fCalDet | Current calib object |
AliTRDCalDet* | fCalDet2 | Current calib object |
AliTRDCalDet* | fCalDetExBUsed | ExB calibration |
AliTRDCalDet* | fCalDetVdriftUsed | ExB calibration |
AliTRDCalROC* | fCalROC | Current calib object |
AliTRDCalROC* | fCalROC2 | Current calib object |
AliTRDCalibraMode* | fCalibraMode | The calibration mode |
Int_t | fCount | When the next detector comes |
Int_t | fCountDet | Current detector (or first in the group) |
Float_t | fCurrentCoef[2] | Current coefs |
Float_t | fCurrentCoef2[2] | Current coefs |
Float_t* | fCurrentCoefDetector | Current values for the detector |
Float_t* | fCurrentCoefDetector2 | Current values for the detector |
Float_t | fCurrentCoefE | Current coefs error |
Float_t | fCurrentCoefE2 | Current coefs error |
Short_t | fDebugLevel | Flag for debugging |
TTreeSRedirector* | fDebugStreamer | !Debug streamer |
Int_t | fDect1 | First calibration group that will be called to be maybe fitted |
Int_t | fDect2 | Last calibration group that will be called to be maybe fitted |
Int_t | fDet[3] | Detector visualised (layer,stack,sector) si debugging == 3 or 4 |
Int_t | fEntriesCurrent | Entries in the current histo |
Int_t | fFitPHPeriode | Periode of the fit PH |
Int_t | fFitVoir | Fit visualised si debugging == 2 |
AliTRDgeometry* | fGeo | ! The TRD geometry |
Float_t | fMagneticField | Magnetic field lorentz angle |
Short_t | fMethod | Method |
Int_t | fMinEntries | Min Entries to fit the histo |
Int_t | fNbDet | Number of detector in the group |
Int_t | fNumberEnt | To know how many pad groups have entries in the histo |
Int_t | fNumberFit | To know how many pad groups have been fitted |
Int_t | fNumberFitSuccess | To know how many pad groups have been fitted successfully |
Int_t | fNumberOfBinsExpected | Number of bins expected |
Float_t | fOutliersFitChargeHigh | The fit ends at fOutliersFitCharge procent number of entries |
Float_t | fOutliersFitChargeLow | The fit ends at fOutliersFitCharge procent number of entries |
Float_t | fPhd[3] | Begin AR and DR |
Float_t | fRangeFitPRF | The fit range for the PRF is -fRangeFitPRF +fRangeFitPRF |
Short_t | fRebin | If you want to rebin the histo for the gain calibration |
Double_t | fScaleFitFactor | Scale factor of the fit results for the gain |
Float_t | fScaleGain | Scale Factor used to scale the gain |
Double_t | fStatisticMean | To know the mean statistic of the histos |
Float_t | fT0Shift0 | T0 Shift with the maximum positive slope |
Float_t | fT0Shift1 | T0 Shift with the maximum of the amplification region |
Bool_t | fTakeTheMaxPH | Take the Max for the T0 determination |
TObjArray | fVectorFit | Vectors to fit |
TObjArray | fVectorFit2 | Vectors to fit |
static AliTRDCalibraFit* | fgInstance | Instance |
static Bool_t | fgTerminated | If terminated |
Inheritance Chart: | ||||||||
|
Fit the 1D histos, projections of the 2D ch on the Xaxis, for each calibration group normalized the resulted coefficients (to 1 normally)
Reconstruct a 1D histo from the vectorCH for each calibration group, fit the histo, normalized the resulted coefficients (to 1 normally)
Fit the 1D histos, projections of the 2D ch on the Xaxis, for each calibration group normalized the resulted coefficients (to 1 normally)
Take the 1D profiles (average pulse height), projections of the 2D PH on the Xaxis, for each calibration group Reconstruct a drift velocity A first calibration of T0 is also made using the same method
Reconstruct the average pulse height from the vectorPH for each calibration group Reconstruct a drift velocity A first calibration of T0 is also made using the same method (slope method)
Take the 1D profiles (average pulse height), projections of the 2D PH on the Xaxis, for each calibration group Reconstruct a drift velocity A first calibration of T0 is also made using the same method
Take the 1D profiles (pad response function), projections of the 2D PRF on the Xaxis, for each calibration group Fit with a gaussian to reconstruct the sigma of the pad response function
Take the 1D profiles (pad response function), projections of the 2D PRF on the Xaxis, for each calibration group Fit with a gaussian to reconstruct the sigma of the pad response function
Reconstruct the 1D histo (pad response function) from the vectorPRD for each calibration group Fit with a gaussian to reconstruct the sigma of the pad response function
Reconstruct the 1D histo (pad response function) from the vectorPRD for each calibration group Fit with a gaussian to reconstruct the sigma of the pad response function
The linear method
Set fNz[i] and fNrphi[i] of the AliTRDCalibraFit::Instance() corresponding to the given name
Set fNrphi[i] of the AliTRDCalibraFit::Instance() corresponding to the given TObject
Set fNz[i] of the AliTRDCalibraFit::Instance() corresponding to the given TObject
Remove the results too far from the mean value and rms type: 0 gain, 1 vdrift perdetector
Remove the results too far from the mean and rms perdetector
ofwhat is equaled to 0: mean value of all passing detectors ofwhat is equaled to 1: mean value of the detector, otherwise supermodule, otherwise all
ofwhat is equaled to 0: mean value of all passing detectors ofwhat is equaled to 1: mean value of the detector, otherwise supermodule, otherwise all
It creates the AliTRDCalDet object from the AliTRDFitInfo It takes the mean value of the coefficients per detector This object has to be written in the database
It creates the AliTRDCalDet object from the AliTRDFitInfo It takes the mean value of the coefficients per detector This object has to be written in the database
It creates the AliTRDCalDet object from the AliTRDFitInfo2 It takes the min value of the coefficients per detector This object has to be written in the database
It creates the AliTRDCalDet object from the AliTRDFitInfo2 It takes the min value of the coefficients per detector This object has to be written in the database
It creates the AliTRDCalDet object from the AliTRDFitInfo2 It takes the min value of the coefficients per detector This object has to be written in the database
It Creates the AliTRDCalPad object from AliTRDFitInfo You need first to create the object for the detectors, where the mean value is put. This object has to be written in the database
It Creates the AliTRDCalPad object from AliTRDFitInfo You need first to create the object for the detectors, where the mean value is put. This object has to be written in the database
It Creates the AliTRDCalPad object from AliTRDFitInfo2 You need first to create the object for the detectors, where the mean value is put. This object has to be written in the database
It Creates the AliTRDCalPad object from AliTRDFitInfo This object has to be written in the database
It Creates the AliTRDCalDet object from AliTRDFitInfo 0 successful fit 1 not successful fit mean is the mean value over the successful fit do not use it for t0: no meaning
It Creates the AliTRDCalPad object from AliTRDFitInfo 0 not successful fit 1 successful fit mean mean value over the successful fit
The fit of the deposited charge distribution begins at histo->Mean()/beginFitCharge You can here set beginFitCharge
The t0 calculated with the maximum positif slope is shift from t0Shift0 You can here set t0Shift0
The t0 calculated with the maximum of the amplification region is shift from t0Shift1 You can here set t0Shift1
The fit of the PRF is from -rangeFitPRF to rangeFitPRF You can here set rangeFitPRF
Rebin with rebin time less bins the Ch histo You can set here rebin that should divide the number of bins of CH histo
Init the calibration mode (Nz, Nrphi), the histograms for debugging the fit methods if fDebug > 0,
See if we are in a new detector and update the variables fNfragZ and fNfragRphi if yes Will never happen for only one detector (3 and 4) Doesn't matter for 2
Reconstruct the min pad row, max pad row, min pad col and max pad col of the calibration group for the Fit functions idect is the calibration group inside the detector
For the case where there are not enough entries in the histograms of the calibration group, the value present in the choosen database will be put. A negativ sign enables to know that a fit was not possible.
For the case where there are not enough entries in the histograms of the calibration group, the value present in the choosen database will be put. A negativ sign enables to know that a fit was not possible.
For the case where there are not enough entries in the histograms of the calibration group, the value present in the choosen database will be put. A negativ sign enables to know that a fit was not possible.
For the case where there are not enough entries in the histograms of the calibration group, the value present in the choosen database will be put. A negativ sign enables to know that a fit was not possible.
For the case where there are not enough entries in the histograms of the calibration group, the value present in the choosen database will be put. A negativ sign enables to know that a fit was not possible.
Fill the coefficients found with the fits or other methods from the Fit functions
Fill the coefficients found with the fits or other methods from the Fit functions
Fill the coefficients found with the fits or other methods from the Fit functions
Fill the coefficients found with the fits or other methods from the Fit functions
Fill the coefficients found with the fits or other methods from the Fit functions
For the detector Dect calcul the mean time 0 for the calibration group idect from the choosen database
For the detector Dect calcul the mean gain factor for the calibration group idect from the choosen database
For the detector Dect calcul the mean sigma of pad response function for the calibration group idect from the choosen database
For the detector dect calcul the mean drift velocity for the calibration group idect from the choosen database
For the detector fCountDet, mean drift velocity and tan lorentzangle
Default width of the PRF if there is no database as reference
Fit methode for the sigma of the pad response function
Fit methode for the sigma of the pad response function
Fit methode for the sigma of the pad response function with 2*nbg tan bins
Fit methode for the gain factor more time consuming
Fit methode for the gain factor more time consuming
Calcul the coefficients of the polynome passant par ces trois points de degre 2
Calcul the coefficients of the polynome passant par ces quatre points de degre 3
Calcul the coefficients of the polynome passant par ces cinqs points de degre 4
Rebin of the 1D histo for the gain calibration if needed. you have to choose fRebin, divider of fNumberBinCharge
Rebin of the 1D histo for the gain calibration if needed you have to choose fRebin divider of fNumberBinCharge
Sum Landau + Gaus with identical mean
Function for the fit Fit parameters: par[0]=Width (scale) parameter of Landau density par[1]=Most Probable (MP, location) parameter of Landau density par[2]=Total area (integral -inf to inf, normalization constant) par[3]=Width (sigma) of convoluted Gaussian function In the Landau distribution (represented by the CERNLIB approximation), the maximum is located at x=-0.22278298 with the location parameter=0. This shift is corrected within this function, so that the actual maximum is identical to the MP parameter.
Function for the fit Fit parameters: par[0]=Width (scale) parameter of Landau density par[1]=Most Probable (MP, location) parameter of Landau density par[2]=Total area (integral -inf to inf, normalization constant) par[3]=Width (sigma) of convoluted Gaussian function par[4]=Exponential Slope Parameter In the Landau distribution (represented by the CERNLIB approximation), the maximum is located at x=-0.22278298 with the location parameter=0. This shift is corrected within this function, so that the actual maximum is identical to the MP parameter.
Function for the fit
Function for the fit
ExB calibration
{fCalDetVdriftUsed = calDetVdriftUsed; fCalDetExBUsed = calDetExBUsed;}
{ fOutliersFitChargeLow = fitOutliersChargeLow; }
{ fOutliersFitChargeHigh = fitOutliersChargeHigh; }