#include <TList.h>
#include <TStreamerInfo.h>
#include <TRandom.h>
+#include <TSystem.h>
#include "AliVEvent.h"
#include "AliAODTrack.h"
fCurrentAODEntry(-1),
fHistFileMatching(0),
fHistAODFileError(0),
- fHistNotEmbedded(0)
+ fHistNotEmbedded(0),
+ fHistEmbeddingQA(0)
{
// Default constructor.
SetSuffix("AODEmbedding");
fCurrentAODEntry(-1),
fHistFileMatching(0),
fHistAODFileError(0),
- fHistNotEmbedded(0)
+ fHistNotEmbedded(0),
+ fHistEmbeddingQA(0)
{
// Standard constructor.
SetSuffix("AODEmbedding");
fHistNotEmbedded->GetYaxis()->SetTitle("counts");
fOutput->Add(fHistNotEmbedded);
+ fHistEmbeddingQA = new TH1F("fHistEmbeddingQA", "fHistEmbeddingQA", 2, 0, 2);
+ fHistEmbeddingQA->GetXaxis()->SetTitle("Event state");
+ fHistEmbeddingQA->GetYaxis()->SetTitle("counts");
+ fHistEmbeddingQA->GetXaxis()->SetBinLabel(1, "OK");
+ fHistEmbeddingQA->GetXaxis()->SetBinLabel(2, "Not embedded");
+ fOutput->Add(fHistEmbeddingQA);
+
PostData(1, fOutput);
}
}
Int_t i = 0;
- TString fileName;
- do {
- if (i>0) {
- AliDebug(3,Form("Failed to open file %s...", fileName.Data()));
- if (fHistAODFileError)
+ while ((!fCurrentAODFile || fCurrentAODFile->IsZombie()) && i < fAttempts) {
+ if (i > 0 && fHistAODFileError) {
fHistAODFileError->Fill(fCurrentAODFileID);
}
- fileName = GetNextFileName();
-
- if (fileName.IsNull())
- break;
-
- if (fileName.BeginsWith("alien://") && !gGrid) {
- AliInfo("Trying to connect to AliEn ...");
- TGrid::Connect("alien://");
- }
-
- AliDebug(3,Form("Trying to open file %s...", fileName.Data()));
- fCurrentAODFile = TFile::Open(fileName);
-
+ fCurrentAODFile = GetNextFile();
i++;
-
- } while ((!fCurrentAODFile || fCurrentAODFile->IsZombie()) && i < fAttempts);
+ }
if (!fCurrentAODFile || fCurrentAODFile->IsZombie())
return kFALSE;
}
//________________________________________________________________________
-TString AliJetEmbeddingFromAODTask::GetNextFileName()
+TFile* AliJetEmbeddingFromAODTask::GetNextFile()
{
- if (fRandomAccess)
- fCurrentAODFileID = TMath::Nint(gRandom->Rndm()*fFileList->GetEntriesFast());
- else
- fCurrentAODFileID++;
+ if (fRandomAccess)
+ fCurrentAODFileID = TMath::Nint(gRandom->Rndm()*fFileList->GetEntriesFast());
+ else
+ fCurrentAODFileID++;
+
+ if (fCurrentAODFileID >= fFileList->GetEntriesFast()) {
+ AliError("No more file in the list!");
+ return 0;
+ }
+
+ TObjString *objFileName = static_cast<TObjString*>(fFileList->At(fCurrentAODFileID));
+ TString fileName(objFileName->GetString());
- if (fCurrentAODFileID >= fFileList->GetEntriesFast())
- return "";
-
- TObjString *objFileName = static_cast<TObjString*>(fFileList->At(fCurrentAODFileID));
- return objFileName->GetString();
+ TString baseFileName(fileName);
+ if (baseFileName.Contains(".zip#")) {
+ Ssiz_t pos = baseFileName.Last('#');
+ baseFileName.Remove(pos);
+ }
+
+ if (gSystem->AccessPathName(baseFileName)) {
+ AliDebug(3,Form("File %s does not exist!", baseFileName.Data()));
+ return 0;
+ }
+
+ AliDebug(3,Form("Trying to open file %s...", fileName.Data()));
+ TFile *file = TFile::Open(fileName);
+
+ if (!file)
+ AliDebug(3,Form("Unable to open file: %s!", fileName.Data()));
+
+ return file;
}
//________________________________________________________________________
if (!GetNextEntry()) {
if (fHistNotEmbedded)
fHistNotEmbedded->Fill(fCurrentFileID);
+ if (fHistEmbeddingQA)
+ fHistEmbeddingQA->Fill("Not embedded", 1);
AliError("Unable to get the AOD event to embed. Nothing will be embedded.");
return;
}
+ if (fHistEmbeddingQA)
+ fHistEmbeddingQA->Fill("OK", 1);
+
if (fOutMCParticles) {
if (fCopyArray && fMCParticles)