**************************************************************************/
/* $Id$ */
+///////////////////////////////////////////////////////////////////////////////
+// //
+// class for running the QA makers //
+// //
+// AliQADataMakerSteer qas; //
+// qas.Run(AliQA::kRAWS, rawROOTFileName); //
+// qas.Run(AliQA::kHITS); //
+// qas.Run(AliQA::kSDIGITS); //
+// qas.Run(AliQA::kDIGITS); //
+// qas.Run(AliQA::kRECPOINTS); //
+// qas.Run(AliQA::kESDS); //
+// //
+///////////////////////////////////////////////////////////////////////////////
#include <TKey.h>
#include <TFile.h>
//_____________________________________________________________________________
AliQADataMakerSteer::AliQADataMakerSteer(const char* gAliceFilename, const char * name, const char * title) :
TNamed(name, title),
+ fCurrentEvent(0),
fCycleSame(kFALSE),
fDetectors("ALL"),
fDetectorsW("ALL"),
fESDTree(NULL),
fFirst(kTRUE),
fGAliceFileName(gAliceFilename),
- fRunNumber(0),
+ fMaxEvents(0),
fNumberOfEvents(999999),
+ fRunNumber(0),
fRawReader(NULL),
fRawReaderDelete(kTRUE),
fRunLoader(NULL)
{
// default ctor
+ fMaxEvents = fNumberOfEvents ;
for (UInt_t iDet = 0; iDet < fgkNDetectors; iDet++) {
if (IsSelected(AliQA::GetDetName(iDet))) {
fLoader[iDet] = NULL ;
//_____________________________________________________________________________
AliQADataMakerSteer::AliQADataMakerSteer(const AliQADataMakerSteer & qas) :
TNamed(qas),
+ fCurrentEvent(qas.fCurrentEvent),
fCycleSame(kFALSE),
fDetectors(qas.fDetectors),
fDetectorsW(qas.fDetectorsW),
fESDTree(NULL),
fFirst(qas.fFirst),
fGAliceFileName(qas.fGAliceFileName),
- fRunNumber(qas.fRunNumber),
+ fMaxEvents(qas.fMaxEvents),
fNumberOfEvents(qas.fNumberOfEvents),
+ fRunNumber(qas.fRunNumber),
fRawReader(NULL),
fRawReaderDelete(kTRUE),
fRunLoader(NULL)
Bool_t rv = kFALSE ;
// Fill QA data in event loop
- for (UInt_t iEvent = 0 ; iEvent < fNumberOfEvents ; iEvent++) {
+ for (UInt_t iEvent = 0 ; iEvent < (UInt_t)fMaxEvents ; iEvent++) {
+ fCurrentEvent++ ;
// Get the event
- AliDebug(1, Form("processing event %d", iEvent));
+ if ( iEvent%10 == 0 )
+ AliInfo(Form("processing event %d", iEvent));
if ( taskIndex == AliQA::kRAWS ) {
if ( !fRawReader->NextEvent() )
break ;
} //data maker exist
} // detector loop
} // event loop
- // Save QA data for all detectors
+// // Save QA data for all detectors
rv = Finish(taskIndex, mode) ;
return rv ;
}
//_____________________________________________________________________________
-TObjArray * AliQADataMakerSteer::GetFromOCDB(AliQA::DETECTORINDEX det, AliQA::TASKINDEX task) const
+TObjArray * AliQADataMakerSteer::GetFromOCDB(AliQA::DETECTORINDEX det, AliQA::TASKINDEX task, const char * year) const
{
// Retrieve the list of QA data for a given detector and a given task
TObjArray * rv = NULL ;
}
AliCDBManager* man = AliCDBManager::Instance() ;
if ( ! man->IsDefaultStorageSet() ) {
- man->SetDefaultStorage(AliQA::GetQARefDefaultStorage()) ;
+ TString tmp(AliQA::GetQARefDefaultStorage()) ;
+ tmp.Append(year) ;
+ tmp.Append("/") ;
+ man->SetDefaultStorage(tmp.Data()) ;
man->SetSpecificStorage(Form("%s/*", AliQA::GetQAOCDBDirName()), AliQA::GetQARefStorage()) ;
}
char detOCDBDir[10] ;
AliCDBManager::Instance()->SetRun(fRunNumber) ;
fRawReader->RewindEvents();
fNumberOfEvents = 999999 ;
- } else if (taskIndex == AliQA::kESDS) {
+ if ( fMaxEvents < 0 )
+ fMaxEvents = fNumberOfEvents ;
+ } else if (taskIndex == AliQA::kESDS) {
if (!gSystem->AccessPathName("AliESDs.root")) { // AliESDs.root exists
TFile * esdFile = TFile::Open("AliESDs.root") ;
fESDTree = dynamic_cast<TTree *> (esdFile->Get("esdTree")) ;
fESDTree->GetEntry(0) ;
fRunNumber = fESD->GetRunNumber() ;
fNumberOfEvents = fESDTree->GetEntries() ;
+ if ( fMaxEvents < 0 )
+ fMaxEvents = fNumberOfEvents ;
}
} else {
AliError("AliESDs.root not found") ;
AliWarning("No Run Loader not found") ;
} else {
fNumberOfEvents = fRunLoader->GetNumberOfEvents() ;
+ if ( fMaxEvents < 0 )
+ fMaxEvents = fNumberOfEvents ;
+
}
}
// Initialize all QA data makers for all detectors
in >> file[index] ;
if ( !in.good() )
break ;
+ AliInfo(Form("index = %d file = %s", index, (file[index]).Data())) ;
index++ ;
}
Int_t runIndexMax = 0 ;
char stmp[10] ;
sprintf(stmp, ".%s.", AliQA::GetQADataFileName()) ;
- for (Int_t ifile = 0 ; ifile < index-1 ; ifile++) {
+ for (Int_t ifile = 0 ; ifile < index ; ifile++) {
TString tmp(file[ifile]) ;
tmp.ReplaceAll(".root", "") ;
TString det = tmp(0, tmp.Index(".")) ;
}
//_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::Run(const char * detectors, AliRawReader * rawReader)
+TString AliQADataMakerSteer::Run(const char * detectors, AliRawReader * rawReader)
{
//Runs all the QA data Maker for Raws only
+
fRawReader = rawReader ;
- fRawReaderDelete = kFALSE ;
- fCycleSame = kTRUE ;
fDetectors = detectors ;
+ fDetectorsW = detectors ;
- // Initialize all QA data makers for all detectors
- for (UInt_t iDet = 0; iDet < fgkNDetectors ; iDet++) {
- if (IsSelected(AliQA::GetDetName(iDet))) {
- AliQADataMaker * qadm = GetQADataMaker(iDet, "rec") ;
- if (!qadm) {
- AliWarning(Form("AliQADataMaker not found for %s", AliQA::GetDetName(iDet))) ;
- } else {
- AliInfo(Form("Data Maker found for %s", qadm->GetName())) ;
- qadm->Init(AliQA::kRAWS, fRunNumber, GetQACycles(iDet)) ;
- qadm->StartOfCycle(AliQA::kRAWS, fCycleSame) ;
- }
- }
- }
- fFirst = kFALSE ;
-
- return DoIt(AliQA::kRAWS, "rec") ;
+ if ( !Init(AliQA::kRAWS, "rec") )
+ return kFALSE ;
+ fRawReaderDelete = kFALSE ;
+
+ DoIt(AliQA::kRAWS, "rec") ;
+ return fDetectorsW ;
}
//_____________________________________________________________________________
TString AliQADataMakerSteer::Run(const char * detectors, const char * fileName)
{
//Runs all the QA data Maker for Raws only
- //fCycleSame = kTRUE ;
+
fDetectors = detectors ;
- fDetectorsW = detectors ;
-
+ fDetectorsW = detectors ;
if ( !Init(AliQA::kRAWS, "rec", fileName) )
return kFALSE ;
- // Initialize all QA data makers for all detectors
- //for (UInt_t iDet = 0; iDet < fgkNDetectors ; iDet++) {
-// if (IsSelected(AliQA::GetDetName(iDet))) {
-// AliQADataMaker * qadm = GetQADataMaker(iDet, "rec") ;
-// if (!qadm) {
-// AliWarning(Form("AliQADataMaker not found for %s", AliQA::GetDetName(iDet))) ;
-// } else {
-// AliInfo(Form("Data Maker found for %s", qadm->GetName())) ;
-// qadm->Init(AliQA::kRAWS, fRunNumber, GetQACycles(iDet)) ;
-// qadm->StartOfCycle(AliQA::kRAWS, fCycleSame) ;
-// }
-// }
-// }
- fFirst = kFALSE ;
DoIt(AliQA::kRAWS, "rec") ;
return fDetectorsW ;
}
//_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::Run(const char * detectors, const AliQA::TASKINDEX taskIndex, const char * fileName )
+TString AliQADataMakerSteer::Run(const char * detectors, const AliQA::TASKINDEX taskIndex, const char * fileName )
{
// Runs all the QA data Maker for every detector
- Bool_t rv = kFALSE ;
- fDetectors = detectors ;
+ fDetectors = detectors ;
+ fDetectorsW = detectors ;
- char * mode ;
+ TString mode ;
if ( (taskIndex == AliQA::kHITS) || (taskIndex == AliQA::kSDIGITS) || (taskIndex == AliQA::kDIGITS) )
mode = "sim" ;
else if ( (taskIndex == AliQA::kRAWS) || (taskIndex == AliQA::kRECPOINTS) || (taskIndex == AliQA::kESDS) )
mode = "rec" ;
else {
AliError(Form("%s not implemented", AliQA::GetTaskName(taskIndex).Data())) ;
- return rv ;
+ return "" ;
}
- if ( !Init(taskIndex, mode, fileName) )
+ if ( !Init(taskIndex, mode.Data(), fileName) )
return kFALSE ;
- rv = DoIt(taskIndex, mode) ;
+ DoIt(taskIndex, mode.Data()) ;
- return rv ;
+ return fDetectorsW ;
}
//_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::Save2OCDB(const Int_t runNumber, const Int_t cycleNumber, const char * detectors) const
+Bool_t AliQADataMakerSteer::Save2OCDB(const Int_t runNumber, const char * year, const Int_t cycleNumber, const char * detectors) const
{
// take the locasl QA data merge into a single file and save in OCDB
Bool_t rv = kTRUE ;
char inputFileName[20] ;
sprintf(inputFileName, "Merged.%s.%d.root", AliQA::GetQADataFileName(), runNumber) ;
inputFile = TFile::Open(inputFileName) ;
- rv = SaveIt2OCDB(runNumber, inputFile) ;
+ rv = SaveIt2OCDB(runNumber, inputFile, year) ;
} else {
for (Int_t index = 0; index < AliQA::kNDET; index++) {
if (sdet.Contains(AliQA::GetDetName(index))) {
char inputFileName[20] ;
sprintf(inputFileName, "%s.%s.%d.%d.root", AliQA::GetDetName(index), AliQA::GetQADataFileName(), runNumber, cycleNumber) ;
inputFile = TFile::Open(inputFileName) ;
- rv *= SaveIt2OCDB(runNumber, inputFile) ;
+ rv *= SaveIt2OCDB(runNumber, inputFile, year) ;
}
}
}
}
//_____________________________________________________________________________
-Bool_t AliQADataMakerSteer::SaveIt2OCDB(const Int_t runNumber, TFile * inputFile) const
+Bool_t AliQADataMakerSteer::SaveIt2OCDB(const Int_t runNumber, TFile * inputFile, const char * year) const
{
// reads the TH1 from file and adds it to appropriate list before saving to OCDB
Bool_t rv = kTRUE ;
AliInfo(Form("Saving TH1s in %s to %s", inputFile->GetName(), AliQA::GetQARefStorage())) ;
AliCDBManager* man = AliCDBManager::Instance() ;
if ( ! man->IsDefaultStorageSet() ) {
- man->SetDefaultStorage(AliQA::GetQARefDefaultStorage()) ;
- man->SetSpecificStorage(Form("%s/*", AliQA::GetQAOCDBDirName()), AliQA::GetQARefStorage()) ;
+ TString tmp(AliQA::GetQARefDefaultStorage()) ;
+ tmp.Append(year) ;
+ tmp.Append("?user=alidaq") ;
+ man->SetDefaultStorage(tmp.Data()) ;
+ man->SetSpecificStorage("*", AliQA::GetQARefStorage()) ;
}
if(man->GetRun() < 0)
man->SetRun(runNumber);
+ AliCDBMetaData mdr ;
+ mdr.SetResponsible("yves schutz");
+
for ( Int_t detIndex = 0 ; detIndex < AliQA::kNDET ; detIndex++) {
TDirectory * detDir = inputFile->GetDirectory(AliQA::GetDetName(detIndex)) ;
if ( detDir ) {
AliInfo(Form("Entering %s", detDir->GetName())) ;
char detOCDBDir[20] ;
- sprintf(detOCDBDir, "%s/%s/%s", AliQA::GetQAOCDBDirName(), AliQA::GetDetName(detIndex), AliQA::GetRefOCDBDirName()) ;
- AliCDBId idr(detOCDBDir, runNumber, 999999999) ;
+ sprintf(detOCDBDir, "%s/%s/%s", AliQA::GetDetName(detIndex), AliQA::GetRefOCDBDirName(), AliQA::GetRefDataDirName()) ;
+ AliCDBId idr(detOCDBDir, runNumber, AliCDBRunRange::Infinity()) ;
TList * listDetQAD = new TList() ;
char listName[20] ;
sprintf(listName, "%s QA data Reference", AliQA::GetDetName(detIndex)) ;
+ mdr.SetComment("HMPID QA stuff");
listDetQAD->SetName(listName) ;
TList * taskList = detDir->GetListOfKeys() ;
TIter nextTask(taskList) ;
}
}
}
- AliCDBMetaData mdr ;
man->Put(listDetQAD, idr, &mdr) ;
}
}
return rv ;
}
+