ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//----------------------------------------------------------------
// Analysis task for interfacing the jet finders with the analysis framework
//
// Author: magali.estienne@subatech.in2p3.fr
//	   alexandre.shabetai@cern.ch
//          
//----------------------------------------------------------------

#include <Riostream.h> 
#include <TROOT.h>
#include <TSystem.h>
#include <TInterpreter.h>
#include <TFile.h>
#include <TList.h>
#include <TH1.h>

#include "AliAnalysisTaskJetsFinder.h"
#include "AliAnalysisManager.h"
#include "AliJetFinder.h"
#include "AliJetHeader.h"
#include "AliJetHistos.h"
#include "AliAODEvent.h"
#include "AliAODJetEventBackground.h"
#include "AliAODHandler.h"
#include "AliAODExtension.h"

ClassImp(AliAnalysisTaskJetsFinder)

////////////////////////////////////////////////////////////////////////

AliAnalysisTaskJetsFinder::AliAnalysisTaskJetsFinder():
  AliAnalysisTaskSE(),
  fConfigFile("ConfigJetAnalysis.C"),
  fNonStdBranch(""), 
  fNonStdFile(""),
  fJetFinder(0x0),
  fHistos(0x0),
  fAODExtension(0x0),
  fListOfHistos(0x0),
  fTreeI(0x0),
  fEvent(0x0),
  fUseAODBackground(kFALSE),
  fFilterPt(0.)
{
  // Default constructor
}

//----------------------------------------------------------------
AliAnalysisTaskJetsFinder::AliAnalysisTaskJetsFinder(const char* name):
  AliAnalysisTaskSE(name),
  fConfigFile("ConfigJetAnalysis.C"),
  fNonStdBranch(""),
  fNonStdFile(""),
  fJetFinder(0x0),
  fHistos(0x0),
  fAODExtension(0x0),
  fListOfHistos(0x0),
  fTreeI(0x0),
  fEvent(0x0),
  fUseAODBackground(kFALSE),
  fFilterPt(0.)
{
  // Constructor 2
  DefineInput(1, TTree::Class());
  DefineOutput(1, TList::Class());

}

