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

#include "AliAnalysisManager.h"
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisTaskPHOSTriggerQA.h"
#include "AliESDCaloCluster.h"
#include "AliPHOSGeometry.h"
#include "AliESDEvent.h"
#include "AliESDCaloCells.h"
#include "AliLog.h"
#include "TObjArray.h"
#include "TList.h"
#include "TH1.h"
#include "TH2.h"

// QA of PHOS Trigger data.
//...
// Author: Boris Polishchuk 
// Date  : 06.02.2012

ClassImp(AliAnalysisTaskPHOSTriggerQA)

//________________________________________________________________________
AliAnalysisTaskPHOSTriggerQA::AliAnalysisTaskPHOSTriggerQA() : AliAnalysisTaskSE(),
  fOutputContainer(0),fPHOSGeo(0),fEventCounter(0)
{
  //Default constructor.  
  // Initialize the PHOS geometry 
  fPHOSGeo = AliPHOSGeometry::GetInstance("IHEP") ;
  
}

//________________________________________________________________________
AliAnalysisTaskPHOSTriggerQA::AliAnalysisTaskPHOSTriggerQA(const char *name) 
: AliAnalysisTaskSE(name),
  fOutputContainer(0),fPHOSGeo(0),fEventCounter(0)
{
  
  // Output slots #0 write into a TH1 container
  DefineOutput(1,TList::Class());

  // Initialize the PHOS geometry
  fPHOSGeo = AliPHOSGeometry::GetInstance("IHEP") ;

}

//________________________________________________________________________
void AliAnalysisTaskPHOSTriggerQA::UserCreateOutputObjects()
{
  // Create histograms
  // Called once
  
  // ESD histograms
  if(fOutputContainer != NULL){
    delete fOutputContainer;
  }

  fOutputContainer = new TList();
  fOutputContainer->SetOwner(kTRUE);

  //Bin 1: total number of processed events.
  //Bin 2: number of events contained PHOS trigger digits.
  fOutputContainer->Add(new TH1F("hNev","Number of events",10,0.,10.));
  
  char key[55],titl[55];
  Int_t nCols = 56, nRows = 64;
  
  Int_t    nPtPhot  = 1000 ;
  Double_t ptPhotMax =  100. ;

  Int_t nTrMax = 1200;
  Float_t trMax = 600.;

  fOutputContainer->Add(new TH1F("hNtr","Number of fired 4x4 regions per event",nTrMax,0.,trMax));

  for(Int_t sm=1; sm<4; sm++) {

    snprintf(key,55,"hNtrSM%d",sm);
    snprintf(titl,55,"Number of fired 4x4 regions in SM%d",sm);
    fOutputContainer->Add(new TH1F(key,titl,nTrMax/3,0.,trMax/3));
    
    snprintf(key,55,"h4x4SM%d",sm);
    snprintf(titl,55,"SM%d 4x4 occupancy",sm);
    fOutputContainer->Add(new TH2F(key,titl,nRows,0.,nRows,nCols,0.,nCols));

    snprintf(key,55,"h4x4CluSM%d",sm);
    snprintf(titl,55,"SM%d 4x4 occupancy associated with clusters (E>2GeV)",sm);
    fOutputContainer->Add(new TH2F(key,titl,nRows,0.,nRows,nCols,0.,nCols));

    snprintf(key,55,"hCluSM%d",sm);
    snprintf(titl,55,"SM%d cluster occupancy",sm);
    fOutputContainer->Add(new TH2F(key,titl,nRows,0.,nRows,nCols,0.,nCols));
 
    snprintf(key,55,"hCluTSM%d",sm);
    snprintf(titl,55,"SM%d triggered cluster occupancy",sm);
    fOutputContainer->Add(new TH2F(key,titl,nRows,0.,nRows,nCols,0.,nCols));
   
    snprintf(key,55,"hPhotAllSM%d",sm);
    snprintf(titl,55,"SM%d cluster energy",sm);
    fOutputContainer->Add(new TH1F(key,titl,nPtPhot,0.,ptPhotMax));

    for(Int_t iTRU=1; iTRU<=8; iTRU++) {
      snprintf(key,55,"hPhotAllSM%dTRU%d",sm,iTRU);
      snprintf(titl,55,"SM%d: clusters energy in TRU%d",sm,iTRU);
      fOutputContainer->Add(new TH1F(key,titl,nPtPhot,0.,ptPhotMax));
    }
    
    snprintf(key,55,"hPhotTrigSM%d",sm);
    snprintf(titl,55,"SM%d triggered cluster energy",sm);
    fOutputContainer->Add(new TH1F(key,titl,nPtPhot,0.,ptPhotMax));
    
    for(Int_t iTRU=1; iTRU<=8; iTRU++) {
      snprintf(key,55,"hPhotTrigSM%dTRU%d",sm,iTRU);
      snprintf(titl,55,"SM%d: triggered clusters energy in TRU%d",sm,iTRU);
      fOutputContainer->Add(new TH1F(key,titl,nPtPhot,0.,ptPhotMax));
    }
    
  }
  
  PostData(1, fOutputContainer);
  
}

