AliPhysics  vAN-20150924 (e816f45)
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
AliEmcalDebugTask.cxx
Go to the documentation of this file.
1 // $Id$
2 //
3 // Task to debug problems
4 //
5 // Author: C.Loizides
6 
7 #include "AliEmcalDebugTask.h"
8 #include <TClonesArray.h>
9 #include <TFile.h>
10 #include <TRandom3.h>
11 #include <TSystem.h>
12 #include "AliAnalysisManager.h"
13 #include "AliESDEvent.h"
14 #include "AliInputEventHandler.h"
15 #include "AliLog.h"
16 
18 
19 //________________________________________________________________________
21  AliAnalysisTaskSE(),
22  fId(0),
23  fFileTest(),
24  fPrintEnv(0),
25  fOutput(0),
26  fFileName(),
27  fRand(0)
28 {
29  // Constructor.
30 }
31 
32 //________________________________________________________________________
34  AliAnalysisTaskSE(name),
35  fId(0),
36  fFileTest(),
37  fPrintEnv(0),
38  fOutput(0),
39  fFileName(),
40  fRand(0)
41 {
42  // Constructor.
43 
44  DefineOutput(1, TList::Class());
45  fBranchNames = "ESD:AliESDHeader.,AliESDRun.,Tracks";
46 }
47 
48 //________________________________________________________________________
50 {
51  // Destructor.
52 }
53 
54 //________________________________________________________________________
56 {
57  // Create user objects
58 
59  fOutput = new TList();
60  fOutput->SetOwner();
61 
62  TRandom3 r(0);
63  fRand = r.Integer(kMaxUInt);
64  fOutput->Add(new TNamed(Form("%u",fId),Form("%u",fRand)));
65 
66  AliInfo(Form("AliEmcalDebug: %u %u",fId,fRand));
67  if (fPrintEnv)
68  gSystem->Exec("env");
69 
70  PostData(1, fOutput);
71 }
72 
73 //________________________________________________________________________
74 void AliEmcalDebugTask::UserExec(Option_t *)
75 {
76  // Main loop, called for each event.
77 
78  AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();
79  if (!am) {
80  AliError("Manager zero, returning");
81  return;
82  }
83 
84  TString filename;
85 
86  TTree *t = am->GetTree();
87  if (t) {
88  TFile *f = t->GetCurrentFile();
89  if (f) {
90  filename = f->GetName();
91  }
92  }
93 
94  if (filename==fFileName)
95  return;
96 
97  if (fFileTest.Length()>0) {
98  if (!fFileName.Contains(fFileTest)) {
99  AliError(Form("Filename %s does not contain %s", fFileName.Data(), fFileTest.Data()));
100  return;
101  }
102  }
103  fFileName = filename;
104 
105  AliInfo(Form("New file: %s", fFileName.Data()));
106  fOutput->Add(new TNamed(Form("%u:%u",fId,fRand),fFileName.Data()));
107 }
ClassImp(AliEmcalDebugTask) AliEmcalDebugTask
TSystem * gSystem
TString fFileName
output list
void UserExec(Option_t *option)
UInt_t fRand
current file name