]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/CreateStandardAODfromESD.C
Added like-sign 3Prong
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / CreateStandardAODfromESD.C
index 7bf31ccfe3373450a20d77378f2a8036d3e4bbcf..c13540b2961290554e6e0aa1384149b5d29fc783 100644 (file)
@@ -8,11 +8,14 @@
 #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");
@@ -25,9 +28,34 @@ void CreateStandardAODfromESD(const char *inFileName = "AliESDs.root",
   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
@@ -69,30 +97,36 @@ void CreateStandardAODfromESD(const char *inFileName = "AliESDs.root",
   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;
 }