AliAnalysisTaskSE("AliPhysicsSelectionTask"),
fOutput(0),
fOption(""),
+ fUseSpecialOutput(kFALSE),
fPhysicsSelection(0)
{
//
AliAnalysisTaskSE("AliPhysicsSelectionTask"),
fOutput(0),
fOption(opt),
+ fUseSpecialOutput(kFALSE),
fPhysicsSelection(new AliPhysicsSelection())
{
//
} else {
AliError("No input event handler connected to analysis manager. No Physics Event Selection.");
}
+ //
+ TString opts = opt;
+ opts.ToLower();
+ if (opts.Contains("specialoutput")) fUseSpecialOutput = kTRUE;
+
// Define input and output slots here
DefineOutput(1, TList::Class());
+ fBranchNames = "ESD:AliESDRun.,AliESDHeader.,AliMultiplicity.,AliESDVZERO.,"
+ "AliESDZDC.,SPDVertex.,PrimaryVertex.,TPCVertex.,Tracks,SPDPileupVertices";
AliLog::SetClassDebugLevel("AliPhysicsSelectionTask", AliLog::kWarning);
}
// histograms are in the output list and deleted when the output
// list is deleted by the TSelector dtor
- if (fOutput) {
+ if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
delete fOutput;
fOutput = 0;
}
Printf("AliPhysicsSelectionTask::CreateOutputObjects");
+ if (fUseSpecialOutput) OpenFile(1);
+
fOutput = new TList;
fOutput->SetOwner();
PostData(1, fOutput);
}
+void AliPhysicsSelectionTask::FinishTaskOutput()
+{
+// This gets called at the end of the processing on the worker. It allows dumping
+// statistics printed by the physics selection object to the statistics message
+// handled by the analysis manager.
+ if (fPhysicsSelection) fPhysicsSelection->Print("STAT");
+}
+
void AliPhysicsSelectionTask::Terminate(Option_t *)
{
// The Terminate() function is the last function to be called during
fout->Write();
fout->Close();
- Printf("Writting result to event_stat.root");
+ Printf("Writing result to event_stat.root");
}