/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * *
+ * *QARef
* Author: The ALICE Off-line Project. *
* Contributors are mentioned in the code where appropriate. *
* *
fAlignObjArray(NULL),
fCDBUri(),
+ fQARefUri(),
fSpecCDBUri(),
fInitCDBCalled(kFALSE),
fSetRunNumberFromDataCalled(kFALSE),
fRunQA(kTRUE),
fRunGlobalQA(kTRUE),
fSameQACycle(kFALSE),
-
+ fInitQACalled(kFALSE),
fRunPlaneEff(kFALSE),
fesd(NULL),
fAlignObjArray(rec.fAlignObjArray),
fCDBUri(rec.fCDBUri),
+ fQARefUri(rec.fQARefUri),
fSpecCDBUri(),
fInitCDBCalled(rec.fInitCDBCalled),
fSetRunNumberFromDataCalled(rec.fSetRunNumberFromDataCalled),
fRunQA(rec.fRunQA),
fRunGlobalQA(rec.fRunGlobalQA),
fSameQACycle(rec.fSameQACycle),
+ fInitQACalled(rec.fInitQACalled),
fRunPlaneEff(rec.fRunPlaneEff),
fesd(NULL),
delete fAlignObjArray; fAlignObjArray = NULL;
fCDBUri = "";
+ fQARefUri = rec.fQARefUri;
fSpecCDBUri.Delete();
fInitCDBCalled = rec.fInitCDBCalled;
fSetRunNumberFromDataCalled = rec.fSetRunNumberFromDataCalled;
fRunQA = rec.fRunQA;
fRunGlobalQA = rec.fRunGlobalQA;
fSameQACycle = rec.fSameQACycle;
+ fInitQACalled = rec.fInitQACalled;
fRunPlaneEff = rec.fRunPlaneEff;
fesd = NULL;
AliCodeTimer::Instance()->Print();
}
+//_____________________________________________________________________________
+void AliReconstruction::InitQA()
+{
+ //Initialize the QA and start of cycle
+ AliCodeTimerAuto("");
+
+ if (fInitQACalled) return;
+ fInitQACalled = kTRUE;
+
+ fQAManager = AliQAManager::QAManager("rec") ;
+ if (fQAManager->IsDefaultStorageSet()) {
+ AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ AliWarning("Default QA reference storage has been already set !");
+ AliWarning(Form("Ignoring the default storage declared in AliReconstruction: %s",fQARefUri.Data()));
+ AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ fQARefUri = fQAManager->GetDefaultStorage()->GetURI();
+ } else {
+ if (fQARefUri.Length() > 0) {
+ AliDebug(2,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ AliDebug(2, Form("Default QA reference storage is set to: %s", fQARefUri.Data()));
+ AliDebug(2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ } else {
+ fQARefUri="local://$ALICE_ROOT/QAref";
+ AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ AliWarning("Default QA refeference storage not yet set !!!!");
+ AliWarning(Form("Setting it now to: %s", fQARefUri.Data()));
+ AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+
+ }
+ fQAManager->SetDefaultStorage(fQARefUri);
+ }
+
+ if (fRunQA) {
+ fQAManager->SetActiveDetectors(fQADetectors) ;
+ for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
+ fQAManager->SetCycleLength(AliQA::DETECTORINDEX_t(det), fQACycles[det]) ;
+ fQAManager->SetWriteExpert(AliQA::DETECTORINDEX_t(det)) ;
+ }
+ if (!fRawReader && fQATasks.Contains(AliQA::kRAWS))
+ fQATasks.ReplaceAll(Form("%d",AliQA::kRAWS), "") ;
+ fQAManager->SetTasks(fQATasks) ;
+ fQAManager->InitQADataMaker(AliCDBManager::Instance()->GetRun()) ;
+ }
+ if (fRunGlobalQA) {
+ Bool_t sameCycle = kFALSE ;
+ AliQADataMaker *qadm = fQAManager->GetQADataMaker(AliQA::kGLOBAL);
+ AliInfo(Form("Initializing the global QA data maker"));
+ if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS))) {
+ qadm->StartOfCycle(AliQA::kRECPOINTS, AliCDBManager::Instance()->GetRun(), sameCycle) ;
+ TObjArray **arr=qadm->Init(AliQA::kRECPOINTS);
+ AliTracker::SetResidualsArray(arr);
+ sameCycle = kTRUE ;
+ }
+ if (fQATasks.Contains(Form("%d", AliQA::kESDS))) {
+ qadm->StartOfCycle(AliQA::kESDS, AliCDBManager::Instance()->GetRun(), sameCycle) ;
+ qadm->Init(AliQA::kESDS);
+ }
+ AliSysInfo::AddStamp("InitQA");
+ }
+}
+
//_____________________________________________________________________________
void AliReconstruction::InitCDB()
{
}
+//_____________________________________________________________________________
+void AliReconstruction::SetQARefDefaultStorage(const char* uri) {
+ // Store the desired default CDB storage location
+ // Activate it later within the Run() method
+
+ fQARefUri = uri;
+ AliQA::SetQARefStorage(fQARefUri.Data()) ;
+
+}
//_____________________________________________________________________________
void AliReconstruction::SetSpecificStorage(const char* calibType, const char* uri) {
// Store a detector-specific CDB storage location
//QA
//Initialize the QA and start of cycle
- if (fRunQA) {
- fQAManager = AliQAManager::QAManager("rec") ;
- fQAManager->SetActiveDetectors(fQADetectors) ;
- for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
- fQAManager->SetCycleLength(AliQA::DETECTORINDEX_t(det), fQACycles[det]) ;
- fQAManager->SetWriteExpert(AliQA::DETECTORINDEX_t(det)) ;
- }
- if (!fRawReader && fQATasks.Contains(AliQA::kRAWS))
- fQATasks.ReplaceAll(Form("%d",AliQA::kRAWS), "") ;
- fQAManager->SetTasks(fQATasks) ;
- fQAManager->InitQADataMaker(AliCDBManager::Instance()->GetRun()) ;
- }
-
- if (fRunGlobalQA) {
- Bool_t sameCycle = kFALSE ;
- if (!fQAManager)
- fQAManager = AliQAManager::QAManager("rec") ;
- AliQADataMaker *qadm = fQAManager->GetQADataMaker(AliQA::kGLOBAL);
- AliInfo(Form("Initializing the global QA data maker"));
- if (fQATasks.Contains(Form("%d", AliQA::kRECPOINTS))) {
- qadm->StartOfCycle(AliQA::kRECPOINTS, AliCDBManager::Instance()->GetRun(), sameCycle) ;
- TObjArray **arr=qadm->Init(AliQA::kRECPOINTS);
- AliTracker::SetResidualsArray(arr);
- sameCycle = kTRUE ;
- }
- if (fQATasks.Contains(Form("%d", AliQA::kESDS))) {
- qadm->StartOfCycle(AliQA::kESDS, AliCDBManager::Instance()->GetRun(), sameCycle) ;
- qadm->Init(AliQA::kESDS);
- }
- }
+ if (fRunQA || fRunGlobalQA)
+ InitQA() ;
//Initialize the Plane Efficiency framework
if (fRunPlaneEff && !InitPlaneEff()) {
// Clusters and tracks are created for all detectors and all events by //
// typing: //
// //
-// AliReconstruction rec; //
+// AliReconstruction rec; QARef //
// rec.Run(); //
// //
///////////////////////////////////////////////////////////////////////////////
void SetQAWriteExpert(AliQA::DETECTORINDEX_t det) { fQAWriteExpert[det] = kTRUE ; }
Bool_t SetRunQA(TString detAndAction="ALL:ALL") ;
void SetRunGlobalQA(Bool_t flag=kTRUE){fRunGlobalQA = flag;}
+ void SetQARefDefaultStorage(const char* uri);
+ void InitQA();
+
// Plane Efficiency Evaluation
void SetRunPlaneEff(Bool_t flag=kFALSE) {fRunPlaneEff = flag;}
TObjArray* fAlignObjArray; //! array with the alignment objects to be applied to the geometry
TString fCDBUri; //! Uri of the default CDB storage
+ TString fQARefUri; //! Uri of the default QA reference storage
TObjArray fSpecCDBUri; //! Array with detector specific CDB storages
Bool_t fInitCDBCalled; //! flag to check if CDB storages are already initialized
Bool_t fSetRunNumberFromDataCalled; //! flag to check if run number is already loaded from run loader
Bool_t fRunQA ; // Run QA flag
Bool_t fRunGlobalQA; // Run global QA flag
Bool_t fSameQACycle; //! open a new QA data file or not
+ Bool_t fInitQACalled; //! control of QA intialisation
// Plane Efficiency Evaluation
Bool_t fRunPlaneEff ; // Evaluate Plane Efficiency
fUseBkgrdVertex(kTRUE),
fRegionOfInterest(kFALSE),
fCDBUri(""),
+ fQARefUri(""),
fSpecCDBUri(),
fRun(-1),
fSeed(0),
fNEvents = nEvents;
}
+//_____________________________________________________________________________
+void AliSimulation::InitQA()
+{
+ // activate a default CDB storage
+ // First check if we have any CDB storage set, because it is used
+ // to retrieve the calibration and alignment constants
+
+ if (fInitCDBCalled) return;
+ fInitCDBCalled = kTRUE;
+
+ fQAManager = AliQAManager::QAManager("sim") ;
+ fQAManager->SetActiveDetectors(fQADetectors) ;
+ fQATasks = Form("%d %d %d", AliQA::kHITS, AliQA::kSDIGITS, AliQA::kDIGITS) ;
+ fQAManager->SetTasks(fQATasks) ;
+
+ if (fQAManager->IsDefaultStorageSet()) {
+ AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ AliWarning("Default QA reference storage has been already set !");
+ AliWarning(Form("Ignoring the default storage declared in AliSimulation: %s",fQARefUri.Data()));
+ AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ fQARefUri = fQAManager->GetDefaultStorage()->GetURI();
+ } else {
+ if (fQARefUri.Length() > 0) {
+ AliDebug(2,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ AliDebug(2, Form("Default QA reference storage is set to: %s", fQARefUri.Data()));
+ AliDebug(2, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ } else {
+ fQARefUri="local://$ALICE_ROOT/QARef";
+ AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ AliWarning("Default QA reference storage not yet set !!!!");
+ AliWarning(Form("Setting it now to: %s", fQARefUri.Data()));
+ AliWarning("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ }
+ fQAManager->SetDefaultStorage(fQARefUri);
+ }
+}
+
//_____________________________________________________________________________
void AliSimulation::InitCDB()
{
//_____________________________________________________________________________
void AliSimulation::SetDefaultStorage(const char* uri) {
-// Store the desired default CDB storage location
-// Activate it later within the Run() method
-
+ // Store the desired default CDB storage location
+ // Activate it later within the Run() method
+
fCDBUri = uri;
+
+}
+//_____________________________________________________________________________
+void AliSimulation::SetQARefDefaultStorage(const char* uri) {
+ // Store the desired default CDB storage location
+ // Activate it later within the Run() method
+
+ fQARefUri = uri;
+ AliQA::SetQARefStorage(fQARefUri.Data()) ;
}
//_____________________________________________________________________________
void SetQACycles(AliQA::DETECTORINDEX_t det, const Int_t cycles) { fQAManager->SetCycleLength(det, cycles) ; }
Bool_t RunQA() ;
Bool_t SetRunQA(TString detAndAction="ALL:ALL") ;
- void SetQAWriteExpert(AliQA::DETECTORINDEX_t det) { fQAManager->SetWriteExpert(det) ; }
+ void SetQAWriteExpert(AliQA::DETECTORINDEX_t det) { fQAManager->SetWriteExpert(det) ; }
+ void SetQARefDefaultStorage(const char* uri);
+ void InitQA();
+
+
+
void SetWriteGRPEntry(Bool_t flag = kTRUE) { fWriteGRPEntry = flag; }
void WriteGRPEntry();
Bool_t fRegionOfInterest; // digitization in region of interest
TString fCDBUri; //! Uri of the default CDB storage
+ TString fQARefUri; //! Uri of the default QA reference storage
TObjArray fSpecCDBUri; //! Array with detector specific CDB storages
Int_t fRun; //! Run number, will be passed to CDB and gAlice!!
Int_t fSeed; //! Seed for random number generator
Form("local://%s",gSystem->pwd()));
reco.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/QAref") ;
+ reco.SetQARefefaultStorage("local://$ALICE_ROOT/QAref") ;
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
reco.SetQACycles(det, 999) ;
reco.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/QAref") ;
+ reco.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
reco.SetQACycles(det, 999) ;
simulator.SetSpecificStorage("GRP/GRP/Data",
Form("local://%s",gSystem->pwd()));
simulator.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/QAref") ;
+ simulator.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
simulator.SetQACycles(det, nev+1) ;
reco.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/OCDB") ;
+ reco.SetQARefDefaultStorage("local://$ALICE_ROOT/OCDB") ;
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
reco.SetQACycles(det, 999) ;
AliQA::SetQARefStorage("local://$ALICE_ROOT/OCDB") ;
//AliQA::SetQARefDataDirName(AliQA::kMONTECARLO) ; //RUN_TYPE
- AliQADataMakerSteer qas("rec") ;
+ AliQADataMamanager qas("rec") ;
qas.Run(detectors.Data(), AliQA::kRECPOINTS);
}
reco.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/OCDB") ;
+ reco.SetQARefDefaultStorage("local://$ALICE_ROOT/OCDB") ;
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
reco.SetQACycles(det, 9999) ;
reco.SetQAWriteExpert(det) ;
Form("local://%s",gSystem->pwd()));
simu.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/OCDB") ;
+ simu.SetQARefDefaultStorage("local://$ALICE_ROOT/OCDB") ;
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
simu.SetQACycles(det, 2) ;
reco.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/QAref") ;
+ reco.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
reco.SetQACycles(det, 999) ;
reco.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/QAref") ;
+ reco.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
reco.SetQACycles(det, 999) ;
void sim(Int_t nev=20) {
if (gSystem->Getenv("EVENT"))
nev = atoi(gSystem->Getenv("EVENT")) ;
+
AliSimulation simulator;
simulator.SetMakeSDigits("TRD TOF PHOS HMPID EMCAL MUON FMD ZDC PMD T0 VZERO");
simulator.SetMakeDigitsFromHits("ITS TPC");
simulator.SetDefaultStorage("local://$ALICE_ROOT/OCDB");
simulator.SetSpecificStorage("GRP/GRP/Data",
Form("local://%s",gSystem->pwd()));
+
simulator.SetRunQA("ALL:ALL") ;
- AliQA::SetQARefStorage("local://$ALICE_ROOT/QAref") ;
+ simulator.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;
+
for (Int_t det = 0 ; det < AliQA::kNDET ; det++) {
simulator.SetQACycles(det, nev+1) ;
}