fInitCDBCalled(kFALSE),
fSetRunNumberFromDataCalled(kFALSE),
fQADetectors("ALL"),
+ fQASteer(NULL),
fQATasks("ALL"),
fRunQA(kTRUE),
fRunGlobalQA(kTRUE),
fReconstructor[iDet] = NULL;
fLoader[iDet] = NULL;
fTracker[iDet] = NULL;
- fQADataMaker[iDet] = NULL;
- fQACycles[iDet] = 999999;
+ fQACycles[iDet] = 999999;
}
- fQADataMaker[fgkNDetectors]=NULL; //Global QA
+ fQASteer = new AliQADataMakerSteer("rec") ;
AliPID pid;
}
fInitCDBCalled(rec.fInitCDBCalled),
fSetRunNumberFromDataCalled(rec.fSetRunNumberFromDataCalled),
fQADetectors(rec.fQADetectors),
+ fQASteer(rec.fQASteer),
fQATasks(rec.fQATasks),
fRunQA(rec.fRunQA),
fRunGlobalQA(rec.fRunGlobalQA),
fReconstructor[iDet] = NULL;
fLoader[iDet] = NULL;
fTracker[iDet] = NULL;
- fQADataMaker[iDet] = NULL;
- fQACycles[iDet] = rec.fQACycles[iDet];
+ fQACycles[iDet] = rec.fQACycles[iDet];
}
- fQADataMaker[fgkNDetectors]=NULL; //Global QA
for (Int_t i = 0; i < rec.fSpecCDBUri.GetEntriesFast(); i++) {
if (rec.fSpecCDBUri[i]) fSpecCDBUri.Add(rec.fSpecCDBUri[i]->Clone());
}
fOptions.Delete();
fSpecCDBUri.Delete();
delete fForcedFieldMap;
-
+ delete fQASteer ;
AliCodeTimer::Instance()->Print();
}
//QA
if (fRunQA && fRawReader && fQATasks.Contains(Form("%d", AliQA::kRAWS))) {
- AliQADataMakerSteer qas ;
- qas.Run(fQADetectors, fRawReader) ;
+ fQASteer->Run(fQADetectors, fRawReader) ;
fSameQACycle = kTRUE ;
}
//Initialize the QA and start of cycle for out-of-cycle QA
for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr))
continue;
- AliQADataMakerRec *qadm = GetQADataMaker(iDet);
+ AliQADataMaker *qadm = fQASteer->GetQADataMaker(iDet);
if (!qadm)
continue;
AliInfo(Form("Initializing the QA data maker for %s",
}
}
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
+ AliQADataMaker *qadm = fQASteer->GetQADataMaker(AliQA::kGLOBAL);
AliInfo(Form("Initializing the global QA data maker"));
if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS))) {
TObjArray *arr=
//Start of cycle for the in-loop QA
if (fInLoopQA) {
if (fRunQA) {
- fSameQACycle = kFALSE ;
+ fSameQACycle = kFALSE ;
TString detStr(fQADetectors);
for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr))
continue;
- AliQADataMakerRec *qadm = GetQADataMaker(iDet);
+ AliQADataMaker *qadm = fQASteer->GetQADataMaker(iDet);
if (!qadm)
continue;
if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS))) {
}
if (fRunGlobalQA) {
fSameQACycle = kFALSE;
- AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
+ AliQADataMaker *qadm = fQASteer->GetQADataMaker(AliQA::kGLOBAL);
if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS))) {
qadm->StartOfCycle(AliQA::kRECPOINTS, fSameQACycle);
fSameQACycle = kTRUE;
if (fRunQA) {
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
+ AliQADataMaker *qadm = fQASteer->GetQADataMaker(AliQA::kGLOBAL);
if (qadm && fQATasks.Contains(Form("%d", AliQA::kESDS)))
qadm->Exec(AliQA::kESDS, fesd);
}
for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], fQADetectors))
continue;
- AliQADataMakerRec * qadm = GetQADataMaker(iDet);
+ AliQADataMaker * qadm = fQASteer->GetQADataMaker(iDet);
if (!qadm)
continue;
if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS)))
}
}
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
+ AliQADataMaker *qadm = fQASteer->GetQADataMaker(AliQA::kGLOBAL);
if (qadm) {
if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS)))
qadm->EndOfCycle(AliQA::kRECPOINTS);
//Finish QA and end of cycle for out-of-loop QA
if (!fInLoopQA) {
if (fRunQA) {
- AliQADataMakerSteer qas;
if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS)))
- qas.Run(fRunLocalReconstruction.Data(), AliQA::kRECPOINTS, fSameQACycle);
- //qas.Reset() ;
+ fQASteer->Run(fRunLocalReconstruction.Data(), AliQA::kRECPOINTS, fSameQACycle);
+ //fQASteer->Reset() ;
if (fQATasks.Contains(Form("%d", AliQA::kESDS)))
- qas.Run(fRunLocalReconstruction.Data(), AliQA::kESDS, fSameQACycle);
+ fQASteer->Run(fRunLocalReconstruction.Data(), AliQA::kESDS, fSameQACycle);
if (fRunGlobalQA) {
- AliQADataMakerRec *qadm = GetQADataMaker(AliQA::kGLOBAL);
+ AliQADataMaker *qadm = fQASteer->GetQADataMaker(AliQA::kGLOBAL);
if (qadm) {
if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS)))
qadm->EndOfCycle(AliQA::kRECPOINTS);
if (fRawReader && reconstructor->HasDigitConversion()) {
AliInfo(Form("converting raw data digits into root objects for %s",
fgkDetectorName[iDet]));
- AliCodeTimerAuto(Form("converting raw data digits into root objects for %s",
- fgkDetectorName[iDet]));
+// AliCodeTimerAuto(Form("converting raw data digits into root objects for %s",
+// fgkDetectorName[iDet]));
loader->LoadDigits("update");
loader->CleanDigits();
loader->MakeDigitsContainer();
}
// local reconstruction
AliInfo(Form("running reconstruction for %s", fgkDetectorName[iDet]));
- AliCodeTimerAuto(Form("running reconstruction for %s", fgkDetectorName[iDet]));
+ //AliCodeTimerAuto(Form("running reconstruction for %s", fgkDetectorName[iDet]));
loader->LoadRecPoints("update");
loader->CleanRecPoints();
loader->MakeRecPointsContainer();
}
// In-loop QA for local reconstrucion
- TString detQAStr(fQADetectors) ;
+ TString detQAStr(fQADetectors) ;
if (fRunQA && fInLoopQA && IsSelected(fgkDetectorName[iDet], detQAStr) ) {
- AliQADataMakerRec * qadm = GetQADataMaker(iDet);
+ AliQADataMaker * qadm = fQASteer->GetQADataMaker(iDet);
if (qadm) {
//AliCodeTimerStart
//(Form("Running QA data maker for %s", fgkDetectorName[iDet]));
fLoader[iDet] = NULL;
delete fTracker[iDet];
fTracker[iDet] = NULL;
-// delete fQADataMaker[iDet];
-// fQADataMaker[iDet] = NULL;
}
delete fVertexer;
fVertexer = NULL;
}
-//_____________________________________________________________________________
-AliQADataMakerRec * AliReconstruction::GetQADataMaker(Int_t iDet)
-{
- // get the quality assurance data maker object and the loader for a detector
-
- if (fQADataMaker[iDet])
- return fQADataMaker[iDet];
-
- AliQADataMakerRec * qadm = NULL;
- if (iDet == fgkNDetectors) { //Global QA
- qadm = new AliGlobalQADataMaker();
- fQADataMaker[iDet] = qadm;
- return qadm;
- }
-
- // load the QA data maker object
- TPluginManager* pluginManager = gROOT->GetPluginManager();
- TString detName = fgkDetectorName[iDet];
- TString qadmName = "Ali" + detName + "QADataMakerRec";
- if (!fIsNewRunLoader && !fRunLoader->GetLoader(detName+"Loader") && (detName != "HLT"))
- return NULL;
-
- // first check if a plugin is defined for the quality assurance data maker
- TPluginHandler* pluginHandler = pluginManager->FindHandler("AliQADataMakerRec", detName);
- // if not, add a plugin for it
- if (!pluginHandler) {
- AliDebug(1, Form("defining plugin for %s", qadmName.Data()));
- TString libs = gSystem->GetLibraries();
- if (libs.Contains("lib" + detName + "base.so") ||
- (gSystem->Load("lib" + detName + "base.so") >= 0)) {
- pluginManager->AddHandler("AliQADataMakerRec", detName,
- qadmName, detName + "qadm", qadmName + "()");
- } else {
- pluginManager->AddHandler("AliQADataMakerRec", detName,
- qadmName, detName, qadmName + "()");
- }
- pluginHandler = pluginManager->FindHandler("AliQADataMakerRec", detName);
- }
- if (pluginHandler && (pluginHandler->LoadPlugin() == 0)) {
- qadm = (AliQADataMakerRec *) pluginHandler->ExecPlugin(0);
- }
-
- fQADataMaker[iDet] = qadm;
-
- return qadm;
-}
-
//_____________________________________________________________________________
Bool_t AliReconstruction::RunQA(AliESDEvent *& esd)
{
for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
if (!IsSelected(fgkDetectorName[iDet], detStr))
continue;
- AliQADataMakerRec * qadm = GetQADataMaker(iDet);
+ AliQADataMaker * qadm = fQASteer->GetQADataMaker(iDet);
if (!qadm)
continue;
AliCodeTimerStart(Form("running quality assurance data maker for %s", fgkDetectorName[iDet]));