#include "AliTPCCalibRaw.h"
#include "AliTPCParam.h"
#include "AliTPCCorrection.h"
+#include "AliTPCComposedCorrection.h"
#include "AliTPCPreprocessorOnline.h"
fVdriftArray(100000), //! array of v drift interfaces
fDriftCorrectionArray(100000), //! array of drift correction
fRunList(100000), //! run list - indicates try to get the run param
+ fBHasAlignmentOCDB(kFALSE), // Flag - has the alignment on the composed correction ?
fDButil(0),
- fCTPTimeParams(0)
+ fCTPTimeParams(0),
+ fMode(-1)
{
//
// constructor
fVdriftArray(0), //! array of v drift interfaces
fDriftCorrectionArray(0), //! array of v drift corrections
fRunList(0), //! run list - indicates try to get the run param
+ fBHasAlignmentOCDB(kFALSE), // Flag - has the alignment on the composed correction ?
fDButil(0),
- fCTPTimeParams(0)
+ fCTPTimeParams(0),
+ fMode(-1)
{
//
// Copy constructor invalid -- singleton implementation
AliCDBEntry* entry = AliCDBManager::Instance()->Get(cdbPath, fRun);
if (!entry)
{
- sprintf(chinfo,"AliTPCcalibDB: Failed to get entry:\t%s ", cdbPath);
+ snprintf(chinfo,1000,"AliTPCcalibDB: Failed to get entry:\t%s ", cdbPath);
AliError(chinfo);
return 0;
}
entry->SetOwner(kTRUE);
fPadGainFactor = (AliTPCCalPad*)entry->GetObject();
}else{
- AliFatal("TPC - Missing calibration entry TPC/Calib/PadGainFactor")
+ AliFatal("TPC - Missing calibration entry TPC/Calib/PadGainFactor");
}
//
entry = GetCDBEntry("TPC/Calib/TimeGain");
entry->SetOwner(kTRUE);
fTimeGainSplines = (TObjArray*)entry->GetObject();
}else{
- AliFatal("TPC - Missing calibration entry TPC/Calib/Timegain")
+ AliFatal("TPC - Missing calibration entry TPC/Calib/Timegain");
}
//
entry = GetCDBEntry("TPC/Calib/GainFactorDedx");
entry->SetOwner(kTRUE);
fDedxGainFactor = (AliTPCCalPad*)entry->GetObject();
}else{
- AliFatal("TPC - Missing calibration entry TPC/Calib/gainFactordEdx")
+ AliFatal("TPC - Missing calibration entry TPC/Calib/gainFactordEdx");
}
//
entry = GetCDBEntry("TPC/Calib/PadTime0");
entry->SetOwner(kTRUE);
fPadTime0 = (AliTPCCalPad*)entry->GetObject();
}else{
- AliFatal("TPC - Missing calibration entry")
+ AliFatal("TPC - Missing calibration entry");
}
entry = GetCDBEntry("TPC/Calib/Distortion");
entry->SetOwner(kTRUE);
fPadNoise = (AliTPCCalPad*)entry->GetObject();
}else{
- AliFatal("TPC - Missing calibration entry")
+ AliFatal("TPC - Missing calibration entry");
}
entry = GetCDBEntry("TPC/Calib/Pedestals");
entry->SetOwner(kTRUE);
fParam = (AliTPCParam*)(entry->GetObject()->Clone());
}else{
- AliFatal("TPC - Missing calibration entry TPC/Calib/Parameters")
+ AliFatal("TPC - Missing calibration entry TPC/Calib/Parameters");
}
entry = GetCDBEntry("TPC/Calib/ClusterParam");
entry->SetOwner(kTRUE);
fClusterParam = (AliTPCClusterParam*)(entry->GetObject()->Clone());
}else{
- AliFatal("TPC - Missing calibration entry")
+ AliFatal("TPC - Missing calibration entry");
}
//ALTRO configuration data
entry->SetOwner(kTRUE);
fALTROConfigData=(TObjArray*)(entry->GetObject());
}else{
- AliFatal("TPC - Missing calibration entry")
+ AliFatal("TPC - Missing calibration entry");
}
//Calibration Pulser data
//entry->SetOwner(kTRUE);
fCTPTimeParams=dynamic_cast<AliCTPTimeParams*>(entry->GetObject());
}else{
- AliError("TPC - Missing calibration entry")
+ AliError("TPC - Missing calibration entry");
}
//TPC space point correction data
entry = GetCDBEntry("TPC/Calib/Correction");
fComposedCorrectionArray=dynamic_cast<TObjArray*>(entry->GetObject());
if (fComposedCorrectionArray){
for (Int_t i=0; i<fComposedCorrectionArray->GetEntries(); i++){
- AliTPCCorrection* composedCorrection= dynamic_cast<AliTPCCorrection*>(fComposedCorrectionArray->At(i));
- if (composedCorrection) composedCorrection->Init();
+ AliTPCComposedCorrection* composedCorrection= dynamic_cast<AliTPCComposedCorrection*>(fComposedCorrectionArray->At(i));
+ if (composedCorrection) {
+ composedCorrection->Init();
+ if (composedCorrection->GetCorrections()){
+ if (composedCorrection->GetCorrections()->FindObject("FitAlignTPC")){
+ fBHasAlignmentOCDB=kTRUE;
+ }
+ }
+ }
}
- }
+ }
}else{
- AliError("TPC - Missing calibration entry- TPC/Calib/Correction")
- }
-
+ AliError("TPC - Missing calibration entry- TPC/Calib/Correction");
+ }
+ //RCU trigger config mode
+ fMode=GetRCUTriggerConfig();
//
if (!fTransform) {
fTransform=new AliTPCTransform();
//
// return if the FEE readout was triggered on L0
//
- Int_t mode=GetRCUTriggerConfig();
- if (mode<0) return kFALSE;
- return (mode==1);
+ if (fMode<0) return kFALSE;
+ return (fMode==1);
}
Bool_t AliTPCcalibDB::IsTrgL1()
//
// return if the FEE readout was triggered on L1
//
- Int_t mode=GetRCUTriggerConfig();
- if (mode<0) return kFALSE;
- return (mode==0);
+ if (fMode<0) return kFALSE;
+ return (fMode==0);
}
void AliTPCcalibDB::RegisterExB(Int_t index, Float_t bz, Bool_t bdelete){
if (entry) {
fTimeGainSplinesArray.AddAt(entry->GetObject(),run);
}else{
- AliFatal("TPC - Missing calibration entry TimeGain")
+ AliFatal("TPC - Missing calibration entry TimeGain");
}
//
entry = AliCDBManager::Instance()->Get("TPC/Calib/TimeDrift",run);
if (entry) {
- fDriftCorrectionArray.AddAt(entry->GetObject(),run);
+ TObjArray * timeArray = (TObjArray*)entry->GetObject();
+ fDriftCorrectionArray.AddAt(entry->GetObject(),run);
+ AliTPCCorrection * correctionTime = (AliTPCCorrection *)timeArray->FindObject("FitCorrectionTime");
+ if (correctionTime && fComposedCorrectionArray){
+ correctionTime->Init();
+ if (fComposedCorrectionArray->GetEntriesFast()<4) fComposedCorrectionArray->Expand(40);
+ fComposedCorrectionArray->AddAt(correctionTime,4); //add time dependent correction to the list of available corrections
+ }
}else{
- AliFatal("TPC - Missing calibration entry TimeDrift")
+ AliFatal("TPC - Missing calibration entry TimeDrift");
}
//
entry = AliCDBManager::Instance()->Get("TPC/Calib/Temperature",run);
accept = fDButil->FilterTemperature(temp)>0.1;
}
if (press) {
- const Double_t kMinP=950.;
+ const Double_t kMinP=900.;
const Double_t kMaxP=1050.;
const Double_t kMaxdP=10.;
const Double_t kSigmaCut=4.;
TFile *fileMapping = new TFile(nameMappingFile, "read");
AliTPCmapper *mapping = (AliTPCmapper*) fileMapping->Get("tpcMapping");
if (!mapping) {
- sprintf(chinfo,"Failed to get mapping object from %s. ...\n", nameMappingFile);
+ snprintf(chinfo,1000,"Failed to get mapping object from %s. ...\n", nameMappingFile);
AliError (chinfo);
return 0;
}
Double_t active;
for (Int_t i=0; i<mapping->GetNumDdl(); i++) {
idDDL= i+offset;
+ if (idDDL<0) continue;
Int_t patch = mapping->GetPatchFromEquipmentID(idDDL);
+ if (patch<0) continue;
Int_t roc=mapping->GetRocFromEquipmentID(idDDL);
+ if (roc<0) continue;
AliTPCCalROC *calRoc=deadMap->GetCalROC(roc);
if (calRoc) {
for ( Int_t branch = 0; branch < 2; branch++ ) {
AliTPCCorrection * AliTPCcalibDB::GetTPCComposedCorrection(Float_t field) const{
//
// GetComposed correction for given field setting
- //
+ // If not specific correction for field used return correction for all field
+ // - Complication needed to gaurantee OCDB back compatibility
+ // - Not neeeded for the new space point correction
if (!fComposedCorrectionArray) return 0;
- if (field>0.1) return (AliTPCCorrection *)fComposedCorrectionArray->At(1);
- if (field<-0.1) return (AliTPCCorrection *)fComposedCorrectionArray->At(2);
+ if (field>0.1 && fComposedCorrectionArray->At(1)) {
+ return (AliTPCCorrection *)fComposedCorrectionArray->At(1);
+ }
+ if (field<-0.1 &&fComposedCorrectionArray->At(2)) {
+ return (AliTPCCorrection *)fComposedCorrectionArray->At(2);
+ }
return (AliTPCCorrection *)fComposedCorrectionArray->At(0);
}
+
+AliTPCCorrection * AliTPCcalibDB::GetTPCComposedCorrectionDelta() const{
+ //
+ // GetComposedCorrection delta
+ // Delta is time dependent - taken form the CalibTime OCDB entry
+ //
+ if (!fComposedCorrectionArray) return 0;
+ if (fRun<0) return 0;
+ if (fDriftCorrectionArray.GetEntriesFast()<=fRun) return 0;
+ if (fDriftCorrectionArray.At(fRun)==0) return 0;
+ if (fComposedCorrectionArray->GetEntriesFast()<=4) {
+ fComposedCorrectionArray->Expand(5);
+ TObjArray * timeArray =(TObjArray*)(fDriftCorrectionArray.At(fRun));
+ AliTPCCorrection * correctionTime = (AliTPCCorrection *)timeArray->FindObject("FitCorrectionTime");
+ if (correctionTime){
+ correctionTime->Init();
+ fComposedCorrectionArray->AddAt(correctionTime,4); //add time dependent c
+ }
+ }
+ return (AliTPCCorrection *)fComposedCorrectionArray->At(4); //
+}
+