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

// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//
//  AliAnalysisTaskVZEROEqFactorTask.cxx, February 12th 2014
//   --- David Dobrigkeit Chinellato
//
// This task is meant to set correct VZERO equalization factors in AliESDRun 
// so that AliCentrality makes use of the correct values. NB This task has to
// be executed prior to AliCentrality for this to work properly! It is meant
// to be used as a Tender. 
//
//    Comments, Suggestions, Bug reports: Please send them to: 
//          --- daviddc@ifi.unicamp.br
//
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

class TTree;
class TParticle;
class TVector3;

//class AliMCEventHandler;
//class AliMCEvent;
//class AliStack;

class AliESDVertex;
class AliAODVertex;
class AliESDv0;
class AliAODv0;

#include <Riostream.h>
#include "TList.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TFile.h"
#include "THnSparse.h"
#include "TVector3.h"
#include "TCanvas.h"
#include "TMath.h"
#include "TLegend.h"
//#include "AliLog.h"

#include "AliAnalysisTaskSE.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliV0vertexer.h"
#include "AliCascadeVertexer.h"
#include "AliESDpid.h"
#include "AliESDRun.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliInputEventHandler.h"
#include "AliAnalysisManager.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"

#include "AliCFContainer.h"
#include "AliMultiplicity.h"
#include "AliAODMCParticle.h"
#include "AliESDcascade.h"
#include "AliAODcascade.h"
#include "AliESDUtils.h"
#include "AliGenEventHeader.h"

#include "AliAnalysisUtils.h"
#include "AliAnalysisTaskVZEROEqFactorTask.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"

#include "AliVZEROCalibData.h"

using std::cout;
using std::endl;

ClassImp(AliAnalysisTaskVZEROEqFactorTask)

AliAnalysisTaskVZEROEqFactorTask::AliAnalysisTaskVZEROEqFactorTask()
: AliAnalysisTaskSE(), fListHist(0), fEqFactors(0), fCalibData(0), fRunNumber(0), fHistEventCounter(0), fisAOD(kFALSE)
//------------------------------------------------
// Tree Variables 
{
  // Dummy Constructor  
}

AliAnalysisTaskVZEROEqFactorTask::AliAnalysisTaskVZEROEqFactorTask(const char *name) 
  : AliAnalysisTaskSE(name), fListHist(0), fEqFactors(0), fCalibData(0), fRunNumber(0), fHistEventCounter(0), fisAOD(kFALSE)
{
  // Constructor
  DefineOutput(1, TList::Class());
}


AliAnalysisTaskVZEROEqFactorTask::~AliAnalysisTaskVZEROEqFactorTask()
{
//------------------------------------------------
// DESTRUCTOR
//------------------------------------------------

   if (fListHist){
      delete fListHist;
      fListHist = 0x0;
   }
}

//________________________________________________________________________
void AliAnalysisTaskVZEROEqFactorTask::UserCreateOutputObjects()
{
//------------------------------------------------
// Output: Empty at the moment 
//------------------------------------------------

   fListHist = new TList();
   fListHist->SetOwner();  // See http://root.cern.ch/root/html/TCollection.html#TCollection:SetOwner

   if(! fHistEventCounter ) {
    //Histogram Output: Event-by-Event
    // --- Single "Events Processed" Counter at this stage 
    fHistEventCounter = new TH1D( "fHistEventCounter", ";Evt. Sel. Step;Count",4,0,4); 
    fHistEventCounter->GetXaxis()->SetBinLabel(1, "Processed");
    fHistEventCounter->GetXaxis()->SetBinLabel(2, "Has ESD");
    fHistEventCounter->GetXaxis()->SetBinLabel(3, "Has ESDRun");
    fHistEventCounter->GetXaxis()->SetBinLabel(4, "Rewrote EqFactors");
    fListHist->Add(fHistEventCounter); 
   }

   //List of Histograms
   PostData(1, fListHist);
}// end UserCreateOutputObjects


