ROOT logo
// QA task for central production study
// author: Martin Poghosyan

#include <TList.h>
#include <TTree.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>


#include "AliVEvent.h"
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliHeader.h"
#include "AliESDInputHandler.h"
#include "AliAnalysisManager.h"
#include "AliMultiplicity.h"
#include "AliTriggerAnalysis.h"
#include "AliESDVertex.h"
#include "AliESDtrackCuts.h"

#include "AliAnalysisTaskCPQA.h"


ClassImp(AliAnalysisTaskCPQA)

//________________________________________________________________________
  AliAnalysisTaskCPQA::AliAnalysisTaskCPQA(const char *name)
  : AliAnalysisTaskSE(name),
  fUseMC(kFALSE),
  fESD(0),
  fOutputList(0),
  fhEvent(0),
  fTriggerAnalysis(0)
{
  for(Int_t i = 0; i<4; i++)
    {
      fhV0A[i]=0;
      fhV0C[i]=0;
      fhV0online[i]=0;
      fhV0offline[i]=0;
      fhSPDFiredChip[i]=0;
      fhSPDFastOrChip[i]=0;
      fhReferenceMultiplicity[i]=0;
      fhVtxTrack[i]=0;
    }

//  fEtaMaxM = 2;
//  fEtaMaxD = 0.9;
//fVtxZmax = 10;

  DefineOutput(1, TList::Class());
}

AliAnalysisTaskCPQA::~AliAnalysisTaskCPQA() 
{
   if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
    printf("Deleteing output\n");

    if(fOutputList){
      delete fOutputList;
      fOutputList = 0;
    }

        if(fTriggerAnalysis)
          delete fTriggerAnalysis;

   }
}




//________________________________________________________________________
void AliAnalysisTaskCPQA::UserCreateOutputObjects()
{
  fTriggerAnalysis = new AliTriggerAnalysis();
  if (fUseMC) fTriggerAnalysis->SetAnalyzeMC(1);

  // Create histograms
  // Called once

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


  fhEvent = new TH1F("hEvent","hEvent",100, -0.5, 99.5); 
  fOutputList->Add(fhEvent);

  for(Int_t i = 0; i<4; i++)
    {
      fhV0A[i] = Hist2D(Form("hV0A_%d",i), 5, -1.5, 3.5, 5, -1.5, 3.5,"V0A_{online}","V0A_{offline}"); fOutputList->Add(fhV0A[i]);
      fhV0C[i] = Hist2D(Form("hV0C_%d",i), 5, -1.5, 3.5, 5, -1.5, 3.5,"V0C_{online}","V0C_{offline}"); fOutputList->Add(fhV0C[i]);
      fhV0online[i]  = Hist2D(Form("hV0online_%d",i) , 5, -1.5, 3.5, 5, -1.5, 3.5,"V0C_{online}","V0A_{online}"); fOutputList->Add(fhV0online[i]);
      fhV0offline[i] = Hist2D(Form("hV0offline_%d",i), 5, -1.5, 3.5, 5, -1.5, 3.5,"V0C_{offline}","V0A_{offline}"); fOutputList->Add(fhV0offline[i]);
      fhSPDFiredChip[i] = Hist1D(Form("fhSPDFiredChip_%d",i), 1200, -0.5, 1199.5); fOutputList->Add(fhSPDFiredChip[i]);
      fhSPDFastOrChip[i] = Hist1D(Form("fhSPDFastOrChip_%d",i), 1200, -0.5, 1199.5); fOutputList->Add(fhSPDFastOrChip[i]);
      fhReferenceMultiplicity[i] = Hist1D(Form("fhReferenceMultiplicity_%d",i), 50, -10.5, 39.5);  fOutputList->Add(fhReferenceMultiplicity[i]);
      fhVtxTrack[i] = Hist3D(Form("fhVtxTrack_%d",i), 100, -1, 1, 100, -1, 1, 1000, -30, 30, "x_{vtx}", "y_{vtx}", "z_{vtx}"); fOutputList->Add(fhVtxTrack[i]);
   }

  PostData(1, fOutputList);
 

}



TH1F* AliAnalysisTaskCPQA::Hist1D(const char* name, Int_t nBins, Double_t xMin, Double_t xMax,  const char* xLabel, Int_t color, Int_t lst, const char* yLabel)
{
// create a 1D histogram

  TH1F* res = new TH1F(name, name, nBins, xMin, xMax);
  if (xLabel) res->GetXaxis()->SetTitle(xLabel);
  if (yLabel) res->GetYaxis()->SetTitle(yLabel);
  res->SetLineColor(color);
  res->SetMarkerColor(color);
  res->SetLineStyle(lst);
  return res;
}


TH2F *AliAnalysisTaskCPQA::Hist2D(const char* name, Int_t nBinsx, Double_t xMin, Double_t xMax, Int_t nBinsy, Double_t yMin, Double_t yMax, const char* xLabel, const char* yLabel, Int_t color)
{
// create a 2D histogram

  TH2F *res = new TH2F(name, name, nBinsx, xMin, xMax, nBinsy, yMin, yMax);
  if (xLabel) res->GetXaxis()->SetTitle(xLabel);
  if (yLabel) res->GetYaxis()->SetTitle(yLabel);
  //  res->SetMarkerStyle(kFullCircle);
  //  res->SetOption("E");
  res->SetLineColor(color);
  //  fOutputList->Add(res);
  return res;
}

  TH3F *AliAnalysisTaskCPQA::Hist3D(const char* name, Int_t nBinsx, Double_t xMin, Double_t xMax, Int_t nBinsy, Double_t yMin, Double_t yMax,  Int_t nBinsz, Double_t zMin, Double_t zMax, const char* xLabel, const char* yLabel, const char *zLabel)
{
// create a 3D histogram

  TH3F *res = new TH3F(name, name, nBinsx, xMin, xMax, nBinsy, yMin, yMax, nBinsz, zMin, zMax);
  if (xLabel) res->GetXaxis()->SetTitle(xLabel);
  if (yLabel) res->GetYaxis()->SetTitle(yLabel);
  if (zLabel) res->GetZaxis()->SetTitle(zLabel);
  //  res->SetMarkerStyle(kFullCircle);
  //  res->SetOption("E");
  //  res->SetLineColor(color);
  //  fOutputList->Add(res);
  return res;
}



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

  //    return;
  AliVEvent *event = InputEvent();
  if (!event) {
     Error("UserExec", "Could not retrieve event");
     return;
  }

  fESD = dynamic_cast<AliESDEvent*> (InputEvent());
  if (fESD) {
    LoopESD();
      if (fUseMC)
         LoopESDMC();
  }



  PostData(1, fOutputList);
}      

