--- /dev/null
+void produceAOD()
+{
+ gSystem->Load("libTree.so");
+ gSystem->Load("libGeom.so");
+ gSystem->Load("libVMC.so");
+ gSystem->Load("libXMLIO.so");
+ SetupPar("STEERBase");
+// gSystem->Load("STEERBase/libSTEERBase.so");
+ SetupPar("ESD");
+// gSystem->Load("ESD/libESD.so");
+ SetupPar("AOD");
+// gSystem->Load("AOD/libAOD.so");
+ SetupPar("ANALYSIS");
+// gSystem->Load("ANALYSIS/libANALYSIS.so");
+ SetupPar("PWG0base");
+ // Make the analysis manager
+ //
+ // Chain from CAF
+ gROOT->LoadMacro("CreateESDChain.C");
+// TChain* chain = CreateESDChain("ESD1503X_v1.txt", 10);
+ TChain* chain = CreateESDChain("/mnt/data/alice/pbpb_therminator/central.2/", 885);
+
+ AliAODHandler* aodHandler = new AliAODHandler();
+ aodHandler->SetOutputFileName("aod.root");
+ AliESDInputHandler *esdHandler = new AliESDInputHandler();
+ esdHandler->SetInactiveBranches("FMD CaloCluster");
+
+ AliMCEventHandler* mcHandler = new AliMCEventHandler();
+
+ AliAnalysisManager *mgr = new AliAnalysisManager("esd to aod to histos", "testing aod analysis");
+ mgr->SetInputEventHandler(esdHandler);
+ mgr->SetOutputEventHandler(aodHandler);
+ mgr->SetMCtruthEventHandler(mcHandler);
+ mgr->SetDebugLevel(10);
+ AliLog::EnableDebug(kTRUE);
+ AliLog::SetGlobalLogLevel(2);
+
+
+ // Set of cuts
+ //
+ // standard
+ AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Loose");
+ esdTrackCutsL->SetMinNClustersTPC(50);
+ esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);
+ esdTrackCutsL->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
+ esdTrackCutsL->SetRequireTPCRefit(kTRUE);
+ esdTrackCutsL->SetMinNsigmaToVertex(3);
+ esdTrackCutsL->SetRequireSigmaToVertex(kTRUE);
+ esdTrackCutsL->SetAcceptKingDaughters(kFALSE);
+ //
+ // hard
+ AliESDtrackCuts* esdTrackCutsH = new AliESDtrackCuts("AliESDtrackCuts", "Hard");
+ esdTrackCutsH->SetMinNClustersTPC(100);
+ esdTrackCutsH->SetMaxChi2PerClusterTPC(2.0);
+ esdTrackCutsH->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
+ esdTrackCutsH->SetRequireTPCRefit(kTRUE);
+ esdTrackCutsH->SetMinNsigmaToVertex(2);
+ esdTrackCutsH->SetRequireSigmaToVertex(kTRUE);
+ esdTrackCutsH->SetAcceptKingDaughters(kFALSE);
+ //
+ AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
+ trackFilter->AddCuts(esdTrackCutsL);
+ trackFilter->AddCuts(esdTrackCutsH);
+ //
+ AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
+ esdfilter->SetTrackFilter(trackFilter);
+ esdfilter->SetDebugLevel(10);
+ mgr->AddTask(esdfilter);
+
+ // Create containers for input/output
+ // Top ESD container
+ AliAnalysisDataContainer *cin_esd = mgr->CreateContainer("cchain",TChain::Class(),
+ AliAnalysisManager::kInputContainer);
+
+ // Output AOD container
+ AliAnalysisDataContainer *cout_aod = mgr->CreateContainer("tree", TTree::Class(),
+ AliAnalysisManager::kOutputContainer, "default");
+
+ mgr->ConnectInput (esdfilter, 0, cin_esd );
+ mgr->ConnectOutput (esdfilter, 0, cout_aod );
+ //
+ // Run the analysis
+ //
+ mgr->InitAnalysis();
+ mgr->PrintStatus();
+ mgr->StartAnalysis("local",chain);
+ delete mgr;
+}
+
+void runPWG2()
+{
+ gSystem->Load("libTree.so");
+ gSystem->Load("libGeom.so");
+ gSystem->Load("libVMC.so");
+ gSystem->Load("libXMLIO.so");
+ SetupPar("STEERBase");
+// gSystem->Load("STEERBase/libSTEERBase.so");
+ SetupPar("ESD");
+// gSystem->Load("ESD/libESD.so");
+ SetupPar("AOD");
+// gSystem->Load("AOD/libAOD.so");
+ SetupPar("ANALYSIS");
+// gSystem->Load("ANALYSIS/libANALYSIS.so");
+ SetupPar("PWG0base");
+// gSystem->Load("PWG0base/libPWG0base.so");
+// SetupPar("TASKFILTER");
+// gSystem->Load("TASKFILTER/libTASKFILTER.so");
+// gSystem->Load("JETAN/libJETAN.so");
+ SetupPar("PWG2spectra");
+ gROOT->ProcessLine(".L $ALICE_ROOT/PWG2/AliAnalysisTaskProtons.cxx++g");
+ //
+// if (gApplication) gApplication->InitializeGraphics();
+ // Create the chain
+ //
+ // Chain from aod.root
+ TChain* chain = new TChain("aodTree");
+ chain->Add("aod.root");
+ // TChain* chain = CreateESDChain("ESD12001.txt", 2);
+ // Chain from local files
+// gROOT->LoadMacro("CreateLocalChain.C");
+// TChain* chain = CreateLocalChain();
+ // Chain from ALIEN files
+// TGrid::Connect("alien://");
+// gROOT->LoadMacro("CreateChain.C");
+// TChain* chain = CreateChain("global.xml");
+
+ //
+ // Make the analysis manager
+ //
+ AliAODInputHandler *aodHandler = new AliAODInputHandler();
+
+ AliAnalysisManager *mgr = new AliAnalysisManager("esd to aod to histos", "testing aod analysis");
+ mgr->SetInputEventHandler(aodHandler);
+ mgr->SetDebugLevel(10);
+ AliLog::EnableDebug(kTRUE);
+ AliLog::SetGlobalLogLevel(2);
+
+
+ //
+ //____________________________________________//
+ // 1st Proton task
+ AliAnalysisTaskProtons *taskproton = new AliAnalysisTaskProtons("TaskProtons");
+ taskproton->SetType("AOD");
+ TFile *f = TFile::Open("$ALICE_ROOT/PWG2/data/PriorProbabilities.root ");
+ TF1 *fitElectrons = (TF1 *)f->Get("fitElectrons");
+ TF1 *fitMuons = (TF1 *)f->Get("fitMuons");
+ TF1 *fitPions = (TF1 *)f->Get("fitPions");
+ TF1 *fitKaons = (TF1 *)f->Get("fitKaons");
+ TF1 *fitProtons = (TF1 *)f->Get("fitProtons");
+ taskproton->SetPriorProbabilityFunctions(fitElectrons,
+ fitMuons,
+ fitPions,
+ fitKaons,
+ fitProtons);
+ mgr->AddTask(taskproton);
+ // Create containers for input/output
+ // Top AOD container
+ AliAnalysisDataContainer *cin_aod = mgr->CreateContainer("cchain",TChain::Class(),
+ AliAnalysisManager::kInputContainer);
+
+ // Output histogram container
+ AliAnalysisDataContainer *cout_hist = mgr->CreateContainer("protonhistos", TList::Class(),AliAnalysisManager::kOutputContainer,"protonhistos.root");
+
+ mgr->ConnectInput(taskproton,0,cin_aod);
+ mgr->ConnectOutput(taskproton,0,cout_hist);
+ //
+ // Run the analysis
+ //
+ mgr->InitAnalysis();
+ mgr->PrintStatus();
+ mgr->StartAnalysis("local",chain);
+}
+
+void SetupPar(char* pararchivename)
+{
+ if (pararchivename) {
+ char processline[1024];
+ sprintf(processline,".! tar xvzf %s.par",pararchivename);
+ gROOT->ProcessLine(processline);
+ TString 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(ocwd.Data());
+ printf("Current dir: %s\n", ocwd.Data());
+ }
+}