void SetupAnalysis(TString mode, TString analysisMode="full", Bool_t useMC = kFALSE, Int_t nEvents=1.0*1e9, Int_t nEventsSkip=0, TString format="esd") { // ILC stuff IlcAnalysisManager *mgr = IlcAnalysisManager::GetAnalysisManager(); if (!mgr) mgr = new IlcAnalysisManager("CAF train"); // Create and configure the alien handler plugin gROOT->LoadMacro("CreateAnalysisPlugin.C"); IlcAnalysisGrid *alienHandler = CreateAnalysisPlugin(analysisMode); if (!alienHandler) return; mgr->SetGridHandler(alienHandler); // input handler for esd or AOD, real or MC data InputHandlerSetup(format,useMC); // physics selection if(!format.CompareTo("esd")){ gROOT->LoadMacro("$ILC_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C"); IlcPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kFALSE); if(useMC) physSelTask->GetPhysicsSelection()->SetAnalyzeMC(); IlcPhysicsSelection* physSel = physSelTask->GetPhysicsSelection(); physSel->AddBackgroundIdentification(new IlcBackgroundSelection()); } gROOT->ProcessLine(Form(".include %s/include",gSystem->ExpandPathName("$ILC_ROOT"))); gROOT->LoadMacro("IlcAnalysisTaskEfficiency.cxx+g"); // load and run AddTask macro gROOT->LoadMacro("AddTaskEfficiency.C"); IlcAnalysisTaskSE* task1 = AddTaskEfficiency(-1); if(!task1){ Printf("AddTask could not be run."); } // Run analysis mgr->InitAnalysis(); if ((!mode.CompareTo("proof")) ||(!mode.CompareTo("local"))) { mgr->StartAnalysis(mode.Data(),nEvents,nEventsSkip); } else { mgr->StartAnalysis(mode.Data()); } }
void AnalysisMacroGlob(TString dataset="/alice/sim/LHC10f8f_130844", TString outFName="glovar.root", Int_t nEvents = 5000, Int_t nEventsSkip = 0) { // TString format = GetFormatFromDataSet(dataset); // // ALICE stuff AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) mgr = new AliAnalysisManager("Test train"); // Bool_t isMC = dataset.Contains("sim"); InputHandlerSetup(format,kFALSE,isMC); gProof->Load("AliTaskGlobVar.cxx++g"); // /* gROOT->LoadMacro("AddTaskGlobVar.C"); AliTaskGlobVar *task = AddTaskGlobVar(outFName.Data()); */ AliTaskGlobVar *task = new AliTaskGlobVar("AliTaskGlobVar"); // create output container AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist", TList::Class(),AliAnalysisManager::kOutputContainer,outFName.Data()); // add our task to the manager mgr->AddTask(task); // // finaly connect input and output mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); mgr->ConnectOutput(task,1,coutput1); // if (!isMC) { AddPhysicsSelection(); task->SelectCollisionCandidates( AliVEvent::kUserDefined ); task->SetUseMC(kFALSE); } else task->SetUseMC(kTRUE); // else task->SelectCollisionCandidates( AliVEvent::kMB); // // Run analysis mgr->InitAnalysis(); // process dataset mgr->StartAnalysis("proof", dataset.Data(), nEvents, nEventsSkip); // TString evstCmd = "if [ -e event_stat.root ]; then \nmv event_stat.root evstat_"; evstCmd += outFName; evstCmd += " \nfi"; gSystem->Exec( evstCmd.Data() ); }
//==================================================================== void runGloAlgTask ( TString data="wn.xml", //TString data="algColl.txt", Int_t nEvents=-1, UInt_t trigSel = AliVEvent::kAny ) { // if (!gGrid) { TGrid::Connect("alien://"); if (!gGrid) {printf("Cannot connect\n");exit(1);} } // gROOT->ProcessLine(Form(".include $ALICE_ROOT/include $ALICE_PHYSICS/include ./ %s",gSystem->pwd())); gSystem->SetIncludePath(Form("-I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_PHYSICS/include -I./ -I%s",gSystem->pwd())); printf("Include line: %s",gSystem->GetIncludePath()); // if (gClassTable->GetID("AliAlgSteer")<0) { gSystem->Load("libAlg.so"); } // gROOT->ProcessLine(".L AliGloAlgTask.cxx++g"); // AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) mgr = new AliAnalysisManager("mgr"); // TChain *chain = data.EndsWith(".xml") ? CreateChainXML(data) : CreateChainTXT(data); TString formatFr = "AliESDfriends.root"; if (barrelFlag) formatFr = "AliESDfriends_Barrel.root"; printf("Deduced friend name : %s\n",formatFr.Data()); // InputHandlerSetup(formatFr.Data()); // //================================================================================ // printf("Requesting physics selection in %s mode\n",useMC ? "MC":"Data"); // gROOT->LoadMacro("$ALICE_ROOT/../src/ANALYSIS/macros/AddTaskPhysicsSelection.C"); // AliPhysicsSelectionTask* physicsSelectionTask = AddTaskPhysicsSelection(useMC); //================================================================================== // AliGloAlgTask *algTask = new AliGloAlgTask("alg"); //------------------------------------------- algTask->SetTriggerSelection(trigSel); algTask->SetConfMacroName("alignConf.C"); // algTask->SetConfMacroName("pedeF/alignConf.C"); algTask->SetIniParFileName("millepede.res"); // algTask->SetApplyMPSolAlignment(kTRUE); //------------------------------------------- AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clist", TList::Class(),AliAnalysisManager::kOutputContainer,"mpStatOut.root"); mgr->AddTask(algTask); // mgr->ConnectInput(algTask, 0, mgr->GetCommonInputContainer()); mgr->ConnectOutput(algTask,1,coutput1); // if (!mgr->InitAnalysis()) return; mgr->PrintStatus(); // Start analysis in grid. if (nEvents<0) nEvents = chain->GetEntries(); mgr->StartAnalysis("localfile",chain,nEvents); // }