//________________________________________________________________________
void AliAnalysisTaskVZEROEqFactorTask::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event

   AliESDEvent *lESDevent = 0x0;
   AliAODEvent *lAODevent = 0x0;
  // Connect to the InputEvent   
  // After these lines, we should have an ESD/AOD event + the number of V0s in it.

   // Appropriate for ESD analysis! 
   //Count Processed Events 
   fHistEventCounter->Fill(0.5);

   if(fisAOD) {
     lAODevent = dynamic_cast<AliAODEvent*>( InputEvent() );
     if (!lAODevent) {
       AliError("AOD event not available \n");
       return;
     }
   } else {
     lESDevent = dynamic_cast<AliESDEvent*>( InputEvent() );
     if (!lESDevent) {
       AliError("ESD event not available \n");
       return;
     }
   }
   fHistEventCounter->Fill(1.5);
       
   
   //Acquire ESDRun object - Will be needed to invoke AliESDEvent::SetVZEROEqFactors
   Int_t runNumber=-1;
   // const AliESDRun *lESDRun;
   if(fisAOD) {
     runNumber = lAODevent->GetRunNumber();
       } else {
   //   lESDRun = lESDevent->GetESDRun();
   //   if (!lESDRun) {
   //     AliError("ERROR: lESDRun not available, won't be able to write Equalization Factors! Exiting. \n");
   //     return;
   //   }
     runNumber = lESDevent->GetRunNumber();
   }
   fHistEventCounter->Fill(2.5);

   //CDB Processing only necessary if Run Number changed! Check for change (no need to redo this every event) 
   if( runNumber != fRunNumber ){
      AliWarning("Run Changed! Reloading CDB values!");
      //Load CDB Entries - Mirroring AliVZEROReconstructor
      AliCDBManager *cdbmanager = AliCDBManager::Instance();
      cdbmanager->SetDefaultStorage("raw://");
      cdbmanager->SetRun(runNumber);
      if(!cdbmanager) AliFatal("No CDB Manager !");
      AliCDBEntry *entry7 = cdbmanager->Get("VZERO/Calib/EqualizationFactors");
      if (!entry7) AliFatal("VZERO equalization factors are not found in OCDB !");
      fEqFactors = (TH1F*)entry7->GetObject();

      //Load Calibration object fCalibData
      fCalibData = GetCalibData(); // Mirror AliVZEROReconstructor Functionality 
      fRunNumber = runNumber; //New Run
   }
   if(!fCalibData) AliFatal("No VZERO CalibData Object found!");


   Float_t factors[64];
   Float_t factorSum = 0;
   for(Int_t i = 0; i < 64; ++i) {
      factors[i] = fEqFactors->GetBinContent(i+1)*fCalibData->GetMIPperADC(i);
      factorSum += factors[i];
   }
   for(Int_t i = 0; i < 64; ++i) { 
      factors[i] *= (64./factorSum);
   }

   // Set the equalized factors
   if(fisAOD) {
     lAODevent->SetVZEROEqFactors(factors);
   } else {
     lESDevent->SetVZEROEqFactors(factors);
   }
   fHistEventCounter->Fill(3.5);

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

//________________________________________________________________________
void AliAnalysisTaskVZEROEqFactorTask::Terminate(Option_t *)
{
   // Draw result to the screen
   // Called once at the end of the query

   TList *cRetrievedList = 0x0;
   cRetrievedList = (TList*)GetOutputData(1);
   if(!cRetrievedList){
      Printf("ERROR - AliAnalysisTaskVZEROEqFactorTask : ouput data container list not available\n");
      return;
   }	
	
   fHistEventCounter = dynamic_cast<TH1D*> (  cRetrievedList->FindObject("fHistEventCounter")  );
   if (!fHistEventCounter) {
      Printf("ERROR - AliAnalysisTaskVZEROEqFactorTask : fHistEventCounter not available");
      return;
   }
  
   TCanvas *canCheck = new TCanvas("AliAnalysisTaskVZEROEqFactorTask","V0 Multiplicity",10,10,510,510);
   canCheck->cd(1)->SetLogy();

   fHistEventCounter->SetMarkerStyle(22);
   fHistEventCounter->DrawCopy("E");
}

