ROOT logo
// $Id$
//
// Task to debug problems
//
// Author: C.Loizides

#include "AliEmcalDebugTask.h"
#include <TClonesArray.h>
#include <TFile.h>
#include <TRandom3.h>
#include <TSystem.h>
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliInputEventHandler.h"
#include "AliLog.h"

ClassImp(AliEmcalDebugTask)

//________________________________________________________________________
AliEmcalDebugTask::AliEmcalDebugTask() : 
  AliAnalysisTaskSE(),
  fId(0),
  fFileTest(),
  fPrintEnv(0),
  fOutput(0),
  fFileName(),
  fRand(0)
{
  // Constructor.
}

//________________________________________________________________________
AliEmcalDebugTask::AliEmcalDebugTask(const char *name) : 
  AliAnalysisTaskSE(name),
  fId(0),
  fFileTest(),
  fPrintEnv(0),
  fOutput(0),
  fFileName(),
  fRand(0)
{
  // Constructor.

  DefineOutput(1, TList::Class()); 
  fBranchNames = "ESD:AliESDHeader.,AliESDRun.,Tracks";
}

//________________________________________________________________________
AliEmcalDebugTask::~AliEmcalDebugTask()
{
  // Destructor.
}

//________________________________________________________________________
void AliEmcalDebugTask::UserCreateOutputObjects()
{
  // Create user objects

  fOutput = new TList();
  fOutput->SetOwner();

  TRandom3 r(0);
  fRand = r.Integer(kMaxUInt);
  fOutput->Add(new TNamed(Form("%u",fId),Form("%u",fRand)));

  AliInfo(Form("AliEmcalDebug: %u %u",fId,fRand));
  if (fPrintEnv)
    gSystem->Exec("env");

  PostData(1, fOutput); 
}

