// fTree = new TTree("T", "T");
// fTree->Branch("forward", &fAODFMD);
- PostData(1, fList);
+ // PostData(1, fList);
// PostData(2, fTree);
}
//____________________________________________________________________
if (fAODFMD.IsTriggerBits(AliAODForwardMult::kInel))
fHData->Add(&(fAODFMD.GetHistogram()));
+
+ PostData(1, fList);
}
//____________________________________________________________________
{
TList* list = dynamic_cast<TList*>(GetOutputData(1));
if (!list) {
- AliError("No output list defined");
+ AliError(Form("No output list defined (%p)", GetOutputData(1)));
+ if (GetOutputData(1)) GetOutputData(1)->Print();
return;
}
TH1I* hEventsTr = static_cast<TH1I*>(list->FindObject("nEventsTr"));
TH1I* hEventsTrVtx = static_cast<TH1I*>(list->FindObject("nEventsTrVtx"));
TH2D* hData = static_cast<TH2D*>(list->FindObject("d2Ndetadphi"));
-
+ if (!hData || !hEventsTr || !hEventsTrVtx) {
+ AliError(Form("one or more histograms could not be found in output "
+ "list %s (hEventsTr=%p,hEventsTrVtx=%p,d2Ndetadphi=%p)",
+ list->GetName(), hEventsTr, hEventsTrVtx, hData));
+ list->ls();
+ return;
+ }
// TH1D* dNdeta = fHData->ProjectionX("dNdeta", 0, -1, "e");
TH1D* dNdeta = hData->ProjectionX("dNdeta", 1, -1, "e");
*/
void RunManager(const char* esd, Bool_t mc=kFALSE, Int_t nEvents=1000,
Int_t nCutBins=1, Float_t correctionCut=0.1,
- const char* mode="local")
+ Bool_t proof=false)
{
gSystem->Load("libVMC");
gSystem->Load("libTree");
gSystem->Load("libPWG0dep");
gSystem->Load("libPWG2forward");
gSystem->Load("libPWG2forward2");
+
+ if (proof) {
+ gEnv->SetValue("Proof.GlobalPackageDirs",
+ Form("%s:%s",
+ gEnv->GetValue("Proof.GlobalPackageDirs", "."),
+ gSystem->Getenv("ALICE_ROOT")));
+ Info("RunManager", "PAR path=%s",
+ gEnv->GetValue("Proof.GlobalPackageDirs", "."));
+ TProof::Open("workers=1");
+ const char* pkgs[] = { "STEERBase", "ESD", "AOD", "ANALYSIS",
+ "ANALYSISalice", "PWG2forward", "PWG2forward2", 0};
+ const char** pkg = pkgs;
+ while (*pkg) {
+ gProof->UploadPackage(Form("${ALICE_ROOT}/%s.par",*pkg));
+ gProof->EnablePackage(*pkg);
+ pkg++;
+ }
+ gProof->ShowPackages();
+ }
//You can expand this chain if you have more data :-)
TChain* chain = new TChain("esdTree");
"Cascades "
"MuonTracks "
"TrdTracks "
- "CaloClusters");
+ "CaloClusters "
+ "HLTGlobalTrigger");
mgr->SetInputEventHandler(esdHandler);
// AOD output handler
AliAODHandler* aodHandler = new AliAODHandler();
mgr->SetOutputEventHandler(aodHandler);
- aodHandler->SetFillAOD(kTRUE);
- aodHandler->SetFillAODforRun(kTRUE);
- aodHandler->SetOutputFileName("AliAODs.root");
+ aodHandler->SetOutputFileName("foo.root");
gROOT->LoadMacro("$ALICE_ROOT/PWG2/FORWARD/analysis2/AddTaskFMD.C");
gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
- AddTaskFMD(nCutBins, correctionCut);
- AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
+ AliAnalysisTask* task = AddTaskFMD(nCutBins, correctionCut);
+ mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
+
+ task = AddTaskPhysicsSelection(mc, kTRUE, kTRUE);
+ mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
// Run the analysis
mgr->SetUseProgressBar(kTRUE);
// Write train to file - a test
+#if 0
TDirectory* savDir = gDirectory;
TFile* file = TFile::Open("analysisTrain.root", "RECREATE");
mgr->Write();
file->Close();
savDir->cd();
-
+#endif
+
// Run the train
t.Start();
- mgr->StartAnalysis(mode, chain, nEvents);
+ mgr->StartAnalysis(proof ? "proof" : "local", chain, nEvents);
t.Stop();
t.Print();
}