//----------------------------------------------------------------
AliAnalysisTaskJetsFinder::~AliAnalysisTaskJetsFinder()
{
  // destructor
  if (fHistos && ! AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fHistos;
  if (fListOfHistos &&  ! AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fListOfHistos;

}

//----------------------------------------------------------------
void AliAnalysisTaskJetsFinder::ConnectInputData(Option_t *)
{
  // Get the exchanged tree and event
  AliAnalysisTaskSE::ConnectInputData();

  fTreeI = (TTree*)GetInputData(1);

  char **address =(char **)GetBranchAddress(1,"AliJetCalTrkEvent");
  if (address) {
    fEvent = (AliJetCalTrkEvent*) (*address);
  }
  else { printf("AliJetCalTrkEvent address not found, pleae check containers"); }

}

//----------------------------------------------------------------
void AliAnalysisTaskJetsFinder::UserCreateOutputObjects()
{
  // Create the output container containt
  //
  if (fDebug > 1) printf("AnalysisTaskJets::CreateOutPutData() \n");

  AliJetHeader *fH = fJetFinder->GetJetHeader();

  if(fNonStdBranch.Length()==0)
    {
      // Connect default AOD to jet finder
      // create a new branch for the background

      if(fUseAODBackground){
        if(!AODEvent()->FindListObject(AliAODJetEventBackground::StdBranchName())){
	  AliAODJetEventBackground* evBkg = new AliAODJetEventBackground();
	  evBkg->SetName(AliAODJetEventBackground::StdBranchName());
	  AddAODBranch("AliAODJetEventBackground",&evBkg);
        }
      }
      fJetFinder->ConnectAOD(AODEvent());
    }
  else
    {
      // Create a new branch for jets...
      // how is this reset? -> cleared in the UserExec....
      // Can this be handled by the framework?
      // here we can also have the case that the brnaches are written to a separate file

      TClonesArray *tca = new TClonesArray("AliAODJet", 0);
      tca->SetName(fNonStdBranch.Data());
      AddAODBranch("TClonesArray",&tca,fNonStdFile.Data());
      if(fUseAODBackground){
        if(!AODEvent() || !AODEvent()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data()))){
	  AliAODJetEventBackground* evBkg = new AliAODJetEventBackground();
	  evBkg->SetName(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data()));
	  AddAODBranch("AliAODJetEventBackground",&evBkg,fNonStdFile.Data());
        }
      }
      if(fNonStdFile.Length()!=0){
	// 
	// case that we have an AOD extension we need to fetch the jets from the extended output
	// we identifay the extension aod event by looking for the branchname
	AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
        fAODExtension = 0;
        if(aodH){
	  TObjArray* extArray = aodH->GetExtensions();
	  if (extArray) {
	    TIter next(extArray);
	    while ((fAODExtension=(AliAODExtension*)next())){
	      TObject *obj = fAODExtension->GetAOD()->FindListObject(fNonStdBranch.Data());
	      if(fDebug>10){
	        Printf("%s:%d Dumping..",(char*)__FILE__,__LINE__);
	        fAODExtension->GetAOD()->Dump();
	      }
	      if(obj){
	        if(fDebug>1)Printf("AODExtension found for %s",fNonStdBranch.Data());
	        break;
	      }
	      fAODExtension = 0;
	    }
	  }
        }
	if(fAODExtension)fJetFinder->ConnectAODNonStd(fAODExtension->GetAOD(), fNonStdBranch.Data()); 
      }
      else{
        if (fDebug > 1) printf("Connecting Non Std Branch AOD %p %s \n",AODEvent(),fNonStdBranch.Data());
	fJetFinder->ConnectAODNonStd(AODEvent(), fNonStdBranch.Data()); 
      }
    }

  // do not add the histograms in the directory
  // all handled by the list
  Bool_t oldStatus = TH1::AddDirectoryStatus();
  TH1::AddDirectory(kFALSE);

  // Histograms
  fListOfHistos = new TList();
  fListOfHistos->SetOwner();
  fHistos       = new AliJetHistos();
  fHistos->CreateHistos();
  fHistos->AddHistosToList(fListOfHistos);
  // CDF case
  if(fJetFinder->InheritsFrom("AliCdfJetFinder")) fJetFinder->CreateOutputObjects(fListOfHistos);

  // Add the JetFinderInformation to the Outputlist
  
  // Compose a characteristic output name
  // with the name of the output branch
  if(fH) {
    if(fNonStdBranch.Length()==0) {
      fH->SetName("AliJetHeader_jets");
    }
    else {
      fH->SetName(Form("AliJetHeader_%s",fNonStdBranch.Data()));
    }
  }

  TH1::AddDirectory(oldStatus);
  
  if(!fAODExtension)OutputTree()->GetUserInfo()->Add(fH);
  else fAODExtension->GetTree()->GetUserInfo()->Add(fH);

  // post
  PostData(1, fListOfHistos);

}

//----------------------------------------------------------------
void AliAnalysisTaskJetsFinder::Init()
{
  // Initialization
  if (fDebug > 1) printf("AnalysisTaskJetsFinder::Init() \n");

  // Call configuration file
  if (fConfigFile.Length()) {
    gROOT->LoadMacro(fConfigFile);
    fJetFinder = (AliJetFinder*) gInterpreter->ProcessLine("ConfigJetAnalysis()");
  }

  // Initialise Jet Analysis
  fJetFinder->Init();

}


//----------------------------------------------------------------
Bool_t AliAnalysisTaskJetsFinder::Notify()
{
  if (fDebug > 1) printf("AnalysisTaskJetsFinder::Notify() \n");
  return kTRUE;

}

