"ZDC", "PMD", "T0", "VZERO", "ACORDE", "HLT", "Global"} ;
TString AliQA::fgGRPPath = "GRP/GRP/Data" ;
TString AliQA::fgRTNames[] = {"UNKNOWN", "AUTO_TEST", "CALIBRATION", "CALIBRATION_PULSER", "CHANNEL_DELAY_TUNING", "COSMIC",
- "COSMICS", "DAQ_FO_UNIF_SCAN", "DAQ_GEN_DAC_SCAN", "DAQ_MEAN_TH_SCAN", "DAQ_MIN_TH_SCAN",
- "DAQ_NOISY_PIX_SCAN", "DAQ_PIX_DELAY_SCAN", "DAQ_UNIFORMITY_SCAN", "DCS_FO_UNIF_SCAN",
- "DCS_MEAN_TH_SCAN", "DCS_MIN_TH_SCAN", "DCS_PIX_DELAY_SCAN", "DCS_UNIFORMITY_SCAN",
- "DDL_TEST", "GAIN", "PEDESTAL", "INJECTOR", "LASER", "MONTECARLO", "NOISE", "NOISY_PIX_SCAN",
- "PHYSICS", "PULSER", "STANDALONE", "STANDALONE_BC", "STANDALONE_CENTRAL", "STANDALONE_COSMIC",
- "STANDALONE_EMD", "STANDALONE_LASER", "STANDALONE_MB", "STANDALONE_PEDESTAL",
- "STANDALONE_SEMICENTRAL", "STANDALONE_PULSER" } ;
+ "COSMICS", "DAQ_FO_UNIF_SCAN", "DAQ_GEN_DAC_SCAN", "DAQ_MEAN_TH_SCAN", "DAQ_MIN_TH_SCAN",
+ "DAQ_NOISY_PIX_SCAN", "DAQ_PIX_DELAY_SCAN", "DAQ_UNIFORMITY_SCAN", "DCS_FO_UNIF_SCAN",
+ "DCS_MEAN_TH_SCAN", "DCS_MIN_TH_SCAN", "DCS_PIX_DELAY_SCAN", "DCS_UNIFORMITY_SCAN",
+ "DDL_TEST", "GAIN", "PEDESTAL", "INJECTOR", "LASER", "MONTECARLO", "NOISE", "NOISY_PIX_SCAN",
+ "PHYSICS", "PULSER", "STANDALONE", "STANDALONE_BC", "STANDALONE_CENTRAL", "STANDALONE_COSMIC",
+ "STANDALONE_EMD", "STANDALONE_LASER", "STANDALONE_MB", "STANDALONE_PEDESTAL",
+ "STANDALONE_SEMICENTRAL", "STANDALONE_PULSER" } ;
TString AliQA::fgTaskNames[] = {"Raws", "Hits", "SDigits", "Digits", "RecPoints", "TrackSegments", "RecParticles", "ESDs"} ;
const TString AliQA::fkgLabLocalFile = "file://" ;
const TString AliQA::fkgLabLocalOCDB = "local://" ;
{
// Set the lower level directory name where reference data are found
TString test(name) ;
- RUNTYPE_t rt ;
- for (Int_t index = 0; index < AliQA::kNTYPE; index++) {
- if (test == fgRTNames[index]) {
+ RUNTYPE_t rt = kNULLTYPE ;
+ for (Int_t index = 0; index < kNTYPE; index++) {
+ if (test.CompareTo(fgRTNames[index]) == 0) {
rt = (RUNTYPE_t) index ;
break ;
- } else {
+ }
+ }
+
+ if (rt == kNULLTYPE) {
printf("AliQA::SetQARefDataDirName: %s is an unknown RUN TYPE name\n", name) ;
return ;
- }
- }
- SetQARefDataDirName(rt) ;
+ }
+
+ SetQARefDataDirName(rt) ;
}
//_____________________________________________________________________________
kNULLBit=-1, kINFO, kWARNING, kERROR, kFATAL, kNBIT };
enum RUNTYPE_t {
kNULLTYPE=-1, kUNKOWN, kAUTO_TEST, kCALIBRATION, kCALIBRATION_PULSER, kCHANNEL_DELAY_TUNING, kCOSMIC, kCOSMICS, kDAQ_FO_UNIF_SCAN,
- kDAQ_GEN_DAC_SCAN, kDAQ_MEAN_TH_SCAN, kDAQ_MIN_TH_SCAN, kDAQ_NOISY_PIX_SCAN, kDAQ_PIX_DELAY_SCAN, kDAQ_UNIFORMITY_SCAN,
- kDCS_FO_UNIF_SCAN, kDCS_MEAN_TH_SCAN, kDCS_MIN_TH_SCAN, kDCS_PIX_DELAY_SCAN, kDCS_UNIFORMITY_SCAN, kDDL_TEST, kGAIN,
- kPEDESTAL, kINJECTOR, kLASER, kMONTECARLO, kNOISE, kNOISY_PIX_SCAN, kPHYSICS, kPULSER, kSTANDALONE, kSTANDALONE_BC,
- kSTANDALONE_CENTRAL, kSTANDALONE_COSMIC, kSTANDALONE_EMD, kSTANDALONE_LASER, kSTANDALONE_MB, kSTANDALONE_PEDESTAL,
- kSTANDALONE_SEMICENTRAL, kSTANDALONE_PULSER, kNTYPE};
+ kDAQ_GEN_DAC_SCAN, kDAQ_MEAN_TH_SCAN, kDAQ_MIN_TH_SCAN, kDAQ_NOISY_PIX_SCAN, kDAQ_PIX_DELAY_SCAN, kDAQ_UNIFORMITY_SCAN,
+ kDCS_FO_UNIF_SCAN, kDCS_MEAN_TH_SCAN, kDCS_MIN_TH_SCAN, kDCS_PIX_DELAY_SCAN, kDCS_UNIFORMITY_SCAN, kDDL_TEST, kGAIN,
+ kPEDESTAL, kINJECTOR, kLASER, kMONTECARLO, kNOISE, kNOISY_PIX_SCAN, kPHYSICS, kPULSER, kSTANDALONE, kSTANDALONE_BC,
+ kSTANDALONE_CENTRAL, kSTANDALONE_COSMIC, kSTANDALONE_EMD, kSTANDALONE_LASER, kSTANDALONE_MB, kSTANDALONE_PEDESTAL,
+ kSTANDALONE_SEMICENTRAL, kSTANDALONE_PULSER, kNTYPE};
enum TASKINDEX_t {
kRAWS, kHITS, kSDIGITS, kDIGITS, kRECPOINTS, kTRACKSEGMENTS, kRECPARTICLES, kESDS, kNTASKINDEX };
const Bool_t CheckFatal() const ;
static void Close() ;
static const char * GetAliTaskName(ALITASK_t tsk) ;
- static const TString GetLabLocalFile() { return fkgLabLocalFile ; }
- static const TString GetLabLocalOCDB() { return fkgLabLocalOCDB ; }
- static const TString GetLabAliEnOCDB() { return fkgLabAliEnOCDB ; }
+ static const TString GetLabLocalFile() { return fkgLabLocalFile ; }
+ static const TString GetLabLocalOCDB() { return fkgLabLocalOCDB ; }
+ static const TString GetLabAliEnOCDB() { return fkgLabAliEnOCDB ; }
static const DETECTORINDEX_t GetDetIndex(const char * name) ;
static const TString GetDetName(DETECTORINDEX_t det) { return fgDetNames[det] ; }
static const char * GetDetName(Int_t det) ;
- static const TString GetGRPPath() { return fgGRPPath ; }
+ static const TString GetGRPPath() { return fgGRPPath ; }
static TFile * GetQADataFile(const char * name, const Int_t run, const Int_t cycle) ;
static TFile * GetQADataFile(const char * fileName) ;
static const char * GetQADataFileName(const char * name, const Int_t run, const Int_t cycle)
- {return Form("%s.%s.%d.%d.root", name, fgQADataFileName.Data(), run, cycle) ; }
+ {return Form("%s.%s.%d.%d.root", name, fgQADataFileName.Data(), run, cycle) ; }
static const char * GetQADataFileName() { return fgQADataFileName.Data() ; }
static const char * GetQAName() { return fkgQAName ; }
static TFile * GetQAResultFile() ;
static const TString GetTaskName(TASKINDEX_t tsk) { return fgTaskNames[tsk] ; }
const Bool_t IsSet(DETECTORINDEX_t det, ALITASK_t tsk, QABIT_t bit) const ;
void Set(QABIT_t bit) ;
- static void SetQAResultDirName(const char * name) ;
+ static void SetQAResultDirName(const char * name) ;
static void SetQARefStorage(const char * name) ;
static void SetQARefDataDirName(RUNTYPE_t rt) { fkgRefDataDirName = GetRunTypeName(rt) ; }
static void SetQARefDataDirName(const char * name) ;
- void Show() const { ShowStatus(fDet) ; }
+ void Show() const { ShowStatus(fDet) ; }
void ShowAll() const ;
void UnSet(QABIT_t bit) ;
void SetStatusBit(DETECTORINDEX_t det, ALITASK_t tsk, QABIT_t bit) ;
void UnSetStatusBit(DETECTORINDEX_t det, ALITASK_t tsk, QABIT_t bit) ;
- static AliQA * fgQA ; // pointer to the instance of the singleton
- Int_t fNdet ; // number of detectors
- ULong_t * fQA ; //[fNdet] the status word 4 bits for SIM, REC, ESD, ANA each
- DETECTORINDEX_t fDet ; //! the current detector (ITS, TPC, ....)
- ALITASK_t fTask ; //! the current environment (SIM, REC, ESD, ANA)
- static TString fgDetNames[] ; //! list of detector names
- static TString fgGRPPath ; //! path of the GRP object in OCDB
- static TFile * fgQADataFile ; //! the output file where the quality assurance maker store their results
+ static AliQA * fgQA ; // pointer to the instance of the singleton
+ Int_t fNdet ; // number of detectors
+ ULong_t * fQA ; //[fNdet] the status word 4 bits for SIM, REC, ESD, ANA each
+ DETECTORINDEX_t fDet ; //! the current detector (ITS, TPC, ....)
+ ALITASK_t fTask ; //! the current environment (SIM, REC, ESD, ANA)
+ static TString fgDetNames[] ; //! list of detector names
+ static TString fgGRPPath ; //! path of the GRP object in OCDB
+ static TFile * fgQADataFile ; //! the output file where the quality assurance maker store their results
static TString fgQADataFileName ; //! the name of the file where the quality assurance maker store their results
- static TFile * fgQARefFile ; //! the output file where the quality assurance maker store their results
- static TString fgQARefDirName ; //! name of directory where to find the reference data file
+ static TFile * fgQARefFile ; //! the output file where the quality assurance maker store their results
+ static TString fgQARefDirName ; //! name of directory where to find the reference data file
static TString fgQARefFileName ; //! file name where to find the reference data
static TFile * fgQAResultFile ; //! File where to find the QA result
static TString fgQAResultDirName ; //! the location of the output file where the QA results are stored
static TString fgQAResultFileName ; //! the output file where the QA results are stored
- static TString fgRTNames[] ; //! list of Run Type names
- static TString fgTaskNames[] ; //! list of tasks names
+ static TString fgRTNames[] ; //! list of Run Type names
+ static TString fgTaskNames[] ; //! list of tasks names
static const TString fkgLabLocalFile ; //! label to identify a file as local
static const TString fkgLabLocalOCDB ; //! label to identify a file as local OCDB
static const TString fkgLabAliEnOCDB ; //! label to identify a file as AliEn OCDB
//_____________________________________________________________________________
AliQACheckerBase * AliQAChecker::GetDetQAChecker(Int_t det)
{
- // Gets the Quality Assurance checker for the detector specified by its name
-
- if (fCheckers[det])
+ // Gets the Quality Assurance checker for the detector specified by its name
+
+ if (fCheckers[det])
return fCheckers[det];
- TString detName(AliQA::GetDetName(det)) ;
+ TString detName(AliQA::GetDetName(det)) ;
AliDebug(1, Form("Retrieving QA checker for %s", detName.Data())) ;
TPluginManager* pluginManager = gROOT->GetPluginManager() ;
if (!pluginHandler) {
//AliInfo(Form("defining plugin for %s", qacName.Data()));
TString libs = gSystem->GetLibraries();
-
- if (libs.Contains("lib" + detName + "base.so") || (gSystem->Load("lib" + detName + "base.so") >= 0))
+
+ if (libs.Contains("lib" + detName + "base.so") || (gSystem->Load("lib" + detName + "base.so") >= 0))
pluginManager->AddHandler("AliQAChecker", detName, qacName, detName + "qac", qacName + "()");
- else
+ else
pluginManager->AddHandler("AliQAChecker", detName, qacName, detName, qacName + "()");
- pluginHandler = pluginManager->FindHandler("AliQAChecker", detName);
+ pluginHandler = pluginManager->FindHandler("AliQAChecker", detName);
- if (pluginHandler && (pluginHandler->LoadPlugin() == 0))
- qac = (AliQACheckerBase *) pluginHandler->ExecPlugin(0);
+ if (pluginHandler && (pluginHandler->LoadPlugin() == 0))
+ qac = (AliQACheckerBase *) pluginHandler->ExecPlugin(0);
- if (qac)
- fCheckers[det] = qac ;
- }
+ if (qac)
+ fCheckers[det] = qac ;
+ }
return qac ;
}
refStorage.ReplaceAll(AliQA::GetLabLocalFile(), "") ;
if ( fRefFile )
if ( fRefFile->IsOpen() )
- fRefFile->Close() ;
+ fRefFile->Close() ;
fRefFile = TFile::Open(refStorage.Data()) ;
if (!fRefFile) {
AliError(Form("Cannot find reference file %s", refStorage.Data())) ;
if (!dirFile) {
AliWarning(Form("Directory %s not found in %d", det, refStorage.Data())) ;
} else {
- dirFile = dirFile->GetDirectory(task) ;
+ dirFile = dirFile->GetDirectory(task) ;
if (!dirFile)
- AliWarning(Form("Directory %s/%s not found in %s", det, task, refStorage.Data())) ;
+ AliWarning(Form("Directory %s/%s not found in %s", det, task, refStorage.Data())) ;
}
} else if (refStorage.Contains(AliQA::GetLabLocalOCDB()) || refStorage.Contains(AliQA::GetLabAliEnOCDB())) {
AliCDBManager* man = AliCDBManager::Instance() ;
if ( strcmp(AliQA::GetRefDataDirName(), "") == 0 ) { // the name of the last level of the directory is not set (RUNTYPE)
// Get it from EventInfo
if (!fEventInfo) // not yet set, get the info from GRP
- LoadEventInfoFromGRP() ;
-
+ LoadEventInfoFromGRP() ;
AliQA::SetQARefDataDirName(fEventInfo->GetRunType()) ;
}
if ( ! man->GetLock() ) {
if (entry) {
TList * listDetQAD = dynamic_cast<TList *>(entry->GetObject()) ;
if ( listDetQAD )
- dirOCDB = dynamic_cast<TObjArray *>(listDetQAD->FindObject(task)) ;
+ dirOCDB = dynamic_cast<TObjArray *>(listDetQAD->FindObject(task)) ;
}
}
}
AliQADataMakerSteer(const AliQADataMakerSteer & qas) ;
AliQADataMakerSteer & operator = (const AliQADataMakerSteer & qas) ;
virtual ~AliQADataMakerSteer() ;
- UInt_t GetCurrentEvent() const { return fCurrentEvent ; }
- TObjArray * GetFromOCDB(AliQA::DETECTORINDEX_t det, AliQA::TASKINDEX_t task, const char * year) const ;
- Bool_t Merge(const Int_t runNumber = -1) const ;
- void Reset(const Bool_t sameCycle = kFALSE) ;
- TString Run(const char * detectors, const AliQA::TASKINDEX_t taskIndex, Bool_t const sameCycle = kFALSE, const char * fileName = NULL) ;
- TString Run(const char * detectors, AliRawReader * rawReader, Bool_t const sameCycle = kFALSE) ;
- TString Run(const char * detectors, const char * filename, Bool_t const sameCycle = kFALSE) ;
- Bool_t Save2OCDB(const Int_t runNumber, const char * year = "08", const Int_t cycleNumber=0, const char * detectors = "ALL") const ;
- void SetCycleLength(const AliQA::DETECTORINDEX_t det, const Int_t cycle) { fQACycles[det] = cycle ; }
- void SetEventRange(UInt_t first, UInt_t last) { fFirstEvent = first ; fMaxEvents = last - first + 1 ; }
- void SetFirsEvent(UInt_t first) { fFirstEvent = first ; }
- void SetMaxEvents(UInt_t max) { fMaxEvents = max ; }
- void SetNewCycle() { fCycleSame = kTRUE ; }
- void SetRunLoader(AliRunLoader * rl) { fRunLoader = rl ; }
+ UInt_t GetCurrentEvent() const { return fCurrentEvent ; }
+ TObjArray * GetFromOCDB(AliQA::DETECTORINDEX_t det, AliQA::TASKINDEX_t task, const char * year) const ;
+ Bool_t Merge(const Int_t runNumber = -1) const ;
+ void Reset(const Bool_t sameCycle = kFALSE) ;
+ TString Run(const char * detectors, const AliQA::TASKINDEX_t taskIndex, Bool_t const sameCycle = kFALSE, const char * fileName = NULL) ;
+ TString Run(const char * detectors, AliRawReader * rawReader, Bool_t const sameCycle = kFALSE) ;
+ TString Run(const char * detectors, const char * filename, Bool_t const sameCycle = kFALSE) ;
+ Bool_t Save2OCDB(const Int_t runNumber, const char * year = "08", const Int_t cycleNumber=0, const char * detectors = "ALL") const ;
+ void SetCycleLength(const AliQA::DETECTORINDEX_t det, const Int_t cycle) { fQACycles[det] = cycle ; }
+ void SetEventRange(UInt_t first, UInt_t last) { fFirstEvent = first ; fMaxEvents = last - first + 1 ; }
+ void SetFirsEvent(UInt_t first) { fFirstEvent = first ; }
+ void SetMaxEvents(UInt_t max) { fMaxEvents = max ; }
+ void SetNewCycle() { fCycleSame = kTRUE ; }
+ void SetRunLoader(AliRunLoader * rl) { fRunLoader = rl ; }
private:
- Bool_t DoIt(const AliQA::TASKINDEX_t taskIndex, const char * mode) ;
+ Bool_t DoIt(const AliQA::TASKINDEX_t taskIndex, const char * mode) ;
AliLoader * GetLoader(Int_t iDet) ;
const Int_t GetQACycles(const Int_t iDet) { return fQACycles[iDet] ; }
AliQADataMaker * GetQADataMaker(const Int_t iDet, const char * mode) ;
- Bool_t Init(const AliQA::TASKINDEX_t taskIndex, const char * mode, const char * fileName = NULL) ;
+ Bool_t Init(const AliQA::TASKINDEX_t taskIndex, const char * mode, const char * fileName = NULL) ;
Bool_t InitRunLoader() ;
Bool_t IsSelected(const char * detName) ;
Bool_t Finish(const AliQA::TASKINDEX_t taskIndex, const char * mode) ;
UInt_t fCurrentEvent ; //! event counter
- Bool_t fCycleSame ; //! true if 2 consecutive data making for a same detector
- TString fDetectors ; //! list of active detectors
- TString fDetectorsW ; //! list of active detectors with QA implemented
+ Bool_t fCycleSame ; //! true if 2 consecutive data making for a same detector
+ TString fDetectors ; //! list of active detectors
+ TString fDetectorsW ; //! list of active detectors with QA implemented
AliESDEvent * fESD ; //! current ESD
TTree * fESDTree ; //! current ESD Tree
Bool_t fFirst ; //! to search the detector QA data maker only once