ROOT logo
// $Id$
//
// Task to compute the trigger contamination by exotics.
//
// Authors: M.Cosentino

#include "TChain.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TCanvas.h"

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliESDEvent.h"
#include "AliESDHeader.h"
#include "AliESDUtils.h"
#include "AliESDInputHandler.h"
#include "AliESDpid.h"
#include "AliKFParticle.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliESDtrackCuts.h"
#include "AliESDv0.h"
#include "AliV0vertexer.h"
#include "AliESDCaloCluster.h"
#include "AliESDCaloCells.h"
#include "AliEMCALGeometry.h"
#include "AliEMCALRecoUtils.h"
#include "TLorentzVector.h"
#include "AliVCluster.h"
#include "AliAnalysisTaskTrgContam.h"
#include "TFile.h"

ClassImp(AliAnalysisTaskTrgContam)

AliAnalysisTaskTrgContam::AliAnalysisTaskTrgContam() : 
  AliAnalysisTaskSE(), 
  fCaloClusters(0),
  fEMCalCells(0),
  fGeom(0x0),
  fGeoName("EMCAL_COMPLETEV1"),
  fPeriod("LHC11c"),
  fIsTrain(0),
  fTrigThresh(4.8),
  fExoticCut(0.97),
  fESD(0),
  fOutputList(0),
  fEvtSel(0),
  fClusEt(0),
  fClusEtTM(0),
  fClusEtLead(0),
  fClusEtSubLead(0),
  fClusEtLeadTM(0),
  fClusEtSubLeadTM(0),
  fClusEtExotic(0), 
  fClusEtExoticTM(0),
  fClusEtSingleExotic(0),
  fCellEnergy(0),
  fM02Et(0),
  fM02EtTM(0),
  fM02EtExot(0),
  fM02EtExotTM(0)
{
  // Default constructor.
}

//________________________________________________________________________
AliAnalysisTaskTrgContam::AliAnalysisTaskTrgContam(const char *name) : 
  AliAnalysisTaskSE(name), 
  fCaloClusters(0),
  fEMCalCells(0),
  fGeom(0x0),
  fGeoName("EMCAL_COMPLETEV1"),
  fPeriod("LHC11c"),
  fIsTrain(0),
  fTrigThresh(4.8),
  fExoticCut(0.97),
  fESD(0),
  fOutputList(0),
  fEvtSel(0),
  fClusEt(0),
  fClusEtTM(0),
  fClusEtLead(0),
  fClusEtSubLead(0),
  fClusEtLeadTM(0),
  fClusEtSubLeadTM(0),
  fClusEtExotic(0),
  fClusEtExoticTM(0), 
  fClusEtSingleExotic(0),
  fCellEnergy(0),
  fM02Et(0),
  fM02EtTM(0),
  fM02EtExot(0),
  fM02EtExotTM(0)
{
  // Constructor

  // Define input and output slots here
  // Input slot #0 works with a TChain
  DefineInput(0, TChain::Class());
  // Output slot #0 id reserved by the base class for AOD
  // Output slot #1 writes into a TH1 container
  DefineOutput(1, TList::Class());
}