//----------------------------------------------------------------
void AliAnalysisTaskJetsFinder::UserExec(Option_t */*option*/)
{

  // Execute analysis for current event

  if (fDebug > 1) printf("AnalysisTaskJetsFinder::UserExec() \n");

  TClonesArray* jarray = 0;
  AliAODJetEventBackground* evBkg = 0;

  // only need this once
  static AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());

  if(fNonStdBranch.Length()==0) {
    jarray = AODEvent()->GetJets();
    if(fUseAODBackground){
      evBkg = (AliAODJetEventBackground*)(AODEvent()->FindListObject(AliAODJetEventBackground::StdBranchName()));
      evBkg->Reset();
    }
  }
  else {
    if(AODEvent())jarray = (TClonesArray*)(AODEvent()->FindListObject(fNonStdBranch.Data()));
    if(!jarray)jarray = (TClonesArray*)(fAODExtension->GetAOD()->FindListObject(fNonStdBranch.Data()));
    if(jarray)jarray->Delete();    // this is our responsibility, clear before filling again
    if(fUseAODBackground){
      if(AODEvent())evBkg = (AliAODJetEventBackground*)(AODEvent()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data())));
      if(!evBkg)  evBkg = (AliAODJetEventBackground*)(fAODExtension->GetAOD()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data())));
      if(evBkg)evBkg->Reset();
    }
  }

  fTreeI->GetEntry(0);

  fJetFinder->SetCalTrkEvent(*fEvent);

  fJetFinder->ProcessEvent(); 

  // Fill control histos
  if(jarray)fHistos->FillHistos(jarray);

  // Store the jet branch in the AOD
  if(jarray&&aodH&&fFilterPt>0){
    if(jarray->GetEntries()>0){
      AliAODJet *jet = (AliAODJet*)jarray->At(0);
      if(jet->Pt()>fFilterPt){
        aodH->SetFillAOD(kTRUE);
      }
    }
  }

  // Post the data
  PostData(1, fListOfHistos);
  return;

}

