--- /dev/null
+AliAnalysisTaskLambdaOverK0sJets *AddTaskLambdaOverK0sJets( TString name = "LambdaOverK0sRatio",
+ Double_t minCen = 0.,
+ Double_t maxCen = 90.,
+ Double_t ptMinTrig = 8.,
+ Double_t ptMaxTrig = 20.,
+ Double_t etaMaxTrig = 0.75,
+ Bool_t sepInjec = kTRUE,
+ Bool_t isMC = kFALSE,
+ Bool_t usePID = kTRUE){
+
+
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ if (!mgr) {
+ ::Error("AddTaskCheckCascade", "No analysis manager to connect to.");
+ return NULL;
+ }
+
+
+ // Create and configure the task
+ AliAnalysisTaskLambdaOverK0sJets *task = new AliAnalysisTaskLambdaOverK0sJets(name.Data());
+ task->SetCentrality(minCen,maxCen);
+ task->SetTriggerPt(ptMinTrig,ptMaxTrig);
+ task->SetTriggerEta(etaMaxTrig);
+ task->SetSeparateInjectedPart(sepInjec);
+ task->SetMC(isMC);
+ task->SetPID(usePID);
+ mgr->AddTask(task);
+
+
+
+ // Create ONLY the output containers for the data produced by the task.
+ // Get and connect other common input/output containers via the manager as below
+ //==============================================================================
+
+ AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
+ mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
+
+ if (isMC) name+="_mc";
+
+ AliAnalysisDataContainer *coutput1 =
+ mgr->CreateContainer("LambdaOverK0sRatio", TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ name+".root");
+
+ mgr->ConnectOutput(task,1,coutput1);
+
+ return task;
+}
--- /dev/null
+class AliAnalysisAlien;\r
+\r
+void runGridLambdaOverK0sJets(TString runMode = "full", \r
+ TString alirootVer = "v5-03-39-AN",\r
+ TString rootVer = "v5-33-02b", \r
+ TString dataPath = "ESDs/pass2/AOD049/*/AliAOD.root",\r
+ TString dataDir = "/alice/data/2010/LHC10h",\r
+ TString workDir = "work",\r
+ TString name = "LambdaOverK0sRatio", \r
+ Double_t minCen = 0.,\r
+ Double_t maxCen = 90.,\r
+ Double_t ptMinTrig = 8.,\r
+ Double_t ptMaxTrig = 20.,\r
+ Double_t etaMaxTrig = 0.75,\r
+ Bool_t sepInjec = kTRUE,\r
+ Bool_t isMC = kFALSE,\r
+ Bool_t usePID = kTRUE,\r
+ Int_t run = 138624){\r
+ \r
+ Printf(" \nThe parameters of the programm are : \n ");\r
+ Printf(" \t Analysis mode:\t %s\n \t Centrality:\t %.1lf - %.1lf\n \t Use MC Data?:\t %s\n \t Use PID?:\t %s\n",\r
+ "Grid",minCen,maxCen,\r
+ (isMC) ? "Yes" : "No",\r
+ (usePID) ? "Yes" : "No");\r
+ \r
+ // _____________________________________________________ //\r
+ \r
+ InitAndLoadLibs();\r
+ \r
+ AliAnalysisManager *mgr = new AliAnalysisManager("Manager");\r
+ \r
+ AliAnalysisGrid *alienHandler = CreateAlienHandler(runMode,alirootVer,rootVer,dataPath,dataDir,workDir,isMC,run); \r
+ if (!alienHandler) return;\r
+ mgr->SetGridHandler(alienHandler);\r
+ \r
+ AliAODInputHandler* aodH = new AliAODInputHandler;\r
+ mgr->SetInputEventHandler(aodH);\r
+ \r
+ //PID\r
+ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");\r
+ AliAnalysisTask *pidTask = AddTaskPIDResponse(isMC);\r
+ //AliAnalysisTask *pidTask = AddTaskPIDResponse(isMC,kTRUE);\r
+ if(!pidTask) { printf("no PIDtask\n"); return; }\r
+ \r
+ // My task\r
+ gROOT->LoadMacro("AliAnalysisTaskLambdaOverK0sJets.cxx+g"); \r
+ gROOT->LoadMacro("AddTaskLambdaOverK0sJets.C");\r
+ AliAnalysisTaskLambdaOverK0sJets *task = AddTaskLambdaOverK0sJets(name,minCen,maxCen,ptMinTrig,ptMaxTrig,etaMaxTrig,sepInjec,isMC,usePID);\r
+ // _____________________________________________________ //\r
+ \r
+ if (!mgr->InitAnalysis()) return;\r
+ mgr->PrintStatus();\r
+ \r
+ mgr->StartAnalysis("grid");\r
+}\r
+\r
+// ______________________________________________________________\r
+\r
+void InitAndLoadLibs() {\r
+ \r
+ gSystem->Load("libCore.so"); \r
+ gSystem->Load("libTree.so"); \r
+ gSystem->Load("libGeom.so");\r
+ gSystem->Load("libVMC.so");\r
+ gSystem->Load("libPhysics");\r
+ gSystem->Load("libMinuit.so"); \r
+ gSystem->Load("libProof.so");\r
+ gSystem->Load("libGui.so");\r
+ gSystem->Load("libXMLParser.so");\r
+ gSystem->Load("libProofPlayer.so");\r
+ gSystem->Load("libXMLIO.so");\r
+\r
+ gSystem->Load("libSTEERBase.so");\r
+ gSystem->Load("libESD.so");\r
+ gSystem->Load("libAOD.so");\r
+ gSystem->Load("libCDB.so");\r
+ gSystem->Load("libANALYSIS.so");\r
+ gSystem->Load("libANALYSISalice.so");\r
+ gSystem->Load("libCORRFW.so");\r
+ gSystem->Load("libJETAN.so");\r
+ gSystem->Load("libRAWDatabase.so");\r
+ gSystem->Load("libSTEER.so");\r
+ gSystem->Load("libCORRFW.so");\r
+ \r
+}\r
+\r
+// ___________________________________________________________________ //\r
+\r
+// **** It is change 'AliAnalysisGrid' by 'AliAnalysisAlien'\r
+AliAnalysisAlien* CreateAlienHandler(TString runMode,TString alirootVer,\r
+ TString rootVer,TString dataPath,\r
+ TString dataDir,TString workDir,\r
+ Bool_t isMC,Int_t kRun) {\r
+ \r
+ AliAnalysisAlien *plugin = new AliAnalysisAlien();\r
+ plugin->SetCheckCopy(kFALSE);\r
+\r
+ plugin->SetRunMode(runMode);\r
+ // Set versions of used packages\r
+ plugin->SetAPIVersion("V1.1x");\r
+ plugin->SetROOTVersion(rootVer);\r
+ plugin->SetAliROOTVersion(alirootVer);\r
+ \r
+ /////////////////////////////////////////////////////////////////\r
+\r
+ // Declare input data to be processed.\r
+ // Method 1: Create automatically XML collections using alien 'find' command.\r
+ plugin->SetGridDataDir(dataDir);\r
+ \r
+ if (!isMC) \r
+ plugin->SetRunPrefix("000");\r
+ plugin->SetDataPattern(dataPath);\r
+ \r
+ plugin->AddRunNumber(kRun);\r
+\r
+ // Method 2: Declare existing data files (raw collections, xml collections, root file)\r
+ plugin->SetGridWorkingDir(workDir);\r
+ // Declare alien output directory. Relative to working directory.\r
+ plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output\r
+ // Declare the analysis source files names separated by blancs. To be compiled runtime\r
+ plugin->SetAnalysisSource("AliAnalysisTaskLambdaOverK0sJets.cxx");\r
+ //plugin->SetAdditionalLibs("AliAnalysisTaskMultiplicity.h AliAnalysisTaskMultiplicity.cxx");\r
+ plugin->SetAdditionalLibs("AliAnalysisTaskLambdaOverK0sJets.cxx AliAnalysisTaskLambdaOverK0sJets.h");\r
+ // Optionally set a name for the generated analysis macro (default MyAnalysis.C)\r
+ plugin->SetAnalysisMacro("AnalysisProduction.C");\r
+ //plugin->SetAnalysisMacro("mytask.C");\r
+ // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)\r
+ plugin->SetSplitMaxInputFileNumber(50);\r
+ // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.\r
+ plugin->SetMaxInitFailed(12);\r
+ // Optionally resubmit threshold.\r
+ plugin->SetMasterResubmitThreshold(90);\r
+ // Optionally set time to live (default 30000 sec)\r
+ plugin->SetTTL(30000);\r
+ // Optionally set input format (default xml-single)\r
+ plugin->SetInputFormat("xml-single");\r
+ // Optionally modify the name of the generated JDL (default analysis.jdl)\r
+ plugin->SetJDLName("TaskProduction.jdl");\r
+ //plugin->SetJDLName("mytask.jdl");\r
+ // Optionally modify job price (default 1)\r
+ plugin->SetPrice(1); \r
+ // Optionally modify split mode (default 'se') \r
+ plugin->SetSplitMode("se");\r
+ return plugin;\r
+\r
+}\r
--- /dev/null
+//Based on the file $ALICE_ROOT/PWGLF/STRANGENESS/Cascades/macros/runProofCascadePbPb()\r
+void runProofLambdaOverK0sJets(TString proofCluster = "xsanchez@skaf.saske.sk",\r
+ TString alirootVer = "VO_ALICE@AliRoot::v5-03-33-AN",\r
+ TString rootVer = "VO_ALICE@ROOT::v5-33-02b", \r
+ TString path = "/alice/data/LHC10h_000138624_p2_AOD049",\r
+ TString name = "LambdaOverK0sRatio", \r
+ Double_t minCen = 0.,\r
+ Double_t maxCen = 90.,\r
+ Double_t ptMinTrig = 8.,\r
+ Double_t ptMaxTrig = 20.,\r
+ Double_t etaMaxTrig = 0.75,\r
+ Bool_t sepInjec = kTRUE,\r
+ Bool_t isMC = kFALSE,\r
+ Bool_t usePID = kTRUE){\r
+ \r
+ Printf(" \nThe parameters of the programm are : \n ");\r
+ Printf(" \t Analysis mode:\t %s\n \t Centrality:\t %.1lf - %.1lf\n \t Use MC Data?:\t %s\n \t Use PID?:\t %s\n",\r
+ "Proof", minCen,maxCen,\r
+ (isMC) ? "Yes" : "No",\r
+ (usePID) ? "Yes" : "No");\r
+ \r
+ // _____________________________________________________ // \r
+\r
+ gEnv->SetValue("XSec.GSI.DelegProxy", "2");\r
+ \r
+ TProof::Mgr(proofCluster.Data())->SetROOTVersion(rootVer.Data());\r
+\r
+ TString alirootMode = ""; \r
+ TString extraLibs;\r
+ TList *list = new TList();\r
+ alirootMode="ALIROOT";\r
+ extraLibs+= "ANALYSIS:OADB:ANALYSISalice:CORRFW"; \r
+ list->Add(new TNamed("ALIROOT_MODE", alirootMode.Data()));\r
+ list->Add(new TNamed("ALIROOT_EXTRA_LIBS", extraLibs.Data()));\r
+ \r
+ TProof::Reset(proofCluster.Data());\r
+ TProof::Open(proofCluster.Data(),"workers=40"); \r
+ gProof->ClearPackages();\r
+ gProof->EnablePackage(alirootVer.Data(),list);\r
+\r
+ // _____________________________________________________ //\r
+\r
+ gSystem->AddIncludePath("-I$ALICE_ROOT/include");\r
+ \r
+ AliAnalysisManager *mgr = new AliAnalysisManager("Manager");\r
+ \r
+ AliAODInputHandler* aodH = new AliAODInputHandler;\r
+ mgr->SetInputEventHandler(aodH);\r
+ \r
+ //PID\r
+ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");\r
+ AliAnalysisTask *pidTask = AddTaskPIDResponse(isMC);\r
+ //AliAnalysisTask *pidTask = AddTaskPIDResponse(isMC,kTRUE);\r
+ if(!pidTask) { printf("no PIDtask\n"); return; }\r
+\r
+ // My task\r
+ gProof->Load("AliAnalysisTaskLambdaOverK0sJets.cxx+g");\r
+ gROOT->LoadMacro("AddTaskLambdaOverK0sJets.C");\r
+ AliAnalysisTaskLambdaOverK0sJets *task = AddTaskLambdaOverK0sJets(name,minCen,maxCen,ptMinTrig,ptMaxTrig,etaMaxTrig,sepInjec,isMC,usePID);\r
+ \r
+ // _____________________________________________________ //\r
+ \r
+ if (!mgr->InitAnalysis()) return;\r
+ mgr->PrintStatus();\r
+ mgr->StartAnalysis("proof",path); \r
+ \r
+}\r
+\r