]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFcalib.cxx
Load Pythia-releated libraries before libRALICE
[u/mrichter/AliRoot.git] / TOF / AliTOFcalib.cxx
index 9f2148d808d853f41c49c8b0c8c494d8ce116edd..39d6d6cc07ac7083bba1ab69b5c2cba77c402113 100644 (file)
  **************************************************************************/
 
 /*
-$Log$
+$Log: AliTOFcalib.cxx,v $
+Revision 1.21  2007/11/02 15:41:49  hristov
+Provide return value if the function is not void
+
+Revision 1.20  2007/10/26 15:13:50  zampolli
+Using a TChain instead of a TTree
+
 Revision 1.19  2007/10/23 15:27:38  zampolli
 Rearrangement of Calibration objects for simulation
 
@@ -79,13 +85,15 @@ author: Chiara Zampolli, zampolli@bo.infn.it
 #include "TFile.h"
 #include "TH1F.h"
 #include "TH2F.h"
-#include "TList.h"
-#include "TROOT.h"
-#include "TStyle.h"
+//#include "TList.h"
+//#include "TROOT.h"
+//#include "TStyle.h"
 #include "TTree.h"
 #include "TChain.h"
 #include "TProfile.h"
 #include "TGrid.h"
+#include "TMath.h"
+#include "TMap.h"
 
 #include "AliCDBEntry.h"
 #include "AliCDBRunRange.h"
@@ -93,16 +101,22 @@ author: Chiara Zampolli, zampolli@bo.infn.it
 #include "AliCDBManager.h"
 #include "AliCDBStorage.h"
 #include "AliCDBMetaData.h"
-#include "AliESDtrack.h"
-#include "AliESD.h"
+//#include "AliESDtrack.h"
+//#include "AliESD.h"
 #include "AliLog.h"
 
 #include "AliTOFcalib.h"
+#include "AliTOFChannelOnlineArray.h"
 #include "AliTOFChannelOnline.h"
+#include "AliTOFChannelOnlineStatus.h"
+#include "AliTOFChannelOnlineStatusArray.h"
 #include "AliTOFChannelOffline.h"
 #include "AliTOFGeometry.h"
 #include "AliTOFRecoParam.h"
 
+class TROOT;
+class TStyle;
+
 extern TROOT *gROOT;
 extern TStyle *gStyle;
 
@@ -113,14 +127,20 @@ AliTOFcalib::AliTOFcalib():
   TTask("AliTOFcalib",""),
   fNChannels(-1),
   fTOFCalOnline(0x0),
+  fTOFCalOnlinePulser(0x0),
+  fTOFCalOnlineNoise(0x0),
+  fTOFCalOnlineHW(0x0),
   fTOFCalOffline(0x0),
+  fCal(0x0),
+  fStatus(0x0),
   fTOFSimToT(0x0),
   fkValidity(0x0),
   fTree(0x0),
   fChain(0x0),
   fNruns(0),
   fFirstRun(0),
-  fLastRun(AliCDBRunRange::Infinity())
+  fLastRun(AliCDBRunRange::Infinity()),
+  fConfigMap(new TMap)
 { 
   //TOF Calibration Class ctor
   fNChannels = AliTOFGeometry::NSectors()*(2*(AliTOFGeometry::NStripC()+AliTOFGeometry::NStripB())+AliTOFGeometry::NStripA())*AliTOFGeometry::NpadZ()*AliTOFGeometry::NpadX();
@@ -131,22 +151,33 @@ AliTOFcalib::AliTOFcalib(const AliTOFcalib & calib):
   TTask("AliTOFcalib",""),
   fNChannels(calib.fNChannels),
   fTOFCalOnline(0x0),
+  fTOFCalOnlinePulser(0x0),
+  fTOFCalOnlineNoise(0x0),
+  fTOFCalOnlineHW(0x0),
   fTOFCalOffline(0x0),
+  fCal(calib.fCal),
+  fStatus(calib.fStatus),
   fTOFSimToT(calib.fTOFSimToT),
   fkValidity(calib.fkValidity),
   fTree(calib.fTree),
   fChain(calib.fChain),
   fNruns(calib.fNruns),
   fFirstRun(calib.fFirstRun),
-  fLastRun(calib.fLastRun)
+  fLastRun(calib.fLastRun),
+  fConfigMap(calib.fConfigMap)
 {
   //TOF Calibration Class copy ctor
   for (Int_t iarray = 0; iarray<fNChannels; iarray++){
     AliTOFChannelOnline * calChOnline = (AliTOFChannelOnline*)calib.fTOFCalOnline->At(iarray);
+    AliTOFChannelOnlineStatus * calChOnlineStPulser = (AliTOFChannelOnlineStatus*)calib.fTOFCalOnlinePulser->At(iarray);
+    AliTOFChannelOnlineStatus * calChOnlineStNoise = (AliTOFChannelOnlineStatus*)calib.fTOFCalOnlineNoise->At(iarray);
+    AliTOFChannelOnlineStatus * calChOnlineStHW = (AliTOFChannelOnlineStatus*)calib.fTOFCalOnlineHW->At(iarray);
     AliTOFChannelOffline * calChOffline = (AliTOFChannelOffline*)calib.fTOFCalOffline->At(iarray);
     fTOFCalOnline->AddAt(calChOnline,iarray);
+    fTOFCalOnlinePulser->AddAt(calChOnlineStPulser,iarray);
+    fTOFCalOnlineNoise->AddAt(calChOnlineStNoise,iarray);
+    fTOFCalOnlineHW->AddAt(calChOnlineStHW,iarray);
     fTOFCalOffline->AddAt(calChOffline,iarray);
-
   }
 }
 
@@ -156,6 +187,8 @@ AliTOFcalib& AliTOFcalib::operator=(const AliTOFcalib &calib)
 {
   //TOF Calibration Class assignment operator
   this->fNChannels = calib.fNChannels;
+  this->fCal = calib.fCal;
+  this->fStatus = calib.fStatus;
   this->fTOFSimToT = calib.fTOFSimToT;
   this->fkValidity = calib.fkValidity;
   this->fTree = calib.fTree;
@@ -166,7 +199,13 @@ AliTOFcalib& AliTOFcalib::operator=(const AliTOFcalib &calib)
   for (Int_t iarray = 0; iarray<fNChannels; iarray++){
     AliTOFChannelOnline * calChOnline = (AliTOFChannelOnline*)calib.fTOFCalOnline->At(iarray);
     AliTOFChannelOffline * calChOffline = (AliTOFChannelOffline*)calib.fTOFCalOffline->At(iarray);
+    AliTOFChannelOnlineStatus * calChOnlineStPulser = (AliTOFChannelOnlineStatus*)calib.fTOFCalOnlinePulser->At(iarray);
+    AliTOFChannelOnlineStatus * calChOnlineStNoise = (AliTOFChannelOnlineStatus*)calib.fTOFCalOnlineNoise->At(iarray);
+    AliTOFChannelOnlineStatus * calChOnlineStHW = (AliTOFChannelOnlineStatus*)calib.fTOFCalOnlineHW->At(iarray);
     this->fTOFCalOnline->AddAt(calChOnline,iarray);
+    this->fTOFCalOnlinePulser->AddAt(calChOnlineStPulser,iarray);
+    this->fTOFCalOnlineNoise->AddAt(calChOnlineStNoise,iarray);
+    this->fTOFCalOnlineHW->AddAt(calChOnlineStHW,iarray);
     this->fTOFCalOffline->AddAt(calChOffline,iarray);
   }
   return *this;
@@ -181,9 +220,27 @@ AliTOFcalib::~AliTOFcalib()
     if (fTOFCalOnline){
       delete fTOFCalOnline;
     }
+    if (fTOFCalOnlinePulser){
+      delete fTOFCalOnlinePulser;
+    }
+    if (fTOFCalOnlineNoise){
+      delete fTOFCalOnlineNoise;
+    }
+    if (fTOFCalOnlineHW){
+      delete fTOFCalOnlineHW;
+    }
     if (fTOFCalOffline){
       delete fTOFCalOffline;
     }
+    if (fCal){
+      delete fCal;
+    }
+    if (fStatus){
+      delete fStatus;
+    }
+    if (fConfigMap){
+      delete fConfigMap;
+    }
   }
   if (fTree!=0x0) delete fTree;
   if (fChain!=0x0) delete fChain;
@@ -194,15 +251,149 @@ void AliTOFcalib::CreateCalArrays(){
   // creating arrays for online/offline calibration objs
 
   fTOFCalOnline = new TObjArray(fNChannels);
+  fTOFCalOnlinePulser = new TObjArray(fNChannels);
+  fTOFCalOnlineNoise = new TObjArray(fNChannels);
+  fTOFCalOnlineHW = new TObjArray(fNChannels);
   fTOFCalOffline = new TObjArray(fNChannels);
   fTOFCalOnline->SetOwner();
+  fTOFCalOnlinePulser->SetOwner();
+  fTOFCalOnlineNoise->SetOwner();
+  fTOFCalOnlineHW->SetOwner();
   fTOFCalOffline->SetOwner();
   for (Int_t iarray = 0; iarray<fNChannels; iarray++){
     AliTOFChannelOnline * calChOnline = new AliTOFChannelOnline();
+    AliTOFChannelOnlineStatus * calChOnlineStPulser = new AliTOFChannelOnlineStatus();
+    AliTOFChannelOnlineStatus * calChOnlineStNoise = new AliTOFChannelOnlineStatus();
+    AliTOFChannelOnlineStatus * calChOnlineStHW = new AliTOFChannelOnlineStatus();
     AliTOFChannelOffline * calChOffline = new AliTOFChannelOffline();
     fTOFCalOnline->AddAt(calChOnline,iarray);
+    fTOFCalOnlinePulser->AddAt(calChOnlineStPulser,iarray);
+    fTOFCalOnlineNoise->AddAt(calChOnlineStNoise,iarray);
+    fTOFCalOnlineHW->AddAt(calChOnlineStHW,iarray);
     fTOFCalOffline->AddAt(calChOffline,iarray);
   }
+  fCal = new AliTOFChannelOnlineArray(fNChannels);
+  fStatus = new AliTOFChannelOnlineStatusArray(fNChannels);
+}
+//_____________________________________________________________________________
+void AliTOFcalib::WriteConfigMapOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
+{
+  //Write calibration parameters to the CDB
+  SetFirstRun(minrun);
+  SetLastRun(maxrun);
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Config" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliDebug(2,Form("Writing TOF configuration map for online calib on CDB with run range [%i, %i] ",fFirstRun,fLastRun));
+  AliCDBId id(out,fFirstRun,fLastRun);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fConfigMap) {
+    // deve uscire!!
+  }
+  man->Put(fConfigMap,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+
+void AliTOFcalib::WriteConfigMapOnCDB(Char_t *sel)
+{
+  //Write calibration parameters to the CDB with infinite validity
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Config" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBRunRange runrange(fFirstRun,fLastRun);
+  AliDebug(2,Form("Writing TOF config map for online calib on CDB with run range [%i, %i] ",runrange.GetFirstRun(),runrange.GetLastRun()));
+  AliCDBId id(out,runrange);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fConfigMap) {
+    // deve uscire!!
+  }
+  man->Put(fConfigMap,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+void AliTOFcalib::WriteParOnlineDelayOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
+{
+  //Write calibration parameters to the CDB -------> new calib objs!!!!!
+  SetFirstRun(minrun);
+  SetLastRun(maxrun);
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "ParOnlineDelay" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliDebug(2,Form("Writing TOF online calib obj on CDB with run range [%i, %i] ",fFirstRun,fLastRun));
+  AliCDBId id(out,fFirstRun,fLastRun);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fCal) {
+    // deve uscire!!
+  }
+  man->Put(fCal,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+void AliTOFcalib::WriteParOnlineStatusOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
+{
+  //Write calibration parameters to the CDB -------> new calib objs!!!!!
+  SetFirstRun(minrun);
+  SetLastRun(maxrun);
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Status" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliDebug(2,Form("Writing TOF online status calib obj on CDB with run range [%i, %i] ",fFirstRun,fLastRun));
+  AliCDBId id(out,fFirstRun,fLastRun);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fStatus) {
+    // deve uscire!!
+  }
+  man->Put(fStatus,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+
+void AliTOFcalib::WriteParOnlineDelayOnCDB(Char_t *sel)
+{
+  //Write calibration parameters to the CDB with infinite validity -------> new calib objs!!!!!
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "ParOnlineDelay" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBRunRange runrange(fFirstRun,fLastRun);
+  AliDebug(2,Form("Writing TOF online calib obj on CDB with run range [%i, %i] ",runrange.GetFirstRun(),runrange.GetLastRun()));
+  AliCDBId id(out,runrange);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fCal) {
+    // deve uscire!!
+  }
+  man->Put(fCal,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+
+void AliTOFcalib::WriteParOnlineStatusOnCDB(Char_t *sel)
+{
+  //Write calibration parameters to the CDB with infinite validity -------> new calib objs!!!!!
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Status" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBRunRange runrange(fFirstRun,fLastRun);
+  AliDebug(2,Form("Writing TOF online status calib obj on CDB with run range [%i, %i] ",runrange.GetFirstRun(),runrange.GetLastRun()));
+  AliCDBId id(out,runrange);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fStatus) {
+    // deve uscire!!
+  }
+  man->Put(fStatus,id,md);
+  delete md;
 }
 //_____________________________________________________________________________
 void AliTOFcalib::WriteParOnlineOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
@@ -225,6 +416,66 @@ void AliTOFcalib::WriteParOnlineOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
   delete md;
 }
 //_____________________________________________________________________________
+void AliTOFcalib::WriteParOnlinePulserOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
+{
+  //Write calibration parameters from pulser to the CDB
+  SetFirstRun(minrun);
+  SetLastRun(maxrun);
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Pulser" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliDebug(2,Form("Writing TOF online calib obj from pulser on CDB with run range [%i, %i] ",fFirstRun,fLastRun));
+  AliCDBId id(out,fFirstRun,fLastRun);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fTOFCalOnlinePulser) {
+    // deve uscire!!
+  }
+  man->Put(fTOFCalOnlinePulser,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+void AliTOFcalib::WriteParOnlineNoiseOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
+{
+  //Write calibration parameters from noise to the CDB
+  SetFirstRun(minrun);
+  SetLastRun(maxrun);
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Noise" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliDebug(2,Form("Writing TOF online calib obj from noise on CDB with run range [%i, %i] ",fFirstRun,fLastRun));
+  AliCDBId id(out,fFirstRun,fLastRun);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fTOFCalOnlineNoise) {
+    // deve uscire!!
+  }
+  man->Put(fTOFCalOnlineNoise,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+void AliTOFcalib::WriteParOnlineHWOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
+{
+  //Write calibration parameters from hardware to the CDB
+  SetFirstRun(minrun);
+  SetLastRun(maxrun);
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "HW" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliDebug(2,Form("Writing TOF online calib obj from hardware on CDB with run range [%i, %i] ",fFirstRun,fLastRun));
+  AliCDBId id(out,fFirstRun,fLastRun);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fTOFCalOnlineHW) {
+    // deve uscire!!
+  }
+  man->Put(fTOFCalOnlineHW,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
 
 void AliTOFcalib::WriteParOnlineOnCDB(Char_t *sel)
 {
@@ -246,6 +497,66 @@ void AliTOFcalib::WriteParOnlineOnCDB(Char_t *sel)
 }
 //_____________________________________________________________________________
 
+void AliTOFcalib::WriteParOnlinePulserOnCDB(Char_t *sel)
+{
+  //Write calibration parameters from pulser to the CDB with infinite validity
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Pulser" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBRunRange runrange(fFirstRun,fLastRun);
+  AliDebug(2,Form("Writing TOF online calib obj from pulser on CDB with run range [%i, %i] ",runrange.GetFirstRun(),runrange.GetLastRun()));
+  AliCDBId id(out,runrange);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fTOFCalOnlinePulser) {
+    // deve uscire!!
+  }
+  man->Put(fTOFCalOnlinePulser,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+
+void AliTOFcalib::WriteParOnlineNoiseOnCDB(Char_t *sel)
+{
+  //Write calibration parameters from noise to the CDB with infinite validity
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Noise" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBRunRange runrange(fFirstRun,fLastRun);
+  AliDebug(2,Form("Writing TOF online calib obj from noise on CDB with run range [%i, %i] ",runrange.GetFirstRun(),runrange.GetLastRun()));
+  AliCDBId id(out,runrange);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fTOFCalOnlineNoise) {
+    // deve uscire!!
+  }
+  man->Put(fTOFCalOnlineNoise,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+
+void AliTOFcalib::WriteParOnlineHWOnCDB(Char_t *sel)
+{
+  //Write calibration parameters from hardware to the CDB with infinite validity
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "HW" ;  // to be consistent with TOFPreprocessor
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBRunRange runrange(fFirstRun,fLastRun);
+  AliDebug(2,Form("Writing TOF online calib obj from harware on CDB with run range [%i, %i] ",runrange.GetFirstRun(),runrange.GetLastRun()));
+  AliCDBId id(out,runrange);
+  AliCDBMetaData *md = new AliCDBMetaData();
+  md->SetResponsible("Chiara Zampolli");
+  if (!fTOFCalOnlineHW) {
+    // deve uscire!!
+  }
+  man->Put(fTOFCalOnlineHW,id,md);
+  delete md;
+}
+//_____________________________________________________________________________
+
 void AliTOFcalib::WriteParOfflineOnCDB(Char_t *sel, const Char_t *validity, Int_t minrun, Int_t maxrun)
 {
   //Write calibration parameters to the CDB
@@ -283,6 +594,78 @@ void AliTOFcalib::WriteParOfflineOnCDB(Char_t *sel, const Char_t *validity)
 }
 //_____________________________________________________________________________
 
+Bool_t AliTOFcalib::ReadConfigMapFromCDB(Char_t *sel, Int_t nrun)
+{
+  //Read calibration parameters from the CDB
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Config" ;
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
+    AliFatal("Exiting, no CDB object (ConfigMap) found!!!");
+    exit(0);  
+  }
+  if(!entry->GetObject()){
+    AliFatal("Exiting, no CDB object (ConfigMap) found!!!");
+    exit(0);  
+  }  
+  
+  fConfigMap =(TMap*)entry->GetObject();
+
+  return kTRUE; 
+   
+}
+//_____________________________________________________________________________
+
+Bool_t AliTOFcalib::ReadParOnlineDelayFromCDB(Char_t *sel, Int_t nrun)
+{
+  //Read calibration parameters from the CDB -------> new calib objs!!!!!
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "ParOnlineDelay" ;
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
+    AliFatal("Exiting, no CDB object (ParOnlineDelay) found!!!");
+    exit(0);  
+  }
+  if(!entry->GetObject()){
+    AliFatal("Exiting, no CDB object (ParOnlineDelay) found!!!");
+    exit(0);  
+  }  
+  
+  fCal =(AliTOFChannelOnlineArray*)entry->GetObject();
+
+  return kTRUE; 
+   
+}
+//_____________________________________________________________________________
+
+Bool_t AliTOFcalib::ReadParOnlineStatusFromCDB(Char_t *sel, Int_t nrun)
+{
+  //Read calibration parameters from the CDB -------> new calib objs!!!!!
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Status" ;
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
+    AliFatal("Exiting, no CDB object (Status) found!!!");
+    exit(0);  
+  }
+  if(!entry->GetObject()){
+    AliFatal("Exiting, no CDB object (Status) found!!!");
+    exit(0);  
+  }  
+  
+  fStatus =(AliTOFChannelOnlineStatusArray*)entry->GetObject();
+
+  return kTRUE; 
+   
+}
+//_____________________________________________________________________________
+
 Bool_t AliTOFcalib::ReadParOnlineFromCDB(Char_t *sel, Int_t nrun)
 {
   //Read calibration parameters from the CDB
@@ -290,12 +673,14 @@ Bool_t AliTOFcalib::ReadParOnlineFromCDB(Char_t *sel, Int_t nrun)
   Char_t *sel1 = "ParOnline" ;
   Char_t  out[100];
   sprintf(out,"%s/%s",sel,sel1); 
-  if (!man->Get(out,nrun)) { 
-    return kFALSE;
-  }
   AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
+    AliFatal("Exiting, no CDB object (ParOnline) found!!!");
+    exit(0);  
+  }
   if(!entry->GetObject()){
-    return kFALSE;
+    AliFatal("Exiting, no CDB object (ParOnline) found!!!");
+    exit(0);  
   }  
   
   fTOFCalOnline =(TObjArray*)entry->GetObject();
@@ -305,6 +690,78 @@ Bool_t AliTOFcalib::ReadParOnlineFromCDB(Char_t *sel, Int_t nrun)
 }
 //_____________________________________________________________________________
 
+Bool_t AliTOFcalib::ReadParOnlinePulserFromCDB(Char_t *sel, Int_t nrun)
+{
+  //Read calibration parameters from pulser from the CDB
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Pulser" ;
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
+    AliFatal("Exiting, no CDB object (Pulser) found!!!");
+    exit(0);  
+  }
+  if(!entry->GetObject()){
+    AliFatal("Exiting, no CDB object (Pulser) found!!!");
+    exit(0);  
+  }  
+  
+  fTOFCalOnlinePulser =(TObjArray*)entry->GetObject();
+
+  return kTRUE; 
+   
+}
+//_____________________________________________________________________________
+
+Bool_t AliTOFcalib::ReadParOnlineNoiseFromCDB(Char_t *sel, Int_t nrun)
+{
+  //Read calibration parameters from noise from the CDB
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "Noise" ;
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
+    AliFatal("Exiting, no CDB object (Noise) found!!!");
+    exit(0);  
+  }
+  if(!entry->GetObject()){
+    AliFatal("Exiting, no CDB object (Noise) found!!!");
+    exit(0);  
+  }  
+  
+  fTOFCalOnlineNoise =(TObjArray*)entry->GetObject();
+
+  return kTRUE; 
+   
+}
+//_____________________________________________________________________________
+
+Bool_t AliTOFcalib::ReadParOnlineHWFromCDB(Char_t *sel, Int_t nrun)
+{
+  //Read calibration parameters from hardware from the CDB
+  AliCDBManager *man = AliCDBManager::Instance();
+  Char_t *sel1 = "HW" ;
+  Char_t  out[100];
+  sprintf(out,"%s/%s",sel,sel1); 
+  AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
+    AliFatal("Exiting, no CDB object (HW map) found!!!");
+    exit(0);  
+  }
+  if(!entry->GetObject()){
+    AliFatal("Exiting, no CDB object (HW map) found!!!");
+    exit(0);  
+  }  
+  
+  fTOFCalOnlineHW =(TObjArray*)entry->GetObject();
+
+  return kTRUE; 
+   
+}
+//_____________________________________________________________________________
+
 Bool_t AliTOFcalib::ReadParOfflineFromCDB(Char_t *sel, Int_t nrun)
 {
   //Read calibration parameters from the CDB
@@ -312,12 +769,14 @@ Bool_t AliTOFcalib::ReadParOfflineFromCDB(Char_t *sel, Int_t nrun)
   Char_t *sel1 = "ParOffline" ;
   Char_t  out[100];
   sprintf(out,"%s/%s",sel,sel1); 
-  if (!man->Get(out,nrun)) { 
-    return kFALSE;
-  }
   AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
+    AliFatal("Exiting, no CDB object (ParOffline) found!!!");
+    exit(0);  
+  }
   if(!entry->GetObject()){
-    return kFALSE;
+    AliFatal("Exiting, no CDB object (ParOffline) found!!!");
+    exit(0);  
   }  
   AliCDBMetaData * md = entry->GetMetaData();
   fkValidity = md->GetComment();  
@@ -352,17 +811,18 @@ Bool_t AliTOFcalib::ReadSimHistoFromCDB(Char_t *sel, Int_t nrun)
   Char_t *sel1 = "SimHisto" ;
   Char_t  out[100];
   sprintf(out,"%s/%s",sel,sel1); 
-  if (!man->Get(out,nrun)) { 
+  AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
     AliFatal("Exiting, no CDB object (SimHisto) found!!!");
     exit(0);  
   }
-  AliCDBEntry *entry = man->Get(out,nrun);
   if(!entry->GetObject()){
     AliFatal("Exiting, no CDB object (SimHisto) found!!!");
     exit(0);  
   }  
   TH1F *histo =(TH1F*)entry->GetObject();
   fTOFSimToT=histo;
+  return kTRUE;
 }
 //_____________________________________________________________________________
 void AliTOFcalib::WriteRecParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param){
@@ -386,11 +846,11 @@ AliTOFRecoParam * AliTOFcalib::ReadRecParFromCDB(Char_t *sel, Int_t nrun)
   Char_t *sel1 = "RecPar" ;
   Char_t  out[100];
   sprintf(out,"%s/%s",sel,sel1); 
-  if (!man->Get(out,nrun)) { 
+  AliCDBEntry *entry = man->Get(out,nrun);
+  if (!entry) { 
     AliFatal("Exiting, no CDB object (RecPar) found!!!");
     exit(0);  
   }  
-  AliCDBEntry *entry = man->Get(out,nrun);
   if(!entry->GetObject()){
     AliFatal("Exiting, no CDB object (RecPar) found!!!");
     exit(0);  
@@ -868,7 +1328,7 @@ Int_t AliTOFcalib::Calibrate(Int_t nch, Int_t *ch, Option_t *optionSave, Option_
     }
   
     for (Int_t irun=0;irun<fNruns;irun++){
-      Int_t i = ch[ich]+irun*fNChannels;
+      i = ch[ich]+irun*fNChannels;
       //fTree->GetEntry(i);
       fChain->GetEntry(i);
       ntracksRun=nentries/3;
@@ -891,7 +1351,7 @@ Int_t AliTOFcalib::Calibrate(Int_t nch, Int_t *ch, Option_t *optionSave, Option_
 
     TProfile* hSlewingProf = new TProfile("hSlewingProf", "hSlewingProf",nusefulbins, binsProfile, "G");  // CHECK THE BUILD OPTION, PLEASE!!!!!!
     for (Int_t irun=0;irun<fNruns;irun++){
-      Int_t i = ch[ich]+irun*fNChannels;
+      i = ch[ich]+irun*fNChannels;
       //fTree->GetEntry(i);
       fChain->GetEntry(i);
       ntracksRun=nentries/3;