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.                  *
**************************************************************************/

//------------------------------------------------------------------------------
// Implementation of the AliPerformanceTask class. It checks reconstruction performance 
// for the reconstructed vs MC particle tracks under several conditions. For real data 
// the control QA histograms are filled.
//
// The comparison output objects deriving from AliPerformanceObject 
// (e.g. AliPerformanceRes, AliPerformanceEff, AliPerformanceDEdx, AliPerformanceDCA ...) 
// are stored in the output file (details in description of these classes).
// 
// Author: J.Otwinowski 01/04/2009 
// Changes by M.Knichel 15/10/2010
//------------------------------------------------------------------------------

#include "iostream"

#include "TChain.h"
#include "TTree.h"
#include "TH1F.h"
#include "TCanvas.h"
#include "TList.h"
#include "TFile.h"
#include "TSystem.h"

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliESDfriend.h"
#include "AliMCEvent.h"
#include "AliESDInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliESDVertex.h"
#include "AliMagF.h"
#include "AliTracker.h"
#include "AliGeomManager.h"
#include "AliCDBManager.h"

#include "AliCentrality.h"
#include "AliESDVZERO.h"
#include "AliMultiplicity.h"

#include "AliMCInfo.h"
#include "AliESDRecInfo.h"
#include "AliMCInfoCuts.h"
#include "AliRecInfoCuts.h"
#include "AliPerformanceObject.h"
#include "AliTPCPerformanceSummary.h"
#include "AliPerformanceTPC.h"
#include "AliPerformanceDEdx.h"
#include "AliPerformanceMatch.h"
#include "AliPerformanceTask.h"


using namespace std;

ClassImp(AliPerformanceTask)

//_____________________________________________________________________________
AliPerformanceTask::AliPerformanceTask() 
  : AliAnalysisTaskSE("Performance")
  , fESD(0)
  , fESDfriend(0)
  , fMC(0)
  , fOutput(0)
  , fOutputSummary(0)
  , fPitList(0)
  , fCompList(0)
  , fUseMCInfo(kFALSE)
  , fUseESDfriend(kFALSE)
  , fUseHLT(kFALSE)
  , fUseTerminate(kTRUE)
  , fUseCentrality(0)
  , fUseOCDB(kTRUE)
  , fUseCentralityBin(0)
{
  // Dummy Constructor
  // should not be used
}

//_____________________________________________________________________________
AliPerformanceTask::AliPerformanceTask(const char *name, const char */*title*/) 
  : AliAnalysisTaskSE(name)
  , fESD(0)
  , fESDfriend(0)
  , fMC(0)
  , fOutput(0)
  , fOutputSummary(0)
  , fPitList(0)
  , fCompList(0)
  , fUseMCInfo(kFALSE)
  , fUseESDfriend(kFALSE)
  , fUseHLT(kFALSE)
  , fUseTerminate(kTRUE)
  , fUseCentrality(0)
  , fUseOCDB(kTRUE)
  , fUseCentralityBin(0)
{
  // Constructor

  // Define input and output slots here
  DefineOutput(0, TTree::Class());
  DefineOutput(1, TList::Class());

  // create the list for comparison objects
  fCompList = new TList;
}

//_____________________________________________________________________________
AliPerformanceTask::~AliPerformanceTask()
{
  if (!AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
    if (fOutput)     delete fOutput;    fOutput   = 0; 
    if (fOutputSummary) delete fOutputSummary; fOutputSummary = 0;
    if (fCompList)   delete fCompList;  fCompList = 0; 
  }
}

//_____________________________________________________________________________
Bool_t AliPerformanceTask::AddPerformanceObject(AliPerformanceObject *pObj) 
{
  // add comparison object to the list
  if(pObj == 0) {
    Printf("ERROR: Could not add comparison object");
    return kFALSE;
  }

  // add object to the list
  fCompList->AddLast(pObj);
       
return kTRUE;
}

