//AliRoot
#include "AliRunTag.h"
#include "AliEventTag.h"
+#include "AliFileTag.h"
#include "AliPID.h"
#include "AliAODEvent.h"
#include "AliAODVertex.h"
}//grid result loop
AliInfo(Form("AOD chain created......."));
- AliInfo(Form("Chain entries: %d",fChain->GetEntries()));
+ AliInfo(Form("Chain entries: %lld",fChain->GetEntries()));
CreateTag(fChain, "grid");
}
//______________________________________________________________________________
-Bool_t AliAODTagCreator::ReadLocalCollection(const char *localpath) {
+Bool_t AliAODTagCreator::ReadLocalCollection(const char *localpath, const char* pattern) {
// Checks the different subdirs of the given local path and in the
- // case where it finds an AliAODs.root file it creates the tags
+ // case where it finds an AliAOD.root file it creates the tags
void *dira = gSystem->OpenDirectory(localpath);
- Char_t fPath[256];
- const char * dirname = 0x0;
+ Char_t fPath[512];
+ const char * dirname = 0x0;
const char * filename = 0x0;
- const char * pattern = "AliAODs.root";
fChain = new TChain("aodTree");
while((dirname = gSystem->GetDirEntry(dira))) {
- sprintf(fPath,"%s/%s",localpath,dirname);
+ snprintf(fPath,512,"%s/%s",localpath,dirname);
void *dirb = gSystem->OpenDirectory(fPath);
while((filename = gSystem->GetDirEntry(dirb))) {
TString bstr = dirname;
} //parent directory's entry loop
AliInfo(Form("AOD chain created......."));
- AliInfo(Form("Chain entries: %d",fChain->GetEntries()));
+ AliInfo(Form("Chain entries: %lld",fChain->GetEntries()));
CreateTag(fChain, "local");
}
AliInfo(Form("AOD chain created......."));
- AliInfo(Form("Chain entries: %d",fChain->GetEntries()));
+ AliInfo(Form("Chain entries: %lld",fChain->GetEntries()));
CreateTag(fChain, "proof");
else lastEvent = fLastEvent;
char fileName[256];
- sprintf(fileName, "Run%d.Event%d_%d.AOD.tag.root",
+ snprintf(fileName, 256, "Run%d.Event%d_%d.AOD.tag.root",
fAODEvent->GetRunNumber(), fFirstEvent, lastEvent );
AliInfo(Form("writing tags to file %s", fileName));
AliDebug(1, Form("writing tags to file %s", fileName));
while((name = gSystem->GetDirEntry(dirp))) {
if (strstr(name,tagPattern)) fTreeTEsd->Add(name);
}//directory loop
- AliInfo(Form("Chained tag files: %d", fTreeTEsd->GetEntries()));
+ AliInfo(Form("Chained tag files: %lld",fTreeTEsd->GetEntries()));
fChain = chain;
Int_t nEvents = fChain->GetEntries();
Int_t ntags = 0;
Int_t tagentry = 0;
- const TClonesArray *evTagList = 0;
-
+ // const TClonesArray *evTagList = 0;
+ TString foldguid = "";
+
for (Int_t iEventNumber = 0; iEventNumber < nEvents; iEventNumber++) {
// Copy old tag information
if (iEventNumber >= ntags) {
fTreeTEsd->GetEntry(tagentry++);
fRunTag->CopyStandardContent(fRunTagEsd);
- evTagList = fRunTagEsd->GetEventTags();
- ntags += evTagList->GetEntries();
+// evTagList = fRunTagEsd->GetEventTags();
+// ntags += evTagList->GetEntries();
+ ntags = fRunTagEsd->GetNEvents();
}
// Create a new Tag
if (iEventNumber == 0) oldRun = fAODEvent->GetRunNumber();
// Reference to the input file
TFile *file = fChain->GetFile();
- const TUrl *url = file->GetEndpointUrl();
+ // const TUrl *url = file->GetEndpointUrl();
fguid = file->GetUUID().AsString();
- if (!strcmp(type,"grid")) {
- TString fturltemp = "alien://"; fturltemp += url->GetFile();
- fturl = fturltemp(0,fturltemp.Index(".root",5,0,TString::kExact)+5);
- } else {
- fturl = url->GetFile();
- }
+// if (!strcmp(type,"grid")) {
+// TString fturltemp = "alien://"; fturltemp += url->GetFile();
+// fturl = fturltemp(0,fturltemp.Index(".root",5,0,TString::kExact)+5);
+// } else {
+// fturl = url->GetFile();
+// }
+ fturl = file->GetName();
fAODEvent->GetStdContent();
FillEventTag(fAODEvent, evTag);
// Set the event and input file references
//evTag->SetEventId(iEventNumber+1);
- evTag->SetGUID(fguid);
- if(!strcmp(type,"grid")) {
- evTag->SetMD5("");
- evTag->SetTURL(fturl);
- evTag->SetSize(0);
- }
- else evTag->SetPath(fturl);
+
+ // **** FIXME ****
+// evTag->SetGUID(fguid);
+// if(!strcmp(type,"grid")) {
+// evTag->SetMD5("");
+// evTag->SetTURL(fturl);
+// evTag->SetSize(0);
+// }
+// else evTag->SetPath(fturl);
+ // **** FIXME ****
// Check if a new run has to be created
// File has changed
ftempGuid = fguid;
fTreeT->Fill();
fRunTag->Clear("");
+
+ AliFileTag *nftag = new AliFileTag();
+
+ // if(fSession == "grid") {
+ nftag->SetMD5("");
+ nftag->SetTURL(fturl);
+ nftag->SetSize(0);
+ // }
+ // else {
+ // nftag->SetPath(fturl);
+ // nftag->SetSize(0);
+ // nftag->SetMD5("");
+ // nftag->SetTURL(fturl);
+ // }
+
+ if (fRunTag->GetFileId(fguid) > -1)
+ AliFatal("Adding a file which is already in the RunTag.");
+
+ fRunTag->AddFileTag(nftag);
+
}
+
// Run# has changed
if (oldRun != (fAODEvent->GetRunNumber()))
{
oldRun = fAODEvent->GetRunNumber();
+
+ fTreeT->Fill();
+ fRunTag->Clear("");
+ ftempGuid = fguid;
fTreeT->Fill();
fRunTag->Clear("");
+
+ AliFileTag *nftag = new AliFileTag();
+
+ // if(fSession == "grid") {
+ nftag->SetMD5("");
+ nftag->SetTURL(fturl);
+ nftag->SetSize(0);
+ // }
+ // else {
+ // nftag->SetPath(fturl);
+ // nftag->SetSize(0);
+ // nftag->SetMD5("");
+ // nftag->SetTURL(fturl);
+ // }
+
+ if (fRunTag->GetFileId(fguid) > -1)
+ AliFatal("Adding a file which is already in the RunTag.");
+
+ fRunTag->AddFileTag(nftag);
+
}
// Add the event tag