**************************************************************************/
/*
-$Log$
-Revision 1.17 2007/10/18 09:12:22 zampolli
-New naming of online calibration directory
+$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
Revision 1.16 2007/10/08 10:13:26 zampolli
First Run and Last Run members added, infinite validity of calib obj implemented.
#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 "AliCDBEntry.h"
#include "AliCDBRunRange.h"
#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 "AliTOFChannelOnline.h"
+#include "AliTOFChannelOnlineStatus.h"
#include "AliTOFChannelOffline.h"
#include "AliTOFGeometry.h"
#include "AliTOFRecoParam.h"
+class TROOT;
+class TStyle;
+
extern TROOT *gROOT;
extern TStyle *gStyle;
TTask("AliTOFcalib",""),
fNChannels(-1),
fTOFCalOnline(0x0),
+ fTOFCalOnlinePulser(0x0),
+ fTOFCalOnlineNoise(0x0),
+ fTOFCalOnlineHW(0x0),
fTOFCalOffline(0x0),
- fTOFSimCalOnline(0x0),
- fTOFSimCalOffline(0x0),
fTOFSimToT(0x0),
fkValidity(0x0),
fTree(0x0),
+ fChain(0x0),
fNruns(0),
fFirstRun(0),
fLastRun(AliCDBRunRange::Infinity())
TTask("AliTOFcalib",""),
fNChannels(calib.fNChannels),
fTOFCalOnline(0x0),
+ fTOFCalOnlinePulser(0x0),
+ fTOFCalOnlineNoise(0x0),
+ fTOFCalOnlineHW(0x0),
fTOFCalOffline(0x0),
- fTOFSimCalOnline(0x0),
- fTOFSimCalOffline(0x0),
fTOFSimToT(calib.fTOFSimToT),
fkValidity(calib.fkValidity),
fTree(calib.fTree),
+ fChain(calib.fChain),
fNruns(calib.fNruns),
fFirstRun(calib.fFirstRun),
fLastRun(calib.fLastRun)
//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);
- AliTOFChannelOnline * simCalChOnline = (AliTOFChannelOnline*)calib.fTOFSimCalOnline->At(iarray);
- AliTOFChannelOffline * simCalChOffline = (AliTOFChannelOffline*)calib.fTOFSimCalOffline->At(iarray);
- fTOFSimCalOnline->AddAt(simCalChOnline,iarray);
- fTOFSimCalOffline->AddAt(simCalChOffline,iarray);
}
}
this->fTOFSimToT = calib.fTOFSimToT;
this->fkValidity = calib.fkValidity;
this->fTree = calib.fTree;
+ this->fChain = calib.fChain;
this->fNruns = calib.fNruns;
this->fFirstRun = calib.fFirstRun;
this->fLastRun = calib.fLastRun;
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);
- AliTOFChannelOnline * simCalChOnline = (AliTOFChannelOnline*)calib.fTOFSimCalOnline->At(iarray);
- AliTOFChannelOffline * simCalChOffline = (AliTOFChannelOffline*)calib.fTOFSimCalOffline->At(iarray);
- this->fTOFSimCalOnline->AddAt(simCalChOnline,iarray);
- this->fTOFSimCalOffline->AddAt(simCalChOffline,iarray);
}
return *this;
}
//TOF Calibration Class dtor
if(!(AliCDBManager::Instance()->GetCacheFlag())){ // CDB objects must NOT be deleted if cache is active!
if (fTOFCalOnline){
- // fTOFCalOnline->Clear();
delete fTOFCalOnline;
}
- if (fTOFCalOffline){
- //fTOFCalOffline->Clear();
- delete fTOFCalOffline;
+ if (fTOFCalOnlinePulser){
+ delete fTOFCalOnlinePulser;
}
- if (fTOFSimCalOnline){
- //fTOFSimCalOnline->Clear();
- delete fTOFSimCalOnline;
+ if (fTOFCalOnlineNoise){
+ delete fTOFCalOnlineNoise;
}
- if (fTOFSimCalOffline){
- //fTOFSimCalOffline->Clear();
- delete fTOFSimCalOffline;
+ if (fTOFCalOnlineHW){
+ delete fTOFCalOnlineHW;
+ }
+ if (fTOFCalOffline){
+ delete fTOFCalOffline;
}
}
if (fTree!=0x0) delete fTree;
+ if (fChain!=0x0) delete fChain;
}
//_____________________________________________________________________________
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);
}
}
//_____________________________________________________________________________
-void AliTOFcalib::CreateSimCalArrays(){
-
- // creating arrays for simulation online/offline calibration objs
-
- fTOFSimCalOnline = new TObjArray(fNChannels);
- fTOFSimCalOffline = new TObjArray(fNChannels);
- fTOFSimCalOnline->SetOwner();
- fTOFSimCalOffline->SetOwner();
- for (Int_t iarray = 0; iarray<fNChannels; iarray++){
- AliTOFChannelOnline * simCalChOnline = new AliTOFChannelOnline();
- AliTOFChannelOffline * simCalChOffline = new AliTOFChannelOffline();
- fTOFSimCalOnline->AddAt(simCalChOnline,iarray);
- fTOFSimCalOffline->AddAt(simCalChOffline,iarray);
- }
-}
-//_____________________________________________________________________________
void AliTOFcalib::WriteParOnlineOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun)
{
//Write calibration parameters to the CDB
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)
{
}
//_____________________________________________________________________________
+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
}
//_____________________________________________________________________________
-Bool_t AliTOFcalib::ReadParOfflineFromCDB(Char_t *sel, Int_t nrun)
+Bool_t AliTOFcalib::ReadParOnlinePulserFromCDB(Char_t *sel, Int_t nrun)
{
- //Read calibration parameters from the CDB
+ //Read calibration parameters from pulser from the CDB
AliCDBManager *man = AliCDBManager::Instance();
- Char_t *sel1 = "ParOffline" ;
+ Char_t *sel1 = "Pulser" ;
Char_t out[100];
sprintf(out,"%s/%s",sel,sel1);
if (!man->Get(out,nrun)) {
if(!entry->GetObject()){
return kFALSE;
}
- AliCDBMetaData * md = entry->GetMetaData();
- fkValidity = md->GetComment();
- fTOFCalOffline =(TObjArray*)entry->GetObject();
+
+ fTOFCalOnlinePulser =(TObjArray*)entry->GetObject();
return kTRUE;
}
//_____________________________________________________________________________
-void AliTOFcalib::WriteSimParOnlineOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, TObjArray *calOnline){
- //Write Sim miscalibration parameters to the CDB
- fTOFSimCalOnline=calOnline;
+Bool_t AliTOFcalib::ReadParOnlineNoiseFromCDB(Char_t *sel, Int_t nrun)
+{
+ //Read calibration parameters from noise from the CDB
AliCDBManager *man = AliCDBManager::Instance();
- AliCDBMetaData *md = new AliCDBMetaData();
- md->SetResponsible("Chiara Zampolli");
- Char_t *sel1 = "SimParOnline" ;
+ Char_t *sel1 = "Noise" ;
Char_t out[100];
sprintf(out,"%s/%s",sel,sel1);
- AliCDBId id1(out,minrun,maxrun);
- man->Put(fTOFSimCalOnline,id1,md);
- delete md;
+ if (!man->Get(out,nrun)) {
+ return kFALSE;
+ }
+ AliCDBEntry *entry = man->Get(out,nrun);
+ if(!entry->GetObject()){
+ return kFALSE;
+ }
+
+ fTOFCalOnlineNoise =(TObjArray*)entry->GetObject();
+
+ return kTRUE;
+
}
//_____________________________________________________________________________
-void AliTOFcalib::WriteSimParOfflineOnCDB(Char_t *sel, const Char_t *validity, Int_t minrun, Int_t maxrun, TObjArray *calOffline, TH1F *histo){
- //Write Sim miscalibration parameters to the CDB
- fTOFSimToT=histo;
- fTOFSimCalOffline=calOffline;
+Bool_t AliTOFcalib::ReadParOnlineHWFromCDB(Char_t *sel, Int_t nrun)
+{
+ //Read calibration parameters from hardware from the CDB
AliCDBManager *man = AliCDBManager::Instance();
- AliCDBMetaData *md = new AliCDBMetaData();
- md->SetResponsible("Chiara Zampolli");
- md->SetComment(validity);
- Char_t *sel1 = "SimParOffline" ;
+ Char_t *sel1 = "HW" ;
Char_t out[100];
sprintf(out,"%s/%s",sel,sel1);
- AliCDBId id1(out,minrun,maxrun);
- man->Put(fTOFSimCalOffline,id1,md);
- Char_t *sel2 = "SimHisto" ;
- sprintf(out,"%s/%s",sel,sel2);
- AliCDBMetaData *mdhisto = new AliCDBMetaData();
- mdhisto->SetResponsible("Chiara Zampolli");
- AliCDBId id2(out,minrun,maxrun);
- man->Put(fTOFSimToT,id2,mdhisto);
- delete md;
- delete mdhisto;
+ if (!man->Get(out,nrun)) {
+ return kFALSE;
+ }
+ AliCDBEntry *entry = man->Get(out,nrun);
+ if(!entry->GetObject()){
+ return kFALSE;
+ }
+
+ fTOFCalOnlineHW =(TObjArray*)entry->GetObject();
+
+ return kTRUE;
+
}
//_____________________________________________________________________________
-void AliTOFcalib::ReadSimParOnlineFromCDB(Char_t *sel, Int_t nrun)
+
+Bool_t AliTOFcalib::ReadParOfflineFromCDB(Char_t *sel, Int_t nrun)
{
- //Read miscalibration parameters from the CDB
+ //Read calibration parameters from the CDB
AliCDBManager *man = AliCDBManager::Instance();
-
- // The Slewing Pars
-
- Char_t *sel1 = "SimParOnline" ;
+ Char_t *sel1 = "ParOffline" ;
Char_t out[100];
sprintf(out,"%s/%s",sel,sel1);
if (!man->Get(out,nrun)) {
- AliFatal("Exiting, no CDB object (SimParOnline) found!!!");
- exit(0);
+ return kFALSE;
}
- AliCDBEntry *entry1 = man->Get(out,nrun);
- if(!entry1->GetObject()){
- AliFatal("Exiting, no CDB object (SimParOnline) found!!!");
- exit(0);
+ AliCDBEntry *entry = man->Get(out,nrun);
+ if(!entry->GetObject()){
+ return kFALSE;
}
- TObjArray *cal =(TObjArray*)entry1->GetObject();
- fTOFSimCalOnline=cal;
+ AliCDBMetaData * md = entry->GetMetaData();
+ fkValidity = md->GetComment();
+ fTOFCalOffline =(TObjArray*)entry->GetObject();
+ return kTRUE;
+
}
//_____________________________________________________________________________
-void AliTOFcalib::ReadSimParOfflineFromCDB(Char_t *sel, Int_t nrun)
+void AliTOFcalib::WriteSimHistoOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, TH1F *histo){
+ //Write Sim miscalibration parameters to the CDB
+
+ fTOFSimToT=histo;
+ AliCDBManager *man = AliCDBManager::Instance();
+ Char_t *sel1 = "SimHisto" ;
+ Char_t out[100];
+ sprintf(out,"%s/%s",sel,sel1);
+ AliCDBMetaData *mdhisto = new AliCDBMetaData();
+ mdhisto->SetResponsible("Chiara Zampolli");
+ AliCDBId id(out,minrun,maxrun);
+ man->Put(fTOFSimToT,id,mdhisto);
+ delete mdhisto;
+}
+//_____________________________________________________________________________
+Bool_t AliTOFcalib::ReadSimHistoFromCDB(Char_t *sel, Int_t nrun)
{
//Read miscalibration parameters from the CDB
AliCDBManager *man = AliCDBManager::Instance();
- // The Slewing Pars
+ // The Tot Histo
- Char_t *sel1 = "SimParOffline" ;
+ Char_t *sel1 = "SimHisto" ;
Char_t out[100];
sprintf(out,"%s/%s",sel,sel1);
- if (!man->Get(out,nrun)) {
- AliFatal("Exiting, no CDB object (SimParOffline) found!!!");
- exit(0);
- }
- AliCDBEntry *entry1 = man->Get(out,nrun);
- if(!entry1->GetObject()){
- AliFatal("Exiting, no CDB object (SimParOffline) found!!!");
- exit(0);
- }
- TObjArray *cal =(TObjArray*)entry1->GetObject();
- AliCDBMetaData *md = (AliCDBMetaData*)entry1->GetMetaData();
- fkValidity = md->GetComment();
- fTOFSimCalOffline=cal;
-
- // The Tot Histo
-
- Char_t *sel2 = "SimHisto" ;
- sprintf(out,"%s/%s",sel,sel2);
if (!man->Get(out,nrun)) {
AliFatal("Exiting, no CDB object (SimHisto) found!!!");
exit(0);
}
- AliCDBEntry *entry2 = man->Get(out,nrun);
- if(!entry2->GetObject()){
+ AliCDBEntry *entry = man->Get(out,nrun);
+ if(!entry->GetObject()){
AliFatal("Exiting, no CDB object (SimHisto) found!!!");
exit(0);
}
- TH1F *histo =(TH1F*)entry2->GetObject();
+ TH1F *histo =(TH1F*)entry->GetObject();
fTOFSimToT=histo;
+ return kTRUE;
}
//_____________________________________________________________________________
void AliTOFcalib::WriteRecParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun, AliTOFRecoParam *param){
AliInfo(Form("Number of runs being analyzed %i",fNruns));
}
//-----------------------------------------------------------------------------
+void AliTOFcalib::CreateChainFromGrid(Int_t minrun, Int_t maxrun){
+
+ // creating the chain with the trees for calibration
+ // collecting them from the Grid
+ // from minrun to maxrun
+
+ fChain = new TChain("T");
+ AliInfo("connected to alien");
+ TGrid::Connect("alien://");
+
+ Char_t filename[100];
+ for (Int_t irun = minrun;irun<=maxrun;irun++){
+ sprintf(filename,"alien:///alice/cern.ch/user/c/czampolli/TOFCalibReference_%i.root",irun);
+ fChain->Add(filename);
+ fNruns++;
+ }
+
+ AliInfo(Form("Number of runs being analyzed %i",fNruns));
+}
+//-----------------------------------------------------------------------------
Int_t AliTOFcalib::Calibrate(Int_t ichmin, Int_t ichmax, Option_t *optionSave, Option_t *optionFit){
// calibrating summing more than one channels
Float_t p[CHENTRIESSMALL];
Int_t nentries;
- fTree->SetBranchAddress("nentries",&nentries);
- fTree->SetBranchAddress("TOFentries",p);
+ //fTree->SetBranchAddress("nentries",&nentries);
+ //fTree->SetBranchAddress("TOFentries",p);
+ fChain->SetBranchAddress("nentries",&nentries);
+ fChain->SetBranchAddress("TOFentries",p);
Float_t ntracksTotalmean =0;
for (Int_t i=ichmin; i<ichmax; i++){
Int_t ientry = -1;
for (Int_t irun=0;irun<fNruns;irun++){
ientry = i+irun*fNChannels;
- fTree->GetEntry(ientry);
+ //fTree->GetEntry(ientry);
+ fChain->GetEntry(ientry);
Int_t ntracksRun=nentries/3;
ntracksTotalmean+=ntracksRun;
}
Int_t ientry = -1;
for (Int_t irun=0;irun<fNruns;irun++){
ientry = i+irun*fNChannels;
- fTree->GetEntry(ientry);
+ //fTree->GetEntry(ientry);
+ fChain->GetEntry(ientry);
ntracksTotal+=nentries/3;
ntracksRun=nentries/3;
AliDebug(2,Form("run %i, channel %i, nentries = %i, ntracks = %i",irun,i,nentries, ntracksRun));
Int_t ientry = -1;
for (Int_t i=ichmin; i<ichmax; i++){
ientry = i+irun*fNChannels;
- fTree->GetEntry(ientry);
+ //fTree->GetEntry(ientry);
+ fChain->GetEntry(ientry);
ntracksRun=nentries/3;
for (Int_t j=0;j<ntracksRun;j++){
Int_t idxexToT = (j* NIDXSMALL)+DELTAIDXTOT;
Float_t p[MAXCHENTRIESSMALL];
Int_t nentries;
- fTree->SetBranchAddress("nentries",&nentries);
- fTree->SetBranchAddress("TOFentries",p);
+ //fTree->SetBranchAddress("nentries",&nentries);
+ //fTree->SetBranchAddress("TOFentries",p);
+ fChain->SetBranchAddress("nentries",&nentries);
+ fChain->SetBranchAddress("TOFentries",p);
Float_t ntracksTotal =0;
for (Int_t irun=0;irun<fNruns;irun++){
Int_t ientry = -1;
ientry = i+irun*fNChannels;
- fTree->GetEntry(ientry);
+ //fTree->GetEntry(ientry);
+ fChain->GetEntry(ientry);
ntracksTotal+=nentries/3;
}
for (Int_t irun=0;irun<fNruns;irun++){
Int_t ientry = -1;
ientry = i+irun*fNChannels;
- fTree->GetEntry(ientry);
+ //fTree->GetEntry(ientry);
+ fChain->GetEntry(ientry);
ntracksRun=nentries/3;
AliDebug(2,Form("run %i, channel %i, nentries = %i, ntracksRun = %i",irun, i ,nentries, ntracksRun));
for (Int_t j=0;j<ntracksRun;j++){
for (Int_t irun=0;irun<fNruns;irun++){
Int_t ientry = -1;
ientry = i+irun*fNChannels;
- fTree->GetEntry(ientry);
+ //fTree->GetEntry(ientry);
+ fChain->GetEntry(ientry);
ntracksRun=nentries/3;
for (Int_t j=0;j<ntracksRun;j++){
Int_t idxexToT = (j* NIDXSMALL)+DELTAIDXTOT;
}
Float_t p[MAXCHENTRIESSMALL];
Int_t nentries;
- fTree->SetBranchAddress("nentries",&nentries);
- fTree->SetBranchAddress("TOFentries",p);
+ //fTree->SetBranchAddress("nentries",&nentries);
+ //fTree->SetBranchAddress("TOFentries",p);
+ fChain->SetBranchAddress("nentries",&nentries);
+ fChain->SetBranchAddress("TOFentries",p);
Float_t ntracksTotalmean =0;
for (Int_t ich=0; ich<nch; ich++){
Int_t i = ch[ich];
for (Int_t irun=0;irun<fNruns;irun++){
ientry = i+irun*fNChannels;
- fTree->GetEntry(ientry);
+ //fTree->GetEntry(ientry);
+ fChain->GetEntry(ientry);
ntracksTotalmean+=nentries/3;
}
}
for (Int_t irun=0;irun<fNruns;irun++){
i = ch[ich]+irun*fNChannels;
AliDebug(2,Form("Calibrating channel %i",i));
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksTotal+=nentries/3;
}
if (ntracksTotal < MEANENTRIES) {
for (Int_t irun=0;irun<fNruns;irun++){
Int_t i = ch[ich]+irun*fNChannels;
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksRun=nentries/3;
for (Int_t j=0;j<ntracksRun;j++){
Int_t idxexToT = (j* NIDXSMALL)+DELTAIDXTOT;
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;
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksRun=nentries/3;
for (Int_t j=0;j<ntracksRun;j++){
Int_t idxexToT = (j* NIDXSMALL)+DELTAIDXTOT;
Float_t p[MAXCHENTRIESSMALL];
Int_t nentries;
Int_t ntracksTotal=0;
- fTree->SetBranchAddress("nentries",&nentries);
- fTree->SetBranchAddress("TOFentries",p);
+ //fTree->SetBranchAddress("nentries",&nentries);
+ //fTree->SetBranchAddress("TOFentries",p);
+ fChain->SetBranchAddress("nentries",&nentries);
+ fChain->SetBranchAddress("TOFentries",p);
for (Int_t irun=0;irun<fNruns;irun++){
Int_t i = ich+irun*fNChannels;
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksTotal+=nentries/3;
}
Float_t p[MAXCHENTRIESSMALL];
Int_t nentries;
- fTree->SetBranchAddress("nentries",&nentries);
- fTree->SetBranchAddress("TOFentries",p);
+ //fTree->SetBranchAddress("nentries",&nentries);
+ //fTree->SetBranchAddress("TOFentries",p);
+ fChain->SetBranchAddress("nentries",&nentries);
+ fChain->SetBranchAddress("TOFentries",p);
Float_t ntracksTotalmean =0;
for (Int_t ii=0; ii<fNChannels; ii++){
for (Int_t irun=0;irun<fNruns;irun++){
Int_t i = ii+irun*fNChannels;
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksTotalmean+=nentries/3;
}
}
Int_t ntracksTotal = 0;
for (Int_t irun=0;irun<fNruns;irun++){
Int_t i = ii+irun*fNChannels;
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksTotal+=nentries/3;
}
if (ntracksTotal < MEANENTRIES) {
Float_t meantime=0;
for (Int_t irun=0;irun<fNruns;irun++){
Int_t i = ii+irun*fNChannels;
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksRun=nentries/3;
for (Int_t j=0;j<ntracksRun;j++){
Int_t idxexToT = (j* NIDXSMALL)+DELTAIDXTOT;
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 = ii+irun*fNChannels;
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksRun=nentries/3;
for (Int_t j=0;j<ntracksRun;j++){
Int_t idxexToT = (j* NIDXSMALL)+DELTAIDXTOT;
Float_t p[MAXCHENTRIESSMALL];
Int_t nentries;
- fTree->SetBranchAddress("nentries",&nentries);
- fTree->SetBranchAddress("TOFentries",p);
+ //fTree->SetBranchAddress("nentries",&nentries);
+ //fTree->SetBranchAddress("TOFentries",p);
+ fChain->SetBranchAddress("nentries",&nentries);
+ fChain->SetBranchAddress("TOFentries",p);
//Prepare histograms for Slewing Correction
const Int_t knbinToT = 100;
TH1F *histo = new TH1F("histo", "1D Time vs ToT", knbinToT, minToT, maxToT);
for (Int_t irun=0;irun<fNruns;irun++){
Int_t i = ich+irun*fNChannels;
- fTree->GetEntry(i);
+ //fTree->GetEntry(i);
+ fChain->GetEntry(i);
ntracksRun=nentries/3;
for (Int_t j=0;j<ntracksRun;j++){
Int_t idxexToT = (j* NIDXSMALL)+DELTAIDXTOT;