TString AliQA::fgQAResultDirName = "" ;
TString AliQA::fgQAResultFileName = "QA.root" ;
TString AliQA::fgDetNames[] = {"ITS", "TPC", "TRD", "TOF", "PHOS", "HMPID", "EMCAL", "MUON", "FMD",
- "ZDC", "PMD", "T0", "VZERO", "ACORDE", "HLT"} ;
+ "ZDC", "PMD", "T0", "VZERO", "ACORDE", "HLT", "Global"} ;
TString AliQA::fgTaskNames[] = {"Raws", "Hits", "SDigits", "Digits", "RecPoints", "TrackSegments", "RecParticles", "ESDs"} ;
const TString AliQA::fkgLabLocalFile = "file://" ;
const TString AliQA::fkgLabLocalOCDB = "local://" ;
fDet(kNULLDET),
fTask(tsk)
{
- AliInfo(Form("TTTTTTTTTTTTTTTTTTTTTTT %d", tsk)) ;
// constructor to be used in the AliRoot module (SIM, REC, ESD or ANA)
if (! CheckRange(tsk) ) {
fTask = kNULLTASK ;
}
//_______________________________________________________________
-const char * AliQA::GetDetName(Int_t det)
-{
- // returns the detector name corresponding to a given index (needed in a loop)
-
- if ( det >= 0 && det < kNDET)
- return (fgDetNames[det]).Data() ;
- else
- return NULL ;
-}
-
-//_______________________________________________________________
-const AliQA::DETECTORINDEX_t AliQA::GetDetName(const char * name)
+const AliQA::DETECTORINDEX_t AliQA::GetDetIndex(const char * name)
{
// returns the detector index corresponding to a given name
TString sname(name) ;
return rv ;
}
+//_______________________________________________________________
+const char * AliQA::GetDetName(Int_t det)
+{
+ // returns the detector name corresponding to a given index (needed in a loop)
+
+ if ( det >= 0 && det < kNDET)
+ return (fgDetNames[det]).Data() ;
+ else
+ return NULL ;
+}
+
//_______________________________________________________________
TFile * AliQA::GetQADataFile(const char * name, const Int_t run, const Int_t cycle)
{
enum DETECTORINDEX_t {
kNULLDET=-1, kITS, kTPC, kTRD, kTOF, kPHOS, kHMPID, kEMCAL, kMUON, kFMD,
- kZDC, kPMD, kT0, kVZERO, kACORDE, kHLT, kNDET };
+ kZDC, kPMD, kT0, kVZERO, kACORDE, kHLT, kGLOBAL, kNDET };
enum ALITASK_t {
kNULLTASK=-1, kRAW, kSIM, kREC, kESD, kANA, kNTASK };
enum QABIT_t {
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 DETECTORINDEX_t GetDetName(const char * name) ;
- static const TString GetTaskName(TASKINDEX_t tsk) { return fgTaskNames[tsk] ; }
static const char * GetDetName(Int_t det) ;
static const char * GetQADataFileName() { return fgQADataFileName.Data() ; }
static TFile * GetQADataFile(const char * name, const Int_t run, const Int_t cycle) ;
static const char * GetQARefStorage() { return fgQARefDirName.Data() ; }
static const char * GetRefOCDBDirName() { return fkgRefOCDBDirName.Data() ; }
static const char * GetRefDataDirName() { return fkgRefDataDirName.Data() ; }
+ 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) ;
{
// this method must be oveloaded by detectors
// sets the QA result to Fatal
- AliQA::Instance(AliQA::GetDetName(GetName())) ;
+ AliQA::Instance(AliQA::GetDetIndex(GetName())) ;
AliQA * qa = AliQA::Instance(task) ;
qa->Set(AliQA::kFATAL) ;
AliQA::GetQAResultFile()->cd() ;
list = fRecPointsQAList ;
else if ( task == AliQA::kESDS )
list = fESDsQAList ;
-
+
+ DefaultEndOfDetectorCycle(task) ;
EndOfDetectorCycle(task, list) ;
- TDirectory * subDir = fDetectorDir->GetDirectory(AliQA::GetTaskName(task)) ;
+ TDirectory * subDir = 0x0 ;
+ if (fDetectorDir)
+ subDir = fDetectorDir->GetDirectory(AliQA::GetTaskName(task)) ;
if ( subDir ) {
subDir->cd() ;
- list->Write() ;
+ if (list)
+ list->Write() ;
}
}
fOutput->Close() ;
fOutput = AliQA::GetQADataFile(GetName(), fRun, fCurrentCycle) ;
}
- AliDebug(1, Form(" Run %d Cycle %d task %s file %s",
+ AliInfo(Form(" Run %d Cycle %d task %s file %s",
fRun, fCurrentCycle, AliQA::GetTaskName(task).Data(), fOutput->GetName() )) ;
fDetectorDir = fOutput->GetDirectory(GetDetectorDirName()) ;
}
//_____________________________________________________________________________
-TString AliQADataMakerSteer::Run(const char * detectors, AliRawReader * rawReader)
+TString AliQADataMakerSteer::Run(const char * detectors, AliRawReader * rawReader, const Bool_t sameCycle)
{
//Runs all the QA data Maker for Raws only
-
- fRawReader = rawReader ;
+
+ fCycleSame = sameCycle ;
+ fRawReader = rawReader ;
fDetectors = detectors ;
- fDetectorsW = detectors ;
-
+ fDetectorsW = detectors ;
+
if ( !Init(AliQA::kRAWS, "rec") )
return kFALSE ;
fRawReaderDelete = kFALSE ;
}
//_____________________________________________________________________________
-TString AliQADataMakerSteer::Run(const char * detectors, const char * fileName)
+TString AliQADataMakerSteer::Run(const char * detectors, const char * fileName, const Bool_t sameCycle)
{
//Runs all the QA data Maker for Raws only
-
+
+ fCycleSame = sameCycle ;
fDetectors = detectors ;
fDetectorsW = detectors ;
}
//_____________________________________________________________________________
-TString AliQADataMakerSteer::Run(const char * detectors, const AliQA::TASKINDEX_t taskIndex, const char * fileName )
+TString AliQADataMakerSteer::Run(const char * detectors, const AliQA::TASKINDEX_t taskIndex, Bool_t const sameCycle, const char * fileName )
{
// Runs all the QA data Maker for every detector
-
- fDetectors = detectors ;
- fDetectorsW = detectors ;
-
+
+ fCycleSame = sameCycle ;
+ fDetectors = detectors ;
+ fDetectorsW = detectors ;
+
TString mode ;
if ( (taskIndex == AliQA::kHITS) || (taskIndex == AliQA::kSDIGITS) || (taskIndex == AliQA::kDIGITS) )
mode = "sim" ;
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, const char * fileName = NULL) ;
- TString Run(const char * detectors, AliRawReader * rawReader) ;
- TString Run(const char * detectors, const char * filename) ;
+ 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 SetMaxEvents(UInt_t max) { fMaxEvents = max ; }
if (!MisalignGeometry(fLoadAlignData)) if (fStopOnError) return kFALSE;
AliSysInfo::AddStamp("LoadGeom");
- //QA
+ //QA
+ Int_t sameQACycle = kFALSE ;
AliQADataMakerSteer qas ;
- if (fRunQA && fRawReader) qas.Run(fRunLocalReconstruction, fRawReader) ;
- // checking the QA of previous steps
+ if (fRunQA && fRawReader) {
+ qas.Run(fRunLocalReconstruction, fRawReader) ;
+ sameQACycle = kTRUE;
+ }
+ // checking the QA of previous steps
//CheckQA() ;
/*
fgkDetectorName[iDet]));
qadm->Init(AliQA::kRECPOINTS, AliCDBManager::Instance()->GetRun());
qadm->Init(AliQA::kESDS, AliCDBManager::Instance()->GetRun());
- if (!fInLoopQA) {
- qadm->StartOfCycle(AliQA::kRECPOINTS);
- qadm->StartOfCycle(AliQA::kESDS,"same");
- }
+ // if (!fInLoopQA) {
+// qadm->StartOfCycle(AliQA::kRECPOINTS);
+// qadm->StartOfCycle(AliQA::kESDS,"same");
+// }
}
}
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(fgkNDetectors);
+ AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
AliInfo(Form("Initializing the global QA data maker"));
TObjArray *arr=
qadm->Init(AliQA::kRECPOINTS, AliCDBManager::Instance()->GetRun());
AliTracker::SetResidualsArray(arr);
qadm->Init(AliQA::kESDS, AliCDBManager::Instance()->GetRun());
if (!fInLoopQA) {
- qadm->StartOfCycle(AliQA::kRECPOINTS);
- qadm->StartOfCycle(AliQA::kESDS,"same");
+ qadm->StartOfCycle(AliQA::kRECPOINTS, sameQACycle);
+ qadm->StartOfCycle(AliQA::kESDS, "same");
}
}
if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
AliQADataMakerRec *qadm = GetQADataMaker(iDet);
if (!qadm) continue;
- qadm->StartOfCycle(AliQA::kRECPOINTS);
+ qadm->StartOfCycle(AliQA::kRECPOINTS, sameQACycle);
qadm->StartOfCycle(AliQA::kESDS, "same") ;
}
}
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(fgkNDetectors);
- qadm->StartOfCycle(AliQA::kRECPOINTS);
- qadm->StartOfCycle(AliQA::kESDS,"same");
+ AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
+ qadm->StartOfCycle(AliQA::kRECPOINTS, sameQACycle);
+ qadm->StartOfCycle(AliQA::kESDS, "same");
}
}
if (fCleanESD) CleanESD(esd);
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(fgkNDetectors);
+ AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
if (qadm) qadm->Exec(AliQA::kESDS, esd);
}
RunQA(fFillESD.Data(), esd);
TString detStr(fFillESD);
for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
- if (!IsSelected(fgkDetectorName[iDet], detStr)) continue;
- AliQADataMakerRec * qadm = GetQADataMaker(iDet);
- if (!qadm) continue;
- qadm->EndOfCycle(AliQA::kRECPOINTS);
- qadm->EndOfCycle(AliQA::kESDS);
- qadm->Finish();
- }
+ if (!IsSelected(fgkDetectorName[iDet], detStr))
+ continue;
+ AliQADataMakerRec * qadm = GetQADataMaker(iDet);
+ if (!qadm)
+ continue;
+ qadm->EndOfCycle(AliQA::kRECPOINTS);
+ qadm->EndOfCycle(AliQA::kESDS);
+ qadm->Finish();
+ }
}
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(fgkNDetectors);
+ AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
if (qadm) {
qadm->EndOfCycle(AliQA::kRECPOINTS);
qadm->EndOfCycle(AliQA::kESDS);
//Finish QA and end of cycle for out-of-loop QA
if (!fInLoopQA) {
if (fRunQA) {
- qas.Run(fRunLocalReconstruction.Data(), AliQA::kRECPOINTS);
+ qas.Run(fRunLocalReconstruction.Data(), AliQA::kRECPOINTS, sameQACycle);
//qas.Reset() ;
- qas.Run(fRunTracking.Data(), AliQA::kESDS);
+ qas.Run(fRunTracking.Data(), AliQA::kESDS, sameQACycle);
}
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(fgkNDetectors);
+ AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
if (qadm) {
qadm->EndOfCycle(AliQA::kRECPOINTS);
qadm->EndOfCycle(AliQA::kESDS);