//_____________________________________________________________________________
AliVZEROCalibData* AliAnalysisTaskVZEROEqFactorTask::GetCalibData() const
{
  // Gets calibration object for VZERO set
 
  AliCDBManager *man = AliCDBManager::Instance();
  AliCDBEntry *entry=0;
  entry = man->Get("VZERO/Calib/Data");
  AliVZEROCalibData *calibdata = 0;
  if (entry) calibdata = (AliVZEROCalibData*) entry->GetObject();
  if (!calibdata)  AliFatal("No calibration data from calibration database !");
  return calibdata;
}
 AliAnalysisTaskVZEROEqFactorTask.cxx:1
 AliAnalysisTaskVZEROEqFactorTask.cxx:2
 AliAnalysisTaskVZEROEqFactorTask.cxx:3
 AliAnalysisTaskVZEROEqFactorTask.cxx:4
 AliAnalysisTaskVZEROEqFactorTask.cxx:5
 AliAnalysisTaskVZEROEqFactorTask.cxx:6
 AliAnalysisTaskVZEROEqFactorTask.cxx:7
 AliAnalysisTaskVZEROEqFactorTask.cxx:8
 AliAnalysisTaskVZEROEqFactorTask.cxx:9
 AliAnalysisTaskVZEROEqFactorTask.cxx:10
 AliAnalysisTaskVZEROEqFactorTask.cxx:11
 AliAnalysisTaskVZEROEqFactorTask.cxx:12
 AliAnalysisTaskVZEROEqFactorTask.cxx:13
 AliAnalysisTaskVZEROEqFactorTask.cxx:14
 AliAnalysisTaskVZEROEqFactorTask.cxx:15
 AliAnalysisTaskVZEROEqFactorTask.cxx:16
 AliAnalysisTaskVZEROEqFactorTask.cxx:17
 AliAnalysisTaskVZEROEqFactorTask.cxx:18
 AliAnalysisTaskVZEROEqFactorTask.cxx:19
 AliAnalysisTaskVZEROEqFactorTask.cxx:20
 AliAnalysisTaskVZEROEqFactorTask.cxx:21
 AliAnalysisTaskVZEROEqFactorTask.cxx:22
 AliAnalysisTaskVZEROEqFactorTask.cxx:23
 AliAnalysisTaskVZEROEqFactorTask.cxx:24
 AliAnalysisTaskVZEROEqFactorTask.cxx:25
 AliAnalysisTaskVZEROEqFactorTask.cxx:26
 AliAnalysisTaskVZEROEqFactorTask.cxx:27
 AliAnalysisTaskVZEROEqFactorTask.cxx:28
 AliAnalysisTaskVZEROEqFactorTask.cxx:29
 AliAnalysisTaskVZEROEqFactorTask.cxx:30
 AliAnalysisTaskVZEROEqFactorTask.cxx:31
 AliAnalysisTaskVZEROEqFactorTask.cxx:32
 AliAnalysisTaskVZEROEqFactorTask.cxx:33
 AliAnalysisTaskVZEROEqFactorTask.cxx:34
 AliAnalysisTaskVZEROEqFactorTask.cxx:35
 AliAnalysisTaskVZEROEqFactorTask.cxx:36
 AliAnalysisTaskVZEROEqFactorTask.cxx:37
 AliAnalysisTaskVZEROEqFactorTask.cxx:38
 AliAnalysisTaskVZEROEqFactorTask.cxx:39
 AliAnalysisTaskVZEROEqFactorTask.cxx:40
 AliAnalysisTaskVZEROEqFactorTask.cxx:41
 AliAnalysisTaskVZEROEqFactorTask.cxx:42
 AliAnalysisTaskVZEROEqFactorTask.cxx:43
 AliAnalysisTaskVZEROEqFactorTask.cxx:44
 AliAnalysisTaskVZEROEqFactorTask.cxx:45
 AliAnalysisTaskVZEROEqFactorTask.cxx:46
 AliAnalysisTaskVZEROEqFactorTask.cxx:47
 AliAnalysisTaskVZEROEqFactorTask.cxx:48
 AliAnalysisTaskVZEROEqFactorTask.cxx:49
 AliAnalysisTaskVZEROEqFactorTask.cxx:50
 AliAnalysisTaskVZEROEqFactorTask.cxx:51
 AliAnalysisTaskVZEROEqFactorTask.cxx:52
 AliAnalysisTaskVZEROEqFactorTask.cxx:53
 AliAnalysisTaskVZEROEqFactorTask.cxx:54
 AliAnalysisTaskVZEROEqFactorTask.cxx:55
 AliAnalysisTaskVZEROEqFactorTask.cxx:56
 AliAnalysisTaskVZEROEqFactorTask.cxx:57
 AliAnalysisTaskVZEROEqFactorTask.cxx:58
 AliAnalysisTaskVZEROEqFactorTask.cxx:59
 AliAnalysisTaskVZEROEqFactorTask.cxx:60
 AliAnalysisTaskVZEROEqFactorTask.cxx:61
 AliAnalysisTaskVZEROEqFactorTask.cxx:62
 AliAnalysisTaskVZEROEqFactorTask.cxx:63
 AliAnalysisTaskVZEROEqFactorTask.cxx:64
 AliAnalysisTaskVZEROEqFactorTask.cxx:65
 AliAnalysisTaskVZEROEqFactorTask.cxx:66
 AliAnalysisTaskVZEROEqFactorTask.cxx:67
 AliAnalysisTaskVZEROEqFactorTask.cxx:68
 AliAnalysisTaskVZEROEqFactorTask.cxx:69
 AliAnalysisTaskVZEROEqFactorTask.cxx:70
 AliAnalysisTaskVZEROEqFactorTask.cxx:71
 AliAnalysisTaskVZEROEqFactorTask.cxx:72
 AliAnalysisTaskVZEROEqFactorTask.cxx:73
 AliAnalysisTaskVZEROEqFactorTask.cxx:74
 AliAnalysisTaskVZEROEqFactorTask.cxx:75
 AliAnalysisTaskVZEROEqFactorTask.cxx:76
 AliAnalysisTaskVZEROEqFactorTask.cxx:77
 AliAnalysisTaskVZEROEqFactorTask.cxx:78
 AliAnalysisTaskVZEROEqFactorTask.cxx:79
 AliAnalysisTaskVZEROEqFactorTask.cxx:80
 AliAnalysisTaskVZEROEqFactorTask.cxx:81
 AliAnalysisTaskVZEROEqFactorTask.cxx:82
 AliAnalysisTaskVZEROEqFactorTask.cxx:83
 AliAnalysisTaskVZEROEqFactorTask.cxx:84
 AliAnalysisTaskVZEROEqFactorTask.cxx:85
 AliAnalysisTaskVZEROEqFactorTask.cxx:86
 AliAnalysisTaskVZEROEqFactorTask.cxx:87
 AliAnalysisTaskVZEROEqFactorTask.cxx:88
 AliAnalysisTaskVZEROEqFactorTask.cxx:89
 AliAnalysisTaskVZEROEqFactorTask.cxx:90
 AliAnalysisTaskVZEROEqFactorTask.cxx:91
 AliAnalysisTaskVZEROEqFactorTask.cxx:92
 AliAnalysisTaskVZEROEqFactorTask.cxx:93
 AliAnalysisTaskVZEROEqFactorTask.cxx:94
 AliAnalysisTaskVZEROEqFactorTask.cxx:95
 AliAnalysisTaskVZEROEqFactorTask.cxx:96
 AliAnalysisTaskVZEROEqFactorTask.cxx:97
 AliAnalysisTaskVZEROEqFactorTask.cxx:98
 AliAnalysisTaskVZEROEqFactorTask.cxx:99
 AliAnalysisTaskVZEROEqFactorTask.cxx:100
 AliAnalysisTaskVZEROEqFactorTask.cxx:101
 AliAnalysisTaskVZEROEqFactorTask.cxx:102
 AliAnalysisTaskVZEROEqFactorTask.cxx:103
 AliAnalysisTaskVZEROEqFactorTask.cxx:104
 AliAnalysisTaskVZEROEqFactorTask.cxx:105
 AliAnalysisTaskVZEROEqFactorTask.cxx:106
 AliAnalysisTaskVZEROEqFactorTask.cxx:107
 AliAnalysisTaskVZEROEqFactorTask.cxx:108
 AliAnalysisTaskVZEROEqFactorTask.cxx:109
 AliAnalysisTaskVZEROEqFactorTask.cxx:110
 AliAnalysisTaskVZEROEqFactorTask.cxx:111
 AliAnalysisTaskVZEROEqFactorTask.cxx:112
 AliAnalysisTaskVZEROEqFactorTask.cxx:113
 AliAnalysisTaskVZEROEqFactorTask.cxx:114
 AliAnalysisTaskVZEROEqFactorTask.cxx:115
 AliAnalysisTaskVZEROEqFactorTask.cxx:116
 AliAnalysisTaskVZEROEqFactorTask.cxx:117
 AliAnalysisTaskVZEROEqFactorTask.cxx:118
 AliAnalysisTaskVZEROEqFactorTask.cxx:119
 AliAnalysisTaskVZEROEqFactorTask.cxx:120
 AliAnalysisTaskVZEROEqFactorTask.cxx:121
 AliAnalysisTaskVZEROEqFactorTask.cxx:122
 AliAnalysisTaskVZEROEqFactorTask.cxx:123
 AliAnalysisTaskVZEROEqFactorTask.cxx:124
 AliAnalysisTaskVZEROEqFactorTask.cxx:125
 AliAnalysisTaskVZEROEqFactorTask.cxx:126
 AliAnalysisTaskVZEROEqFactorTask.cxx:127
 AliAnalysisTaskVZEROEqFactorTask.cxx:128
 AliAnalysisTaskVZEROEqFactorTask.cxx:129
 AliAnalysisTaskVZEROEqFactorTask.cxx:130
 AliAnalysisTaskVZEROEqFactorTask.cxx:131
 AliAnalysisTaskVZEROEqFactorTask.cxx:132
 AliAnalysisTaskVZEROEqFactorTask.cxx:133
 AliAnalysisTaskVZEROEqFactorTask.cxx:134
 AliAnalysisTaskVZEROEqFactorTask.cxx:135
 AliAnalysisTaskVZEROEqFactorTask.cxx:136
 AliAnalysisTaskVZEROEqFactorTask.cxx:137
 AliAnalysisTaskVZEROEqFactorTask.cxx:138
 AliAnalysisTaskVZEROEqFactorTask.cxx:139
 AliAnalysisTaskVZEROEqFactorTask.cxx:140
 AliAnalysisTaskVZEROEqFactorTask.cxx:141
 AliAnalysisTaskVZEROEqFactorTask.cxx:142
 AliAnalysisTaskVZEROEqFactorTask.cxx:143
 AliAnalysisTaskVZEROEqFactorTask.cxx:144
 AliAnalysisTaskVZEROEqFactorTask.cxx:145
 AliAnalysisTaskVZEROEqFactorTask.cxx:146
 AliAnalysisTaskVZEROEqFactorTask.cxx:147
 AliAnalysisTaskVZEROEqFactorTask.cxx:148
 AliAnalysisTaskVZEROEqFactorTask.cxx:149
 AliAnalysisTaskVZEROEqFactorTask.cxx:150
 AliAnalysisTaskVZEROEqFactorTask.cxx:151
 AliAnalysisTaskVZEROEqFactorTask.cxx:152
 AliAnalysisTaskVZEROEqFactorTask.cxx:153
 AliAnalysisTaskVZEROEqFactorTask.cxx:154
 AliAnalysisTaskVZEROEqFactorTask.cxx:155
 AliAnalysisTaskVZEROEqFactorTask.cxx:156
 AliAnalysisTaskVZEROEqFactorTask.cxx:157
 AliAnalysisTaskVZEROEqFactorTask.cxx:158
 AliAnalysisTaskVZEROEqFactorTask.cxx:159
 AliAnalysisTaskVZEROEqFactorTask.cxx:160
 AliAnalysisTaskVZEROEqFactorTask.cxx:161
 AliAnalysisTaskVZEROEqFactorTask.cxx:162
 AliAnalysisTaskVZEROEqFactorTask.cxx:163
 AliAnalysisTaskVZEROEqFactorTask.cxx:164
 AliAnalysisTaskVZEROEqFactorTask.cxx:165
 AliAnalysisTaskVZEROEqFactorTask.cxx:166
 AliAnalysisTaskVZEROEqFactorTask.cxx:167
 AliAnalysisTaskVZEROEqFactorTask.cxx:168
 AliAnalysisTaskVZEROEqFactorTask.cxx:169
 AliAnalysisTaskVZEROEqFactorTask.cxx:170
 AliAnalysisTaskVZEROEqFactorTask.cxx:171
 AliAnalysisTaskVZEROEqFactorTask.cxx:172
 AliAnalysisTaskVZEROEqFactorTask.cxx:173
 AliAnalysisTaskVZEROEqFactorTask.cxx:174
 AliAnalysisTaskVZEROEqFactorTask.cxx:175
 AliAnalysisTaskVZEROEqFactorTask.cxx:176
 AliAnalysisTaskVZEROEqFactorTask.cxx:177
 AliAnalysisTaskVZEROEqFactorTask.cxx:178
 AliAnalysisTaskVZEROEqFactorTask.cxx:179
 AliAnalysisTaskVZEROEqFactorTask.cxx:180
 AliAnalysisTaskVZEROEqFactorTask.cxx:181
 AliAnalysisTaskVZEROEqFactorTask.cxx:182
 AliAnalysisTaskVZEROEqFactorTask.cxx:183
 AliAnalysisTaskVZEROEqFactorTask.cxx:184
 AliAnalysisTaskVZEROEqFactorTask.cxx:185
 AliAnalysisTaskVZEROEqFactorTask.cxx:186
 AliAnalysisTaskVZEROEqFactorTask.cxx:187
 AliAnalysisTaskVZEROEqFactorTask.cxx:188
 AliAnalysisTaskVZEROEqFactorTask.cxx:189
 AliAnalysisTaskVZEROEqFactorTask.cxx:190
 AliAnalysisTaskVZEROEqFactorTask.cxx:191
 AliAnalysisTaskVZEROEqFactorTask.cxx:192
 AliAnalysisTaskVZEROEqFactorTask.cxx:193
 AliAnalysisTaskVZEROEqFactorTask.cxx:194
 AliAnalysisTaskVZEROEqFactorTask.cxx:195
 AliAnalysisTaskVZEROEqFactorTask.cxx:196
 AliAnalysisTaskVZEROEqFactorTask.cxx:197
 AliAnalysisTaskVZEROEqFactorTask.cxx:198
 AliAnalysisTaskVZEROEqFactorTask.cxx:199
 AliAnalysisTaskVZEROEqFactorTask.cxx:200
 AliAnalysisTaskVZEROEqFactorTask.cxx:201
 AliAnalysisTaskVZEROEqFactorTask.cxx:202
 AliAnalysisTaskVZEROEqFactorTask.cxx:203
 AliAnalysisTaskVZEROEqFactorTask.cxx:204
 AliAnalysisTaskVZEROEqFactorTask.cxx:205
 AliAnalysisTaskVZEROEqFactorTask.cxx:206
 AliAnalysisTaskVZEROEqFactorTask.cxx:207
 AliAnalysisTaskVZEROEqFactorTask.cxx:208
 AliAnalysisTaskVZEROEqFactorTask.cxx:209
 AliAnalysisTaskVZEROEqFactorTask.cxx:210
 AliAnalysisTaskVZEROEqFactorTask.cxx:211
 AliAnalysisTaskVZEROEqFactorTask.cxx:212
 AliAnalysisTaskVZEROEqFactorTask.cxx:213
 AliAnalysisTaskVZEROEqFactorTask.cxx:214
 AliAnalysisTaskVZEROEqFactorTask.cxx:215
 AliAnalysisTaskVZEROEqFactorTask.cxx:216
 AliAnalysisTaskVZEROEqFactorTask.cxx:217
 AliAnalysisTaskVZEROEqFactorTask.cxx:218
 AliAnalysisTaskVZEROEqFactorTask.cxx:219
 AliAnalysisTaskVZEROEqFactorTask.cxx:220
 AliAnalysisTaskVZEROEqFactorTask.cxx:221
 AliAnalysisTaskVZEROEqFactorTask.cxx:222
 AliAnalysisTaskVZEROEqFactorTask.cxx:223
 AliAnalysisTaskVZEROEqFactorTask.cxx:224
 AliAnalysisTaskVZEROEqFactorTask.cxx:225
 AliAnalysisTaskVZEROEqFactorTask.cxx:226
 AliAnalysisTaskVZEROEqFactorTask.cxx:227
 AliAnalysisTaskVZEROEqFactorTask.cxx:228
 AliAnalysisTaskVZEROEqFactorTask.cxx:229
 AliAnalysisTaskVZEROEqFactorTask.cxx:230
 AliAnalysisTaskVZEROEqFactorTask.cxx:231
 AliAnalysisTaskVZEROEqFactorTask.cxx:232
 AliAnalysisTaskVZEROEqFactorTask.cxx:233
 AliAnalysisTaskVZEROEqFactorTask.cxx:234
 AliAnalysisTaskVZEROEqFactorTask.cxx:235
 AliAnalysisTaskVZEROEqFactorTask.cxx:236
 AliAnalysisTaskVZEROEqFactorTask.cxx:237
 AliAnalysisTaskVZEROEqFactorTask.cxx:238
 AliAnalysisTaskVZEROEqFactorTask.cxx:239
 AliAnalysisTaskVZEROEqFactorTask.cxx:240
 AliAnalysisTaskVZEROEqFactorTask.cxx:241
 AliAnalysisTaskVZEROEqFactorTask.cxx:242
 AliAnalysisTaskVZEROEqFactorTask.cxx:243
 AliAnalysisTaskVZEROEqFactorTask.cxx:244
 AliAnalysisTaskVZEROEqFactorTask.cxx:245
 AliAnalysisTaskVZEROEqFactorTask.cxx:246
 AliAnalysisTaskVZEROEqFactorTask.cxx:247
 AliAnalysisTaskVZEROEqFactorTask.cxx:248
 AliAnalysisTaskVZEROEqFactorTask.cxx:249
 AliAnalysisTaskVZEROEqFactorTask.cxx:250
 AliAnalysisTaskVZEROEqFactorTask.cxx:251
 AliAnalysisTaskVZEROEqFactorTask.cxx:252
 AliAnalysisTaskVZEROEqFactorTask.cxx:253
 AliAnalysisTaskVZEROEqFactorTask.cxx:254
 AliAnalysisTaskVZEROEqFactorTask.cxx:255
 AliAnalysisTaskVZEROEqFactorTask.cxx:256
 AliAnalysisTaskVZEROEqFactorTask.cxx:257
 AliAnalysisTaskVZEROEqFactorTask.cxx:258
 AliAnalysisTaskVZEROEqFactorTask.cxx:259
 AliAnalysisTaskVZEROEqFactorTask.cxx:260
 AliAnalysisTaskVZEROEqFactorTask.cxx:261
 AliAnalysisTaskVZEROEqFactorTask.cxx:262
 AliAnalysisTaskVZEROEqFactorTask.cxx:263
 AliAnalysisTaskVZEROEqFactorTask.cxx:264
 AliAnalysisTaskVZEROEqFactorTask.cxx:265
 AliAnalysisTaskVZEROEqFactorTask.cxx:266
 AliAnalysisTaskVZEROEqFactorTask.cxx:267
 AliAnalysisTaskVZEROEqFactorTask.cxx:268
 AliAnalysisTaskVZEROEqFactorTask.cxx:269
 AliAnalysisTaskVZEROEqFactorTask.cxx:270
 AliAnalysisTaskVZEROEqFactorTask.cxx:271
 AliAnalysisTaskVZEROEqFactorTask.cxx:272