//_____________________________________________________________________________
void AliPerformanceTask::UserCreateOutputObjects()
{
  // Create histograms
  // Called once

  // create output list
  fOutput = new TList;
  fOutput->SetOwner();
  fPitList = fOutput->MakeIterator();
  
  // create output list
  //fOutputSummary = new TTree;
  
  // add comparison objects to the output
  AliPerformanceObject *pObj=0;
  Int_t count=0;
  TIterator *pitCompList = fCompList->MakeIterator();
  pitCompList->Reset();
  while(( pObj = (AliPerformanceObject *)pitCompList->Next()) != NULL) {
    fOutput->Add(pObj);
    count++;
  }
  Printf("UserCreateOutputObjects(): Number of output comparison objects: %d \n", count);
  
  PostData(1, fOutput);  
  PostData(0, fOutputSummary);  
}

//_____________________________________________________________________________
void AliPerformanceTask::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event


  // Decide whether to use HLT or Offline ESD
  if(fUseHLT){

    AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> 
      (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
    
    if (!esdH) {
      printf("ERROR: Could not get ESDInputHandler");
      return;
    } 
    fESD = esdH->GetHLTEvent();
  }// end if fUseHLT
  else  
    fESD = (AliESDEvent*) (InputEvent());

  if(fUseESDfriend)
    {
	  if (fUseHLT)
	  {
		AliESDEvent *fESDoffline;
	    fESDoffline = (AliESDEvent*) (InputEvent());
		fESDfriend = static_cast<AliESDfriend*>(fESDoffline->FindListObject("AliESDfriend"));
	  }
	  else
	  {
        fESDfriend = static_cast<AliESDfriend*>(fESD->FindListObject("AliESDfriend"));
	  }
      if(!fESDfriend) {
        Printf("ERROR: ESD friends not available");
      }
    }
  
  if(fUseMCInfo) {
      fMC = MCEvent();
  }  


  if (!fESD) {
    Printf("ERROR: ESD event not available");
    return;
  }
  
  if (fUseMCInfo && !fMC) {
    Printf("ERROR: MC event not available");
    return;
  }

  if(fUseESDfriend)
  {
    if(!fESDfriend) {
    Printf("ERROR: ESD friends not available");
    }
  }

  // Process analysis
  Bool_t process = kTRUE;

  // Check for centrality
  if (fUseCentrality) {
    if ( CalculateCentralityBin() != fUseCentralityBin ) {
      process = kFALSE;
    }
  }

  // Process comparison
  if (process) {
    AliPerformanceObject *pObj=0;
    fPitList->Reset();
    while(( pObj = (AliPerformanceObject *)fPitList->Next()) != NULL) {
      //AliInfo(pObj->GetName());
      pObj->Exec(fMC,fESD,fESDfriend,fUseMCInfo,fUseESDfriend);
    }
  }

  // Post output data.
  PostData(1, fOutput);
}