//________________________________________________________________________
void AliAnalysisTaskCPQA::Terminate(Option_t*)
{
 
}


void AliAnalysisTaskCPQA::LoopESDMC()
{
  // Main loop
  // Called for each event
  /*

  Int_t indexD1 = 1;
  Int_t indexD2 = 2;


  AliMCEvent *mcEvent = (AliMCEvent*) MCEvent();
  if (!mcEvent) {
    Error("LoopESDMC", "Could not retrieve MC event");
    return;
  }


  AliHeader* header = mcEvent->Header();
  if (!header)
    {
          AliDebug(AliLog::kError, "Header not available");
          return;
    }

  AliGenEventHeader* genHeader = header->GenEventHeader();
  if(!genHeader)
    {
      AliDebug(AliLog::kError, "GenHeader not available");
      return;
    }

*/  
 

}




//________________________________________________________________________
void AliAnalysisTaskCPQA::LoopESD()
{
   Int_t TrType = 0;
   Bool_t fkIsPhysSel = kFALSE;

  fhEvent->Fill(0);

  if(!fUseMC)
    {
      TrType = -1;
      if(fESD->IsTriggerClassFired("CINT1-B-NOPF-ALLNOTRD"))        TrType=0;
      else if(fESD->IsTriggerClassFired("CINT1-AC-NOPF-ALLNOTRD"))  TrType=1;
      else if(fESD->IsTriggerClassFired("CINT1-E-NOPF-ALLNOTRD"))   TrType=3;

      else if(fESD->IsTriggerClassFired("CINT1-B-NOPF-FASTNOTRD"))  TrType=0;
      else if(fESD->IsTriggerClassFired("CINT1-AC-NOPF-FASTNOTRD")) TrType=1;
      else if(fESD->IsTriggerClassFired("CINT1-E-NOPF-FASTNOTRD"))  TrType=3;

      else if(fESD->IsTriggerClassFired("CINT1B-ABCE-NOPF-ALL"))  TrType=0;
      else if(fESD->IsTriggerClassFired("CINT1A-ABCE-NOPF-ALL"))  TrType=1;
      else if(fESD->IsTriggerClassFired("CINT1C-ABCE-NOPF-ALL"))  TrType=2;
      else if(fESD->IsTriggerClassFired("CINT1-E-NOPF-ALL"))      TrType=3;

      UInt_t mask =  ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
      fkIsPhysSel=(mask & AliVEvent::kMB) ? 1 : 0; // check if minimum bias trigger class fired
 

      if(!fkIsPhysSel) return;
      printf("TrType = %d\n",TrType);
      if(TrType==-1) return;
    }

  fhEvent->Fill(1);


  Int_t V0Aonline  = fTriggerAnalysis->V0Trigger(fESD, AliTriggerAnalysis::kASide, kTRUE) ;
  Int_t V0Conline  = fTriggerAnalysis->V0Trigger(fESD, AliTriggerAnalysis::kCSide, kTRUE) ;
  Int_t V0Aoffline = fTriggerAnalysis->V0Trigger(fESD, AliTriggerAnalysis::kASide, kFALSE) ;
  Int_t V0Coffline = fTriggerAnalysis->V0Trigger(fESD, AliTriggerAnalysis::kCSide, kFALSE) ;


  fhV0A[TrType]->Fill(V0Aonline, V0Aoffline);
  fhV0C[TrType]->Fill(V0Conline, V0Coffline);
  fhV0online[TrType]->Fill(V0Conline, V0Aonline);
  fhV0offline[TrType]->Fill(V0Coffline, V0Aoffline);


  if(V0Aoffline!=0 || V0Coffline!=0) 
    {
      return;
    }
 
  fhEvent->Fill(2);

  const AliMultiplicity *mult = fESD->GetMultiplicity();
  for (Int_t i=0; i<1200; i++)
    {
      if(mult->TestFiredChipMap(i)) fhSPDFiredChip[TrType]->Fill(i);
      if(mult->TestFastOrFiredChips(i)) fhSPDFastOrChip[TrType]->Fill(i);
    }


  fhReferenceMultiplicity[TrType]->Fill(AliESDtrackCuts::GetReferenceMultiplicity(fESD,AliESDtrackCuts::kTrackletsITSTPC,1.2));


  const AliESDVertex *primaryTrackVtx = fESD->GetPrimaryVertexTracks();
  if (!primaryTrackVtx->GetStatus() && !primaryTrackVtx->GetStatus() )
    {
      return;
    }

  fhEvent->Fill(3);

  fhVtxTrack[TrType]->Fill(primaryTrackVtx->GetX(), primaryTrackVtx->GetY(), primaryTrackVtx->GetZ());



  return;
}   

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