//----------------------------------------------------------------
void AliAnalysisTaskJetsFinder::Terminate(Option_t */*option*/)
{
  // Terminate analysis
  if (fDebug > 1) printf("AnalysisJets: Terminate() \n");

}

 AliAnalysisTaskJetsFinder.cxx:1
 AliAnalysisTaskJetsFinder.cxx:2
 AliAnalysisTaskJetsFinder.cxx:3
 AliAnalysisTaskJetsFinder.cxx:4
 AliAnalysisTaskJetsFinder.cxx:5
 AliAnalysisTaskJetsFinder.cxx:6
 AliAnalysisTaskJetsFinder.cxx:7
 AliAnalysisTaskJetsFinder.cxx:8
 AliAnalysisTaskJetsFinder.cxx:9
 AliAnalysisTaskJetsFinder.cxx:10
 AliAnalysisTaskJetsFinder.cxx:11
 AliAnalysisTaskJetsFinder.cxx:12
 AliAnalysisTaskJetsFinder.cxx:13
 AliAnalysisTaskJetsFinder.cxx:14
 AliAnalysisTaskJetsFinder.cxx:15
 AliAnalysisTaskJetsFinder.cxx:16
 AliAnalysisTaskJetsFinder.cxx:17
 AliAnalysisTaskJetsFinder.cxx:18
 AliAnalysisTaskJetsFinder.cxx:19
 AliAnalysisTaskJetsFinder.cxx:20
 AliAnalysisTaskJetsFinder.cxx:21
 AliAnalysisTaskJetsFinder.cxx:22
 AliAnalysisTaskJetsFinder.cxx:23
 AliAnalysisTaskJetsFinder.cxx:24
 AliAnalysisTaskJetsFinder.cxx:25
 AliAnalysisTaskJetsFinder.cxx:26
 AliAnalysisTaskJetsFinder.cxx:27
 AliAnalysisTaskJetsFinder.cxx:28
 AliAnalysisTaskJetsFinder.cxx:29
 AliAnalysisTaskJetsFinder.cxx:30
 AliAnalysisTaskJetsFinder.cxx:31
 AliAnalysisTaskJetsFinder.cxx:32
 AliAnalysisTaskJetsFinder.cxx:33
 AliAnalysisTaskJetsFinder.cxx:34
 AliAnalysisTaskJetsFinder.cxx:35
 AliAnalysisTaskJetsFinder.cxx:36
 AliAnalysisTaskJetsFinder.cxx:37
 AliAnalysisTaskJetsFinder.cxx:38
 AliAnalysisTaskJetsFinder.cxx:39
 AliAnalysisTaskJetsFinder.cxx:40
 AliAnalysisTaskJetsFinder.cxx:41
 AliAnalysisTaskJetsFinder.cxx:42
 AliAnalysisTaskJetsFinder.cxx:43
 AliAnalysisTaskJetsFinder.cxx:44
 AliAnalysisTaskJetsFinder.cxx:45
 AliAnalysisTaskJetsFinder.cxx:46
 AliAnalysisTaskJetsFinder.cxx:47
 AliAnalysisTaskJetsFinder.cxx:48
 AliAnalysisTaskJetsFinder.cxx:49
 AliAnalysisTaskJetsFinder.cxx:50
 AliAnalysisTaskJetsFinder.cxx:51
 AliAnalysisTaskJetsFinder.cxx:52
 AliAnalysisTaskJetsFinder.cxx:53
 AliAnalysisTaskJetsFinder.cxx:54
 AliAnalysisTaskJetsFinder.cxx:55
 AliAnalysisTaskJetsFinder.cxx:56
 AliAnalysisTaskJetsFinder.cxx:57
 AliAnalysisTaskJetsFinder.cxx:58
 AliAnalysisTaskJetsFinder.cxx:59
 AliAnalysisTaskJetsFinder.cxx:60
 AliAnalysisTaskJetsFinder.cxx:61
 AliAnalysisTaskJetsFinder.cxx:62
 AliAnalysisTaskJetsFinder.cxx:63
 AliAnalysisTaskJetsFinder.cxx:64
 AliAnalysisTaskJetsFinder.cxx:65
 AliAnalysisTaskJetsFinder.cxx:66
 AliAnalysisTaskJetsFinder.cxx:67
 AliAnalysisTaskJetsFinder.cxx:68
 AliAnalysisTaskJetsFinder.cxx:69
 AliAnalysisTaskJetsFinder.cxx:70
 AliAnalysisTaskJetsFinder.cxx:71
 AliAnalysisTaskJetsFinder.cxx:72
 AliAnalysisTaskJetsFinder.cxx:73
 AliAnalysisTaskJetsFinder.cxx:74
 AliAnalysisTaskJetsFinder.cxx:75
 AliAnalysisTaskJetsFinder.cxx:76
 AliAnalysisTaskJetsFinder.cxx:77
 AliAnalysisTaskJetsFinder.cxx:78
 AliAnalysisTaskJetsFinder.cxx:79
 AliAnalysisTaskJetsFinder.cxx:80
 AliAnalysisTaskJetsFinder.cxx:81
 AliAnalysisTaskJetsFinder.cxx:82
 AliAnalysisTaskJetsFinder.cxx:83
 AliAnalysisTaskJetsFinder.cxx:84
 AliAnalysisTaskJetsFinder.cxx:85
 AliAnalysisTaskJetsFinder.cxx:86
 AliAnalysisTaskJetsFinder.cxx:87
 AliAnalysisTaskJetsFinder.cxx:88
 AliAnalysisTaskJetsFinder.cxx:89
 AliAnalysisTaskJetsFinder.cxx:90
 AliAnalysisTaskJetsFinder.cxx:91
 AliAnalysisTaskJetsFinder.cxx:92
 AliAnalysisTaskJetsFinder.cxx:93
 AliAnalysisTaskJetsFinder.cxx:94
 AliAnalysisTaskJetsFinder.cxx:95
 AliAnalysisTaskJetsFinder.cxx:96
 AliAnalysisTaskJetsFinder.cxx:97
 AliAnalysisTaskJetsFinder.cxx:98
 AliAnalysisTaskJetsFinder.cxx:99
 AliAnalysisTaskJetsFinder.cxx:100
 AliAnalysisTaskJetsFinder.cxx:101
 AliAnalysisTaskJetsFinder.cxx:102
 AliAnalysisTaskJetsFinder.cxx:103
 AliAnalysisTaskJetsFinder.cxx:104
 AliAnalysisTaskJetsFinder.cxx:105
 AliAnalysisTaskJetsFinder.cxx:106
 AliAnalysisTaskJetsFinder.cxx:107
 AliAnalysisTaskJetsFinder.cxx:108
 AliAnalysisTaskJetsFinder.cxx:109
 AliAnalysisTaskJetsFinder.cxx:110
 AliAnalysisTaskJetsFinder.cxx:111
 AliAnalysisTaskJetsFinder.cxx:112
 AliAnalysisTaskJetsFinder.cxx:113
 AliAnalysisTaskJetsFinder.cxx:114
 AliAnalysisTaskJetsFinder.cxx:115
 AliAnalysisTaskJetsFinder.cxx:116
 AliAnalysisTaskJetsFinder.cxx:117
 AliAnalysisTaskJetsFinder.cxx:118
 AliAnalysisTaskJetsFinder.cxx:119
 AliAnalysisTaskJetsFinder.cxx:120
 AliAnalysisTaskJetsFinder.cxx:121
 AliAnalysisTaskJetsFinder.cxx:122
 AliAnalysisTaskJetsFinder.cxx:123
 AliAnalysisTaskJetsFinder.cxx:124
 AliAnalysisTaskJetsFinder.cxx:125
 AliAnalysisTaskJetsFinder.cxx:126
 AliAnalysisTaskJetsFinder.cxx:127
 AliAnalysisTaskJetsFinder.cxx:128
 AliAnalysisTaskJetsFinder.cxx:129
 AliAnalysisTaskJetsFinder.cxx:130
 AliAnalysisTaskJetsFinder.cxx:131
 AliAnalysisTaskJetsFinder.cxx:132
 AliAnalysisTaskJetsFinder.cxx:133
 AliAnalysisTaskJetsFinder.cxx:134
 AliAnalysisTaskJetsFinder.cxx:135
 AliAnalysisTaskJetsFinder.cxx:136
 AliAnalysisTaskJetsFinder.cxx:137
 AliAnalysisTaskJetsFinder.cxx:138
 AliAnalysisTaskJetsFinder.cxx:139
 AliAnalysisTaskJetsFinder.cxx:140
 AliAnalysisTaskJetsFinder.cxx:141
 AliAnalysisTaskJetsFinder.cxx:142
 AliAnalysisTaskJetsFinder.cxx:143
 AliAnalysisTaskJetsFinder.cxx:144
 AliAnalysisTaskJetsFinder.cxx:145
 AliAnalysisTaskJetsFinder.cxx:146
 AliAnalysisTaskJetsFinder.cxx:147
 AliAnalysisTaskJetsFinder.cxx:148
 AliAnalysisTaskJetsFinder.cxx:149
 AliAnalysisTaskJetsFinder.cxx:150
 AliAnalysisTaskJetsFinder.cxx:151
 AliAnalysisTaskJetsFinder.cxx:152
 AliAnalysisTaskJetsFinder.cxx:153
 AliAnalysisTaskJetsFinder.cxx:154
 AliAnalysisTaskJetsFinder.cxx:155
 AliAnalysisTaskJetsFinder.cxx:156
 AliAnalysisTaskJetsFinder.cxx:157
 AliAnalysisTaskJetsFinder.cxx:158
 AliAnalysisTaskJetsFinder.cxx:159
 AliAnalysisTaskJetsFinder.cxx:160
 AliAnalysisTaskJetsFinder.cxx:161
 AliAnalysisTaskJetsFinder.cxx:162
 AliAnalysisTaskJetsFinder.cxx:163
 AliAnalysisTaskJetsFinder.cxx:164
 AliAnalysisTaskJetsFinder.cxx:165
 AliAnalysisTaskJetsFinder.cxx:166
 AliAnalysisTaskJetsFinder.cxx:167
 AliAnalysisTaskJetsFinder.cxx:168
 AliAnalysisTaskJetsFinder.cxx:169
 AliAnalysisTaskJetsFinder.cxx:170
 AliAnalysisTaskJetsFinder.cxx:171
 AliAnalysisTaskJetsFinder.cxx:172
 AliAnalysisTaskJetsFinder.cxx:173
 AliAnalysisTaskJetsFinder.cxx:174
 AliAnalysisTaskJetsFinder.cxx:175
 AliAnalysisTaskJetsFinder.cxx:176
 AliAnalysisTaskJetsFinder.cxx:177
 AliAnalysisTaskJetsFinder.cxx:178
 AliAnalysisTaskJetsFinder.cxx:179
 AliAnalysisTaskJetsFinder.cxx:180
 AliAnalysisTaskJetsFinder.cxx:181
 AliAnalysisTaskJetsFinder.cxx:182
 AliAnalysisTaskJetsFinder.cxx:183
 AliAnalysisTaskJetsFinder.cxx:184
 AliAnalysisTaskJetsFinder.cxx:185
 AliAnalysisTaskJetsFinder.cxx:186
 AliAnalysisTaskJetsFinder.cxx:187
 AliAnalysisTaskJetsFinder.cxx:188
 AliAnalysisTaskJetsFinder.cxx:189
 AliAnalysisTaskJetsFinder.cxx:190
 AliAnalysisTaskJetsFinder.cxx:191
 AliAnalysisTaskJetsFinder.cxx:192
 AliAnalysisTaskJetsFinder.cxx:193
 AliAnalysisTaskJetsFinder.cxx:194
 AliAnalysisTaskJetsFinder.cxx:195
 AliAnalysisTaskJetsFinder.cxx:196
 AliAnalysisTaskJetsFinder.cxx:197
 AliAnalysisTaskJetsFinder.cxx:198
 AliAnalysisTaskJetsFinder.cxx:199
 AliAnalysisTaskJetsFinder.cxx:200
 AliAnalysisTaskJetsFinder.cxx:201
 AliAnalysisTaskJetsFinder.cxx:202
 AliAnalysisTaskJetsFinder.cxx:203
 AliAnalysisTaskJetsFinder.cxx:204
 AliAnalysisTaskJetsFinder.cxx:205
 AliAnalysisTaskJetsFinder.cxx:206
 AliAnalysisTaskJetsFinder.cxx:207
 AliAnalysisTaskJetsFinder.cxx:208
 AliAnalysisTaskJetsFinder.cxx:209
 AliAnalysisTaskJetsFinder.cxx:210
 AliAnalysisTaskJetsFinder.cxx:211
 AliAnalysisTaskJetsFinder.cxx:212
 AliAnalysisTaskJetsFinder.cxx:213
 AliAnalysisTaskJetsFinder.cxx:214
 AliAnalysisTaskJetsFinder.cxx:215
 AliAnalysisTaskJetsFinder.cxx:216
 AliAnalysisTaskJetsFinder.cxx:217
 AliAnalysisTaskJetsFinder.cxx:218
 AliAnalysisTaskJetsFinder.cxx:219
 AliAnalysisTaskJetsFinder.cxx:220
 AliAnalysisTaskJetsFinder.cxx:221
 AliAnalysisTaskJetsFinder.cxx:222
 AliAnalysisTaskJetsFinder.cxx:223
 AliAnalysisTaskJetsFinder.cxx:224
 AliAnalysisTaskJetsFinder.cxx:225
 AliAnalysisTaskJetsFinder.cxx:226
 AliAnalysisTaskJetsFinder.cxx:227
 AliAnalysisTaskJetsFinder.cxx:228
 AliAnalysisTaskJetsFinder.cxx:229
 AliAnalysisTaskJetsFinder.cxx:230
 AliAnalysisTaskJetsFinder.cxx:231
 AliAnalysisTaskJetsFinder.cxx:232
 AliAnalysisTaskJetsFinder.cxx:233
 AliAnalysisTaskJetsFinder.cxx:234
 AliAnalysisTaskJetsFinder.cxx:235
 AliAnalysisTaskJetsFinder.cxx:236
 AliAnalysisTaskJetsFinder.cxx:237
 AliAnalysisTaskJetsFinder.cxx:238
 AliAnalysisTaskJetsFinder.cxx:239
 AliAnalysisTaskJetsFinder.cxx:240
 AliAnalysisTaskJetsFinder.cxx:241
 AliAnalysisTaskJetsFinder.cxx:242
 AliAnalysisTaskJetsFinder.cxx:243
 AliAnalysisTaskJetsFinder.cxx:244
 AliAnalysisTaskJetsFinder.cxx:245
 AliAnalysisTaskJetsFinder.cxx:246
 AliAnalysisTaskJetsFinder.cxx:247
 AliAnalysisTaskJetsFinder.cxx:248
 AliAnalysisTaskJetsFinder.cxx:249
 AliAnalysisTaskJetsFinder.cxx:250
 AliAnalysisTaskJetsFinder.cxx:251
 AliAnalysisTaskJetsFinder.cxx:252
 AliAnalysisTaskJetsFinder.cxx:253
 AliAnalysisTaskJetsFinder.cxx:254
 AliAnalysisTaskJetsFinder.cxx:255
 AliAnalysisTaskJetsFinder.cxx:256
 AliAnalysisTaskJetsFinder.cxx:257
 AliAnalysisTaskJetsFinder.cxx:258
 AliAnalysisTaskJetsFinder.cxx:259
 AliAnalysisTaskJetsFinder.cxx:260
 AliAnalysisTaskJetsFinder.cxx:261
 AliAnalysisTaskJetsFinder.cxx:262
 AliAnalysisTaskJetsFinder.cxx:263
 AliAnalysisTaskJetsFinder.cxx:264
 AliAnalysisTaskJetsFinder.cxx:265
 AliAnalysisTaskJetsFinder.cxx:266
 AliAnalysisTaskJetsFinder.cxx:267
 AliAnalysisTaskJetsFinder.cxx:268
 AliAnalysisTaskJetsFinder.cxx:269
 AliAnalysisTaskJetsFinder.cxx:270
 AliAnalysisTaskJetsFinder.cxx:271
 AliAnalysisTaskJetsFinder.cxx:272
 AliAnalysisTaskJetsFinder.cxx:273
 AliAnalysisTaskJetsFinder.cxx:274
 AliAnalysisTaskJetsFinder.cxx:275
 AliAnalysisTaskJetsFinder.cxx:276
 AliAnalysisTaskJetsFinder.cxx:277
 AliAnalysisTaskJetsFinder.cxx:278
 AliAnalysisTaskJetsFinder.cxx:279
 AliAnalysisTaskJetsFinder.cxx:280
 AliAnalysisTaskJetsFinder.cxx:281
 AliAnalysisTaskJetsFinder.cxx:282
 AliAnalysisTaskJetsFinder.cxx:283
 AliAnalysisTaskJetsFinder.cxx:284
 AliAnalysisTaskJetsFinder.cxx:285
 AliAnalysisTaskJetsFinder.cxx:286
 AliAnalysisTaskJetsFinder.cxx:287
 AliAnalysisTaskJetsFinder.cxx:288
 AliAnalysisTaskJetsFinder.cxx:289
 AliAnalysisTaskJetsFinder.cxx:290
 AliAnalysisTaskJetsFinder.cxx:291
 AliAnalysisTaskJetsFinder.cxx:292
 AliAnalysisTaskJetsFinder.cxx:293
 AliAnalysisTaskJetsFinder.cxx:294
 AliAnalysisTaskJetsFinder.cxx:295
 AliAnalysisTaskJetsFinder.cxx:296
 AliAnalysisTaskJetsFinder.cxx:297
 AliAnalysisTaskJetsFinder.cxx:298
 AliAnalysisTaskJetsFinder.cxx:299
 AliAnalysisTaskJetsFinder.cxx:300
 AliAnalysisTaskJetsFinder.cxx:301
 AliAnalysisTaskJetsFinder.cxx:302
 AliAnalysisTaskJetsFinder.cxx:303
 AliAnalysisTaskJetsFinder.cxx:304
 AliAnalysisTaskJetsFinder.cxx:305
 AliAnalysisTaskJetsFinder.cxx:306
 AliAnalysisTaskJetsFinder.cxx:307
 AliAnalysisTaskJetsFinder.cxx:308