]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliPhysicsSelectionTask.cxx
Lightweight cascade checks -> code implementation
[u/mrichter/AliRoot.git] / ANALYSIS / AliPhysicsSelectionTask.cxx
index 64e287c0dcef9a0c76531453b12d4f1abb26986f..b89b8e540dfd5ee611166da16c6a6297dbca2353 100644 (file)
@@ -22,6 +22,7 @@ AliPhysicsSelectionTask::AliPhysicsSelectionTask() :
   AliAnalysisTaskSE("AliPhysicsSelectionTask"),
   fOutput(0),
   fOption(""),
+  fUseSpecialOutput(kFALSE),
   fPhysicsSelection(0)
 {
   //
@@ -33,6 +34,7 @@ AliPhysicsSelectionTask::AliPhysicsSelectionTask(const char* opt) :
   AliAnalysisTaskSE("AliPhysicsSelectionTask"),
   fOutput(0),
   fOption(opt),
+  fUseSpecialOutput(kFALSE),
   fPhysicsSelection(new AliPhysicsSelection())
 {
   //
@@ -45,8 +47,15 @@ AliPhysicsSelectionTask::AliPhysicsSelectionTask(const char* opt) :
   } 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);
 }
@@ -72,6 +81,8 @@ void AliPhysicsSelectionTask::UserCreateOutputObjects()
 
   Printf("AliPhysicsSelectionTask::CreateOutputObjects");
 
+  if (fUseSpecialOutput) OpenFile(1);
+
   fOutput = new TList;
   fOutput->SetOwner();
   
@@ -92,6 +103,14 @@ void AliPhysicsSelectionTask::UserExec(Option_t*)
   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
@@ -118,5 +137,5 @@ void AliPhysicsSelectionTask::Terminate(Option_t *)
   fout->Write();
   fout->Close();
   
-  Printf("Writting result to event_stat.root");
+  Printf("Writing result to event_stat.root");
 }