From 06b454c785acf0f13a1d27c8b69c257709e552c8 Mon Sep 17 00:00:00 2001 From: akisiel Date: Mon, 4 May 2009 16:26:21 +0000 Subject: [PATCH] Make the macros run for PROOF and PROOFLite --- .../AliFemto/AliAnalysisTaskFemto.cxx | 7 +- PWG2/FEMTOSCOPY/macros/AddTaskFemto.C | 9 +- PWG2/FEMTOSCOPY/macros/Proof/runProof.C | 105 +++++++++++------- .../Train/PWG2Train2/ConfigFemtoAnalysis.C | 1 + 4 files changed, 79 insertions(+), 43 deletions(-) diff --git a/PWG2/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.cxx b/PWG2/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.cxx index 42d3fc66c56..42eb885357e 100644 --- a/PWG2/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.cxx +++ b/PWG2/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.cxx @@ -11,6 +11,7 @@ #include "TCanvas.h" #include "TSystem.h" #include "TFile.h" +#include "TInterpreter.h" #include "AliAnalysisTask.h" @@ -27,7 +28,7 @@ ClassImp(AliAnalysisTaskFemto) // Default name for the setup macro of femto analysis // This function MUST be defined in the separate file !!! -extern AliFemtoManager *ConfigFemtoAnalysis(); +// extern AliFemtoManager *ConfigFemtoAnalysis(); //________________________________________________________________________ AliAnalysisTaskFemto::AliAnalysisTaskFemto(const char *name): @@ -135,7 +136,9 @@ void AliAnalysisTaskFemto::ConnectInputData(Option_t *) { void AliAnalysisTaskFemto::CreateOutputObjects() { printf("Creating Femto Analysis objects\n"); - SetFemtoManager(ConfigFemtoAnalysis()); + gROOT->LoadMacro("ConfigFemtoAnalysis.C"); + // fJetFinder = (AliJetFinder*) gInterpreter->ProcessLine("ConfigJetAnalysis()"); + SetFemtoManager((AliFemtoManager *) gInterpreter->ProcessLine("ConfigFemtoAnalysis()")); TList *tOL; fOutputList = fManager->Analysis(0)->GetOutputList(); diff --git a/PWG2/FEMTOSCOPY/macros/AddTaskFemto.C b/PWG2/FEMTOSCOPY/macros/AddTaskFemto.C index ba8770cc95d..8796d89113c 100644 --- a/PWG2/FEMTOSCOPY/macros/AddTaskFemto.C +++ b/PWG2/FEMTOSCOPY/macros/AddTaskFemto.C @@ -30,7 +30,14 @@ AliAnalysisTaskFemto *AddTaskFemto() // C. Create the task, add it to manager. //=========================================================================== gSystem->SetIncludePath("-I$ROOTSYS/include -I./PWG2AOD/AOD -I./PWG2femtoscopy/FEMTOSCOPY/AliFemto -I./PWG2femtoscopyUser/FEMTOSCOPY/AliFemtoUser -I$ALICE_ROOT/include"); - gROOT->LoadMacro("ConfigFemtoAnalysis.C++"); + if (dynamic_cast gProof) { + gProof->Exec(".L ConfigFemtoAnalysis.C"); + } + else if (gProof) { + gProof->Load("ConfigFemtoAnalysis.C"); + } + // gROOT->LoadMacro("ConfigFemtoAnalysis.C++"); + AliAnalysisTaskFemto *taskfemto = new AliAnalysisTaskFemto("TaskFemto"); mgr->AddTask(taskfemto); diff --git a/PWG2/FEMTOSCOPY/macros/Proof/runProof.C b/PWG2/FEMTOSCOPY/macros/Proof/runProof.C index ec758cf50be..234bfec1b3d 100644 --- a/PWG2/FEMTOSCOPY/macros/Proof/runProof.C +++ b/PWG2/FEMTOSCOPY/macros/Proof/runProof.C @@ -1,23 +1,16 @@ -void runProof(int dataType=0, const char *dataSource="ESD82XX_30K.txt") { - // Run on PROOF with data from: - // dataType = - // 0 - a local file list - // 1 - a PROOF dataset - // - // for dataTpye = 0 - // dataSource is the list file name - // for dataType = 1 - // dataSource is the PROOF dataset name - +void runProof(const char *chainlistfile, int nEvents=0, int offset=0, int domc=0, int prooflite=0) { TStopwatch timer; timer.Start(); + + printf("*** Open PROOF ***"); + if (prooflite) + TProof::Open(""); + else + TProof::Open("alicecaf"); - printf("*** Connect to PROOF ***\n"); - // **** - // You have to change this to Your own username !!!! - TProof::Open("akisiel@lxb6046.cern.ch"); - // - // **** + gSystem->Load("libProofPlayer.so"); + gSystem->Load("libVMC.so"); + gSystem->Load("libXMLIO.so"); gProof->UploadPackage("STEERBase.par"); gProof->EnablePackage("STEERBase"); @@ -35,49 +28,81 @@ void runProof(int dataType=0, const char *dataSource="ESD82XX_30K.txt") { gProof->EnablePackage("PWG2femtoscopy"); gProof->UploadPackage("PWG2femtoscopyUser.par"); gProof->EnablePackage("PWG2femtoscopyUser"); - gSystem->SetIncludePath("-I$ROOTSYS/include -I./PWG2femtoscopy/FEMTOSCOPY/AliFemto -I./PWG2femtoscopyUser/FEMTOSCOPY/AliFemtoUser -I./ESD -I./AOD -I./ANALYSIS -I./PWG2AOD/AOD"); - gProof->AddIncludePath("./PWG2AOD/AOD"); - gProof->AddIncludePath("./PWG2femtoscopy/FEMTOSCOPY/AliFemto"); - gProof->AddIncludePath("./PWG2femtoscopyUser/FEMTOSCOPY/AliFemtoUser"); + + gSystem->SetIncludePath("-I$ROOTSYS/include -I./STEERBase/ -I./ESD/ -I./AOD/ -I./ANALYSIS/ -I./ANALYSISalice/ -I./PWG2AOD/AOD -I./PWG2femtoscopy/FEMTOSCOPY/AliFemto -I./PWG2femtoscopyUser/FEMTOSCOPY/AliFemtoUser"); + gProof->Exec(".L AddTaskFemto.C",kTRUE); + gROOT->LoadMacro("AddTaskFemto.C"); + cout << "Loaded AddTaskFemto macro "<< endl; - gProof->Load("ConfigFemtoAnalysis.C++g"); - // gProof->Load("AliAnalysisTaskFemto.cxx++g"); + gProof->ShowEnabledPackages(); + //ANALYSIS PART TChain *chain = 0x0; - - if (dataType == 0) { + if (prooflite) { gROOT->LoadMacro("CreateESDChain.C"); - chain = CreateESDChain("ESD82XX_30K.txt",200); + chain = CreateESDChain(chainlistfile,10000); } //____________________________________________// // Make the analysis manager AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); AliESDInputHandler* esdH = new AliESDInputHandler; + esdH->SetInactiveBranches("FMD CaloCluster"); mgr->SetInputEventHandler(esdH); + + if (domc) { + AliMCEventHandler *mcH = new AliMCEventHandler; + mgr->SetMCtruthEventHandler(mcH); + } //____________________________________________// // 1st Pt task - AliAnalysisTaskFemto *task1 = new AliAnalysisTaskFemto("TaskFemto"); - - mgr->AddTask(task1); - // Create containers for input/output - AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer(); - AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist1", TList::Class(),AliAnalysisManager::kOutputContainer,"Femto.ESD.root"); - - //____________________________________________// - mgr->ConnectInput(task1,0,cinput1); - mgr->ConnectOutput(task1,0,coutput1); + AliAnalysisTaskFemto *taskfemto = AddTaskFemto(); if (!mgr->InitAnalysis()) return; mgr->PrintStatus(); - if (dataType == 0) - mgr->StartAnalysis("proof",chain); - else if (dataType == 1) - mgr->StartAnalysis("proof",dataSource, -1, 0); + if (prooflite) + mgr->StartAnalysis("proof",chain,2000000,0); + else + mgr->StartAnalysis("proof",chainlistfile,nEvents,offset); timer.Stop(); timer.Print(); } +Int_t setupPar(const char* pararchivename) { + /////////////////// + // Setup PAR File// + /////////////////// + if (pararchivename) { + char processline[1024]; + sprintf(processline,".! tar xvzf %s.par",pararchivename); + gROOT->ProcessLine(processline); + const char* ocwd = gSystem->WorkingDirectory(); + gSystem->ChangeDirectory(pararchivename); + + // check for BUILD.sh and execute + if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) { + printf("*******************************\n"); + printf("*** Building PAR archive ***\n"); + printf("*******************************\n"); + + if (gSystem->Exec("PROOF-INF/BUILD.sh")) { + Error("runProcess","Cannot Build the PAR Archive! - Abort!"); + return -1; + } + } + // check for SETUP.C and execute + if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) { + printf("*******************************\n"); + printf("*** Setup PAR archive ***\n"); + printf("*******************************\n"); + gROOT->Macro("PROOF-INF/SETUP.C"); + } + + gSystem->ChangeDirectory("../"); + } + + return 1; +} diff --git a/PWG2/FEMTOSCOPY/macros/Train/PWG2Train2/ConfigFemtoAnalysis.C b/PWG2/FEMTOSCOPY/macros/Train/PWG2Train2/ConfigFemtoAnalysis.C index 7827e1ac035..a14ac55952e 100644 --- a/PWG2/FEMTOSCOPY/macros/Train/PWG2Train2/ConfigFemtoAnalysis.C +++ b/PWG2/FEMTOSCOPY/macros/Train/PWG2Train2/ConfigFemtoAnalysis.C @@ -18,6 +18,7 @@ #include "AliFemtoSimpleAnalysis.h" #include "AliFemtoBasicEventCut.h" #include "AliFemtoESDTrackCut.h" +#include "AliFemtoCorrFctn.h" #include "AliFemtoCutMonitorParticleYPt.h" #include "AliFemtoCutMonitorParticleVertPos.h" #include "AliFemtoCutMonitorParticleMomRes.h" -- 2.39.3