-//______________________________________________________________________________
-void AnalysisTrainCAF(Int_t nEvents = 10000, Int_t nOffset = 0, char *ds = "/PWG4/kleinb/LHC08v_jetjet15-50")
-{
-// Example of running analysis train in CAF. To run in debug mode:
-// - export ROOTSYS=debug on your local client
-// - un-comment gProof->ClearPackages()
-// - un-comment lines with debugging info
-
-// WHY AOD is not a exchange container when running from ESD->AOD
-
- Bool_t debug = kTRUE;
- Bool_t useMC = kTRUE;
- Bool_t readTR = kFALSE;
- Bool_t bPROOF = kTRUE;
-
-
-
- Int_t iAODanalysis = 0;
- Int_t iAODhandler = 1;
- Int_t iESDfilter = 1; // Only active if iAODanalysis=0
- Int_t iJETAN = 1;
- Int_t iJETANAOD = 0;
- Int_t iJETANMC = 1;
- Int_t iDIJETAN = 0;
- Int_t iPWG4SPECTRUM = 1;
- Int_t iPWG4UE = 0;
-
- if (iAODanalysis) {
- useMC = kFALSE;
- readTR = kFALSE;
- iESDfilter = 0;
- iMUONfilter = 0;
- }
- if (iJETANAOD) iESDfilter=1;
- if (iESDfilter) iAODhandler=1;
-
- // Dataset from CAF
- TString dataset(ds);
- // CKB quick hack for local analysis
- // gROOT->LoadMacro("CreateESDChain.C");
- // TChain *chain = CreateESDChain("jetjet15-50.txt",1000);
- TChain *chain = 0;
-
- printf("==================================================================\n");
- printf("=========== RUNNING ANALYSIS TRAIN IN CAF MODE =============\n");
- printf("==================================================================\n");
- if (iAODanalysis) printf("= AOD analysis on dataset: %s\n", dataset.Data());
- else printf("= ESD analysis on dataset: %s\n", dataset.Data());
- if (iESDfilter) printf("= ESD filter =\n");
- if (iJETAN) printf("= Jet analysis =\n");
- if (iJETANAOD) printf("= Jet analysis from AOD =\n");
- if (iJETANMC) printf("= Jet analysis from Kinematics =\n");
- if (iDIJETAN) printf("= DiJet analysis =\n");
- if (iPWG4SPECTRUM)printf("= PWG4 Jet spectrum analysis =\n");
- if (iPWG4UE) printf("= PWG4 UE =\n");
- printf("==================================================================\n");
- if (useMC) printf(":: use MC TRUE\n");
- else printf(":: use MC FALSE\n");
- if (readTR) printf(":: read TR TRUE\n");
- else printf(":: read TR FALSE\n");
- if (debug) printf(":: debugging TRUE\n");
- else printf(":: debugging FALSE\n");
-
- // Load common libraries
- gSystem->Load("libTree.so");
- gSystem->Load("libGeom.so");
- gSystem->Load("libVMC.so");
- gSystem->Load("libPhysics.so");
-
-
- // Reset user processes if CAF if not responding anymore
- // TProof::Reset("alicecaf");
- // One may enable a different ROOT version on CAF
-
- // const char* proofNode = "alicecaf";
- const char* proofNode = "localhost";
-
-
-
-
- // Connect to proof
- if(bPROOF){
- TProof::Mgr(proofNode)->ShowROOTVersions();
- // TProof::Mgr(proofNode)->SetROOTVersion("v5-21-01-alice_dbg");
- TProof::Open(proofNode);
-
- // Clear packages if changing ROOT version on CAF or local
- // gProof->ClearPackages();
- // Enable proof debugging if needed
- // gProof->SetLogLevel(5);
- // To debug the train in PROOF mode, type in a root session:
- // root[0] TProof::Mgr("lxb6064")->GetSessionLogs()->Display("*",0,10000);
- // Common packages
- // --- Enable the STEERBase Package
- gProof->UploadPackage("${ALICE_ROOT}/STEERBase.par");
- gProof->EnablePackage("STEERBase");
- // --- Enable the ESD Package
- gProof->UploadPackage("${ALICE_ROOT}/ESD.par");
- gProof->EnablePackage("ESD");
- // --- Enable the AOD Package
- gProof->UploadPackage("${ALICE_ROOT}/AOD.par");
- gProof->EnablePackage("AOD");
- // --- Enable the ANALYSIS Package
- gProof->UploadPackage("${ALICE_ROOT}/ANALYSIS.par");
- gProof->EnablePackage("ANALYSIS");
- // --- Enable the ANALYSISalice Package
- gProof->UploadPackage("${ALICE_ROOT}/ANALYSISalice.par");
- gProof->EnablePackage("ANALYSISalice");
-
-
- // --- Enable the JETAN Package
- if (iJETAN||iJETANMC) {
- gProof->UploadPackage("${ALICE_ROOT}/JETAN.par");
- gProof->EnablePackage("JETAN");
- }
- // --- Enable particle correlation analysis
- if (iPWG4UE||iPWG4SPECTRUM) {
- gProof->UploadPackage("${ALICE_ROOT}/PWG4JetTasks.par");
- gProof->EnablePackage("PWG4JetTasks");
- }
-
- }
- else{
- gSystem->Load("libSTEERBase");
- gSystem->Load("libESD");
- gSystem->Load("libAOD");
- gSystem->Load("libANALYSIS");
- gSystem->Load("libANALYSISalice");
-
-
- // --- Enable the JETAN Package
- if (iJETAN||iJETANMC||iJETANAOD) gSystem->Load("libJETAN");
- // --- Enable particle correlation analysis
- if (iPWG4UE||iPWG4SPECTRUM)gSystem->Load("libPWG4JetTasks");
- }
-
-
- // Make the analysis manager
- AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train", "A test setup for the analysis train");
- if (iAODanalysis) {
- // AOD input handler
- AliAODInputHandler *aodH = new AliAODInputHandler();
- mgr->SetInputEventHandler(aodH);
- } else {
- // ESD input handler
- AliESDInputHandler *esdHandler = new AliESDInputHandler();
- mgr->SetInputEventHandler(esdHandler);
-// esdHandler->SetInactiveBranches("FMD CaloCluster");
- }
- // Monte Carlo handler
- if (useMC && !iAODanalysis) {
- AliMCEventHandler* mcHandler = new AliMCEventHandler();
- mgr->SetMCtruthEventHandler(mcHandler);
- mcHandler->SetReadTR(readTR);
- }
- // Top container for input
- AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
-
- // This container is managed by the AOD handler
- AliAnalysisDataContainer *cout_aod = 0;
- if (iAODhandler) {
- // AOD output handler
- AliAODHandler* aodHandler = new AliAODHandler();
- aodHandler->SetFillAOD(kFALSE);
- mgr->SetOutputEventHandler(aodHandler);
- aodHandler->SetOutputFileName(Form("AliAODs_pwg4_%07d-%07d.root",nOffset,nOffset+nEvents));
- cout_aod = mgr->GetCommonOutputContainer();
- cout_aod->SetSpecialOutput();
- }
-
- // Debugging if needed
- if (debug) mgr->SetDebugLevel(0);
-// AliLog::EnableDebug(kTRUE);
- AliLog::SetGlobalLogLevel(0);
-
-
- if (iESDfilter && !iAODanalysis) {
- // Set of cuts plugged into the ESD filter
- //
- // 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);
- //
- AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
- trackFilter->AddCuts(esdTrackCutsL);
- //
- // ESD filter task putting standard info to output AOD (with cuts)
- AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
- esdfilter->SetTrackFilter(trackFilter);
- esdfilter->SetDebugLevel(10);
- mgr->AddTask(esdfilter);
- // Connect to data containers
- mgr->ConnectInput (esdfilter, 0, cinput );
- mgr->ConnectOutput (esdfilter, 0, cout_aod );
- }
- // Jet analysis
- AliAnalysisDataContainer *c_aodjet = 0;
- if (iJETAN && !iAODanalysis) {
- AliAnalysisTaskJets *jetana = new AliAnalysisTaskJets("JetAnalysis");
- jetana->SetDebugLevel(10);
- jetana->SetConfigFile("${ALICE_ROOT}/JETAN/ConfigJetAnalysis.C");
- mgr->AddTask(jetana);
- // Output histograms list for jet analysis
- AliAnalysisDataContainer *cout_jet = mgr->CreateContainer("jethist", TList::Class(),
- AliAnalysisManager::kOutputContainer,Form("jethist_%07d-%07d.root",nOffset,nOffset+nEvents));
- // Dummy AOD output container for jet analysis (no client yet)
- c_aodjet = mgr->CreateContainer("cAODjet", TTree::Class(),
- AliAnalysisManager::kExchangeContainer);
- // Connect to data containers
- mgr->ConnectInput (jetana, 0, cinput );
- mgr->ConnectOutput (jetana, 0, c_aodjet );
- // mgr->ConnectOutput (jetana, 0, cout_aod );
- mgr->ConnectOutput (jetana, 1, cout_jet );
- }
- // JETANALYSIS from the AOD
- if (iJETANAOD) {
- AliAnalysisTaskJets *jetanaAOD = new AliAnalysisTaskJets("AODJetAnalysis");
- jetanaAOD->SetDebugLevel(10);
- jetanaAOD->SetNonStdBranch("jetsAOD");
- jetanaAOD->SetConfigFile("${ALICE_ROOT}/JETAN/ConfigJetAnalysisAOD.C");
- mgr->AddTask(jetanaAOD);
- // Output histograms list for jet analysis
- AliAnalysisDataContainer *cout_jetAOD = mgr->CreateContainer("jethistAOD", TList::Class(),
- AliAnalysisManager::kOutputContainer, Form("jethistAOD_%07d-%07d.root",nOffset,nOffset+nEvents));
- // Dummy AOD output container for jet analysis (no client yet)
- c_aodjet0 = mgr->CreateContainer("cAODjet0", TTree::Class(),
- AliAnalysisManager::kExchangeContainer);
- // Connect to data containers
- mgr->ConnectInput (jetanaAOD, 0, cout_aod );
- mgr->ConnectOutput (jetanaAOD, 0, c_aodjet0 );
- // mgr->ConnectOutput (jetana, 0, cout_aod );
- mgr->ConnectOutput (jetanaAOD, 1, cout_jetAOD );
- }
- // Jet analysisMC
- AliAnalysisDataContainer *c_aodjetMC = 0;
- if (iJETANMC && useMC) {
- AliAnalysisTaskJets *jetanaMC = new AliAnalysisTaskJets("JetAnalysisMC");
- jetanaMC->SetDebugLevel(10);
- jetanaMC->SetConfigFile("${ALICE_ROOT}/JETAN/ConfigJetAnalysisMC.C");
- jetanaMC->SetNonStdBranch("jetsMC");
- mgr->AddTask(jetanaMC);
- // Output histograms list for jet analysis
- AliAnalysisDataContainer *cout_jetMC = mgr->CreateContainer("jethistMC", TList::Class(),
- AliAnalysisManager::kOutputContainer,Form("jethistMC_%07d-%07d.root",nOffset,nOffset+nEvents));
- // Dummy AOD output container for jet analysis (no client yet)
- c_aodjetMC = mgr->CreateContainer("cAODjetMC", TTree::Class(),
- AliAnalysisManager::kExchangeContainer);
- // Connect to data containers
- mgr->ConnectInput (jetanaMC, 0, cinput );
- mgr->ConnectOutput (jetanaMC, 0, c_aodjetMC );
- // mgr->ConnectOutput (jetanaMC, 0, cout_aod );
- mgr->ConnectOutput (jetanaMC, 1, cout_jetMC );
- }
- // Dijet analysis
- if(iDIJETAN){
- AliAnalysisTaskDiJets *dijetana = new AliAnalysisTaskDiJets("DiJetAnalysis");
- dijetana->SetDebugLevel(2);
-
- mgr->AddTask(dijetana);
-
- //
- // Create containers for input/output
- AliAnalysisDataContainer *c_aod_dijet = mgr->CreateContainer("cAODdijet", TTree::Class(),
- AliAnalysisManager::kExchangeContainer);
- mgr->ConnectInput (dijetana, 0, cinput );
- mgr->ConnectOutput (dijetana, 0, c_aod_dijet);
- }
-
-
- if (iPWG4SPECTRUM) {
- AliAnalysisTaskJetSpectrum* pwg4spec = new AliAnalysisTaskJetSpectrum("Jet Spectrum");
-
- // default parameters use a switch via iPWGSPECTRUM
- // or a config file
- pwg4spec->SetAnalysisType(AliAnalysisTaskJetSpectrum::kAnaMC);
- // if(iAODanalysis)pwg4spec->SetAODInput(kTRUE);
- pwg4spec->SetDebugLevel(11);
- // pwg4spec->SetBranchRec("jetsMC");
- // pwg4spec->SetBranchGen("jetsMC");
- mgr->AddTask(pwg4spec);
-
- AliAnalysisDataContainer *coutput1_Spec = mgr->CreateContainer("pwg4spec", TList::Class(),AliAnalysisManager::kOutputContainer,Form( "pwg4spec_%07d-%07d.root",nOffset,nOffset+nEvents));
- // coutput1_Spec->SetSpecialOutput();
- // Dummy AOD output container for jet analysis (no client yet)
- c_aodSpec = mgr->CreateContainer("cAODjetSpec", TTree::Class(),
- AliAnalysisManager::kExchangeContainer);
- mgr->ConnectInput (pwg4spec, 0, cinput);
- // mgr->ConnectInput (pwg4spec, 0, c_aodjet);
- mgr->ConnectOutput (pwg4spec, 0, c_aodSpec );
- mgr->ConnectOutput (pwg4spec, 1, coutput1_Spec );
- }
-
-
- // Particle correlation analysis
- if (iPWG4UE) {
- AliAnalysisTaskUE* ueana = new AliAnalysisTaskUE("Underlying Event");
-
-
- // default parameters use a switch via iPWGUE
- // or a config file
- Int_t anaType =1;
- Int_t regType =1;
- Double_t jetEtaCut=0.2;
- Double_t trackPtCut=0.5;
- Double_t trackEtaCut= 0.9;
- Double_t rad=0.7;
- Double_t deltaPhiCut = 2.616;
-
- ueana->SetDebugLevel(10);
- ueana->SetPtRangeInHist(25, 0., 250.);
- ueana->SetAnaTopology(anaType);
- ueana->SetRegionType(regType);
- ueana->SetJet1EtaCut(jetEtaCut);
- ueana->SetTrackPtCut(trackPtCut);
- ueana->SetPtSumOrdering(2);
- ueana->SetConeRadius(rad);
- ueana->SetTrackEtaCut(trackEtaCut);
- ueana->SetJet2DeltaPhiCut(deltaPhiCut);
- mgr->AddTask(ueana);
-
-
- AliAnalysisDataContainer *coutput1_UE = mgr->CreateContainer("histosUE", TList::Class(),AliAnalysisManager::kOutputContainer, Form("pwg4UE_%07d-%07d.root",nOffset,nOffset+nEvents));
-
- mgr->ConnectInput (ueana, 0, cinput);
- // mgr->ConnectInput (ueana, 0, c_aodjet);
- mgr->ConnectOutput (ueana, 0, coutput1_UE );
- }
-
- // Run the analysis
- //
- if (mgr->InitAnalysis()) {
- mgr->PrintStatus();
- if(bPROOF)mgr->StartAnalysis("proof",dataset.Data(), nEvents,nOffset);
- else mgr->StartAnalysis("local",chain);
- }
-}
+//______________________________________________________________________________\r
+void AnalysisTrainCAF(Int_t nEvents = 10000, Int_t nOffset = 0, char *ds = "/PWG4/kleinb/LHC09a1_test500")\r
+{\r
+ // Example of running analysis train in CAF. To run in debug mode:\r
+ // - export ROOTSYS=debug on your local client\r
+ // - un-comment gProof->ClearPackages()\r
+ // - un-comment lines with debugging info\r
+\r
+\r
+ Bool_t debug = kTRUE;\r
+ Bool_t useMC = kTRUE;\r
+ Bool_t readTR = kFALSE;\r
+ Bool_t bPROOF = kFALSE;\r
+ Bool_t bLOCALPAR = kFALSE; // flag that swtiches on loading of local par files insead of loading libs, needed for grid and local testing\r
+\r
+ \r
+ Int_t iAODanalysis = 1;\r
+ Int_t iAODhandler = 1;\r
+ Int_t iESDfilter = 1; // Only active if iAODanalysis=0\r
+ Int_t iJETAN = 1;\r
+ Int_t iJETANESD = 0;\r
+ Int_t iJETANMC = 0;\r
+ Int_t iJETANMC2 = 0;\r
+ Int_t iFASTJET = 1;\r
+ Int_t iDIJETAN = 0;\r
+ Int_t iPWG4SPECTRUM = 0;\r
+ Int_t iPWG4JFSYSTEMATICS = 0;\r
+ Int_t iPWG4JETCORRECTION = 0;\r
+ Int_t iPWG4THREEJETS = 0;\r
+ Int_t iPWG4UE = 0;\r
+ Int_t iPWG4PID = 0;\r
+\r
+ if (iAODanalysis) {\r
+ useMC = kFALSE;\r
+ readTR = kFALSE;\r
+ iESDfilter = 0;\r
+ } \r
+ if (iJETAN) iESDfilter=1;\r
+ if (iESDfilter) iAODhandler=1;\r
+ \r
+ // Dataset from CAF\r
+ TString dataset(ds);\r
+ TChain *chain = 0;\r
+ // CKB quick hack for local analysis\r
+ gROOT->LoadMacro("CreateESDChain.C");\r
+ TChain *chain = CreateChain("aodTree",ds,1);\r
+ // TChain *chain = CreateChain("esdTree",ds,100);\r
+ // chain = new TChain("aodTree");\r
+ // chain->Add("/Users/kleinb/bigdisk/1/LHC09a3/001/AliAOD.root");\r
+\r
+ \r
+ printf("==================================================================\n");\r
+ printf("=========== RUNNING ANALYSIS TRAIN IN CAF MODE =============\n");\r
+ printf("==================================================================\n");\r
+ if (iAODanalysis) printf("= AOD analysis on dataset: %s\n", dataset.Data());\r
+ else printf("= ESD analysis on dataset: %s\n", dataset.Data());\r
+ if (iESDfilter) printf("= ESD filter =\n");\r
+ if (iJETAN) printf("= Jet analysis from AOD =\n");\r
+ if (iJETANESD) printf("= Jet analysis from ESD =\n");\r
+ if (iJETANMC) printf("= Jet analysis from Kinematics =\n");\r
+ if (iJETANMC2) printf("= Jet analysis 2 from Kinematics =\n");\r
+ if (iFASTJET) printf("= Loading FastJet =\n");\r
+ if (iDIJETAN) printf("= DiJet analysis =\n");\r
+ if (iPWG4SPECTRUM)printf("= PWG4 Jet spectrum analysis =\n");\r
+ if (iPWG4JFSYSTEMATICS)printf("= PWG4 Jet Finder systematics =\n");\r
+ if (iPWG4JETCORRECTION)printf("= PWG4 Jet Correction =\n");\r
+ if (iPWG4THREEJETS)printf("= PWG4 Three Jets =\n");\r
+\r
+ if (iPWG4UE) printf("= PWG4 UE =\n");\r
+ printf("==================================================================\n");\r
+ if (useMC) printf(":: use MC TRUE\n");\r
+ else printf(":: use MC FALSE\n");\r
+ if (readTR) printf(":: read TR TRUE\n");\r
+ else printf(":: read TR FALSE\n");\r
+ if (debug) printf(":: debugging TRUE\n");\r
+ else printf(":: debugging FALSE\n");\r
+ \r
+ // Load common libraries\r
+ gSystem->Load("libTree.so");\r
+ gSystem->Load("libGeom.so");\r
+ gSystem->Load("libVMC.so");\r
+ gSystem->Load("libPhysics.so");\r
+ if(iFASTJET){\r
+ gSystem->Load("libCGAL.so");\r
+ gSystem->Load("libfastjet.so");\r
+ gSystem->Load("libsiscone.so");\r
+ gSystem->Load("libSISConePlugin.so"); \r
+ }\r
+\r
+\r
+ // Reset user processes if CAF if not responding anymore\r
+ // TProof::Reset("alicecaf"); \r
+ // One may enable a different ROOT version on CAF\r
+ \r
+ // const char* proofNode = "localhost";\r
+ const char* proofNode = "alicecaf";\r
+ \r
+ // Connect to proof\r
+ if(bPROOF){\r
+ TProof::Mgr(proofNode)->ShowROOTVersions();\r
+ // TProof::Mgr(proofNode)->SetROOTVersion("v5-21-01-alice_dbg");\r
+ TProof::Open(proofNode); \r
+ \r
+ // Clear packages if changing ROOT version on CAF or local\r
+ gProof->ClearPackages();\r
+ // Enable proof debugging if needed\r
+ // gProof->SetLogLevel(5);\r
+ // To debug the train in PROOF mode, type in a root session:\r
+ // root[0] TProof::Mgr("lxb6064")->GetSessionLogs()->Display("*",0,10000);\r
+ // Common packages\r
+ // --- Enable the STEERBase Package\r
+ gProof->UploadPackage("STEERBase.par");\r
+ gProof->EnablePackage("STEERBase"); \r
+ // --- Enable the ESD Package \r
+ gProof->UploadPackage("ESD.par"); \r
+ gProof->EnablePackage("ESD"); \r
+ // --- Enable the AOD Package \r
+ gProof->UploadPackage("AOD.par"); \r
+ gProof->EnablePackage("AOD"); \r
+ // --- Enable the ANALYSIS Package \r
+ gProof->UploadPackage("ANALYSIS.par"); \r
+ gProof->EnablePackage("ANALYSIS"); \r
+ // --- Enable the ANALYSISalice Package\r
+ gProof->UploadPackage("ANALYSISalice.par");\r
+ gProof->EnablePackage("ANALYSISalice");\r
+ \r
+ \r
+ // --- Enable the JETAN Package\r
+ if (iJETAN||iJETANESD||iJETANMC||iJETANMC2) {\r
+ gProof->UploadPackage("JETAN.par");\r
+ gProof->EnablePackage("JETAN");\r
+ if(iFASTJET){\r
+ gProof->UploadPackage("FASTJETAN.par");\r
+ gProof->EnablePackage("FASTJETAN"); \r
+ }\r
+ } \r
+ // --- Enable particle correlation analysis\r
+ if (iPWG4UE||iPWG4SPECTRUM||iPWG4JFSYSTEMATICS||iPWG4JETCORRECTION||iPWG4THREEJETS) {\r
+ gProof->UploadPackage("JETAN.par");\r
+ gProof->EnablePackage("JETAN");\r
+ gProof->UploadPackage("PWG4JetTasks.par");\r
+ gProof->EnablePackage("PWG4JetTasks");\r
+ } \r
+ \r
+ }\r
+ else{\r
+\r
+ // \r
+ // We are local or on grid\r
+ // access remote files in lcoal case as well so open alien connection\r
+\r
+ /*\r
+ printf("*** Connect to AliEn ***\n");\r
+ TGrid::Connect("alien://");\r
+\r
+ chain = CreateChainFromCollection("wn.xml","esdTree",2); \r
+ */\r
+\r
+ if(bLOCALPAR){\r
+ SetupPar("STEERBase");\r
+ SetupPar("ESD"); \r
+ SetupPar("AOD"); \r
+ SetupPar("ANALYSIS"); \r
+ SetupPar("ANALYSISalice");\r
+ if (iJETAN||iJETANESD||iJETANMC||iJETANMC2){\r
+ SetupPar("JETAN"); \r
+ if(iFASTJET) SetupPar("FASTJETAN"); \r
+ }\r
+ if (iPWG4UE||iPWG4SPECTRUM||iPWG4JFSYSTEMATICS){\r
+ SetupPar("JETAN"); \r
+ SetupPar("PWG4JetTasks");\r
+ }\r
+ }\r
+ else{\r
+ Printf("Loading Local libs");\r
+ gSystem->Load("libSTEERBase");\r
+ gSystem->Load("libESD");\r
+ gSystem->Load("libAOD");\r
+ gSystem->Load("libANALYSIS");\r
+ gSystem->Load("libANALYSISalice"); \r
+ // --- Enable the JETAN Package\r
+ if (iJETAN||iJETANESD||iJETANMC||iJETANMC2){\r
+ gSystem->Load("libJETAN");\r
+ if(iFASTJET)gSystem->Load("libFASTJETAN");\r
+ }\r
+ // --- Enable particle correlation analysis\r
+ if (iPWG4UE||iPWG4SPECTRUM||iPWG4JFSYSTEMATICS||iPWG4THREEJETS){\r
+ gSystem->Load("libJETAN");\r
+ gSystem->Load("libPWG4JetTasks"); \r
+ }\r
+ }\r
+\r
+ }\r
+\r
+\r
+ // Make the analysis manager\r
+ AliAnalysisManager *mgr = new AliAnalysisManager("Analysis Train", "A test setup for the analysis train");\r
+ if (iAODanalysis) {\r
+ // AOD input handler\r
+ AliAODInputHandler *aodH = new AliAODInputHandler();\r
+ mgr->SetInputEventHandler(aodH);\r
+ } else { \r
+ // ESD input handler\r
+ AliESDInputHandler *esdHandler = new AliESDInputHandler();\r
+ mgr->SetInputEventHandler(esdHandler);\r
+// esdHandler->SetInactiveBranches("FMD CaloCluster");\r
+ }\r
+ // Monte Carlo handler\r
+ if (useMC && !iAODanalysis) {\r
+ AliMCEventHandler* mcHandler = new AliMCEventHandler();\r
+ mgr->SetMCtruthEventHandler(mcHandler);\r
+ mcHandler->SetReadTR(readTR); \r
+ } \r
+ // Top container for input \r
+ AliAnalysisDataContainer *cinput = 0;\r
+ \r
+ cinput = mgr->GetCommonInputContainer();\r
+\r
+ // This container is managed by the AOD handler\r
+ AliAnalysisDataContainer *cout_aod = 0;\r
+ if (iAODhandler) {\r
+ // AOD output handler\r
+ AliAODHandler* aodHandler = new AliAODHandler();\r
+ // aodHandler->SetFillAOD(kFALSE);\r
+ mgr->SetOutputEventHandler(aodHandler); \r
+ aodHandler->SetOutputFileName(Form("AliAODs_pwg4_%07d-%07d.root",nOffset,nOffset+nEvents));\r
+ cout_aod = mgr->GetCommonOutputContainer();\r
+ cout_aod->SetSpecialOutput();\r
+ } \r
+\r
+ // Debugging if needed\r
+ if (debug) mgr->SetDebugLevel(10);\r
+ // AliLog::EnableDebug(kTRUE);\r
+ AliLog::SetGlobalLogLevel(1);\r
+\r
+\r
+ if (iESDfilter && !iAODanalysis) {\r
+ gSystem->Load("libCORRFW.so");\r
+ gSystem->Load("libPWG3muon.so");\r
+\r
+ gROOT->LoadMacro(Form("%s/ANALYSIS/macros/AddTaskESDFilter.C",gSystem->ExpandPathName("${ALICE_ROOT}")));\r
+ // gROOT->LoadMacro("AddTaskESDfilter.C");\r
+ AliAnalysisTaskESDfilter *esdfilter = AddTaskESDFilter();\r
+ Printf("esdFilter %p",esdfilter); \r
+ } \r
+ // Jet analysis from the AOD\r
+ if (iJETAN) {\r
+ gROOT->LoadMacro("AddTaskJets.C");\r
+ // AliAnalysisTaskJets *jetanaAOD = AddTaskJets("AOD","UA1",0.4);\r
+ // AliAnalysisTaskJets *jetanaAOD = AddTaskJets("AOD","UA1",0.4);\r
+ // jetanaAOD->SetNonStdBranch("jetsAOD_UA1"); \r
+ AliAnalysisTaskJets *jetanaAOD = AddTaskJets();\r
+ Int_t i = AddTaskJetsDelta();\r
+ } \r
+ // JETANALYSIS from the ESD\r
+ if (iJETANESD && !iAODanalysis) {\r
+ gROOT->LoadMacro("AddTaskJets.C");\r
+ AliAnalysisTaskJets *jetanaESD = AddTaskJets("ESD","UA1");\r
+ jetanaESD->SetDebugLevel(0);\r
+ jetanaESD->SetNonStdBranch("jetsESD"); \r
+ } \r
+ // Jet analysisMC\r
+ if (iJETANMC ){ \r
+ gROOT->LoadMacro("AddTaskJets.C");\r
+ // AliAnalysisTaskJets *jetanaMC = AddTaskJets("AODMC","UA1",0.4);\r
+ AliAnalysisTaskJets *jetanaMC = AddTaskJets("AODMC","UA1",0.4);\r
+ jetanaMC->SetDebugLevel(0);\r
+ jetanaMC->SetNonStdBranch("jetsMC_UA1");\r
+ } \r
+ if (iJETANMC2 ){ \r
+ gROOT->LoadMacro("AddTaskJets.C");\r
+ // AliAnalysisTaskJets *jetanaMC2 = AddTaskJets("AODMC2","UA1",0.4);\r
+ AliAnalysisTaskJets *jetanaMC2 = AddTaskJets("AODMC2","UA1",0.4);\r
+ jetanaMC2->SetDebugLevel(0);\r
+ jetanaMC2->SetNonStdBranch("jetsMC2_UA1");\r
+ } \r
+ // Dijet analysis\r
+ if(iDIJETAN){\r
+ gROOT->LoadMacro("AddTaskDiJets.C");\r
+ AliAnalysisTaskDiJets *dijetana = AddTaskDiJets();\r
+ }\r
+ if (iPWG4SPECTRUM) {\r
+ gROOT->LoadMacro("AddTaskJetSpectrum2.C");\r
+ AliAnalysisTaskJetSpectrum2* pwg4spec = AddTaskJetSpectrum2();\r
+ pwg4spec->SetAODInput(kTRUE);\r
+ pwg4spec->SetBranchRec("jets");\r
+ pwg4spec->SetAnalysisType(0);\r
+ pwg4spec->SetDebugLevel(0);\r
+ } \r
+ if (iPWG4JFSYSTEMATICS) {\r
+ gROOT->LoadMacro("AddTaskJFSystematics.C");\r
+ AliAnalysisTaskJFSystematics* pwg4jfs = AddTaskJFSystematics("jetsMC","jets");\r
+ pwg4jfs->SetAODInput(kTRUE);\r
+ pwg4jfs->SetDebugLevel(0);\r
+ } \r
+ if (iPWG4JETCORRECTION) {\r
+ gROOT->LoadMacro("AddTaskJetCorrections.C");\r
+ AliAnalysisTaskJetCorrections* pwg4jc = AddTaskJetCorrections();\r
+ pwg4jc->SetDebugLevel(11);\r
+ } \r
+ if (iPWG4THREEJETS) {\r
+ gROOT->LoadMacro("AddTaskThreeJets.C");\r
+ AliAnalysisTaskThreeJets* pwg4jjj = AddTaskThreeJets();\r
+ pwg4jjj->SetDebugLevel(11);\r
+ } \r
+ if (iPWG4UE) {\r
+ gROOT->LoadMacro("AddTaskUE.C");\r
+ AliAnalysisTaskUE* ueana = AddTaskUE();\r
+ } \r
+ if(iPWG4PID){\r
+ gROOT->LoadMacro("AddTaskPWG4PidDetEx.C");\r
+ AliAnalysisTaskPWG4PidDetEx *taskPid = AddTaskPWG4PidDetEx();\r
+ taskPid->SetDebugLevel(0);\r
+ }\r
+ // Run the analysis\r
+ // \r
+ if (mgr->InitAnalysis()) {\r
+ mgr->PrintStatus();\r
+ Printf("Chain with %d entries",chain->GetEntries()); \r
+ if(bPROOF)mgr->StartAnalysis("proof",dataset.Data(), nEvents,nOffset);\r
+ else mgr->StartAnalysis("local",chain,nEvents);\r
+ } \r
+}\r
+TChain *CreateChainFromCollection(const char* xmlfile, const char *treeName="esdTree",Int_t nFiles = 0)\r
+{\r
+// Create a chain from an alien collection. \r
+ TAlienCollection * myCollection = TAlienCollection::Open(xmlfile);\r
+\r
+ if (!myCollection) {\r
+ ::Error("CreateChainSingle", "Cannot create an AliEn collection from %s", xmlfile) ;\r
+ return NULL ;\r
+ }\r
+\r
+ TChain* chain = new TChain(treeName);\r
+ myCollection->Reset() ;\r
+ Int_t iCount = 0;\r
+ while ( myCollection->Next() ){\r
+ if(nFiles!=0)iCount++;\r
+ if(iCount > nFiles)break;\r
+ chain->Add(myCollection->GetTURL("")) ;\r
+ Printf("Adding %s",myCollection->GetTURL(""));\r
+ }\r
+ chain->ls();\r
+ return chain;\r
+}\r
+\r
+\r
+void SetupPar(char* pararchivename)\r
+{\r
+ //Load par files, create analysis libraries \r
+ //For testing, if par file already decompressed and modified \r
+ //classes then do not decompress. \r
+\r
+ TString cdir(Form("%s", gSystem->WorkingDirectory() )) ;\r
+ TString parpar(Form("%s.par", pararchivename)) ;\r
+ /*\r
+ if ( gSystem->AccessPathName(parpar.Data()) ) {\r
+ gSystem->ChangeDirectory(gSystem->Getenv("ALICE_ROOT")) ;\r
+ TString processline(Form(".! make %s", parpar.Data())) ;\r
+ gROOT->ProcessLine(processline.Data()) ;\r
+ gSystem->ChangeDirectory(cdir) ;\r
+ processline = Form(".! mv /tmp/%s .", parpar.Data()) ;\r
+ gROOT->ProcessLine(processline.Data()) ;\r
+ }\r
+ */\r
+\r
+ if (!gSystem->AccessPathName(pararchivename) ) {\r
+ TString processline = Form(".! tar xvzf %s",parpar.Data()) ;\r
+ gROOT->ProcessLine(processline.Data());\r
+ }\r
+\r
+ TString ocwd = gSystem->WorkingDirectory();\r
+ gSystem->ChangeDirectory(pararchivename);\r
+\r
+ // check for BUILD.sh and execute \r
+ if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {\r
+ printf("*******************************\n");\r
+ printf("*** Building PAR archive ***\n");\r
+ cout<<pararchivename<<endl;\r
+ printf("*******************************\n");\r
+\r
+ if (gSystem->Exec("PROOF-INF/BUILD.sh")) {\r
+ Error("runProcess","Cannot Build the PAR Archive! - Abort!");\r
+ return -1;\r
+ }\r
+ }\r
+ // check for SETUP.C and execute \r
+ if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {\r
+ printf("*******************************\n");\r
+ printf("*** Setup PAR archive ***\n");\r
+ cout<<pararchivename<<endl;\r
+ printf("*******************************\n");\r
+ gROOT->Macro("PROOF-INF/SETUP.C");\r
+ }\r
+\r
+ gSystem->ChangeDirectory(ocwd.Data());\r
+ printf("Current dir: %s\n", ocwd.Data());\r
+}\r