//________________________________________________________________________
void AliAnalysisTaskPHOSTriggerQA::UserExec(Option_t *) 
{
  // Main loop, called for each event
  // Analyze ESD/AOD  
  
  AliESDEvent *event = dynamic_cast<AliESDEvent*>(InputEvent());
  
  if (!event) {
    Printf("ERROR: Could not retrieve event");
    PostData(1, fOutputContainer);
    return;
  }
  
  FillHistogram("hNev",0.); // all events
  fEventCounter++;
  
  AliESDCaloTrigger* trgESD = event->GetCaloTrigger("PHOS");
  trgESD->Reset();
  
  if(trgESD->GetEntries()) FillHistogram("hNev",1.); // triggered events
  FillHistogram("hNtr",trgESD->GetEntries());
  
  TString trigClasses = event->GetFiredTriggerClasses();
  printf("\nEvent %d: %d non-zero trigger digits %s\n",
	 fEventCounter,trgESD->GetEntries(),trigClasses.Data());

  // Get PHOS rotation matrices from ESD and set them to the PHOS geometry
  char key[55] ;  
  
  if(fEventCounter == 0) {
    for(Int_t mod=0; mod<5; mod++) {
      if(!event->GetPHOSMatrix(mod)) continue;
      fPHOSGeo->SetMisalMatrix(event->GetPHOSMatrix(mod),mod) ;
    }
  }
  
  Int_t multClu = event->GetNumberOfCaloClusters();
  AliESDCaloCells *phsCells = event->GetPHOSCells();
 
  Int_t inPHOS[3] = {};

  //Loop over 4x4 fired regions
  while(trgESD->Next()) {

    Int_t tmod,tabsId; // "Online" module number, bottom-left 4x4 edge cell absId
    trgESD->GetPosition(tmod,tabsId);
    
    Int_t trelid[4] ;
    fPHOSGeo->AbsToRelNumbering(tabsId,trelid);

    snprintf(key,55,"h4x4SM%d",trelid[0]);
    FillHistogram(key,trelid[2]-1,trelid[3]-1);
    
    inPHOS[trelid[0]-1]++;

    for (Int_t i=0; i<multClu; i++) {
      
      AliESDCaloCluster *c1 = event->GetCaloCluster(i);
      if(!c1->IsPHOS()) continue;
      
      if(c1->E()<0.3) continue; 
      if(c1->GetNCells()<3) continue ; 
      
      Int_t maxId, relid[4];
      MaxEnergyCellPos(phsCells,c1,maxId);
      
      fPHOSGeo->AbsToRelNumbering(maxId, relid);
      snprintf(key,55,"hPhotAllSM%d",relid[0]);
      FillHistogram(key,c1->E());

      snprintf(key,55,"hPhotAllSM%dTRU%d",relid[0],GetTRUNum(relid[2]-1,relid[3]-1));
      FillHistogram(key,c1->E());
      
      snprintf(key,55,"hCluSM%d",relid[0]);
      FillHistogram(key,relid[2]-1,relid[3]-1);
      
      if( Matched(trelid,relid) ) {

	snprintf(key,55,"hPhotTrigSM%d",relid[0]);
	FillHistogram(key,c1->E());
	
	snprintf(key,55,"hPhotTrigSM%dTRU%d",relid[0],GetTRUNum(relid[2]-1,relid[3]-1));
	FillHistogram(key,c1->E());

	snprintf(key,55,"hCluTSM%d",relid[0]);
	FillHistogram(key,relid[2]-1,relid[3]-1);
	
	if(c1->E()>2.) { // Eclu > 2 GeV
	  snprintf(key,55,"h4x4CluSM%d",trelid[0]);
	  FillHistogram(key,trelid[2]-1,trelid[3]-1);
	}	
	continue;
      }
      
    }
  } //while(trgESD->Next())
  
  for(Int_t sm=1; sm<4; sm++) {
    snprintf(key,55,"hNtrSM%d",sm);
    if(inPHOS[sm-1]) FillHistogram(key,inPHOS[sm-1]);    
  }
  
  // Post output data.
  PostData(1, fOutputContainer);
  
}

