AliTPCPreprocessorOffline::AliTPCPreprocessorOffline():
TNamed("TPCPreprocessorOffline","TPCPreprocessorOffline"),
- kMinEntries(500), // minimal number of entries for fit
+ fMinEntries(500), // minimal number of entries for fit
startRun(0), // start Run - used to make fast selection in THnSparse
endRun(0), // end Run - used to make fast selection in THnSparse
startTime(0), // startTime - used to make fast selection in THnSparse
-void AliTPCPreprocessorOffline::GetRunRange(AliTPCcalibTime* timeDrift){
+void AliTPCPreprocessorOffline::GetRunRange(AliTPCcalibTime * const timeDrift){
//
// find the fist and last run
//
TObjArray *hisArray =timeDrift->GetHistoDrift();
{for (Int_t i=0; i<hisArray->GetEntriesFast(); i++){
THnSparse* addHist=(THnSparse*)hisArray->UncheckedAt(i);
- if (addHist->GetEntries()<kMinEntries) continue;
+ if (addHist->GetEntries()<fMinEntries) continue;
if (!addHist) continue;
TH1D* histo =addHist->Projection(3);
TH1D* histoTime=addHist->Projection(0);
-void AliTPCPreprocessorOffline::CalibTimeVdrift(Char_t* file, Int_t ustartRun, Int_t uendRun, TString pocdbStorage){
- //
- //
+void AliTPCPreprocessorOffline::CalibTimeVdrift(const Char_t* file, Int_t ustartRun, Int_t uendRun, TString pocdbStorage){
//
+ // make calibration of the drift velocity
+ // Input parameters:
+ // file - the location of input file
+ // ustartRun, uendrun - run validity period
+ // pocdbStorage - path to hte OCDB storage
+ // - if empty - local storage 'pwd' uesed
if (pocdbStorage.Length()>0) ocdbStorage=pocdbStorage;
else
ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
//
fVdriftArray = new TObjArray();
AddAlignmentGraphs(fVdriftArray,fTimeDrift);
- AddHistoGraphs(fVdriftArray,fTimeDrift,kMinEntries);
+ AddHistoGraphs(fVdriftArray,fTimeDrift,fMinEntries);
AddLaserGraphs(fVdriftArray,fTimeDrift);
//
// 3. Append QA plots
-void AliTPCPreprocessorOffline::UpdateDriftParam(AliTPCParam *param, TObjArray *arr, Int_t lstartRun){
+void AliTPCPreprocessorOffline::UpdateDriftParam(AliTPCParam *param, TObjArray *const arr, Int_t lstartRun){
//
// update the OCDB entry for the nominal time0
//
void AliTPCPreprocessorOffline::PrintArray(TObjArray *array){
//
- //
+ // Print the names of the entries in array
//
Int_t entries = array->GetEntries();
for (Int_t i=0; i<entries; i++){
}
-void AliTPCPreprocessorOffline::AddHistoGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift, Int_t minEntries){
+void AliTPCPreprocessorOffline::AddHistoGraphs( TObjArray * vdriftArray, AliTPCcalibTime * const timeDrift, Int_t minEntries){
//
// Add graphs corresponding to the alignment
//
-void AliTPCPreprocessorOffline::AddAlignmentGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift){
+void AliTPCPreprocessorOffline::AddAlignmentGraphs( TObjArray * vdriftArray, AliTPCcalibTime *const timeDrift){
//
// Add graphs corresponding to alignment to the object array
//
void AliTPCPreprocessorOffline::SetDefaultGraphDrift(TGraph *graph, Int_t color, Int_t style){
//
- //
+ // Set default style for QA views
//
graph->GetXaxis()->SetTimeDisplay(kTRUE);
graph->GetXaxis()->SetTimeFormat("#splitline{%d/%m}{%H:%M}");
}
void AliTPCPreprocessorOffline::SetPadStyle(TPad *pad, Float_t mx0, Float_t mx1, Float_t my0, Float_t my1){
- //
- //
+ //
+ // Set default pad style for QA
+ //
pad->SetTicks(1,1);
pad->SetMargin(mx0,mx1,my0,my1);
}
-void AliTPCPreprocessorOffline::MakeDefaultPlots(TObjArray * arr, TObjArray *picArray){
+void AliTPCPreprocessorOffline::MakeDefaultPlots(TObjArray * const arr, TObjArray *picArray){
//
+ // 0. make a default QA plots
+ // 1. Store them in the array
//
//
- // margins
Float_t mx0=0.12, mx1=0.1, my0=0.15, my1=0.1;
//
TGraphErrors* laserA =(TGraphErrors*)arr->FindObject("GRAPH_MEAN_DRIFT_LASER_ALL_A");
-void AliTPCPreprocessorOffline::CalibTimeGain(Char_t* fileName, Int_t startRunNumber, Int_t endRunNumber, TString pocdbStorage){
+void AliTPCPreprocessorOffline::CalibTimeGain(const Char_t* fileName, Int_t startRunNumber, Int_t endRunNumber, TString pocdbStorage){
//
// Update OCDB gain
//
-void AliTPCPreprocessorOffline::ReadGainGlobal(Char_t* fileName){
+void AliTPCPreprocessorOffline::ReadGainGlobal(const Char_t* fileName){
//
// read calibration entries from file
//
Bool_t AliTPCPreprocessorOffline::AnalyzeGain(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesGaussFit, Float_t FPtoMIPratio){
//
- //
+ // Analyze gain - produce the calibration graphs
//
fGainMIP->GetHistGainTime()->GetAxis(5)->SetRangeUser(startRunNumber, endRunNumber);
// 1.) try to create MIP spline
public:
AliTPCPreprocessorOffline();
virtual ~AliTPCPreprocessorOffline();
- void MakeAll(){;}
void UpdateOCDBDrift(Int_t ustartRun, Int_t uendRun, const char* storagePath);
void UpdateOCDBGain(Int_t startRunNumber, Int_t endRunNumber, const char* storagePath);
- void UpdateDriftParam(AliTPCParam *param, TObjArray *arr, Int_t startRun);
+ void UpdateDriftParam(AliTPCParam *param, TObjArray *const arr, Int_t startRun);
//
// v drift part
//
- void GetRunRange(AliTPCcalibTime* timeDrift);
- void CalibTimeVdrift(Char_t* file, Int_t ustartRun, Int_t uendRun,TString ocdbStorage="");
- void AddHistoGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift, Int_t minEntries);
- void AddAlignmentGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift);
+ void GetRunRange(AliTPCcalibTime* const timeDrift);
+ void CalibTimeVdrift(const Char_t* file, Int_t ustartRun, Int_t uendRun,TString ocdbStorage="");
+ void AddHistoGraphs( TObjArray * vdriftArray, AliTPCcalibTime * const timeDrift, Int_t minEntries);
+ void AddAlignmentGraphs( TObjArray * vdriftArray, AliTPCcalibTime * const timeDrift);
void AddLaserGraphs( TObjArray * vdriftArray, AliTPCcalibTime *timeDrift);
void SetDefaultGraphDrift(TGraph *graph, Int_t color, Int_t style);
- void MakeDefaultPlots(TObjArray * arr, TObjArray *picArray);
+ void MakeDefaultPlots(TObjArray * const arr, TObjArray *picArray);
//
// Gain part
//
- void CalibTimeGain(Char_t* fileName, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage);
- void ReadGainGlobal(Char_t* fileName="CalibObjectsTrain1.root");
+ void CalibTimeGain(const Char_t* fileName, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage);
+ void ReadGainGlobal(const Char_t* fileName="CalibObjectsTrain1.root");
void MakeQAPlot(Float_t FPtoMIPratio);
Bool_t AnalyzeGain(Int_t startRunNumber, Int_t endRunNumber, Int_t minEntriesGaussFit = 500, Float_t FPtoMIPratio = 1.43);
//
static TGraphErrors* FilterGraphDrift(TGraphErrors * graph, Float_t errSigmaCut, Float_t medianCutAbs);
static TGraphErrors * MakeGraphFilter0(THnSparse *hisN, Int_t itime, Int_t ival, Int_t minEntries, Double_t offset=0);
-public:
- Int_t kMinEntries; // minimal number of entries for fit
+private:
+ Int_t fMinEntries; // minimal number of entries for fit
Int_t startRun; // start Run - used to make fast selection in THnSparse
Int_t endRun; // end Run - used to make fast selection in THnSparse
Int_t startTime; // startTime - used to make fast selection in THnSparse
Int_t endTime; // endTime - used to make fast selection in THnSparse
TString ocdbStorage; // path to the OCDB storage
- TObjArray * fVdriftArray;
- AliTPCcalibTime * fTimeDrift;
+ TObjArray * fVdriftArray; // array with output calibration graphs
+ AliTPCcalibTime * fTimeDrift; // input data to construct calibration graphs
TGraphErrors * fGraphMIP; // graph time dependence of MIP
TGraphErrors * fGraphCosmic; // graph time dependence at Plateu
AliSplineFit * fFitMIP; // fit of dependence - MIP