//_____________________________________________________________________________
void AliPerformanceTask::Terminate(Option_t *) 
{
  // Called once at the end 

  if ( !fUseTerminate )
    return;
  
  // check output data
    fOutputSummary = dynamic_cast<TTree*> (GetOutputData(0));
    fOutput = dynamic_cast<TList*> (GetOutputData(1));
    if (!fOutput) {
        Printf("ERROR: AliPerformanceTask::Terminate(): fOutput data not available  ..." );
        return;
   }
    if (fOutputSummary) { delete fOutputSummary; fOutputSummary=0; }      
    AliPerformanceObject* pObj=0;
    AliPerformanceTPC*  pTPC = 0;
    AliPerformanceDEdx* pDEdx = 0;
    AliPerformanceMatch* pMatch = 0;
    AliPerformanceMatch* pPull = 0;
    AliPerformanceMatch* pConstrain = 0;
    TIterator* itOut = fOutput->MakeIterator();
    itOut->Reset();
    while(( pObj = dynamic_cast<AliPerformanceObject*>(itOut->Next())) != NULL) { 
      pObj->AnalyseFinal();
      /*      if (!  pTPC)  {    pTPC = dynamic_cast<AliPerformanceTPC*>(pObj); }
        if (! pDEdx)  {   pDEdx = dynamic_cast<AliPerformanceDEdx*>(pObj); }
        if (! pMatch) {  pMatch = dynamic_cast<AliPerformanceMatch*>(pObj); }
        if ((! pPull) && pMatch ) {  pPull = dynamic_cast<AliPerformanceMatch*>(pObj);*/

	if (!strcmp(pObj->GetName(),"AliPerformanceTPC"))  {    pTPC = dynamic_cast<AliPerformanceTPC*>(pObj); }
        if (!strcmp(pObj->GetName(),"AliPerformanceDEdxTPCInner"))  {   pDEdx = dynamic_cast<AliPerformanceDEdx*>(pObj); }
        if (!strcmp(pObj->GetName(),"AliPerformanceMatchTPCITS")) {  pMatch = dynamic_cast<AliPerformanceMatch*>(pObj); }
        if (!strcmp(pObj->GetName(),"AliPerformanceMatchITSTPC")) {  pPull = dynamic_cast<AliPerformanceMatch*>(pObj);}
        if (!strcmp(pObj->GetName(),"AliPerformanceMatchTPCConstrain")) {  pConstrain = dynamic_cast<AliPerformanceMatch*>(pObj);}
    }
  
   
    if(!fUseOCDB)  { 
      printf("DO NOT USE OCDB \n");
      return;
    }
  
    if (! AliCDBManager::Instance()->GetDefaultStorage()) { AliCDBManager::Instance()->SetDefaultStorage("raw://"); }
    TUUID uuid;
    TString tmpFile = gSystem->TempDirectory() + TString("/TPCQASummary.") + uuid.AsString() + TString(".root");
    AliTPCPerformanceSummary::WriteToFile(pTPC, pDEdx, pMatch, pPull, pConstrain, tmpFile.Data());
    TChain* chain = new TChain("tpcQA");
    if(!chain) return;
    chain->Add(tmpFile.Data());
    TTree *tree = chain->CopyTree("1");
    if (chain) { delete chain; chain=0; }
    fOutputSummary = tree;
      
     // Post output data.
     PostData(0, fOutputSummary);

}

//_____________________________________________________________________________
void AliPerformanceTask::FinishTaskOutput()
{
    // called once at the end of each job (on the workernode)
    //
    // projects THnSparse to TH1,2,3
    
    fOutput = dynamic_cast<TList*> (GetOutputData(1));
    if (!fOutput) {
        Printf("ERROR: AliPerformanceTask::FinishTaskOutput(): fOutput data not available  ..." );
        return;
   }

      AliPerformanceObject* pObj=0;
      TIterator* itOut = fOutput->MakeIterator();  
      itOut->Reset();
      while(( pObj = dynamic_cast<AliPerformanceObject*>(itOut->Next())) != NULL) {
          pObj->SetRunNumber(fCurrentRunNumber);
          pObj->Analyse();
      }
      
     // Post output data.
     PostData(1, fOutput);
}

//_____________________________________________________________________________
Bool_t AliPerformanceTask::Notify()
{
  static Int_t count = 0;
  count++;
  Printf("Processing %d. file", count);

  return kTRUE;
}

