]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixes for PROOF mode
authorcholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 25 Nov 2010 11:14:14 +0000 (11:14 +0000)
committercholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 25 Nov 2010 11:14:14 +0000 (11:14 +0000)
PWG2/FORWARD/analysis2/AddTaskFMD.C
PWG2/FORWARD/analysis2/AliForwardMultiplicity.cxx
PWG2/FORWARD/analysis2/RunManager.C

index eb8c2d27ab6503a7726272e1d34c312d25824cfb..1fa1d1ced10a99225b3e91c9b55ae3d1e014c1ac 100644 (file)
@@ -3,7 +3,7 @@
  * 
  * @ingroup pwg2_forward_analysis_scripts
  */
-AliForwardMultiplicity* 
+AliAnalysisTask*
 AddTaskFMD(Int_t nCutBins=1, Float_t correctionCut=0.1)
 {
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
index f0d353bdd85121ec6935bab7970d5c4fbb97f01a..7ff972b8406512c60cbf7d36569c7d32aba8489e 100644 (file)
@@ -187,7 +187,7 @@ AliForwardMultiplicity::UserCreateOutputObjects()
   // fTree = new TTree("T", "T");
   // fTree->Branch("forward", &fAODFMD);
 
-  PostData(1, fList);
+  // PostData(1, fList);
   // PostData(2, fTree);
 }
 //____________________________________________________________________
@@ -305,6 +305,8 @@ AliForwardMultiplicity::UserExec(Option_t*)
 
   if (fAODFMD.IsTriggerBits(AliAODForwardMult::kInel))
     fHData->Add(&(fAODFMD.GetHistogram()));
+
+  PostData(1, fList);
 }
 
 //____________________________________________________________________
@@ -313,7 +315,8 @@ AliForwardMultiplicity::Terminate(Option_t*)
 {
   TList* list = dynamic_cast<TList*>(GetOutputData(1));
   if (!list) {
-    AliError("No output list defined");
+    AliError(Form("No output list defined (%p)", GetOutputData(1)));
+    if (GetOutputData(1)) GetOutputData(1)->Print();
     return;
   }
   
@@ -321,7 +324,13 @@ AliForwardMultiplicity::Terminate(Option_t*)
   TH1I* hEventsTr    = static_cast<TH1I*>(list->FindObject("nEventsTr"));
   TH1I* hEventsTrVtx = static_cast<TH1I*>(list->FindObject("nEventsTrVtx"));
   TH2D* hData        = static_cast<TH2D*>(list->FindObject("d2Ndetadphi"));
-  
+  if (!hData || !hEventsTr || !hEventsTrVtx) { 
+    AliError(Form("one or more histograms could not be found in output "
+                 "list %s (hEventsTr=%p,hEventsTrVtx=%p,d2Ndetadphi=%p)", 
+                 list->GetName(), hEventsTr, hEventsTrVtx, hData));
+    list->ls();
+    return;
+  }
   
   // TH1D* dNdeta = fHData->ProjectionX("dNdeta", 0, -1, "e");
   TH1D* dNdeta = hData->ProjectionX("dNdeta", 1, -1, "e");
index c77faf3d0462fbfcae7a56cd752010819eda0bd2..d8a48b65d06a3982e07f3db4ef7d3ee8eb61ddae 100644 (file)
@@ -11,7 +11,7 @@
  */
 void RunManager(const char* esd, Bool_t mc=kFALSE, Int_t nEvents=1000,
                Int_t nCutBins=1, Float_t correctionCut=0.1, 
-               const char* mode="local")
+               Bool_t proof=false)
 {
   gSystem->Load("libVMC");
   gSystem->Load("libTree");
@@ -28,6 +28,25 @@ void RunManager(const char* esd, Bool_t mc=kFALSE, Int_t nEvents=1000,
   gSystem->Load("libPWG0dep");
   gSystem->Load("libPWG2forward");
   gSystem->Load("libPWG2forward2");
+
+  if (proof) { 
+    gEnv->SetValue("Proof.GlobalPackageDirs", 
+                  Form("%s:%s", 
+                       gEnv->GetValue("Proof.GlobalPackageDirs", "."), 
+                       gSystem->Getenv("ALICE_ROOT")));
+    Info("RunManager", "PAR path=%s", 
+        gEnv->GetValue("Proof.GlobalPackageDirs", "."));
+    TProof::Open("workers=1");
+    const char* pkgs[] = { "STEERBase", "ESD", "AOD", "ANALYSIS", 
+                          "ANALYSISalice", "PWG2forward", "PWG2forward2", 0};
+    const char** pkg = pkgs;
+    while (*pkg) { 
+      gProof->UploadPackage(Form("${ALICE_ROOT}/%s.par",*pkg));
+      gProof->EnablePackage(*pkg);    
+      pkg++;
+    }
+    gProof->ShowPackages();
+  }
   
   //You can expand this chain if you have more data :-)
   TChain* chain = new TChain("esdTree");
@@ -47,7 +66,8 @@ void RunManager(const char* esd, Bool_t mc=kFALSE, Int_t nEvents=1000,
                                  "Cascades "
                                  "MuonTracks "
                                  "TrdTracks "
-                                 "CaloClusters");
+                                 "CaloClusters "
+                                 "HLTGlobalTrigger");
   mgr->SetInputEventHandler(esdHandler);      
        
        
@@ -59,14 +79,15 @@ void RunManager(const char* esd, Bool_t mc=kFALSE, Int_t nEvents=1000,
   // AOD output handler
   AliAODHandler* aodHandler   = new AliAODHandler();
   mgr->SetOutputEventHandler(aodHandler);
-  aodHandler->SetFillAOD(kTRUE);
-  aodHandler->SetFillAODforRun(kTRUE);
-  aodHandler->SetOutputFileName("AliAODs.root");
+  aodHandler->SetOutputFileName("foo.root");
     
   gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskFMD.C");
   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
-  AddTaskFMD(nCutBins, correctionCut);
-  AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
+  AliAnalysisTask* task = AddTaskFMD(nCutBins, correctionCut);
+  mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
+
+  task = AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
+  mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
   
   // Run the analysis
     
@@ -80,15 +101,17 @@ void RunManager(const char* esd, Bool_t mc=kFALSE, Int_t nEvents=1000,
   mgr->SetUseProgressBar(kTRUE);
 
   // Write train to file - a test 
+#if 0
   TDirectory* savDir = gDirectory;
   TFile* file = TFile::Open("analysisTrain.root", "RECREATE");
   mgr->Write();
   file->Close();
   savDir->cd();
-  
+#endif
+
   // Run the train 
   t.Start();
-  mgr->StartAnalysis(mode, chain, nEvents);
+  mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);
   t.Stop();
   t.Print();
 }