#include "AliTRDCommonParam.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
-#include "AliTRDdEdxUtils.h"
+#include "AliTRDdEdxBaseUtils.h"
+#include "AliTRDdEdxCalibHistArray.h"
+#include "AliTRDdEdxCalibUtils.h"
ClassImp(AliTRDPreprocessorOffline)
fSubVersionExBUsed(0),
fNoExBUsedInReco(kFALSE),
fSwitchOnValidation(kTRUE),
+ fSwitchOnChamberStatus(kTRUE),
fVdriftValidated(kFALSE),
fExBValidated(kFALSE),
fT0Validated(kFALSE),
fRMSBadCalibratedGain(20.0),
fRMSBadCalibratedVdrift(20.0),
fRMSBadCalibratedExB(20.0),
+ fMinTimeOffsetValidate(-1.6),
fRobustFitDriftVelocity(kTRUE),
fRobustFitExbAlt(kFALSE),
fAlternativeVdrfitFit(kFALSE),
fOutliersFitChargeLow(0.03),
fOutliersFitChargeHigh(0.7),
fBeginFitCharge(3.5),
- fPHQon(kTRUE)
+ fT0Shift0(0.124797),
+ fT0Shift1(0.267451),
+ fPHQon(kTRUE),
+ fDebugPHQon(kFALSE)
{
//
// default constructor
if(fSparse) delete fSparse;
if(IsPHQon()){
- AliTRDdEdxUtils::DeleteCalibHist();
- AliTRDdEdxUtils::DeleteCalibObj();
+ AliTRDdEdxCalibUtils::DeleteHistArray();
+ AliTRDdEdxCalibUtils::DeleteObjArray();
}
if(fAliTRDCalibraVdriftLinearFit) delete fAliTRDCalibraVdriftLinearFit;
}
//___________________________________________________________________________________
-void AliTRDPreprocessorOffline::Process(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage)
+void AliTRDPreprocessorOffline::Process(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* ocdbStorage)
{
//
// Process to the gain, vdrift, timeoffset, exb and chamber status calibration
CalibVdriftT0(file,startRunNumber,endRunNumber,ocdbStorage);
CalibGain(file,startRunNumber,endRunNumber,ocdbStorage);
- CalibChamberStatus(file,startRunNumber,endRunNumber,ocdbStorage);
+ if(fSwitchOnChamberStatus) CalibChamberStatus(file,startRunNumber,endRunNumber,ocdbStorage);
CalibExbAlt(file,startRunNumber,endRunNumber,ocdbStorage);
}
if(IsPHQon()){
printf("\n AliTRDPreprocessorOffline PHQ on!!\n\n");
- AliTRDdEdxUtils::PrintControl();
+ AliTRDdEdxBaseUtils::PrintControl();
CalibPHQ(file, startRunNumber, endRunNumber, ocdbStorage);
}
else{
}
//___________________________________________________________________________________________________________________
-void AliTRDPreprocessorOffline::CalibVdriftT0(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage){
+void AliTRDPreprocessorOffline::CalibVdriftT0(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* ocdbStorage){
//
// make calibration of the drift velocity
// Input parameters:
// file - the location of input file
// startRunNumber, endRunNumber - run validity period
- // ocdbStorage - path to the OCDB storage
+ // ocdbStorage - OCDB storage
// - if empty - local storage 'pwd' uesed
- if (ocdbStorage.Length()<=0) ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ if (ocdbStorage==0x0) {
+ TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ ocdbStorage=AliCDBManager::Instance()->GetStorage(localStorage.Data());
+ }
//
// 1. Initialization
//
}
//___________________________________________________________________________________________________________________
-void AliTRDPreprocessorOffline::CalibExbAlt(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage){
+void AliTRDPreprocessorOffline::CalibExbAlt(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* ocdbStorage){
//
// make calibration of the drift velocity
// Input parameters:
// file - the location of input file
// startRunNumber, endRunNumber - run validity period
- // ocdbStorage - path to the OCDB storage
+ // ocdbStorage - OCDB storage
// - if empty - local storage 'pwd' uesed
- if (ocdbStorage.Length()<=0) ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ if (ocdbStorage==0x0) {
+ TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ ocdbStorage=AliCDBManager::Instance()->GetStorage(localStorage.Data());
+ }
//
// 1. Initialization
//
//_________________________________________________________________________________________________________________
-void AliTRDPreprocessorOffline::CalibGain(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage){
+void AliTRDPreprocessorOffline::CalibGain(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* ocdbStorage){
//
// make calibration of the drift velocity
// Input parameters:
// file - the location of input file
// startRunNumber, endRunNumber - run validity period
- // ocdbStorage - path to the OCDB storage
+ // ocdbStorage - OCDB storage
// - if empty - local storage 'pwd' uesed
- if (ocdbStorage.Length()<=0) ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ if (ocdbStorage==0x0) {
+ TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ ocdbStorage=AliCDBManager::Instance()->GetStorage(localStorage.Data());
+ }
//
fNotEnoughStatisticsForTheGain = kFALSE;
//
}
//________________________________________________________________________________________________________________
-void AliTRDPreprocessorOffline::CalibPRF(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage){
+void AliTRDPreprocessorOffline::CalibPRF(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* ocdbStorage){
//
// make calibration of the drift velocity
// Input parameters:
// file - the location of input file
// startRunNumber, endRunNumber - run validity period
- // ocdbStorage - path to the OCDB storage
+ // ocdbStorage - OCDB storage
// - if empty - local storage 'pwd' uesed
- if (ocdbStorage.Length()<=0) ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ if (ocdbStorage==0x0) {
+ TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ ocdbStorage=AliCDBManager::Instance()->GetStorage(localStorage.Data());
+ }
//
// 1. Initialization
if(!ReadPRFGlobal(file)) return;
}
//________________________________________________________________________________________________________________
-void AliTRDPreprocessorOffline::CalibPHQ(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage)
+void AliTRDPreprocessorOffline::CalibPHQ(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* ocdbStorage)
{
//
// make calibration of puls height Q
// Input parameters:
// startRunNumber, endRunNumber - run validity period
- // ocdbStorage - path to the OCDB storage
+ // ocdbStorage - OCDB storage
// - if empty - local storage 'pwd' uesed
//
- if (ocdbStorage.Length()<=0) ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ if (ocdbStorage==0x0) {
+ TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ ocdbStorage=AliCDBManager::Instance()->GetStorage(localStorage.Data());
+ }
//printf("test %s\n", ocdbStorage.Data());
if(!ReadPHQGlobal(file)) return;
//________________________________________________________________________________________________________________
-void AliTRDPreprocessorOffline::CalibChamberStatus(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, TString ocdbStorage){
+void AliTRDPreprocessorOffline::CalibChamberStatus(const Char_t* file, Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* ocdbStorage){
//
// make calibration of the chamber status
// Input parameters:
// startRunNumber, endRunNumber - run validity period
- // ocdbStorage - path to the OCDB storage
+ // ocdbStorage - OCDB storage
// - if empty - local storage 'pwd' uesed
- if (ocdbStorage.Length()<=0) ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ if (ocdbStorage==0x0) {
+ TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ ocdbStorage=AliCDBManager::Instance()->GetStorage(localStorage.Data());
+ }
//
//
// 1. Initialization
//
// 4. validate OCDB entries
//
- if(fSwitchOnValidation==kTRUE && ValidateChamberStatus()==kFALSE) {
- //AliError("TRD Chamber status OCDB parameters not ok!");
- return;
+ //printf("Enough stats for vdrift? %d\n",(Int_t)fNotEnoughStatisticsForTheVdriftLinear);
+ //printf("Enough stats for gain? %d\n",(Int_t)fNotEnoughStatisticsForTheGain);
+ if((!fNotEnoughStatisticsForTheVdriftLinear) && (!fNotEnoughStatisticsForTheGain)) {
+ if(fSwitchOnValidation==kTRUE && ValidateChamberStatus()==kFALSE) {
+ //AliError("TRD Chamber status OCDB parameters not ok!");
+ return;
+ }
+ //
+ // 5. update of OCDB
+ //
+ //
+ UpdateOCDBChamberStatus(startRunNumber,endRunNumber,ocdbStorage);
}
- //
- // 5. update of OCDB
- //
- //
- if((!fNotEnoughStatisticsForTheVdriftLinear) && (!fNotEnoughStatisticsForTheGain)) UpdateOCDBChamberStatus(startRunNumber,endRunNumber,ocdbStorage);
- //UpdateOCDBChamberStatus(startRunNumber,endRunNumber,ocdbStorage);
}
//______________________________________________________________________________________________________
//
if(fSparse) return kTRUE;
TFile fcalib(fileName);
- TObjArray * array = (TObjArray*)fcalib.Get(fNameList);
+ TList * array = (TList*)fcalib.Get(fNameList);
if (array){
fSparse = (THnSparseI *) array->FindObject("NumberOfEntries");
if(!fSparse) return kFALSE;
// read calibration entries from file
//
- return AliTRDdEdxUtils::ReadCalibHist(fileName, fNameList);
+ return AliTRDdEdxCalibUtils::ReadHistArray(fileName, fNameList);
}
//___________________________________________________________________________________________________________________
//
if(fCH2d) return kTRUE;
TFile fcalib(fileName);
- TObjArray * array = (TObjArray*)fcalib.Get(fNameList);
+ TList * array = (TList*)fcalib.Get(fNameList);
if (array){
TH2I *ch2d = (TH2I *) array->FindObject("CH2d");
- if(!ch2d) return kFALSE;
+ if(!ch2d) {
+ delete array;
+ return kFALSE;
+ }
fCH2d = (TH2I*)ch2d->Clone();
+ delete array;
//fNEvents = (TH1I *) array->FindObject("NEvents");
//fAbsoluteGain = (TH2F *) array->FindObject("AbsoluteGain");
}else{
//
if(fPH2d) return kTRUE;
TFile fcalib(fileName);
- TObjArray * array = (TObjArray*)fcalib.Get(fNameList);
+ TList * array = (TList*)fcalib.Get(fNameList);
if (array){
TProfile2D *ph2d = (TProfile2D *) array->FindObject("PH2d");
- if(!ph2d) return kFALSE;
+ if(!ph2d) {
+ delete array;
+ return kFALSE;
+ }
fPH2d = (TProfile2D*)ph2d->Clone();
//fNEvents = (TH1I *) array->FindObject("NEvents");
+ delete array;
}else{
TProfile2D *ph2d = (TProfile2D *) fcalib.Get("PH2d");
if(!ph2d) return kFALSE;
//
if(fAliTRDCalibraVdriftLinearFit) return kTRUE;
TFile fcalib(fileName);
- TObjArray * array = (TObjArray*)fcalib.Get(fNameList);
+ TList * array = (TList*)fcalib.Get(fNameList);
if (array){
- fAliTRDCalibraVdriftLinearFit = (AliTRDCalibraVdriftLinearFit *) array->FindObject("AliTRDCalibraVdriftLinearFit");
+ AliTRDCalibraVdriftLinearFit * dummy = (AliTRDCalibraVdriftLinearFit *) array->FindObject("AliTRDCalibraVdriftLinearFit");
+ fAliTRDCalibraVdriftLinearFit = dummy ? (AliTRDCalibraVdriftLinearFit *) dummy->Clone() : 0x0;
//fNEvents = (TH1I *) array->FindObject("NEvents");
+ delete array;
}else{
fAliTRDCalibraVdriftLinearFit = (AliTRDCalibraVdriftLinearFit *) fcalib.Get("AliTRDCalibraVdriftLinearFit");
//fNEvents = (TH1I *) fcalib.Get("NEvents");
//
if(fAliTRDCalibraExbAltFit) return kTRUE;
TFile fcalib(fileName);
- TObjArray * array = (TObjArray*)fcalib.Get(fNameList);
+ TList * array = (TList*)fcalib.Get(fNameList);
if (array){
- fAliTRDCalibraExbAltFit = (AliTRDCalibraExbAltFit *) array->FindObject("AliTRDCalibraExbAltFit");
+ AliTRDCalibraExbAltFit * dummy = (AliTRDCalibraExbAltFit *) array->FindObject("AliTRDCalibraExbAltFit");
+ fAliTRDCalibraExbAltFit = dummy ? (AliTRDCalibraExbAltFit *)dummy->Clone() : 0x0;
//fNEvents = (TH1I *) array->FindObject("NEvents");
+ delete array;
}else{
fAliTRDCalibraExbAltFit = (AliTRDCalibraExbAltFit *) fcalib.Get("AliTRDCalibraExbAltFit");
//fNEvents = (TH1I *) fcalib.Get("NEvents");
//
if(fPRF2d) return kTRUE;
TFile fcalib(fileName);
- TObjArray * array = (TObjArray*)fcalib.Get(fNameList);
+ TList * array = (TList*)fcalib.Get(fNameList);
if (array){
TProfile2D *prf2d = (TProfile2D *) array->FindObject("PRF2d");
- if(!prf2d) return kFALSE;
+ if(!prf2d) {
+ delete array;
+ return kFALSE;
+ }
fPRF2d = (TProfile2D*)prf2d->Clone();
+ delete array;
//fNEvents = (TH1I *) array->FindObject("NEvents");
}else{
TProfile2D *prf2d = (TProfile2D *) fcalib.Get("PRF2d");
//
AliTRDCalibraFit *calibra = AliTRDCalibraFit::Instance();
+ calibra->SetT0Shift0(fT0Shift0);
+ calibra->SetT0Shift1(fT0Shift1);
calibra->SetMinEntries(fMinStatsVdriftT0PH); // If there is less than 1000 entries in the histo: no fit
- calibra->AnalysePH(fPH2d);
+ calibra->AnalysePH(fPH2d);
+ //calibra->SetDebugLevel(2);
Int_t nbtg = 6*4*18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb0(1))
+ 6* 18*((Int_t) ((AliTRDCalibraMode *)calibra->GetCalibraMode())->GetDetChamb2(1));
Bool_t ok = kFALSE;
if ((nbtg > 0) &&
(nbfit >= 0.5*nbE) && (nbE > 30) && (nbfitSuccess > 30)) {
+ //printf("nbtg %d, nbfit %d, nbE %d, nbfitSucess %d\n",nbtg,nbfit,nbE,nbfitSuccess);
//printf("Pass the cut for VdriftT0\n");
// create the cal objects
calibra->RemoveOutliers(1,kFALSE);
AliTRDCalibraFit *calibra = AliTRDCalibraFit::Instance();
calibra->SetCalDetVdriftExB(fCalDetVdriftUsed,fCalDetExBUsed);
calibra->SetMinEntries(fMinStatsVdriftLinear); // If there is less than 1000 entries in the histo: no fit
- printf("The mean stat is by %d for VdriftLinear\n",fMinStatsVdriftLinear);
+ //printf("The mean stat is by %d for VdriftLinear\n",fMinStatsVdriftLinear);
+ //fAliTRDCalibraVdriftLinearFit->SetSeeDetector(0);
+ //fAliTRDCalibraVdriftLinearFit->SetDebugLevel(1);
//printf("Fill PE Array\n");
fAliTRDCalibraVdriftLinearFit->SetRobustFit(fRobustFitDriftVelocity);
fAliTRDCalibraVdriftLinearFit->SetMinNumberOfPointsForFit(fMinNbOfPointVdriftFit);
//
//Produce PHQ calibration results
//
- for(Int_t iter=0; iter<8; iter++){
- THnSparseD *hi = (THnSparseD*) AliTRDdEdxUtils::GetHistPHQ()->At(iter);
- TObjArray *obji = AliTRDdEdxUtils::GetCalibObj(hi, startRunNumber);
+ TList *lout = 0x0;
+ TTreeSRedirector *calibStream = 0x0;
+ if(IsDebugPHQon()){
+ lout = new TList;
+ lout->SetOwner();
+
+ calibStream = new TTreeSRedirector(Form("TRDCalibStream_%010d.root", startRunNumber));
+ }
+
+ for(Int_t iter=0; iter<AliTRDdEdxCalibUtils::GetHistArray()->GetSize(); iter++){
+ THnBase *hi = (THnBase*) AliTRDdEdxCalibUtils::GetHistAt(iter);
+ TObjArray *obji = AliTRDdEdxCalibUtils::HistToObj(hi, startRunNumber, lout, calibStream);
//printf("test analyze %s\n", obji->GetName());
- AliTRDdEdxUtils::GetObjPHQ()->AddAt(obji, iter);
+ AliTRDdEdxCalibUtils::GetObjArray()->AddAt(obji, iter);
+ }
+
+ fCalibObjects->AddAt(AliTRDdEdxCalibUtils::GetObjArray(), kPHQ);
+
+ if(lout){
+ TFile *fout=new TFile(Form("TRDCalibList_%010d.root", startRunNumber),"recreate");
+ fout->cd();
+ lout->Write();
+ fout->Save();
+ fout->Close();
+ delete fout;
}
+ delete calibStream;
+ delete lout;
- fCalibObjects->AddAt(AliTRDdEdxUtils::GetObjPHQ(), kPHQ);
return kTRUE;
}
// Check
if((TMath::Abs(gainrms) < 0.001) || (TMath::Abs(vdriftrms) < 0.001) || (TMath::Abs(exbrms) < 0.0000001)) return kFALSE;
+ // Take mean each SM
+ Double_t *gainmeanSM = new Double_t[18];
+ Double_t *vdriftmeanSM = new Double_t[18];
+ Double_t *exbmeanSM = new Double_t[18];
+ //Double_t *t0meanSM = new Double_t[18];
+ for(Int_t sm=0; sm< 18; sm++) {
+ gainmeanSM[sm] = calDetGain->GetMeanSM(kFALSE,sm);
+ vdriftmeanSM[sm] = calDetVDrift->GetMeanSM(kFALSE,sm);
+ exbmeanSM[sm] = calDetExB->GetMeanSM(kFALSE,sm);
+ //t0meanSM[sm] = calDetGain->GetMeanSM(kFALSE);
+ }
+
+
// mask chambers with empty gain entries
//Int_t counter = 0;
for (Int_t idet = 0; idet < 540; idet++) {
Double_t entries = projch->GetEntries();
//printf("Number of entries %f for det %d\n",entries,idet);
+ // sm number
+ Int_t smnumber = (Int_t) idet/30;
+
// gain
Double_t gain = calDetGain->GetValue(idet);
//counter++;
}
+ if(TMath::Abs(gainmeanSM[smnumber]-gain) < 0.000001 ||
+ TMath::Abs(vdriftmeanSM[smnumber]-vdrift) < 0.000001 ||
+ TMath::Abs(exbmeanSM[smnumber]-exb) < 0.000001) {
+
+ //printf(" chamber det %03d notcalibrated sm %d \n",idet,smnumber);
+ //printf(" gainmeanSM %f and gain %f\n",gainmeanSM[smnumber],gain);
+ //printf(" vdriftmeanSM %f and vdrift %f \n",vdriftmeanSM[smnumber],vdrift);
+ //printf(" exbmeanSM %f and exb %f \n",exbmeanSM[smnumber],exb);
+
+ calChamberStatus->SetStatus(idet,AliTRDCalChamberStatus::kNotCalibrated);
+ }
+
+
delete projch;
}
fBadCalib[sm]= smbadcalib;
//printf("No Data %d, bad calibrated %d for %d\n",fNoData[sm],fBadCalib[sm],sm);
}
+
+ // delete
+ delete []gainmeanSM;
+ delete []vdriftmeanSM;
+ delete []exbmeanSM;
// Security
// for(Int_t sm=0; sm < 18; sm++) {
}
//_________________________________________________________________________________________________________________
- void AliTRDPreprocessorOffline::UpdateOCDBGain(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath){
+ void AliTRDPreprocessorOffline::UpdateOCDBGain(Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage *storage){
//
// Update OCDB entry
//
metaData->SetBeamPeriod(1);
AliCDBId id1("TRD/Calib/ChamberGainFactor", startRunNumber, endRunNumber);
- AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(storagePath);
AliTRDCalDet *calDet = (AliTRDCalDet *) fCalibObjects->At(kGain);
- if(calDet) gStorage->Put(calDet, id1, metaData);
+ if(calDet) storage->Put(calDet, id1, metaData);
}
//___________________________________________________________________________________________________________________
- void AliTRDPreprocessorOffline::UpdateOCDBExB(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath){
+ void AliTRDPreprocessorOffline::UpdateOCDBExB(Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage *storage){
//
// Update OCDB entry
//
metaData->SetBeamPeriod(1);
AliCDBId id1("TRD/Calib/ChamberExB", startRunNumber, endRunNumber);
- AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(storagePath);
AliTRDCalDet *calDet = (AliTRDCalDet *) fCalibObjects->At(detExB);
- if(calDet) gStorage->Put(calDet, id1, metaData);
+ if(calDet) storage->Put(calDet, id1, metaData);
//if(!calDet) printf("No caldet\n");
}
//___________________________________________________________________________________________________________________
-void AliTRDPreprocessorOffline::UpdateOCDBExBAlt(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath){
+void AliTRDPreprocessorOffline::UpdateOCDBExBAlt(Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage *storage){
//
// Update OCDB entry
//
metaData->SetBeamPeriod(1);
AliCDBId id1("TRD/Calib/ChamberExBAlt", startRunNumber, endRunNumber);
- AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(storagePath);
AliTRDCalDet *calDet = (AliTRDCalDet *) fCalibObjects->At(detExB);
- if(calDet) gStorage->Put(calDet, id1, metaData);
+ if(calDet) storage->Put(calDet, id1, metaData);
//if(!calDet) printf("No caldet\n");
}
//___________________________________________________________________________________________________________________
- void AliTRDPreprocessorOffline::UpdateOCDBVdrift(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath){
+ void AliTRDPreprocessorOffline::UpdateOCDBVdrift(Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* storage){
//
// Update OCDB entry
//
metaData->SetBeamPeriod(1);
AliCDBId id1("TRD/Calib/ChamberVdrift", startRunNumber, endRunNumber);
- AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(storagePath);
AliTRDCalDet *calDet = (AliTRDCalDet *) fCalibObjects->At(detVdrift);
- if(calDet) gStorage->Put(calDet, id1, metaData);
+ if(calDet) storage->Put(calDet, id1, metaData);
//
AliCDBId id1Pad("TRD/Calib/LocalVdrift", startRunNumber, endRunNumber);
AliTRDCalPad *calPad = (AliTRDCalPad *) fCalibObjects->At(kVdriftPHPad);
- if(calPad) gStorage->Put(calPad, id1Pad, metaDataPad);
+ if(calPad) storage->Put(calPad, id1Pad, metaDataPad);
}
}
//________________________________________________________________________________________________________________________
- void AliTRDPreprocessorOffline::UpdateOCDBT0(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath){
+ void AliTRDPreprocessorOffline::UpdateOCDBT0(Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* storage){
//
// Update OCDB entry
//
metaData->SetBeamPeriod(1);
AliCDBId id1("TRD/Calib/ChamberT0", startRunNumber, endRunNumber);
- AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(storagePath);
AliTRDCalDet *calDet = (AliTRDCalDet *) fCalibObjects->At(kT0PHDet);
- if(calDet) gStorage->Put(calDet, id1, metaData);
+ if(calDet) storage->Put(calDet, id1, metaData);
//
AliCDBId id1Pad("TRD/Calib/LocalT0", startRunNumber, endRunNumber);
AliTRDCalPad *calPad = (AliTRDCalPad *) fCalibObjects->At(kT0PHPad);
- if(calPad) gStorage->Put(calPad, id1Pad, metaDataPad);
+ if(calPad) storage->Put(calPad, id1Pad, metaDataPad);
}
//_________________________________________________________________________________________________________________
- void AliTRDPreprocessorOffline::UpdateOCDBPRF(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath){
+ void AliTRDPreprocessorOffline::UpdateOCDBPRF(Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* storage){
//
// Update OCDB entry
//
AliCDBId id1("TRD/Calib/PRFWidth", startRunNumber, endRunNumber);
- AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(storagePath);
AliTRDCalPad *calPad = (AliTRDCalPad *) fCalibObjects->At(kPRF);
- if(calPad) gStorage->Put(calPad, id1, metaData);
+ if(calPad) storage->Put(calPad, id1, metaData);
}
//_________________________________________________________________________________________________________________
-void AliTRDPreprocessorOffline::UpdateOCDBPHQ(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath)
+void AliTRDPreprocessorOffline::UpdateOCDBPHQ(Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* storage)
{
//
// Update OCDB entry
metaData->SetBeamPeriod(1);
AliCDBId id1("TRD/Calib/PHQ", startRunNumber, endRunNumber);
- AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(storagePath);
TObjArray *cobj = (TObjArray *) fCalibObjects->At(kPHQ);
if(cobj){
//cobj->Print();
- gStorage->Put(cobj, id1, metaData);
+ storage->Put(cobj, id1, metaData);
}
}
//_________________________________________________________________________________________________________________
- void AliTRDPreprocessorOffline::UpdateOCDBChamberStatus(Int_t startRunNumber, Int_t endRunNumber, const Char_t *storagePath){
+ void AliTRDPreprocessorOffline::UpdateOCDBChamberStatus(Int_t startRunNumber, Int_t endRunNumber, AliCDBStorage* storage){
//
// Update OCDB entry
//
metaData->SetBeamPeriod(1);
AliCDBId id1("TRD/Calib/ChamberStatus", startRunNumber, endRunNumber);
- AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(storagePath);
AliTRDCalChamberStatus *calChamberStatus = (AliTRDCalChamberStatus *) fCalibObjects->At(kChamberStatus);
- if(calChamberStatus) gStorage->Put(calChamberStatus, id1, metaData);
+ if(calChamberStatus) storage->Put(calChamberStatus, id1, metaData);
}
Double_t rmsdet = calDet->GetRMSRobust();
Double_t meanpad = calPad->GetMean();
//Double_t rmspad = calPad->GetRMS();
- //printf("T0::minimum %f, rmsdet %f,meanpad %f, rmspad %f\n",meandet,rmsdet,meanpad,rmspad);
- if((meandet > -1.5) && (meandet < 5.0) && (rmsdet < 4.0) && (meanpad < 5.0) && (meanpad > -0.5)) return kTRUE;
+ printf("T0::meandet %f, rmsdet %f,meanpad %f\n",meandet,rmsdet,meanpad);
+ if((meandet > fMinTimeOffsetValidate) && (meandet < 5.0) && (rmsdet < 4.0) && (meanpad < 5.0) && (meanpad > -0.5)) return kTRUE;
else {
fStatusPos = fStatusPos | kTimeOffsetErrorRange;
return kFALSE;