//________________________________________________________________________
Int_t AliPerformanceTask::CalculateCentralityBin(){
  // Get Centrality bin

  Int_t centrality = -1;
  Float_t centralityF = -1;

  if (fUseCentrality == 0)
    return centrality;

  AliCentrality *esdCentrality = fESD->GetCentrality();
    
  // New : 2010-11-18 JMT 
  if ( fUseCentrality == 1 )
    centralityF = esdCentrality->GetCentralityPercentile("V0M");
  else if ( fUseCentrality == 2 )
    centralityF = esdCentrality->GetCentralityPercentile("CL1");
  else if ( fUseCentrality == 3 )
    centralityF = esdCentrality->GetCentralityPercentile("TRK"); 
  if (centralityF == 0.)
    centralityF = 100.;

  if      ( centralityF >=  0. && centralityF <   5.) centrality =  0;
  else if ( centralityF >=  5. && centralityF <  10.) centrality =  5;
  else if ( centralityF >= 10. && centralityF <  20.) centrality = 10;
  else if ( centralityF >= 20. && centralityF <  30.) centrality = 20;
  else if ( centralityF >= 30. && centralityF <  40.) centrality = 30;
  else if ( centralityF >= 40. && centralityF <  50.) centrality = 40;
  else if ( centralityF >= 50. && centralityF <  60.) centrality = 50;
  else if ( centralityF >= 60. && centralityF <  70.) centrality = 60;
  else if ( centralityF >= 70. && centralityF <  80.) centrality = 70;
  else if ( centralityF >= 80. && centralityF <  90.) centrality = 80;
  else if ( centralityF >= 90. && centralityF <=100.) centrality = 90;
  
  return centrality;
}
 AliPerformanceTask.cxx:1
 AliPerformanceTask.cxx:2
 AliPerformanceTask.cxx:3
 AliPerformanceTask.cxx:4
 AliPerformanceTask.cxx:5
 AliPerformanceTask.cxx:6
 AliPerformanceTask.cxx:7
 AliPerformanceTask.cxx:8
 AliPerformanceTask.cxx:9
 AliPerformanceTask.cxx:10
 AliPerformanceTask.cxx:11
 AliPerformanceTask.cxx:12
 AliPerformanceTask.cxx:13
 AliPerformanceTask.cxx:14
 AliPerformanceTask.cxx:15
 AliPerformanceTask.cxx:16
 AliPerformanceTask.cxx:17
 AliPerformanceTask.cxx:18
 AliPerformanceTask.cxx:19
 AliPerformanceTask.cxx:20
 AliPerformanceTask.cxx:21
 AliPerformanceTask.cxx:22
 AliPerformanceTask.cxx:23
 AliPerformanceTask.cxx:24
 AliPerformanceTask.cxx:25
 AliPerformanceTask.cxx:26
 AliPerformanceTask.cxx:27
 AliPerformanceTask.cxx:28
 AliPerformanceTask.cxx:29
 AliPerformanceTask.cxx:30
 AliPerformanceTask.cxx:31
 AliPerformanceTask.cxx:32
 AliPerformanceTask.cxx:33
 AliPerformanceTask.cxx:34
 AliPerformanceTask.cxx:35
 AliPerformanceTask.cxx:36
 AliPerformanceTask.cxx:37
 AliPerformanceTask.cxx:38
 AliPerformanceTask.cxx:39
 AliPerformanceTask.cxx:40
 AliPerformanceTask.cxx:41
 AliPerformanceTask.cxx:42
 AliPerformanceTask.cxx:43
 AliPerformanceTask.cxx:44
 AliPerformanceTask.cxx:45
 AliPerformanceTask.cxx:46
 AliPerformanceTask.cxx:47
 AliPerformanceTask.cxx:48
 AliPerformanceTask.cxx:49
 AliPerformanceTask.cxx:50
 AliPerformanceTask.cxx:51
 AliPerformanceTask.cxx:52
 AliPerformanceTask.cxx:53
 AliPerformanceTask.cxx:54
 AliPerformanceTask.cxx:55
 AliPerformanceTask.cxx:56
 AliPerformanceTask.cxx:57
 AliPerformanceTask.cxx:58
 AliPerformanceTask.cxx:59
 AliPerformanceTask.cxx:60
 AliPerformanceTask.cxx:61
 AliPerformanceTask.cxx:62
 AliPerformanceTask.cxx:63
 AliPerformanceTask.cxx:64
 AliPerformanceTask.cxx:65
 AliPerformanceTask.cxx:66
 AliPerformanceTask.cxx:67
 AliPerformanceTask.cxx:68
 AliPerformanceTask.cxx:69
 AliPerformanceTask.cxx:70
 AliPerformanceTask.cxx:71
 AliPerformanceTask.cxx:72
 AliPerformanceTask.cxx:73
 AliPerformanceTask.cxx:74
 AliPerformanceTask.cxx:75
 AliPerformanceTask.cxx:76
 AliPerformanceTask.cxx:77
 AliPerformanceTask.cxx:78
 AliPerformanceTask.cxx:79
 AliPerformanceTask.cxx:80
 AliPerformanceTask.cxx:81
 AliPerformanceTask.cxx:82
 AliPerformanceTask.cxx:83
 AliPerformanceTask.cxx:84
 AliPerformanceTask.cxx:85
 AliPerformanceTask.cxx:86
 AliPerformanceTask.cxx:87
 AliPerformanceTask.cxx:88
 AliPerformanceTask.cxx:89
 AliPerformanceTask.cxx:90
 AliPerformanceTask.cxx:91
 AliPerformanceTask.cxx:92
 AliPerformanceTask.cxx:93
 AliPerformanceTask.cxx:94
 AliPerformanceTask.cxx:95
 AliPerformanceTask.cxx:96
 AliPerformanceTask.cxx:97
 AliPerformanceTask.cxx:98
 AliPerformanceTask.cxx:99
 AliPerformanceTask.cxx:100
 AliPerformanceTask.cxx:101
 AliPerformanceTask.cxx:102
 AliPerformanceTask.cxx:103
 AliPerformanceTask.cxx:104
 AliPerformanceTask.cxx:105
 AliPerformanceTask.cxx:106
 AliPerformanceTask.cxx:107
 AliPerformanceTask.cxx:108
 AliPerformanceTask.cxx:109
 AliPerformanceTask.cxx:110
 AliPerformanceTask.cxx:111
 AliPerformanceTask.cxx:112
 AliPerformanceTask.cxx:113
 AliPerformanceTask.cxx:114
 AliPerformanceTask.cxx:115
 AliPerformanceTask.cxx:116
 AliPerformanceTask.cxx:117
 AliPerformanceTask.cxx:118
 AliPerformanceTask.cxx:119
 AliPerformanceTask.cxx:120
 AliPerformanceTask.cxx:121
 AliPerformanceTask.cxx:122
 AliPerformanceTask.cxx:123
 AliPerformanceTask.cxx:124
 AliPerformanceTask.cxx:125
 AliPerformanceTask.cxx:126
 AliPerformanceTask.cxx:127
 AliPerformanceTask.cxx:128
 AliPerformanceTask.cxx:129
 AliPerformanceTask.cxx:130
 AliPerformanceTask.cxx:131
 AliPerformanceTask.cxx:132
 AliPerformanceTask.cxx:133
 AliPerformanceTask.cxx:134
 AliPerformanceTask.cxx:135
 AliPerformanceTask.cxx:136
 AliPerformanceTask.cxx:137
 AliPerformanceTask.cxx:138
 AliPerformanceTask.cxx:139
 AliPerformanceTask.cxx:140
 AliPerformanceTask.cxx:141
 AliPerformanceTask.cxx:142
 AliPerformanceTask.cxx:143
 AliPerformanceTask.cxx:144
 AliPerformanceTask.cxx:145
 AliPerformanceTask.cxx:146
 AliPerformanceTask.cxx:147
 AliPerformanceTask.cxx:148
 AliPerformanceTask.cxx:149
 AliPerformanceTask.cxx:150
 AliPerformanceTask.cxx:151
 AliPerformanceTask.cxx:152
 AliPerformanceTask.cxx:153
 AliPerformanceTask.cxx:154
 AliPerformanceTask.cxx:155
 AliPerformanceTask.cxx:156
 AliPerformanceTask.cxx:157
 AliPerformanceTask.cxx:158
 AliPerformanceTask.cxx:159
 AliPerformanceTask.cxx:160
 AliPerformanceTask.cxx:161
 AliPerformanceTask.cxx:162
 AliPerformanceTask.cxx:163
 AliPerformanceTask.cxx:164
 AliPerformanceTask.cxx:165
 AliPerformanceTask.cxx:166
 AliPerformanceTask.cxx:167
 AliPerformanceTask.cxx:168
 AliPerformanceTask.cxx:169
 AliPerformanceTask.cxx:170
 AliPerformanceTask.cxx:171
 AliPerformanceTask.cxx:172
 AliPerformanceTask.cxx:173
 AliPerformanceTask.cxx:174
 AliPerformanceTask.cxx:175
 AliPerformanceTask.cxx:176
 AliPerformanceTask.cxx:177
 AliPerformanceTask.cxx:178
 AliPerformanceTask.cxx:179
 AliPerformanceTask.cxx:180
 AliPerformanceTask.cxx:181
 AliPerformanceTask.cxx:182
 AliPerformanceTask.cxx:183
 AliPerformanceTask.cxx:184
 AliPerformanceTask.cxx:185
 AliPerformanceTask.cxx:186
 AliPerformanceTask.cxx:187
 AliPerformanceTask.cxx:188
 AliPerformanceTask.cxx:189
 AliPerformanceTask.cxx:190
 AliPerformanceTask.cxx:191
 AliPerformanceTask.cxx:192
 AliPerformanceTask.cxx:193
 AliPerformanceTask.cxx:194
 AliPerformanceTask.cxx:195
 AliPerformanceTask.cxx:196
 AliPerformanceTask.cxx:197
 AliPerformanceTask.cxx:198
 AliPerformanceTask.cxx:199
 AliPerformanceTask.cxx:200
 AliPerformanceTask.cxx:201
 AliPerformanceTask.cxx:202
 AliPerformanceTask.cxx:203
 AliPerformanceTask.cxx:204
 AliPerformanceTask.cxx:205
 AliPerformanceTask.cxx:206
 AliPerformanceTask.cxx:207
 AliPerformanceTask.cxx:208
 AliPerformanceTask.cxx:209
 AliPerformanceTask.cxx:210
 AliPerformanceTask.cxx:211
 AliPerformanceTask.cxx:212
 AliPerformanceTask.cxx:213
 AliPerformanceTask.cxx:214
 AliPerformanceTask.cxx:215
 AliPerformanceTask.cxx:216
 AliPerformanceTask.cxx:217
 AliPerformanceTask.cxx:218
 AliPerformanceTask.cxx:219
 AliPerformanceTask.cxx:220
 AliPerformanceTask.cxx:221
 AliPerformanceTask.cxx:222
 AliPerformanceTask.cxx:223
 AliPerformanceTask.cxx:224
 AliPerformanceTask.cxx:225
 AliPerformanceTask.cxx:226
 AliPerformanceTask.cxx:227
 AliPerformanceTask.cxx:228
 AliPerformanceTask.cxx:229
 AliPerformanceTask.cxx:230
 AliPerformanceTask.cxx:231
 AliPerformanceTask.cxx:232
 AliPerformanceTask.cxx:233
 AliPerformanceTask.cxx:234
 AliPerformanceTask.cxx:235
 AliPerformanceTask.cxx:236
 AliPerformanceTask.cxx:237
 AliPerformanceTask.cxx:238
 AliPerformanceTask.cxx:239
 AliPerformanceTask.cxx:240
 AliPerformanceTask.cxx:241
 AliPerformanceTask.cxx:242
 AliPerformanceTask.cxx:243
 AliPerformanceTask.cxx:244
 AliPerformanceTask.cxx:245
 AliPerformanceTask.cxx:246
 AliPerformanceTask.cxx:247
 AliPerformanceTask.cxx:248
 AliPerformanceTask.cxx:249
 AliPerformanceTask.cxx:250
 AliPerformanceTask.cxx:251
 AliPerformanceTask.cxx:252
 AliPerformanceTask.cxx:253
 AliPerformanceTask.cxx:254
 AliPerformanceTask.cxx:255
 AliPerformanceTask.cxx:256
 AliPerformanceTask.cxx:257
 AliPerformanceTask.cxx:258
 AliPerformanceTask.cxx:259
 AliPerformanceTask.cxx:260
 AliPerformanceTask.cxx:261
 AliPerformanceTask.cxx:262
 AliPerformanceTask.cxx:263
 AliPerformanceTask.cxx:264
 AliPerformanceTask.cxx:265
 AliPerformanceTask.cxx:266
 AliPerformanceTask.cxx:267
 AliPerformanceTask.cxx:268
 AliPerformanceTask.cxx:269
 AliPerformanceTask.cxx:270
 AliPerformanceTask.cxx:271
 AliPerformanceTask.cxx:272
 AliPerformanceTask.cxx:273
 AliPerformanceTask.cxx:274
 AliPerformanceTask.cxx:275
 AliPerformanceTask.cxx:276
 AliPerformanceTask.cxx:277
 AliPerformanceTask.cxx:278
 AliPerformanceTask.cxx:279
 AliPerformanceTask.cxx:280
 AliPerformanceTask.cxx:281
 AliPerformanceTask.cxx:282
 AliPerformanceTask.cxx:283
 AliPerformanceTask.cxx:284
 AliPerformanceTask.cxx:285
 AliPerformanceTask.cxx:286
 AliPerformanceTask.cxx:287
 AliPerformanceTask.cxx:288
 AliPerformanceTask.cxx:289
 AliPerformanceTask.cxx:290
 AliPerformanceTask.cxx:291
 AliPerformanceTask.cxx:292
 AliPerformanceTask.cxx:293
 AliPerformanceTask.cxx:294
 AliPerformanceTask.cxx:295
 AliPerformanceTask.cxx:296
 AliPerformanceTask.cxx:297
 AliPerformanceTask.cxx:298
 AliPerformanceTask.cxx:299
 AliPerformanceTask.cxx:300
 AliPerformanceTask.cxx:301
 AliPerformanceTask.cxx:302
 AliPerformanceTask.cxx:303
 AliPerformanceTask.cxx:304
 AliPerformanceTask.cxx:305
 AliPerformanceTask.cxx:306
 AliPerformanceTask.cxx:307
 AliPerformanceTask.cxx:308
 AliPerformanceTask.cxx:309
 AliPerformanceTask.cxx:310
 AliPerformanceTask.cxx:311
 AliPerformanceTask.cxx:312
 AliPerformanceTask.cxx:313
 AliPerformanceTask.cxx:314
 AliPerformanceTask.cxx:315
 AliPerformanceTask.cxx:316
 AliPerformanceTask.cxx:317
 AliPerformanceTask.cxx:318
 AliPerformanceTask.cxx:319
 AliPerformanceTask.cxx:320
 AliPerformanceTask.cxx:321
 AliPerformanceTask.cxx:322
 AliPerformanceTask.cxx:323
 AliPerformanceTask.cxx:324
 AliPerformanceTask.cxx:325
 AliPerformanceTask.cxx:326
 AliPerformanceTask.cxx:327
 AliPerformanceTask.cxx:328
 AliPerformanceTask.cxx:329
 AliPerformanceTask.cxx:330
 AliPerformanceTask.cxx:331
 AliPerformanceTask.cxx:332
 AliPerformanceTask.cxx:333
 AliPerformanceTask.cxx:334
 AliPerformanceTask.cxx:335
 AliPerformanceTask.cxx:336
 AliPerformanceTask.cxx:337
 AliPerformanceTask.cxx:338
 AliPerformanceTask.cxx:339
 AliPerformanceTask.cxx:340
 AliPerformanceTask.cxx:341
 AliPerformanceTask.cxx:342
 AliPerformanceTask.cxx:343
 AliPerformanceTask.cxx:344
 AliPerformanceTask.cxx:345
 AliPerformanceTask.cxx:346
 AliPerformanceTask.cxx:347
 AliPerformanceTask.cxx:348
 AliPerformanceTask.cxx:349
 AliPerformanceTask.cxx:350
 AliPerformanceTask.cxx:351
 AliPerformanceTask.cxx:352
 AliPerformanceTask.cxx:353
 AliPerformanceTask.cxx:354
 AliPerformanceTask.cxx:355
 AliPerformanceTask.cxx:356
 AliPerformanceTask.cxx:357
 AliPerformanceTask.cxx:358
 AliPerformanceTask.cxx:359
 AliPerformanceTask.cxx:360
 AliPerformanceTask.cxx:361
 AliPerformanceTask.cxx:362
 AliPerformanceTask.cxx:363
 AliPerformanceTask.cxx:364
 AliPerformanceTask.cxx:365
 AliPerformanceTask.cxx:366
 AliPerformanceTask.cxx:367
 AliPerformanceTask.cxx:368
 AliPerformanceTask.cxx:369
 AliPerformanceTask.cxx:370
 AliPerformanceTask.cxx:371
 AliPerformanceTask.cxx:372
 AliPerformanceTask.cxx:373
 AliPerformanceTask.cxx:374
 AliPerformanceTask.cxx:375
 AliPerformanceTask.cxx:376
 AliPerformanceTask.cxx:377
 AliPerformanceTask.cxx:378
 AliPerformanceTask.cxx:379
 AliPerformanceTask.cxx:380
 AliPerformanceTask.cxx:381
 AliPerformanceTask.cxx:382
 AliPerformanceTask.cxx:383
 AliPerformanceTask.cxx:384
 AliPerformanceTask.cxx:385
 AliPerformanceTask.cxx:386
 AliPerformanceTask.cxx:387
 AliPerformanceTask.cxx:388
 AliPerformanceTask.cxx:389
 AliPerformanceTask.cxx:390
 AliPerformanceTask.cxx:391