#include "AliAnalysisDataContainer.h"
#endif
-void CreateStandardAODfromESD(const char *inFileName = "AliESDs.root",
- const char *outFileName = "AliAOD.root",
- Bool_t writeKineToAOD = kTRUE)
+void CreateStandardAODfromESD()
{
-
+
+ const char *inFileName = "AliESDs.root";
+ const char *outFileName = "AliAOD.root";
+ Bool_t writeKineToAOD = kTRUE;
+ TString mode="local"; // "grid"
+
gSystem->Load("libTree");
gSystem->Load("libGeom");
gSystem->Load("libPhysics");
gSystem->Load("libANALYSISalice");
gSystem->Load("libPWG3muon");
- TChain *chain = new TChain("esdTree");
- // Steering input chain
- chain->Add(inFileName);
+ TChain *chain=0;
+ if(mode=="local") { // local
+ chain = new TChain("esdTree");
+ // Steering input chain
+ chain->Add(inFileName);
+ } else if(mode=="grid") { // grid
+ const char *collectionfile = "esd_coll1.xml";
+ TGrid::Connect("alien:",0,0,"t") ;
+ //Create an AliRunTagCuts and an AliEventTagCuts Object and impose some selection criteria
+ AliRunTagCuts *runCuts = new AliRunTagCuts();
+ AliEventTagCuts *eventCuts = new AliEventTagCuts();
+ AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
+ AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
+ // eventCuts->SetMultiplicityRange(0,20000);
+ //Create an AliTagAnalysis Object and chain the tags
+ AliTagAnalysis *tagAna = new AliTagAnalysis();
+ tagAna->SetType("ESD");
+ TAlienCollection *coll = TAlienCollection::Open(collectionfile);
+ TGridResult *tagResult = coll->GetGridResult("",0,0);
+ tagResult->Print();
+ tagAna->ChainGridTags(tagResult);
+ //Create a new esd chain and assign the chain that is returned by querying the tags
+ chain = tagAna->QueryTags(runCuts,lhcCuts,detCuts,eventCuts);
+ } else {
+ printf("ERROR: mode has to be \"local\" or \"grid\"\n");
+ return;
+ }
+
AliAnalysisManager *mgr = new AliAnalysisManager("ESD to AOD", "Analysis Manager");
// Input
filter->SetTrackFilter(trackFilter);
// Pipelining
+ mgr->ConnectInput(filter,0,mgr->GetCommonInputContainer());
+ mgr->ConnectOutput(filter,0,mgr->GetCommonOutputContainer());
+ mgr->ConnectInput(esdmuonfilter,0,mgr->GetCommonInputContainer());
+ mgr->ConnectOutput(esdmuonfilter,0,mgr->GetCommonOutputContainer());
+ if(writeKineToAOD) {
+ mgr->ConnectInput(kinefilter,0,mgr->GetCommonInputContainer());
+ mgr->ConnectOutput(kinefilter,0,mgr->GetCommonOutputContainer());
+ }
+ /*
+ // before v4-17-Release
AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain", TChain::Class(),
AliAnalysisManager::kInputContainer);
-
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),
AliAnalysisManager::kOutputContainer,
"default");
-
-
mgr->ConnectInput(filter,0,cinput1);
mgr->ConnectOutput(filter,0,coutput1);
-
mgr->ConnectInput(esdmuonfilter,0,cinput1);
mgr->ConnectOutput(esdmuonfilter,0,coutput1);
-
if(writeKineToAOD) {
mgr->ConnectInput(kinefilter,0,cinput1);
mgr->ConnectOutput(kinefilter,0,coutput1);
}
+ */
//
// Run the analysis
//
mgr->InitAnalysis();
mgr->PrintStatus();
- mgr->StartAnalysis("local",chain);
+ mgr->StartAnalysis(mode.Data(),chain);
return;
}