ROOT logo
/* $Id: AliEventStatsTask.cxx 35782 2009-10-22 11:54:31Z jgrosseo $ */

#include "AliEventStatsTask.h"

#include <TFile.h>
#include <TH1F.h>
#include <TH2F.h>

#include <AliLog.h>
#include <AliESDEvent.h>
#include <AliHeader.h>

#include "AliPhysicsSelection.h"
//#include "AliBackgroundSelection.h"

ClassImp(AliEventStatsTask)

AliEventStatsTask::AliEventStatsTask(const char* opt) :
  AliAnalysisTaskSE("AliEventStatsTask"),
  fOutput(0),
  fOption(opt),
  fPhysicsSelection(0)
{
  //
  // Constructor. Initialization of pointers
  //

  // Define input and output slots here
  DefineOutput(1, TList::Class());
  
  AliLog::SetClassDebugLevel("AliEventStatsTask", AliLog::kWarning);
}

AliEventStatsTask::~AliEventStatsTask()
{
  //
  // Destructor
  //

  // histograms are in the output list and deleted when the output
  // list is deleted by the TSelector dtor

  if (fOutput) {
    delete fOutput;
    fOutput = 0;
  }
}

void AliEventStatsTask::UserCreateOutputObjects()
{
  // create result objects and add to output list

  Printf("AliEventStatsTask::CreateOutputObjects");

  fOutput = new TList;
  fOutput->SetOwner();
  
  if (!fPhysicsSelection)
    fPhysicsSelection = new AliPhysicsSelection;
  
  fOutput->Add(fPhysicsSelection);
}

void AliEventStatsTask::UserExec(Option_t*)
{
  // process the event

  // post the data already here
  PostData(1, fOutput);

  AliESDEvent* esd = dynamic_cast<AliESDEvent*> (InputEvent());

  if (!esd)
  {
    AliError("ESD branch not available");
    return;
  }
  
  fPhysicsSelection->IsCollisionCandidate(esd);
}

void AliEventStatsTask::Terminate(Option_t *)
{
  // The Terminate() function is the last function to be called during
  // a query. It always runs on the client, it can be used to present
  // the results graphically or save the results to file.

  fOutput = dynamic_cast<TList*> (GetOutputData(1));
  if (!fOutput)
    Printf("ERROR: fOutput not available");
    
  if (fOutput)
  {
    fPhysicsSelection = dynamic_cast<AliPhysicsSelection*> (fOutput->FindObject("AliPhysicsSelection"));
  }

  TFile* fout = new TFile("event_stat.root", "RECREATE");

  if (fPhysicsSelection)
  {
    fPhysicsSelection->Print();
    fPhysicsSelection->SaveHistograms("physics_selection");
  }
    
  fout->Write();
  fout->Close();
  
  Printf("Writting result to event_stat.root");
}
 AliEventStatsTask.cxx:1
 AliEventStatsTask.cxx:2
 AliEventStatsTask.cxx:3
 AliEventStatsTask.cxx:4
 AliEventStatsTask.cxx:5
 AliEventStatsTask.cxx:6
 AliEventStatsTask.cxx:7
 AliEventStatsTask.cxx:8
 AliEventStatsTask.cxx:9
 AliEventStatsTask.cxx:10
 AliEventStatsTask.cxx:11
 AliEventStatsTask.cxx:12
 AliEventStatsTask.cxx:13
 AliEventStatsTask.cxx:14
 AliEventStatsTask.cxx:15
 AliEventStatsTask.cxx:16
 AliEventStatsTask.cxx:17
 AliEventStatsTask.cxx:18
 AliEventStatsTask.cxx:19
 AliEventStatsTask.cxx:20
 AliEventStatsTask.cxx:21
 AliEventStatsTask.cxx:22
 AliEventStatsTask.cxx:23
 AliEventStatsTask.cxx:24
 AliEventStatsTask.cxx:25
 AliEventStatsTask.cxx:26
 AliEventStatsTask.cxx:27
 AliEventStatsTask.cxx:28
 AliEventStatsTask.cxx:29
 AliEventStatsTask.cxx:30
 AliEventStatsTask.cxx:31
 AliEventStatsTask.cxx:32
 AliEventStatsTask.cxx:33
 AliEventStatsTask.cxx:34
 AliEventStatsTask.cxx:35
 AliEventStatsTask.cxx:36
 AliEventStatsTask.cxx:37
 AliEventStatsTask.cxx:38
 AliEventStatsTask.cxx:39
 AliEventStatsTask.cxx:40
 AliEventStatsTask.cxx:41
 AliEventStatsTask.cxx:42
 AliEventStatsTask.cxx:43
 AliEventStatsTask.cxx:44
 AliEventStatsTask.cxx:45
 AliEventStatsTask.cxx:46
 AliEventStatsTask.cxx:47
 AliEventStatsTask.cxx:48
 AliEventStatsTask.cxx:49
 AliEventStatsTask.cxx:50
 AliEventStatsTask.cxx:51
 AliEventStatsTask.cxx:52
 AliEventStatsTask.cxx:53
 AliEventStatsTask.cxx:54
 AliEventStatsTask.cxx:55
 AliEventStatsTask.cxx:56
 AliEventStatsTask.cxx:57
 AliEventStatsTask.cxx:58
 AliEventStatsTask.cxx:59
 AliEventStatsTask.cxx:60
 AliEventStatsTask.cxx:61
 AliEventStatsTask.cxx:62
 AliEventStatsTask.cxx:63
 AliEventStatsTask.cxx:64
 AliEventStatsTask.cxx:65
 AliEventStatsTask.cxx:66
 AliEventStatsTask.cxx:67
 AliEventStatsTask.cxx:68
 AliEventStatsTask.cxx:69
 AliEventStatsTask.cxx:70
 AliEventStatsTask.cxx:71
 AliEventStatsTask.cxx:72
 AliEventStatsTask.cxx:73
 AliEventStatsTask.cxx:74
 AliEventStatsTask.cxx:75
 AliEventStatsTask.cxx:76
 AliEventStatsTask.cxx:77
 AliEventStatsTask.cxx:78
 AliEventStatsTask.cxx:79
 AliEventStatsTask.cxx:80
 AliEventStatsTask.cxx:81
 AliEventStatsTask.cxx:82
 AliEventStatsTask.cxx:83
 AliEventStatsTask.cxx:84
 AliEventStatsTask.cxx:85
 AliEventStatsTask.cxx:86
 AliEventStatsTask.cxx:87
 AliEventStatsTask.cxx:88
 AliEventStatsTask.cxx:89
 AliEventStatsTask.cxx:90
 AliEventStatsTask.cxx:91
 AliEventStatsTask.cxx:92
 AliEventStatsTask.cxx:93
 AliEventStatsTask.cxx:94
 AliEventStatsTask.cxx:95
 AliEventStatsTask.cxx:96
 AliEventStatsTask.cxx:97
 AliEventStatsTask.cxx:98
 AliEventStatsTask.cxx:99
 AliEventStatsTask.cxx:100
 AliEventStatsTask.cxx:101
 AliEventStatsTask.cxx:102
 AliEventStatsTask.cxx:103
 AliEventStatsTask.cxx:104
 AliEventStatsTask.cxx:105
 AliEventStatsTask.cxx:106
 AliEventStatsTask.cxx:107
 AliEventStatsTask.cxx:108
 AliEventStatsTask.cxx:109