From 06a262f65261b3ce7a59f3ed42a760878f584645 Mon Sep 17 00:00:00 2001 From: mivanov Date: Wed, 24 Sep 2014 16:55:35 +0200 Subject: [PATCH] ATO-78 adding functionality to connect Pulser calibration trees. --- TPC/Base/AliTPCCalPad.cxx | 2 +- TPC/Base/AliTPCcalibDButil.cxx | 44 ++++++++++++++++++++++++++++++++++ TPC/Base/AliTPCcalibDButil.h | 2 ++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/TPC/Base/AliTPCCalPad.cxx b/TPC/Base/AliTPCCalPad.cxx index df3c6c3e9ce..2fd9f1ac30c 100644 --- a/TPC/Base/AliTPCCalPad.cxx +++ b/TPC/Base/AliTPCCalPad.cxx @@ -926,7 +926,7 @@ AliTPCCalPad *AliTPCCalPad::MakePadFromTree(TTree * treePad, const char *query, AliTPCCalROC* calROC = calPad->GetCalROC(iSec); UInt_t nchannels = (UInt_t)treePad->Draw(query,"1","goff",1,iSec); if (nchannels!=calROC->GetNchannels()) { - ::Error("AliTPCCalPad::MakePad",TString::Format("Wrong query sector\t%d\t%d",iSec,nchannels).Data()); + ::Error("AliTPCCalPad::MakePad",TString::Format("%s\t:Wrong query sector\t%d\t%d",treePad->GetName(),iSec,nchannels).Data()); break; } for (UInt_t index=0; indexSetValue(index,treePad->GetV1()[index]); diff --git a/TPC/Base/AliTPCcalibDButil.cxx b/TPC/Base/AliTPCcalibDButil.cxx index 250e858e227..0d59e7737e0 100644 --- a/TPC/Base/AliTPCcalibDButil.cxx +++ b/TPC/Base/AliTPCcalibDButil.cxx @@ -3277,3 +3277,47 @@ TTree* AliTPCcalibDButil::ConnectGainTrees(TString baseDir) return tMain; } + +//_____________________________________________________________________________________ +TTree* AliTPCcalibDButil::ConnectPulserTrees(TString baseDir, TTree *tMain) +{ + // + // baseDir: Base directory with Pulser information + // TTrees are added to the base tree as a friend tree + // + // === add the calibPulser trees ====================================== + TString inputTreesPulserCalib = gSystem->GetFromPipe(Form("ls %s/calibPulser/20*/*.tree.root",baseDir.Data())); + TObjArray *arrInputTreesPulserCalib = inputTreesPulserCalib.Tokenize("\n"); + for (Int_t itree=0; itreeGetEntriesFast(); ++itree) { + TFile *fin2 = TFile::Open(arrInputTreesPulserCalib->At(itree)->GetName()); + TTree *tin = (TTree*)fin2->Get("calPads"); + gROOT->cd(); + TString friendName=gSystem->BaseName(arrInputTreesPulserCalib->At(itree)->GetName()); + friendName.ReplaceAll("calibPulser.",""); + friendName.ReplaceAll(".tree.root",""); + friendName="Pulser."+friendName; + tMain->AddFriend(tin,friendName.Data()); + // set aliases + + tMain->SetAlias((friendName+".CEQmean_LTMRatio").Data(), + TString::Format("(%s.CEQmean.fElements/%s.CEQmean_LTM)", + friendName.Data(),friendName.Data()).Data()); + tMain->SetAlias((friendName+".CEQmean_MedianRatio").Data(), + TString::Format("(%s.CEQmean.fElements/%s.CEQmean_Median)", + friendName.Data(),friendName.Data()).Data()); + tMain->SetAlias((friendName+".CEQmean_MeanRatio").Data(), + TString::Format("(%s.CEQmean.fElements/%s.CEQmean_Mean)", + friendName.Data(),friendName.Data()).Data()); + // + tMain->SetAlias((friendName+".CETmean_LTMDelta").Data(), + TString::Format("(%s.CETmean.fElements-%s.CETmean_LTM)", + friendName.Data(),friendName.Data()).Data()); + tMain->SetAlias((friendName+".CETmean_MedianDelta").Data(), + TString::Format("(%s.CETmean.fElements-s.CETmean_Median)", + friendName.Data(),friendName.Data()).Data()); + tMain->SetAlias((friendName+".CETmean_MeanDelta").Data(), + TString::Format("(%s.CETmean.fElements-%s.CETmean_Mean)", + friendName.Data(),friendName.Data()).Data()); + } +} + diff --git a/TPC/Base/AliTPCcalibDButil.h b/TPC/Base/AliTPCcalibDButil.h index a11c115c237..12b7a755dfa 100644 --- a/TPC/Base/AliTPCcalibDButil.h +++ b/TPC/Base/AliTPCcalibDButil.h @@ -179,6 +179,8 @@ public: AliCDBEntry* GetRefEntry(const char* cdbPath); static TTree* ConnectGainTrees(TString baseDir); + static TTree* ConnectPulserTrees(TString baseDir, TTree * tree=0); + //static TTree* ConnectNoiseTrees(TString baseDir, TTree * tree=0); private: AliTPCcalibDB *fCalibDB; //pointer to calibDB object -- 2.43.0