//________________________________________________________________________
void AliAnalysisTaskTrgContam::UserCreateOutputObjects()
{
  // Create histograms, called once.
    
  fCaloClusters = new TRefArray();
  
  fOutputList = new TList();
  fOutputList->SetOwner();// Container cleans up all histos (avoids leaks in merging) 
  
  fGeom = AliEMCALGeometry::GetInstance(fGeoName.Data());
  
  fEvtSel = new TH1F("hEvtSel","Event selection counter (0=all trg, 1=pvz cut) ;evt cut ;dN/dcut}",2,0,2);
  fOutputList->Add(fEvtSel);
  
  fClusEt = new TH1F("hClusEt","Clusters E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEt);
  
  fClusEtTM = new TH1F("hClusEtTM","Clusters (track-matched) E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEtTM);
  
  fClusEtLead = new TH1F("hClusEtLead","Clusters (leading-trig) E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEtLead);
  
  fClusEtSubLead = new TH1F("hClusEtSubLead","Clusters (subleading-trig) E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEtSubLead);
  
  fClusEtLeadTM = new TH1F("hClusEtLeadTM","Clusters (leading-trig, TM) E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEtLeadTM);
  
  fClusEtSubLeadTM = new TH1F("hClusEtSubLeadTM","Clusters (subleading-trig, TM) E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEtSubLeadTM);
  
  fClusEtExotic = new TH1F("hClusEtExotic","Exotic trigger clusters  E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEtExotic);
  
  fClusEtExoticTM = new TH1F("hClusEtExoticTM","Exotic trigger clusters (TM)  E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEtExoticTM);
  
  fClusEtSingleExotic = new TH1F("hClusEtSingleExotic","Exotic trigger clusters (only this above thrs.)  E_{T} ;E_{T} ;dN/dE_{T}",400,0,200);
  fOutputList->Add(fClusEtSingleExotic);

  fCellEnergy = new TH1F("hCellE","cell energy spectrum;E_{cell} (GeV);entries",200,0,20);
  fOutputList->Add(fCellEnergy);
  
  fM02Et = new TH2F("hM02Et","#lambda_{0}^{2} vs. E_{T} for trigger clusters ;E_{T} ;#lambda_{0}^{2}",400,0,200, 400,0,4);
  fOutputList->Add(fM02Et);
  
  fM02EtTM = new TH2F("hM02EtTM","#lambda_{0}^{2} vs. E_{T} for trigger clusters(TM) ;E_{T} ;#lambda_{0}^{2}",400,0,200, 400,0,4);
  fOutputList->Add(fM02EtTM);
  
  fM02EtExot = new TH2F("hM02EtExot","#lambda_{0}^{2} vs. E_{T} for trigger clusters(Exotic) ;E_{T} ;#lambda_{0}^{2}",400,0,200, 400,0,4);
  fOutputList->Add(fM02EtExot);

  fM02EtExotTM = new TH2F("hM02EtExotTM","#lambda_{0}^{2} vs. E_{T} for trigger clusters(TM+Exotic) ;E_{T} ;#lambda_{0}^{2}",400,0,200, 400,0,4);
  fOutputList->Add(fM02EtExotTM);
  
  PostData(1, fOutputList);
}

//________________________________________________________________________
void AliAnalysisTaskTrgContam::UserExec(Option_t *) 
{
  // User exec. Called once per event.

  Bool_t isSelected = 0;
  if(fPeriod.Contains("11a"))
    isSelected =  (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kEMC1);
  else
    isSelected =  ((((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral) ||
		   (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral));
  if(!isSelected )
    return; 

  fESD = dynamic_cast<AliESDEvent*>(InputEvent());
  if (!fESD) {
    printf("ERROR: fESD not available\n");
    return;
  }

  fEvtSel->Fill(0);
  if (0) {
    AliESDVertex *pv = (AliESDVertex*)fESD->GetPrimaryVertex();
    if(!pv) 
      return;
    if(TMath::Abs(pv->GetZ())>15)
      return;
  }
  fEvtSel->Fill(1);
  if (!fIsTrain) {
    for(Int_t mod=0; mod < (fGeom->GetEMCGeometry())->GetNumberOfSuperModules(); mod++){
      if(fGeoName=="EMCAL_FIRSTYEARV1" && mod>3)
        break;
      fGeom->SetMisalMatrix(fESD->GetEMCALMatrix(mod), mod);
    }
  }
  fESD->GetEMCALClusters(fCaloClusters);
  fEMCalCells = fESD->GetEMCALCells();
  for(int i=0;i<fEMCalCells->GetNumberOfCells();i++){
    Double_t e = fEMCalCells->GetCellAmplitude(TMath::Abs(fEMCalCells->GetAmplitude(i)));
    fCellEnergy->Fill(e);
  }
  FillClusHists(); 
  
  fCaloClusters->Clear();
  PostData(1, fOutputList);
}
 
//________________________________________________________________________
void AliAnalysisTaskTrgContam::FillClusHists()
{
  // Fill cluster histograms.

  if(!fCaloClusters)
    return;
  const Int_t nclus = fCaloClusters->GetEntries();
  if(nclus==0)
    return;
  Double_t EtArray[nclus];
  Bool_t isTM[nclus];
  Bool_t isEx[nclus];
  Int_t index[nclus];
  Int_t nthresholds = 0;
  for(Int_t ic=0;ic<nclus;ic++){
    EtArray[ic]=0;
    isTM[ic] = 0;
    isEx[ic] = 0;
    index[ic]=0;
    AliESDCaloCluster *c = static_cast<AliESDCaloCluster*>(fCaloClusters->At(ic));
    if(!c)
      continue;
    if(!c->IsEMCAL())
      continue;
    if(c->E()<fTrigThresh)
      continue;
    nthresholds++;
    Short_t id;
    Double_t Emax = GetMaxCellEnergy( c, id);
    Double_t Ecross = GetCrossEnergy( c, id);
    if((1-Ecross/Emax)>fExoticCut)
      isEx[ic] = 1;
    Float_t clsPos[3] = {0,0,0};
    c->GetPosition(clsPos);
    TVector3 clsVec(clsPos);
    Double_t Et = c->E()*TMath::Sin(clsVec.Theta());
    EtArray[ic] = Et;
    fClusEt->Fill(Et);
    fM02Et->Fill(Et, c->GetM02());
    if(isEx[ic]){
      fClusEtExotic->Fill(Et);
      fM02EtExot->Fill(Et,c->GetM02()); 
     }
    Double_t dR = TMath::Sqrt(pow(c->GetTrackDx(),2)+pow(c->GetTrackDz(),2));
    if(dR<0.025){
      isTM[ic]=1;
      fClusEtTM->Fill(Et);
      fM02EtTM->Fill(Et, c->GetM02());
      if(isEx[ic]){
	fClusEtExoticTM->Fill(Et);
	fM02EtExotTM->Fill(Et,c->GetM02());
      }
    }
  }
  TMath::Sort(nclus,EtArray,index, kTRUE);
  if(EtArray[index[0]]>0){
    fClusEtLead->Fill(EtArray[index[0]]);
    if(nthresholds==1 && isEx[index[0]])
       fClusEtSingleExotic->Fill(EtArray[index[0]]);
  }
  if(nclus>1)if(EtArray[index[1]]>0)
    fClusEtSubLead->Fill(EtArray[index[1]]);
  if(isTM[index[0]] && EtArray[index[0]]>0)
    fClusEtLeadTM->Fill(EtArray[index[0]]);
  if(nclus>1)if(isTM[index[1]] && EtArray[index[1]]>0)
    fClusEtSubLeadTM->Fill(EtArray[index[1]]);
} 

//________________________________________________________________________
Double_t AliAnalysisTaskTrgContam::GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax)
{
  // Calculate the energy of cross cells around the leading cell.

  AliVCaloCells *cells = 0;
  cells = fESD->GetEMCALCells();
  if (!cells)
    return 0;

  if (!fGeom)
    return 0;

  Int_t iSupMod = -1;
  Int_t iTower  = -1;
  Int_t iIphi   = -1;
  Int_t iIeta   = -1;
  Int_t iphi    = -1;
  Int_t ieta    = -1;
  Int_t iphis   = -1;
  Int_t ietas   = -1;

  Double_t crossEnergy = 0;

  fGeom->GetCellIndex(idmax,iSupMod,iTower,iIphi,iIeta);
  fGeom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi, iIeta,iphis,ietas);

  Int_t ncells = cluster->GetNCells();
  for (Int_t i=0; i<ncells; i++) {
    Int_t cellAbsId = cluster->GetCellAbsId(i);
    fGeom->GetCellIndex(cellAbsId,iSupMod,iTower,iIphi,iIeta);
    fGeom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi, iIeta,iphi,ieta);
    Int_t aphidiff = TMath::Abs(iphi-iphis);
    if (aphidiff>1)
      continue;
    Int_t aetadiff = TMath::Abs(ieta-ietas);
    if (aetadiff>1)
      continue;
    if ( (aphidiff==1 && aetadiff==0) ||
	(aphidiff==0 && aetadiff==1) ) {
      crossEnergy += cells->GetCellAmplitude(cellAbsId);
    }
  }

  return crossEnergy;
}

//________________________________________________________________________
Double_t AliAnalysisTaskTrgContam ::GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const
{
  // Get maximum energy of attached cell.

  id = -1;

  AliVCaloCells *cells = 0;
  cells = fESD->GetEMCALCells();
  if (!cells)
    return 0;

  Double_t maxe = 0;
  Int_t ncells = cluster->GetNCells();
  for (Int_t i=0; i<ncells; i++) {
    Double_t e = cells->GetCellAmplitude(TMath::Abs(cluster->GetCellAbsId(i)));
    if (e>maxe) {
      maxe = e;
      id   = cluster->GetCellAbsId(i);
    }
  }
  return maxe;
}

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