//________________________________________________________________________
void AliEmcalDebugTask::UserExec(Option_t *) 
{
  // Main loop, called for each event.

  AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
  if (!am) {
    AliError("Manager zero, returning");
    return;
  }

  TString filename;

  TTree *t = am->GetTree();
  if (t) {
    TFile *f = t->GetCurrentFile();
    if (f) {
      filename = f->GetName();
    }
  }

  if (filename==fFileName)
    return;

  if (fFileTest.Length()>0) {
    if (!fFileName.Contains(fFileTest)) {
      AliError(Form("Filename %s does not contain %s", fFileName.Data(), fFileTest.Data()));
      return;
    }
  }
  fFileName = filename;

  AliInfo(Form("New file: %s", fFileName.Data()));
  fOutput->Add(new TNamed(Form("%u:%u",fId,fRand),fFileName.Data()));
}
 AliEmcalDebugTask.cxx:1
 AliEmcalDebugTask.cxx:2
 AliEmcalDebugTask.cxx:3
 AliEmcalDebugTask.cxx:4
 AliEmcalDebugTask.cxx:5
 AliEmcalDebugTask.cxx:6
 AliEmcalDebugTask.cxx:7
 AliEmcalDebugTask.cxx:8
 AliEmcalDebugTask.cxx:9
 AliEmcalDebugTask.cxx:10
 AliEmcalDebugTask.cxx:11
 AliEmcalDebugTask.cxx:12
 AliEmcalDebugTask.cxx:13
 AliEmcalDebugTask.cxx:14
 AliEmcalDebugTask.cxx:15
 AliEmcalDebugTask.cxx:16
 AliEmcalDebugTask.cxx:17
 AliEmcalDebugTask.cxx:18
 AliEmcalDebugTask.cxx:19
 AliEmcalDebugTask.cxx:20
 AliEmcalDebugTask.cxx:21
 AliEmcalDebugTask.cxx:22
 AliEmcalDebugTask.cxx:23
 AliEmcalDebugTask.cxx:24
 AliEmcalDebugTask.cxx:25
 AliEmcalDebugTask.cxx:26
 AliEmcalDebugTask.cxx:27
 AliEmcalDebugTask.cxx:28
 AliEmcalDebugTask.cxx:29
 AliEmcalDebugTask.cxx:30
 AliEmcalDebugTask.cxx:31
 AliEmcalDebugTask.cxx:32
 AliEmcalDebugTask.cxx:33
 AliEmcalDebugTask.cxx:34
 AliEmcalDebugTask.cxx:35
 AliEmcalDebugTask.cxx:36
 AliEmcalDebugTask.cxx:37
 AliEmcalDebugTask.cxx:38
 AliEmcalDebugTask.cxx:39
 AliEmcalDebugTask.cxx:40
 AliEmcalDebugTask.cxx:41
 AliEmcalDebugTask.cxx:42
 AliEmcalDebugTask.cxx:43
 AliEmcalDebugTask.cxx:44
 AliEmcalDebugTask.cxx:45
 AliEmcalDebugTask.cxx:46
 AliEmcalDebugTask.cxx:47
 AliEmcalDebugTask.cxx:48
 AliEmcalDebugTask.cxx:49
 AliEmcalDebugTask.cxx:50
 AliEmcalDebugTask.cxx:51
 AliEmcalDebugTask.cxx:52
 AliEmcalDebugTask.cxx:53
 AliEmcalDebugTask.cxx:54
 AliEmcalDebugTask.cxx:55
 AliEmcalDebugTask.cxx:56
 AliEmcalDebugTask.cxx:57
 AliEmcalDebugTask.cxx:58
 AliEmcalDebugTask.cxx:59
 AliEmcalDebugTask.cxx:60
 AliEmcalDebugTask.cxx:61
 AliEmcalDebugTask.cxx:62
 AliEmcalDebugTask.cxx:63
 AliEmcalDebugTask.cxx:64
 AliEmcalDebugTask.cxx:65
 AliEmcalDebugTask.cxx:66
 AliEmcalDebugTask.cxx:67
 AliEmcalDebugTask.cxx:68
 AliEmcalDebugTask.cxx:69
 AliEmcalDebugTask.cxx:70
 AliEmcalDebugTask.cxx:71
 AliEmcalDebugTask.cxx:72
 AliEmcalDebugTask.cxx:73
 AliEmcalDebugTask.cxx:74
 AliEmcalDebugTask.cxx:75
 AliEmcalDebugTask.cxx:76
 AliEmcalDebugTask.cxx:77
 AliEmcalDebugTask.cxx:78
 AliEmcalDebugTask.cxx:79
 AliEmcalDebugTask.cxx:80
 AliEmcalDebugTask.cxx:81
 AliEmcalDebugTask.cxx:82
 AliEmcalDebugTask.cxx:83
 AliEmcalDebugTask.cxx:84
 AliEmcalDebugTask.cxx:85
 AliEmcalDebugTask.cxx:86
 AliEmcalDebugTask.cxx:87
 AliEmcalDebugTask.cxx:88
 AliEmcalDebugTask.cxx:89
 AliEmcalDebugTask.cxx:90
 AliEmcalDebugTask.cxx:91
 AliEmcalDebugTask.cxx:92
 AliEmcalDebugTask.cxx:93
 AliEmcalDebugTask.cxx:94
 AliEmcalDebugTask.cxx:95
 AliEmcalDebugTask.cxx:96
 AliEmcalDebugTask.cxx:97
 AliEmcalDebugTask.cxx:98
 AliEmcalDebugTask.cxx:99
 AliEmcalDebugTask.cxx:100
 AliEmcalDebugTask.cxx:101
 AliEmcalDebugTask.cxx:102
 AliEmcalDebugTask.cxx:103
 AliEmcalDebugTask.cxx:104
 AliEmcalDebugTask.cxx:105
 AliEmcalDebugTask.cxx:106
 AliEmcalDebugTask.cxx:107