//_____________________________________________________________________________
void AliAnalysisTaskPHOSTriggerQA::FillHistogram(const char * key,Double_t x)const{
  //FillHistogram
  TH1I * tmpI = dynamic_cast<TH1I*>(fOutputContainer->FindObject(key)) ;
  if(tmpI){
    tmpI->Fill(x) ;
    return ;
  }
  TH1F * tmpF = dynamic_cast<TH1F*>(fOutputContainer->FindObject(key)) ;
  if(tmpF){
    tmpF->Fill(x) ;
    return ;
  }
  TH1D * tmpD = dynamic_cast<TH1D*>(fOutputContainer->FindObject(key)) ;
  if(tmpD){
    tmpD->Fill(x) ;
    return ;
  }
  AliInfo(Form("can not find histogram <%s> ",key)) ;
}
//_____________________________________________________________________________
void AliAnalysisTaskPHOSTriggerQA::FillHistogram(const char * key,Double_t x,Double_t y)const{
  //FillHistogram
  TObject * tmp = fOutputContainer->FindObject(key) ;
  if(!tmp){
    AliInfo(Form("can not find histogram <%s> ",key)) ;
    return ;
  }
  if(tmp->IsA() == TClass::GetClass("TH1F")){
    ((TH1F*)tmp)->Fill(x,y) ;
    return ;
  }
  if(tmp->IsA() == TClass::GetClass("TH2F")){
    ((TH2F*)tmp)->Fill(x,y) ;
    return ;
  }
  AliError(Form("Calling FillHistogram with 2 parameters for histo <%s> of type %s",key,tmp->IsA()->GetName())) ;
}

//_____________________________________________________________________________
void AliAnalysisTaskPHOSTriggerQA::MaxEnergyCellPos(AliESDCaloCells *cells, AliESDCaloCluster* clu, Int_t& maxId)
{  
  Double_t eMax = -111;
  
  for (Int_t iDig=0; iDig< clu->GetNCells(); iDig++) {
    Int_t cellAbsId = clu->GetCellAbsId(iDig);
    Double_t eCell = cells->GetCellAmplitude(cellAbsId)*clu->GetCellAmplitudeFraction(iDig);
    if(eCell>eMax)  { 
      eMax = eCell; 
      maxId = cellAbsId;
    }
  }
  
}

//_____________________________________________________________________________
Bool_t AliAnalysisTaskPHOSTriggerQA::Matched(Int_t *trig_relid, Int_t *cluster_relid)
{
  //Returns kTRUE if cluster position coincides with 4x4 position.

  if( trig_relid[0] != cluster_relid[0] )            return kFALSE; // different modules!
  if( TMath::Abs(trig_relid[2]-cluster_relid[2])>3 ) return kFALSE; // X-distance too large! 
  if( TMath::Abs(trig_relid[3]-cluster_relid[3])>3 ) return kFALSE; // Z-distance too large!

  return kTRUE;
}

//_______________________________________________________________________________
Int_t AliAnalysisTaskPHOSTriggerQA::GetTRUNum(Int_t cellX, Int_t cellZ)
{
  //Return TRU region number for given cell.
  //cellX: [0-63], cellZ: [0-55]
 
  Int_t iTRU=-111;

  //RCU0: TRU 1,2
  if(0<=cellX&&cellX<16) { 

    if(0<=cellZ&&cellZ<28) iTRU=2;
    else iTRU=1;
  }

  //RCU1: TRU 3,4
  if(16<=cellX&&cellX<32) { 
    
    if(0<=cellZ&&cellZ<28) iTRU=4;
    else iTRU=3;
  }

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