//
// --- ROOT system ---
-#include <TCanvas.h>
#include <TFile.h>
#include <TTree.h>
#include <TClonesArray.h>
AliQADataMaker(name, title),
fDigitsQAList(NULL),
fHitsQAList(NULL),
- fSDigitsQAList(NULL)
+ fSDigitsQAList(NULL),
+ fHitsArray(NULL),
+ fSDigitsArray(NULL)
{
// ctor
fDetectorDirName = GetName() ;
AliQADataMaker(qadm.GetName(), qadm.GetTitle()),
fDigitsQAList(qadm.fDigitsQAList),
fHitsQAList(qadm.fHitsQAList),
- fSDigitsQAList(qadm.fSDigitsQAList)
+ fSDigitsQAList(qadm.fSDigitsQAList),
+ fHitsArray(NULL),
+ fSDigitsArray(NULL)
{
//copy ctor
fDetectorDirName = GetName() ;
}
delete[] fSDigitsQAList ;
}
+ if (fHitsArray) {
+ fHitsArray->Clear() ;
+ delete fHitsArray ;
+ }
+ if (fSDigitsArray) {
+ fSDigitsArray->Clear() ;
+ delete fSDigitsArray ;
+ }
}
//__________________________________________________________________
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
if (! AliQAv1::Instance(AliQAv1::GetDetIndex(GetName()))->IsEventSpecieSet(AliRecoParam::ConvertIndex(specie)) )
continue ;
- TDirectory * eventSpecieDir = subDir->GetDirectory(AliRecoParam::GetEventSpecieName(specie)) ;
- if (!eventSpecieDir)
- eventSpecieDir = subDir->mkdir(AliRecoParam::GetEventSpecieName(specie)) ;
- eventSpecieDir->cd() ;
- TIter next(list[specie]) ;
- TObject * obj ;
- while ( (obj = next()) ) {
- if (!obj->TestBit(AliQAv1::GetExpertBit()))
- obj->Write() ;
- }
- if (WriteExpert()) {
- TDirectory * expertDir = eventSpecieDir->GetDirectory(AliQAv1::GetExpert()) ;
- if (!expertDir)
- expertDir = eventSpecieDir->mkdir(AliQAv1::GetExpert()) ;
- expertDir->cd() ;
- next.Reset() ;
- while ( (obj = next()) ) {
+ if (list[specie]->GetEntries() != 0 ) {
+ TDirectory * eventSpecieDir = subDir->GetDirectory(AliRecoParam::GetEventSpecieName(specie)) ;
+ if (!eventSpecieDir)
+ eventSpecieDir = subDir->mkdir(AliRecoParam::GetEventSpecieName(specie)) ;
+ eventSpecieDir->cd() ;
+ TIter next(list[specie]) ;
+ TObject * obj ;
+ while ( (obj = next()) ) {
if (!obj->TestBit(AliQAv1::GetExpertBit()))
- continue ;
- obj->Write() ;
- }
+ obj->Write() ;
+ }
+ if (WriteExpert()) {
+ TDirectory * expertDir = eventSpecieDir->GetDirectory(AliQAv1::GetExpert()) ;
+ if (!expertDir)
+ expertDir = eventSpecieDir->mkdir(AliQAv1::GetExpert()) ;
+ expertDir->cd() ;
+ next.Reset() ;
+ while ( (obj = next()) ) {
+ if (!obj->TestBit(AliQAv1::GetExpertBit()))
+ continue ;
+ obj->Write() ;
+ }
+ }
}
fOutput->Save() ;
}
- if (fPrintImage)
- MakeImage(task) ;
}
//____________________________________________________________________________
if ( task == AliQAv1::kHITS ) {
AliDebug(AliQAv1::GetQADebugLevel(), "Processing Hits QA") ;
if (strcmp(data->ClassName(), "TClonesArray") == 0) {
- TClonesArray * arr = static_cast<TClonesArray *>(data) ;
- MakeHits(arr) ;
+ fHitsArray = static_cast<TClonesArray *>(data) ;
+ MakeHits() ;
} else if (strcmp(data->ClassName(), "TTree") == 0) {
TTree * tree = static_cast<TTree *>(data) ;
MakeHits(tree) ;
} else if ( task == AliQAv1::kSDIGITS ) {
AliDebug(AliQAv1::GetQADebugLevel(), "Processing SDigits QA") ;
if (strcmp(data->ClassName(), "TClonesArray") == 0) {
- TClonesArray * arr = static_cast<TClonesArray *>(data) ;
- MakeSDigits(arr) ;
+ fSDigitsArray = static_cast<TClonesArray *>(data) ;
+ MakeSDigits() ;
} else if (strcmp(data->ClassName(), "TTree") == 0) {
TTree * tree = static_cast<TTree *>(data) ;
MakeSDigits(tree) ;
} else if ( task == AliQAv1::kDIGITS ) {
AliDebug(AliQAv1::GetQADebugLevel(), "Processing Digits QA") ;
if (strcmp(data->ClassName(), "TClonesArray") == 0) {
- TClonesArray * arr = static_cast<TClonesArray *>(data) ;
- MakeDigits(arr) ;
+ fDigitsArray = static_cast<TClonesArray *>(data) ;
+ MakeDigits() ;
} else if (strcmp(data->ClassName(), "TTree") == 0) {
TTree * tree = static_cast<TTree *>(data) ;
MakeDigits(tree) ;
}
}
-//____________________________________________________________________________
-void AliQADataMakerSim::MakeImage(AliQAv1::TASKINDEX_t task)
-{
- // create a drawing of detetor defined histograms
- TObjArray ** list = NULL ;
- switch (task) {
- case AliQAv1::kRAWS:
- break;
- case AliQAv1::kHITS:
- list = fHitsQAList ;
- break;
- case AliQAv1::kSDIGITS:
- list = fSDigitsQAList ;
- break;
- case AliQAv1::kDIGITS:
- list = fDigitsQAList ;
- break;
- case AliQAv1::kDIGITSR:
- break;
- case AliQAv1::kRECPOINTS:
- break;
- case AliQAv1::kTRACKSEGMENTS:
- break;
- case AliQAv1::kRECPARTICLES:
- break;
- case AliQAv1::kESDS:
- break;
- case AliQAv1::kNTASKINDEX:
- break;
- default:
- break;
- }
- if ( !list) {
- AliFatal("data not initialized, call AliQADataMaker::Init");
- return ;
- }
- MakeTheImage(list, task, "Sim") ;
-}
-
//____________________________________________________________________________
TObjArray ** AliQADataMakerSim::Init(AliQAv1::TASKINDEX_t task, Int_t cycles)
{
if ( ! fHitsQAList ) {
fHitsQAList = new TObjArray *[AliRecoParam::kNSpecies] ;
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
- fHitsQAList[specie] = new TObjArray(1) ;
+ fHitsQAList[specie] = new TObjArray(AliQAv1::GetMaxQAObj()) ;
fHitsQAList[specie]->SetName(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(task).Data(), AliRecoParam::GetEventSpecieName(specie))) ;
}
}
if ( ! fSDigitsQAList ) {
fSDigitsQAList = new TObjArray *[AliRecoParam::kNSpecies] ;
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
- fSDigitsQAList[specie] = new TObjArray(1) ;
+ fSDigitsQAList[specie] = new TObjArray(AliQAv1::GetMaxQAObj()) ;
fSDigitsQAList[specie]->SetName(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(task).Data(), AliRecoParam::GetEventSpecieName(specie))) ;
}
}
if ( ! fDigitsQAList ) {
fDigitsQAList = new TObjArray *[AliRecoParam::kNSpecies] ;
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) {
- fDigitsQAList[specie] = new TObjArray(1) ;
+ fDigitsQAList[specie] = new TObjArray(AliQAv1::GetMaxQAObj()) ;
fDigitsQAList[specie]->SetName(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(task).Data(), AliRecoParam::GetEventSpecieName(specie))) ;
}
}