#include <TClonesArray.h>
#include <TH1D.h>
#include <TH2D.h>
#include "AliJEfficiencyScanner.h"
#include "AliJTrack.h"
#include "AliJMCTrack.h"
#include "AliJPhoton.h"
#include "AliJEventHeader.h"
#include "AliJRunHeader.h"
#include <TFile.h>
#include <TRandom.h>
ClassImp(AliJEfficiencyScanner);
AliJEfficiencyScanner::AliJEfficiencyScanner() :
TNamed(),
fMBTriggMask(0),
fTrackList(0),
fMCTrackList(0x0),
fEventHeader(0x0),
fRunHeader(0x0),
fhVertexZMC(0x0),
fhVertexZTrigg(0x0),
fhVertexZTriggVtx(0x0),
fhVZRawMC(0x0),
fhVZRecMC(0x0),
fhVZRecAccMC(0x0),
fh2VtxCent(0x0),
fhL0Input(0x0),
fhTriggerAlice(0x0),
fhZVtxMCAll(0x0),
fhZVtxMCTrigg(0x0),
fhZVtxMCTriggVtx(0x0),
fhZVtxRecAll(0x0),
fhZVtxRecTrigg(0x0),
fhZVtxRecTriggVtx(0x0),
fVtxReFunc(0x0),
fVtxMCFunc(0x0),
fVtxRatioFunc(0x0),
fVtxRatioMax(1)
{
for( int ivtx=0;ivtx<kNVtxBin;ivtx++ ){
for( int icent=0;icent<kNCentBin;icent++ ){
fhChargedPtMCTriggVtx[ivtx][icent] = 0x0;
for( int ifilter=0;ifilter<AliJTrackCut::kJNTrackCuts;ifilter++ ){
for( int ipri=0;ipri<kNPrimaryStatus;ipri++ ){
for( int itt=0;itt<kNTrackType;itt++ ){
fhChargedPtMCRecoCentVtx[ivtx][icent][ifilter][ipri][itt] = 0x0;
}
}
}
}
}
}
AliJEfficiencyScanner::AliJEfficiencyScanner(const char *name):
TNamed(name,name),
fMBTriggMask(0),
fTrackList(0),
fMCTrackList(0x0),
fEventHeader(0x0),
fRunHeader(0x0),
fhVertexZMC(0x0),
fhVertexZTrigg(0x0),
fhVertexZTriggVtx(0x0),
fhVZRawMC(0x0),
fhVZRecMC(0x0),
fhVZRecAccMC(0x0),
fh2VtxCent(0x0),
fhL0Input(0x0),
fhTriggerAlice(0x0),
fhZVtxMCAll(0x0),
fhZVtxMCTrigg(0x0),
fhZVtxMCTriggVtx(0x0),
fhZVtxRecAll(0x0),
fhZVtxRecTrigg(0x0),
fhZVtxRecTriggVtx(0x0),
fVtxReFunc(0x0),
fVtxMCFunc(0x0),
fVtxRatioFunc(0x0),
fVtxRatioMax(1)
{
for( int ivtx=0;ivtx<kNVtxBin;ivtx++ ){
for( int icent=0;icent<kNCentBin;icent++ ){
fhChargedPtMCTriggVtx[ivtx][icent] = 0x0;
for( int ifilter=0;ifilter<AliJTrackCut::kJNTrackCuts;ifilter++ ){
for( int ipri=0;ipri<kNPrimaryStatus;ipri++ ){
for( int itt=0;itt<kNTrackType;itt++ ){
fhChargedPtMCRecoCentVtx[ivtx][icent][ifilter][ipri][itt] = 0x0;
}
}
}
}
}
}
AliJEfficiencyScanner::AliJEfficiencyScanner(const AliJEfficiencyScanner& ap) :
TNamed(ap.GetName(), ap.GetTitle()),
fMBTriggMask(ap.fMBTriggMask),
fTrackList(ap.fTrackList),
fMCTrackList(ap.fMCTrackList),
fEventHeader( ap.fEventHeader ),
fRunHeader(ap.fRunHeader),
fhVertexZMC(ap.fhVertexZMC),
fhVertexZTrigg(ap.fhVertexZTrigg),
fhVertexZTriggVtx(ap.fhVertexZTriggVtx),
fhVZRawMC(ap.fhVZRawMC),
fhVZRecMC(ap.fhVZRecMC),
fhVZRecAccMC(ap.fhVZRecAccMC),
fh2VtxCent(ap.fh2VtxCent),
fhL0Input(ap.fhL0Input),
fhTriggerAlice(ap.fhTriggerAlice),
fhZVtxMCAll(ap.fhZVtxMCAll),
fhZVtxMCTrigg(ap.fhZVtxMCTrigg),
fhZVtxMCTriggVtx(ap.fhZVtxMCTriggVtx),
fhZVtxRecAll(ap.fhZVtxRecAll),
fhZVtxRecTrigg(ap.fhZVtxRecTrigg),
fhZVtxRecTriggVtx(ap.fhZVtxRecTriggVtx),
fVtxReFunc(ap.fVtxReFunc),
fVtxMCFunc(ap.fVtxMCFunc),
fVtxRatioFunc(ap.fVtxRatioFunc),
fVtxRatioMax(ap.fVtxRatioMax)
{
for( int ivtx=0;ivtx<kNVtxBin;ivtx++ ){
for( int icent=0;icent<kNCentBin;icent++ ){
fhChargedPtMCTriggVtx[ivtx][icent] = ap.fhChargedPtMCTriggVtx[ivtx][icent];
for( int ifilter=0;ifilter<AliJTrackCut::kJNTrackCuts;ifilter++ ){
for( int ipri=0;ipri<kNPrimaryStatus;ipri++ ){
for( int itt=0;itt<kNTrackType;itt++ ){
fhChargedPtMCRecoCentVtx[ivtx][icent][ifilter][ipri][itt] = ap.fhChargedPtMCRecoCentVtx[ivtx][icent][ifilter][ipri][itt];
}
}
}
}
}
}
AliJEfficiencyScanner& AliJEfficiencyScanner::operator = (const AliJEfficiencyScanner& ap)
{
this->~AliJEfficiencyScanner();
new(this) AliJEfficiencyScanner(ap);
return *this;
}
AliJEfficiencyScanner::~AliJEfficiencyScanner()
{
}
void AliJEfficiencyScanner::UserCreateOutputObjects()
{
cout<<"DEBUG Start AliJEfficiencyScanner::UserCreateOutputObjects() "<<"\t"<<gDirectory<<endl;
double ptbin[300] = {0};
double pt = 0;
int i = 0;
for( i=0;i<300;i++ ){
ptbin[i] = pt;
if( pt > 50 ) break;
if( pt < 3 ) pt+= 0.05;
else if( pt < 5 ) pt+= 0.1;
else if( pt < 10 ) pt+= 1;
else pt+= 1;
}
cout<<"n Ptbin = "<<i<<endl;
int nPtBin = i-1;
fh2VtxCent = new TH2D("h2VtxCent","h2VtxCent",100,0,10,110,0,110 );
fh2VtxCent->SetDirectory(gDirectory);
int nVtxBin = kNVtxBin;
int nCentBin = kNCentBin;
if( fRunHeader->IsPP() ) nCentBin = 1;
TString name ="";
for( int ivtx=0;ivtx<nVtxBin;ivtx++ ){
for( int icent=0;icent<nCentBin;icent++ ){
fhChargedPtMC[ivtx][icent] = AddTH1D( Form("hChargedPtMC%02d%02d",ivtx,icent),
new TH1D("","", nPtBin, ptbin) );
fhChargedPtMCTriggVtx[ivtx][icent]=AddTH1D(
Form("hChargedPtMCTriggVtx%02d%02d", ivtx, icent ),
new TH1D("", "", nPtBin, ptbin) );
fhChargedPtMCTrigg[ivtx][icent]=AddTH1D(
Form("hChargedPtMCTrigg%02d%02d", ivtx, icent ),
new TH1D("", "", nPtBin, ptbin) );
name = Form("h2DChargedPtTrigg%02d%02d",ivtx,icent);
fh2DChargedPtTrigg[ivtx][icent]=AddTH2D(name, new TH2D(name,name, nPtBin, ptbin, 20, -0.8, 0.8));
name = Form("h2DChargedPtTriggVtx%02d%02d",ivtx,icent);
fh2DChargedPtTriggVtx[ivtx][icent]=AddTH2D(name, new TH2D(name,name, nPtBin, ptbin, 20, -0.8, 0.8));
}
}
fhTriggerAlice = AddTH1D("hTriggerAlice",new TH1D("","",32,0,32));
fhL0Input = AddTH1D("hL0Input",new TH1D("","",32,0,32));
double dcaBin[1000];
double dbin=-50-1;
int ndbin = 0;
dcaBin[0] = dbin;
double tol = 1e-5;
while(dbin < 50-1){
if( fabs(dbin) < 2-tol ) dbin+=0.01;
else if( fabs(dbin) < 5-tol ) dbin+= 0.05;
else if( fabs(dbin) <= 10-tol ) dbin+= 0.1;
else dbin += 1;
if( fabs(dbin) < tol ) dbin=0;
dcaBin[ndbin++] = dbin;
}
for( int ivtx=0;ivtx<nVtxBin;ivtx++ ){
for( int icent=0;icent<nCentBin;icent++ ){
for( int ifilter=0;ifilter<AliJTrackCut::kJNTrackCuts;ifilter++ ){
name = Form("h2DChargedPtAll%02d%02d%02d",ivtx,icent,ifilter);
fh2DChargedPtAll[ivtx][icent][ifilter]=AddTH2D(name, new TH2D(name,name, nPtBin, ptbin, 20, -0.8, 0.8));
name = Form("h2DChargedPtRec%02d%02d%02d",ivtx,icent,ifilter);
fh2DChargedPtRec[ivtx][icent][ifilter]=AddTH2D(name, new TH2D(name,name, nPtBin, ptbin, 20, -0.8, 0.8));
for( int ipri=0;ipri<kNPrimaryStatus;ipri++ ){
for( int itt=0;itt<kNTrackType;itt++ ){
name = Form("hChargedPtMCRecoCentVtx%02d%02d%02d%02d%02d", ivtx, icent, ifilter, ipri, itt );
fhChargedPtMCRecoCentVtx[ivtx][icent][ifilter][ipri][itt]=AddTH1D(name, new TH1D( name, name, nPtBin, ptbin));
}
}
name = Form("hDCA2VertexXY%02d%02d%02d", ivtx, icent, ifilter );
fhDCA2VertexXY[ivtx][icent][ifilter] = AddTH1D(name, new TH1D("","",ndbin-1, dcaBin ));
name = Form("hDCA2VertexZ%02d%02d%02d", ivtx, icent, ifilter );
fhDCA2VertexZ[ivtx][icent][ifilter] = AddTH1D( name, new TH1D("","",ndbin-1, dcaBin ));
}
}
}
for( int ifilter=0;ifilter<AliJTrackCut::kJNTrackCuts;ifilter++ ){
name = Form("h2MultGenRawPrimary%02d", ifilter);
fh2MultGenRawPrimary[ifilter] = AddTH2D( name, new TH2D(name, name, 100,0,100,100,0,100 ));
name = Form("h2MultGenRawAll%02d", ifilter);
fh2MultGenRawAll[ifilter] = AddTH2D( name, new TH2D(name, name, 100,0,100,100,0,100 ));
}
double binsVertexMult[] = {0,1,2,3,4,5,10000};
int NbinsVertexMult = sizeof(binsVertexMult)/sizeof(double)-1;
double binsVertexZ[] = {-10,-6,-3,-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,3,6,10};
int NbinsVertexZ = sizeof(binsVertexZ)/sizeof(double)-1;
fhVertexZMC = AddTH2D("hVertexZMC",new TH2D("hVertexZMC","hVertexZMC", NbinsVertexMult, binsVertexMult, NbinsVertexZ, binsVertexZ));
fhVertexZTrigg = AddTH2D("hVertexZTrigg",new TH2D("hVertexZTrigg","hVertexZTrigg", NbinsVertexMult, binsVertexMult, NbinsVertexZ, binsVertexZ));
fhVertexZTriggVtx = AddTH2D("hVertexZTriggVtx",new TH2D("hVertexZTriggVtx","hVertexZTriggVtx", NbinsVertexMult, binsVertexMult, NbinsVertexZ, binsVertexZ));
fhVZRawMC = AddTH1D("hVtxZMC", new TH1D("hVtxZMC","VertexZ in MC ",200,-50,50));
fhVZRecMC = AddTH1D("hVtxZRec", new TH1D("hVtxZRec","VertexZ Rec in MC",200,-50,50));
fhVZRecAccMC = AddTH1D("hVtxZRecAcc", new TH1D("hVtxZRecAcc","VertexZ Rec in MC and acc",200,-50,50));
int NvtxBins = 400;
double vtxedge = 50;
fhZVtxMCAll = AddTH1D("hZVtxMCAll", new TH1D("hZVtxMCAll","VetrexZ in MC for all event",NvtxBins, -vtxedge, vtxedge ));
fhZVtxMCTrigg = AddTH1D("hZVtxMCTrigg", new TH1D("hZVtxMCTrigg","VetrexZ in MC for triggered event",NvtxBins, -vtxedge, vtxedge ));
fhZVtxMCTriggVtx = AddTH1D("hZVtxMCTriggVtx", new TH1D("hZVtxMCTriggVtx","VetrexZ in MC for triggered and vtx reconstructed event",NvtxBins, -vtxedge, vtxedge ));
fhZVtxRecAll = AddTH1D("hZVtxRecAll", new TH1D("hZVtxRecAll","VetrexZ in Rec for all event",NvtxBins, -vtxedge, vtxedge ));
fhZVtxRecTrigg = AddTH1D("hZVtxRecTrigg", new TH1D("hZVtxRecTrigg","VetrexZ in Rec for triggered event",NvtxBins, -vtxedge, vtxedge ));
fhZVtxRecTriggVtx = AddTH1D("hZVtxRecTriggVtx", new TH1D("hZVtxRecTriggVtx","VetrexZ in Rec for triggered and vtx reconstructed event",NvtxBins, -vtxedge, vtxedge ));
double v0 = -20;
double v1 = 20;
fVtxReFunc = new TF1("VtxReFunc", "gaus",v0,v1);
fVtxReFunc->SetParameters(1 , -7.14076e-01, 6.27110 );
fVtxMCFunc = new TF1("VtxMCFunc", "gaus",v0,v1);
fVtxMCFunc->SetParameters(1, -4.53674e-01, 5.27088e+00 );
fVtxRatioFunc = new TF1("VtxRatioFunc", "VtxReFunc/VtxMCFunc",v0,v1);
fVtxRatioMax = fVtxRatioFunc->GetMaximum();
cout << "Add(fAliJRunHeader) in UserCreateObject() ======= " << endl;
cout<<"DEBUG END AliJEfficiencyScanner::UserCreateOutputObjects() "<<endl;
}
void AliJEfficiencyScanner::UserExec(Option_t *option)
{
JUNUSED(option);
double zVtxCut = 10;
double etaCut = 0.8;
double nCentBin = 20;
AliJEventHeader * eventHeader = GetJEventHeader();
Bool_t triggeredEventMB = eventHeader->GetTriggerMaskJCorran() & fMBTriggMask;
UInt_t trigAlice = eventHeader->GetTriggerMaskAlice();
UInt_t l0Input = eventHeader->GetL0TriggerInputs();
for( UInt_t i=0;i<32;i++ ){
if( l0Input & 1UL<<i ) fhL0Input->Fill(i);
if( trigAlice & 1UL<<i ) fhTriggerAlice->Fill(i);
}
double centrality = eventHeader->GetCentrality();
int iCent = int( centrality/(100./nCentBin));
if( iCent< 0 || iCent>20 ) return;
if( fRunHeader->IsPP() ) {iCent = 0; centrality=0;}
int ncontributors = eventHeader->GetVtxMult();
double zVtxRec = eventHeader->GetZVertex();
Bool_t goodRecVertex = (ncontributors>0) && (fabs(zVtxRec)<=zVtxCut);
int iVtx = 0;
double zVtxMC = eventHeader->GetZVertexMC();
fhVZRawMC->Fill(zVtxMC);
fhVertexZMC->Fill(ncontributors,zVtxMC);
fhZVtxMCAll->Fill(zVtxMC);
fhZVtxRecAll->Fill(zVtxRec);
if(triggeredEventMB){
fhVertexZTrigg->Fill(ncontributors,zVtxMC);
fhZVtxMCTrigg->Fill(zVtxMC);
fhZVtxRecTrigg->Fill(zVtxRec);
if(ncontributors>0){
fhVZRecMC->Fill(zVtxRec);
fhZVtxMCTriggVtx->Fill(zVtxMC);
fhZVtxRecTriggVtx->Fill(zVtxRec);
}
if(goodRecVertex){
fhVertexZTriggVtx->Fill(ncontributors,zVtxMC);
fhVZRecAccMC->Fill(zVtxRec);
}
}
fh2VtxCent->Fill( zVtxRec, centrality );
int nRawMultPri = 0;
int nGenMultPri[AliJTrackCut::kJNTrackCuts] = {0};
int nGenMultAll[AliJTrackCut::kJNTrackCuts] = {0};
int nMCTrks = 0;
if( fRunHeader->IsMC() )
nMCTrks = GetJMCTracks()->GetEntriesFast();
for( int it=0; it< nMCTrks; it++ ){
AliJMCTrack * track = GetJMCTrack( it );
if( !track ) continue;
if( !track->IsTrue( AliJMCTrack::kPrimary ) ) continue;
double eta = track->Eta();
double pt = track->Pt();
if( fabs(eta) > etaCut ) continue;
if( ! track->IsCharged() ) continue;
nRawMultPri++;
fhChargedPtMC[iVtx][iCent]->Fill(pt);
if(triggeredEventMB){
fhChargedPtMCTrigg[iVtx][iCent]->Fill(pt);
fh2DChargedPtTrigg[iVtx][iCent]->Fill(pt, eta);
if(goodRecVertex){
fhChargedPtMCTriggVtx[iVtx][iCent]->Fill(pt);
fh2DChargedPtTriggVtx[iVtx][iCent]->Fill(pt, eta);
}
}
}
const int nTrkCut = AliJTrackCut::kJNTrackCuts;
if( ! triggeredEventMB ) return;
if( ! goodRecVertex ) return;
int nTrks = GetJTracks()->GetEntriesFast();
for(Int_t it = 0; it < nTrks; it++) {
AliJTrack * track = GetJTrack(it);
if( !track ) continue;
bool isTriggered = track->GetFilterMap();
if( !isTriggered ) continue;
double eta = track->Eta();
double etaTPC = eta;
double etaGCG = eta;
double ptRec = track->Pt();
double ptTPC = track->PtTPC();
if( fabs(ptTPC) < 1e-2 ) ptTPC=ptRec;
else{
TVector3 v(track->GetTPCTrack());
etaTPC = v.Eta();
}
double ptGCG = track->PtGCG();
if( fabs(ptGCG) < 1e-2 ) ptGCG=ptRec;
else{
TVector3 v(track->GetGCGTrack());
etaGCG = v.Eta();
}
double ptMC = -1;
int iPrimary = kJFake;
if( fabs(eta) > etaCut && fabs(etaTPC)>etaCut && fabs(etaGCG)>etaCut) continue;
for( int imc=0;imc<nMCTrks;imc++ ){
AliJMCTrack * mcTrack = GetJMCTrack(imc);
if( !mcTrack || !mcTrack->IsTrue( AliJMCTrack::kPrimary ) ) continue;
if( mcTrack && (TMath::Abs(track->GetLabel()) == TMath::Abs(mcTrack->GetLabel())) ){
iPrimary = kJPhysicsPrimary;
ptMC = mcTrack->Pt();
break;
}
}
for( int icut=0;icut<nTrkCut;icut++ ){
if( IsSelected( track ,icut) ){
if( fabs(eta) < etaCut ){
fh2DChargedPtAll[iVtx][iCent][icut]->Fill(ptRec, eta);
fh2DChargedPtRec[iVtx][iCent][icut]->Fill(ptMC, eta);
fhChargedPtMCRecoCentVtx[iVtx][iCent][icut][iPrimary][kJGlobal]->Fill( ptRec );
if( iPrimary == kJPhysicsPrimary ) nGenMultPri[icut]++;
nGenMultAll[icut]++;
}
if( fabs(etaTPC) < etaCut )
fhChargedPtMCRecoCentVtx[iVtx][iCent][icut][iPrimary][kJTPCOnly]->Fill( ptTPC );
if( fabs(etaGCG) < etaCut )
fhChargedPtMCRecoCentVtx[iVtx][iCent][icut][iPrimary][kJGCG]->Fill( ptGCG );
if( (icut==0 && fabs(etaTPC) < etaCut) || (icut!=0&&fabs(eta)<etaCut) )
fhChargedPtMCRecoCentVtx[iVtx][iCent][icut][iPrimary][kJMCTrack]->Fill( ptMC );
}
}
}
for( int icut=0;icut<nTrkCut;icut++ ){
fh2MultGenRawPrimary[icut]->Fill( nRawMultPri, nGenMultPri[icut] );
fh2MultGenRawAll[icut]->Fill( nRawMultPri, nGenMultAll[icut] );
}
}
void AliJEfficiencyScanner::Init()
{
}
void AliJEfficiencyScanner::Terminate(Option_t *)
{
}
AliJEfficiencyScanner.cxx:1 AliJEfficiencyScanner.cxx:2 AliJEfficiencyScanner.cxx:3 AliJEfficiencyScanner.cxx:4 AliJEfficiencyScanner.cxx:5 AliJEfficiencyScanner.cxx:6 AliJEfficiencyScanner.cxx:7 AliJEfficiencyScanner.cxx:8 AliJEfficiencyScanner.cxx:9 AliJEfficiencyScanner.cxx:10 AliJEfficiencyScanner.cxx:11 AliJEfficiencyScanner.cxx:12 AliJEfficiencyScanner.cxx:13 AliJEfficiencyScanner.cxx:14 AliJEfficiencyScanner.cxx:15 AliJEfficiencyScanner.cxx:16 AliJEfficiencyScanner.cxx:17 AliJEfficiencyScanner.cxx:18 AliJEfficiencyScanner.cxx:19 AliJEfficiencyScanner.cxx:20 AliJEfficiencyScanner.cxx:21 AliJEfficiencyScanner.cxx:22 AliJEfficiencyScanner.cxx:23 AliJEfficiencyScanner.cxx:24 AliJEfficiencyScanner.cxx:25 AliJEfficiencyScanner.cxx:26 AliJEfficiencyScanner.cxx:27 AliJEfficiencyScanner.cxx:28 AliJEfficiencyScanner.cxx:29 AliJEfficiencyScanner.cxx:30 AliJEfficiencyScanner.cxx:31 AliJEfficiencyScanner.cxx:32 AliJEfficiencyScanner.cxx:33 AliJEfficiencyScanner.cxx:34 AliJEfficiencyScanner.cxx:35 AliJEfficiencyScanner.cxx:36 AliJEfficiencyScanner.cxx:37 AliJEfficiencyScanner.cxx:38 AliJEfficiencyScanner.cxx:39 AliJEfficiencyScanner.cxx:40 AliJEfficiencyScanner.cxx:41 AliJEfficiencyScanner.cxx:42 AliJEfficiencyScanner.cxx:43 AliJEfficiencyScanner.cxx:44 AliJEfficiencyScanner.cxx:45 AliJEfficiencyScanner.cxx:46 AliJEfficiencyScanner.cxx:47 AliJEfficiencyScanner.cxx:48 AliJEfficiencyScanner.cxx:49 AliJEfficiencyScanner.cxx:50 AliJEfficiencyScanner.cxx:51 AliJEfficiencyScanner.cxx:52 AliJEfficiencyScanner.cxx:53 AliJEfficiencyScanner.cxx:54 AliJEfficiencyScanner.cxx:55 AliJEfficiencyScanner.cxx:56 AliJEfficiencyScanner.cxx:57 AliJEfficiencyScanner.cxx:58 AliJEfficiencyScanner.cxx:59 AliJEfficiencyScanner.cxx:60 AliJEfficiencyScanner.cxx:61 AliJEfficiencyScanner.cxx:62 AliJEfficiencyScanner.cxx:63 AliJEfficiencyScanner.cxx:64 AliJEfficiencyScanner.cxx:65 AliJEfficiencyScanner.cxx:66 AliJEfficiencyScanner.cxx:67 AliJEfficiencyScanner.cxx:68 AliJEfficiencyScanner.cxx:69 AliJEfficiencyScanner.cxx:70 AliJEfficiencyScanner.cxx:71 AliJEfficiencyScanner.cxx:72 AliJEfficiencyScanner.cxx:73 AliJEfficiencyScanner.cxx:74 AliJEfficiencyScanner.cxx:75 AliJEfficiencyScanner.cxx:76 AliJEfficiencyScanner.cxx:77 AliJEfficiencyScanner.cxx:78 AliJEfficiencyScanner.cxx:79 AliJEfficiencyScanner.cxx:80 AliJEfficiencyScanner.cxx:81 AliJEfficiencyScanner.cxx:82 AliJEfficiencyScanner.cxx:83 AliJEfficiencyScanner.cxx:84 AliJEfficiencyScanner.cxx:85 AliJEfficiencyScanner.cxx:86 AliJEfficiencyScanner.cxx:87 AliJEfficiencyScanner.cxx:88 AliJEfficiencyScanner.cxx:89 AliJEfficiencyScanner.cxx:90 AliJEfficiencyScanner.cxx:91 AliJEfficiencyScanner.cxx:92 AliJEfficiencyScanner.cxx:93 AliJEfficiencyScanner.cxx:94 AliJEfficiencyScanner.cxx:95 AliJEfficiencyScanner.cxx:96 AliJEfficiencyScanner.cxx:97 AliJEfficiencyScanner.cxx:98 AliJEfficiencyScanner.cxx:99 AliJEfficiencyScanner.cxx:100 AliJEfficiencyScanner.cxx:101 AliJEfficiencyScanner.cxx:102 AliJEfficiencyScanner.cxx:103 AliJEfficiencyScanner.cxx:104 AliJEfficiencyScanner.cxx:105 AliJEfficiencyScanner.cxx:106 AliJEfficiencyScanner.cxx:107 AliJEfficiencyScanner.cxx:108 AliJEfficiencyScanner.cxx:109 AliJEfficiencyScanner.cxx:110 AliJEfficiencyScanner.cxx:111 AliJEfficiencyScanner.cxx:112 AliJEfficiencyScanner.cxx:113 AliJEfficiencyScanner.cxx:114 AliJEfficiencyScanner.cxx:115 AliJEfficiencyScanner.cxx:116 AliJEfficiencyScanner.cxx:117 AliJEfficiencyScanner.cxx:118 AliJEfficiencyScanner.cxx:119 AliJEfficiencyScanner.cxx:120 AliJEfficiencyScanner.cxx:121 AliJEfficiencyScanner.cxx:122 AliJEfficiencyScanner.cxx:123 AliJEfficiencyScanner.cxx:124 AliJEfficiencyScanner.cxx:125 AliJEfficiencyScanner.cxx:126 AliJEfficiencyScanner.cxx:127 AliJEfficiencyScanner.cxx:128 AliJEfficiencyScanner.cxx:129 AliJEfficiencyScanner.cxx:130 AliJEfficiencyScanner.cxx:131 AliJEfficiencyScanner.cxx:132 AliJEfficiencyScanner.cxx:133 AliJEfficiencyScanner.cxx:134 AliJEfficiencyScanner.cxx:135 AliJEfficiencyScanner.cxx:136 AliJEfficiencyScanner.cxx:137 AliJEfficiencyScanner.cxx:138 AliJEfficiencyScanner.cxx:139 AliJEfficiencyScanner.cxx:140 AliJEfficiencyScanner.cxx:141 AliJEfficiencyScanner.cxx:142 AliJEfficiencyScanner.cxx:143 AliJEfficiencyScanner.cxx:144 AliJEfficiencyScanner.cxx:145 AliJEfficiencyScanner.cxx:146 AliJEfficiencyScanner.cxx:147 AliJEfficiencyScanner.cxx:148 AliJEfficiencyScanner.cxx:149 AliJEfficiencyScanner.cxx:150 AliJEfficiencyScanner.cxx:151 AliJEfficiencyScanner.cxx:152 AliJEfficiencyScanner.cxx:153 AliJEfficiencyScanner.cxx:154 AliJEfficiencyScanner.cxx:155 AliJEfficiencyScanner.cxx:156 AliJEfficiencyScanner.cxx:157 AliJEfficiencyScanner.cxx:158 AliJEfficiencyScanner.cxx:159 AliJEfficiencyScanner.cxx:160 AliJEfficiencyScanner.cxx:161 AliJEfficiencyScanner.cxx:162 AliJEfficiencyScanner.cxx:163 AliJEfficiencyScanner.cxx:164 AliJEfficiencyScanner.cxx:165 AliJEfficiencyScanner.cxx:166 AliJEfficiencyScanner.cxx:167 AliJEfficiencyScanner.cxx:168 AliJEfficiencyScanner.cxx:169 AliJEfficiencyScanner.cxx:170 AliJEfficiencyScanner.cxx:171 AliJEfficiencyScanner.cxx:172 AliJEfficiencyScanner.cxx:173 AliJEfficiencyScanner.cxx:174 AliJEfficiencyScanner.cxx:175 AliJEfficiencyScanner.cxx:176 AliJEfficiencyScanner.cxx:177 AliJEfficiencyScanner.cxx:178 AliJEfficiencyScanner.cxx:179 AliJEfficiencyScanner.cxx:180 AliJEfficiencyScanner.cxx:181 AliJEfficiencyScanner.cxx:182 AliJEfficiencyScanner.cxx:183 AliJEfficiencyScanner.cxx:184 AliJEfficiencyScanner.cxx:185 AliJEfficiencyScanner.cxx:186 AliJEfficiencyScanner.cxx:187 AliJEfficiencyScanner.cxx:188 AliJEfficiencyScanner.cxx:189 AliJEfficiencyScanner.cxx:190 AliJEfficiencyScanner.cxx:191 AliJEfficiencyScanner.cxx:192 AliJEfficiencyScanner.cxx:193 AliJEfficiencyScanner.cxx:194 AliJEfficiencyScanner.cxx:195 AliJEfficiencyScanner.cxx:196 AliJEfficiencyScanner.cxx:197 AliJEfficiencyScanner.cxx:198 AliJEfficiencyScanner.cxx:199 AliJEfficiencyScanner.cxx:200 AliJEfficiencyScanner.cxx:201 AliJEfficiencyScanner.cxx:202 AliJEfficiencyScanner.cxx:203 AliJEfficiencyScanner.cxx:204 AliJEfficiencyScanner.cxx:205 AliJEfficiencyScanner.cxx:206 AliJEfficiencyScanner.cxx:207 AliJEfficiencyScanner.cxx:208 AliJEfficiencyScanner.cxx:209 AliJEfficiencyScanner.cxx:210 AliJEfficiencyScanner.cxx:211 AliJEfficiencyScanner.cxx:212 AliJEfficiencyScanner.cxx:213 AliJEfficiencyScanner.cxx:214 AliJEfficiencyScanner.cxx:215 AliJEfficiencyScanner.cxx:216 AliJEfficiencyScanner.cxx:217 AliJEfficiencyScanner.cxx:218 AliJEfficiencyScanner.cxx:219 AliJEfficiencyScanner.cxx:220 AliJEfficiencyScanner.cxx:221 AliJEfficiencyScanner.cxx:222 AliJEfficiencyScanner.cxx:223 AliJEfficiencyScanner.cxx:224 AliJEfficiencyScanner.cxx:225 AliJEfficiencyScanner.cxx:226 AliJEfficiencyScanner.cxx:227 AliJEfficiencyScanner.cxx:228 AliJEfficiencyScanner.cxx:229 AliJEfficiencyScanner.cxx:230 AliJEfficiencyScanner.cxx:231 AliJEfficiencyScanner.cxx:232 AliJEfficiencyScanner.cxx:233 AliJEfficiencyScanner.cxx:234 AliJEfficiencyScanner.cxx:235 AliJEfficiencyScanner.cxx:236 AliJEfficiencyScanner.cxx:237 AliJEfficiencyScanner.cxx:238 AliJEfficiencyScanner.cxx:239 AliJEfficiencyScanner.cxx:240 AliJEfficiencyScanner.cxx:241 AliJEfficiencyScanner.cxx:242 AliJEfficiencyScanner.cxx:243 AliJEfficiencyScanner.cxx:244 AliJEfficiencyScanner.cxx:245 AliJEfficiencyScanner.cxx:246 AliJEfficiencyScanner.cxx:247 AliJEfficiencyScanner.cxx:248 AliJEfficiencyScanner.cxx:249 AliJEfficiencyScanner.cxx:250 AliJEfficiencyScanner.cxx:251 AliJEfficiencyScanner.cxx:252 AliJEfficiencyScanner.cxx:253 AliJEfficiencyScanner.cxx:254 AliJEfficiencyScanner.cxx:255 AliJEfficiencyScanner.cxx:256 AliJEfficiencyScanner.cxx:257 AliJEfficiencyScanner.cxx:258 AliJEfficiencyScanner.cxx:259 AliJEfficiencyScanner.cxx:260 AliJEfficiencyScanner.cxx:261 AliJEfficiencyScanner.cxx:262 AliJEfficiencyScanner.cxx:263 AliJEfficiencyScanner.cxx:264 AliJEfficiencyScanner.cxx:265 AliJEfficiencyScanner.cxx:266 AliJEfficiencyScanner.cxx:267 AliJEfficiencyScanner.cxx:268 AliJEfficiencyScanner.cxx:269 AliJEfficiencyScanner.cxx:270 AliJEfficiencyScanner.cxx:271 AliJEfficiencyScanner.cxx:272 AliJEfficiencyScanner.cxx:273 AliJEfficiencyScanner.cxx:274 AliJEfficiencyScanner.cxx:275 AliJEfficiencyScanner.cxx:276 AliJEfficiencyScanner.cxx:277 AliJEfficiencyScanner.cxx:278 AliJEfficiencyScanner.cxx:279 AliJEfficiencyScanner.cxx:280 AliJEfficiencyScanner.cxx:281 AliJEfficiencyScanner.cxx:282 AliJEfficiencyScanner.cxx:283 AliJEfficiencyScanner.cxx:284 AliJEfficiencyScanner.cxx:285 AliJEfficiencyScanner.cxx:286 AliJEfficiencyScanner.cxx:287 AliJEfficiencyScanner.cxx:288 AliJEfficiencyScanner.cxx:289 AliJEfficiencyScanner.cxx:290 AliJEfficiencyScanner.cxx:291 AliJEfficiencyScanner.cxx:292 AliJEfficiencyScanner.cxx:293 AliJEfficiencyScanner.cxx:294 AliJEfficiencyScanner.cxx:295 AliJEfficiencyScanner.cxx:296 AliJEfficiencyScanner.cxx:297 AliJEfficiencyScanner.cxx:298 AliJEfficiencyScanner.cxx:299 AliJEfficiencyScanner.cxx:300 AliJEfficiencyScanner.cxx:301 AliJEfficiencyScanner.cxx:302 AliJEfficiencyScanner.cxx:303 AliJEfficiencyScanner.cxx:304 AliJEfficiencyScanner.cxx:305 AliJEfficiencyScanner.cxx:306 AliJEfficiencyScanner.cxx:307 AliJEfficiencyScanner.cxx:308 AliJEfficiencyScanner.cxx:309 AliJEfficiencyScanner.cxx:310 AliJEfficiencyScanner.cxx:311 AliJEfficiencyScanner.cxx:312 AliJEfficiencyScanner.cxx:313 AliJEfficiencyScanner.cxx:314 AliJEfficiencyScanner.cxx:315 AliJEfficiencyScanner.cxx:316 AliJEfficiencyScanner.cxx:317 AliJEfficiencyScanner.cxx:318 AliJEfficiencyScanner.cxx:319 AliJEfficiencyScanner.cxx:320 AliJEfficiencyScanner.cxx:321 AliJEfficiencyScanner.cxx:322 AliJEfficiencyScanner.cxx:323 AliJEfficiencyScanner.cxx:324 AliJEfficiencyScanner.cxx:325 AliJEfficiencyScanner.cxx:326 AliJEfficiencyScanner.cxx:327 AliJEfficiencyScanner.cxx:328 AliJEfficiencyScanner.cxx:329 AliJEfficiencyScanner.cxx:330 AliJEfficiencyScanner.cxx:331 AliJEfficiencyScanner.cxx:332 AliJEfficiencyScanner.cxx:333 AliJEfficiencyScanner.cxx:334 AliJEfficiencyScanner.cxx:335 AliJEfficiencyScanner.cxx:336 AliJEfficiencyScanner.cxx:337 AliJEfficiencyScanner.cxx:338 AliJEfficiencyScanner.cxx:339 AliJEfficiencyScanner.cxx:340 AliJEfficiencyScanner.cxx:341 AliJEfficiencyScanner.cxx:342 AliJEfficiencyScanner.cxx:343 AliJEfficiencyScanner.cxx:344 AliJEfficiencyScanner.cxx:345 AliJEfficiencyScanner.cxx:346 AliJEfficiencyScanner.cxx:347 AliJEfficiencyScanner.cxx:348 AliJEfficiencyScanner.cxx:349 AliJEfficiencyScanner.cxx:350 AliJEfficiencyScanner.cxx:351 AliJEfficiencyScanner.cxx:352 AliJEfficiencyScanner.cxx:353 AliJEfficiencyScanner.cxx:354 AliJEfficiencyScanner.cxx:355 AliJEfficiencyScanner.cxx:356 AliJEfficiencyScanner.cxx:357 AliJEfficiencyScanner.cxx:358 AliJEfficiencyScanner.cxx:359 AliJEfficiencyScanner.cxx:360 AliJEfficiencyScanner.cxx:361 AliJEfficiencyScanner.cxx:362 AliJEfficiencyScanner.cxx:363 AliJEfficiencyScanner.cxx:364 AliJEfficiencyScanner.cxx:365 AliJEfficiencyScanner.cxx:366 AliJEfficiencyScanner.cxx:367 AliJEfficiencyScanner.cxx:368 AliJEfficiencyScanner.cxx:369 AliJEfficiencyScanner.cxx:370 AliJEfficiencyScanner.cxx:371 AliJEfficiencyScanner.cxx:372 AliJEfficiencyScanner.cxx:373 AliJEfficiencyScanner.cxx:374 AliJEfficiencyScanner.cxx:375 AliJEfficiencyScanner.cxx:376 AliJEfficiencyScanner.cxx:377 AliJEfficiencyScanner.cxx:378 AliJEfficiencyScanner.cxx:379 AliJEfficiencyScanner.cxx:380 AliJEfficiencyScanner.cxx:381 AliJEfficiencyScanner.cxx:382 AliJEfficiencyScanner.cxx:383 AliJEfficiencyScanner.cxx:384 AliJEfficiencyScanner.cxx:385 AliJEfficiencyScanner.cxx:386 AliJEfficiencyScanner.cxx:387 AliJEfficiencyScanner.cxx:388 AliJEfficiencyScanner.cxx:389 AliJEfficiencyScanner.cxx:390 AliJEfficiencyScanner.cxx:391 AliJEfficiencyScanner.cxx:392 AliJEfficiencyScanner.cxx:393 AliJEfficiencyScanner.cxx:394 AliJEfficiencyScanner.cxx:395 AliJEfficiencyScanner.cxx:396 AliJEfficiencyScanner.cxx:397 AliJEfficiencyScanner.cxx:398 AliJEfficiencyScanner.cxx:399 AliJEfficiencyScanner.cxx:400 AliJEfficiencyScanner.cxx:401 AliJEfficiencyScanner.cxx:402 AliJEfficiencyScanner.cxx:403 AliJEfficiencyScanner.cxx:404 AliJEfficiencyScanner.cxx:405 AliJEfficiencyScanner.cxx:406 AliJEfficiencyScanner.cxx:407 AliJEfficiencyScanner.cxx:408 AliJEfficiencyScanner.cxx:409 AliJEfficiencyScanner.cxx:410 AliJEfficiencyScanner.cxx:411 AliJEfficiencyScanner.cxx:412 AliJEfficiencyScanner.cxx:413 AliJEfficiencyScanner.cxx:414 AliJEfficiencyScanner.cxx:415 AliJEfficiencyScanner.cxx:416 AliJEfficiencyScanner.cxx:417 AliJEfficiencyScanner.cxx:418 AliJEfficiencyScanner.cxx:419 AliJEfficiencyScanner.cxx:420 AliJEfficiencyScanner.cxx:421 AliJEfficiencyScanner.cxx:422 AliJEfficiencyScanner.cxx:423 AliJEfficiencyScanner.cxx:424 AliJEfficiencyScanner.cxx:425 AliJEfficiencyScanner.cxx:426 AliJEfficiencyScanner.cxx:427 AliJEfficiencyScanner.cxx:428 AliJEfficiencyScanner.cxx:429 AliJEfficiencyScanner.cxx:430 AliJEfficiencyScanner.cxx:431 AliJEfficiencyScanner.cxx:432 AliJEfficiencyScanner.cxx:433 AliJEfficiencyScanner.cxx:434 AliJEfficiencyScanner.cxx:435 AliJEfficiencyScanner.cxx:436 AliJEfficiencyScanner.cxx:437 AliJEfficiencyScanner.cxx:438 AliJEfficiencyScanner.cxx:439 AliJEfficiencyScanner.cxx:440 AliJEfficiencyScanner.cxx:441 AliJEfficiencyScanner.cxx:442 AliJEfficiencyScanner.cxx:443 AliJEfficiencyScanner.cxx:444 AliJEfficiencyScanner.cxx:445 AliJEfficiencyScanner.cxx:446 AliJEfficiencyScanner.cxx:447 AliJEfficiencyScanner.cxx:448 AliJEfficiencyScanner.cxx:449 AliJEfficiencyScanner.cxx:450 AliJEfficiencyScanner.cxx:451 AliJEfficiencyScanner.cxx:452 AliJEfficiencyScanner.cxx:453 AliJEfficiencyScanner.cxx:454 AliJEfficiencyScanner.cxx:455 AliJEfficiencyScanner.cxx:456 AliJEfficiencyScanner.cxx:457 AliJEfficiencyScanner.cxx:458 AliJEfficiencyScanner.cxx:459 AliJEfficiencyScanner.cxx:460 AliJEfficiencyScanner.cxx:461 AliJEfficiencyScanner.cxx:462 AliJEfficiencyScanner.cxx:463 AliJEfficiencyScanner.cxx:464 AliJEfficiencyScanner.cxx:465 AliJEfficiencyScanner.cxx:466 AliJEfficiencyScanner.cxx:467 AliJEfficiencyScanner.cxx:468 AliJEfficiencyScanner.cxx:469 AliJEfficiencyScanner.cxx:470 AliJEfficiencyScanner.cxx:471 AliJEfficiencyScanner.cxx:472 AliJEfficiencyScanner.cxx:473 AliJEfficiencyScanner.cxx:474 AliJEfficiencyScanner.cxx:475 AliJEfficiencyScanner.cxx:476 AliJEfficiencyScanner.cxx:477 AliJEfficiencyScanner.cxx:478 AliJEfficiencyScanner.cxx:479 AliJEfficiencyScanner.cxx:480 AliJEfficiencyScanner.cxx:481 AliJEfficiencyScanner.cxx:482 AliJEfficiencyScanner.cxx:483 AliJEfficiencyScanner.cxx:484 AliJEfficiencyScanner.cxx:485 AliJEfficiencyScanner.cxx:486 AliJEfficiencyScanner.cxx:487 AliJEfficiencyScanner.cxx:488 AliJEfficiencyScanner.cxx:489 AliJEfficiencyScanner.cxx:490 AliJEfficiencyScanner.cxx:491 AliJEfficiencyScanner.cxx:492 AliJEfficiencyScanner.cxx:493 AliJEfficiencyScanner.cxx:494 AliJEfficiencyScanner.cxx:495 AliJEfficiencyScanner.cxx:496 AliJEfficiencyScanner.cxx:497 AliJEfficiencyScanner.cxx:498 AliJEfficiencyScanner.cxx:499 AliJEfficiencyScanner.cxx:500 AliJEfficiencyScanner.cxx:501 AliJEfficiencyScanner.cxx:502 AliJEfficiencyScanner.cxx:503 AliJEfficiencyScanner.cxx:504 AliJEfficiencyScanner.cxx:505 AliJEfficiencyScanner.cxx:506 AliJEfficiencyScanner.cxx:507 AliJEfficiencyScanner.cxx:508 AliJEfficiencyScanner.cxx:509 AliJEfficiencyScanner.cxx:510 AliJEfficiencyScanner.cxx:511 AliJEfficiencyScanner.cxx:512 AliJEfficiencyScanner.cxx:513 AliJEfficiencyScanner.cxx:514 AliJEfficiencyScanner.cxx:515 AliJEfficiencyScanner.cxx:516 AliJEfficiencyScanner.cxx:517 AliJEfficiencyScanner.cxx:518 AliJEfficiencyScanner.cxx:519 AliJEfficiencyScanner.cxx:520 AliJEfficiencyScanner.cxx:521 AliJEfficiencyScanner.cxx:522 AliJEfficiencyScanner.cxx:523 AliJEfficiencyScanner.cxx:524 AliJEfficiencyScanner.cxx:525 AliJEfficiencyScanner.cxx:526 AliJEfficiencyScanner.cxx:527 AliJEfficiencyScanner.cxx:528 AliJEfficiencyScanner.cxx:529 AliJEfficiencyScanner.cxx:530 AliJEfficiencyScanner.cxx:531 AliJEfficiencyScanner.cxx:532 AliJEfficiencyScanner.cxx:533 AliJEfficiencyScanner.cxx:534 AliJEfficiencyScanner.cxx:535 AliJEfficiencyScanner.cxx:536 AliJEfficiencyScanner.cxx:537 AliJEfficiencyScanner.cxx:538 AliJEfficiencyScanner.cxx:539 AliJEfficiencyScanner.cxx:540 AliJEfficiencyScanner.cxx:541 AliJEfficiencyScanner.cxx:542 AliJEfficiencyScanner.cxx:543 AliJEfficiencyScanner.cxx:544 AliJEfficiencyScanner.cxx:545 AliJEfficiencyScanner.cxx:546 AliJEfficiencyScanner.cxx:547 AliJEfficiencyScanner.cxx:548 AliJEfficiencyScanner.cxx:549 AliJEfficiencyScanner.cxx:550 AliJEfficiencyScanner.cxx:551 AliJEfficiencyScanner.cxx:552 AliJEfficiencyScanner.cxx:553 AliJEfficiencyScanner.cxx:554 AliJEfficiencyScanner.cxx:555 AliJEfficiencyScanner.cxx:556 AliJEfficiencyScanner.cxx:557 AliJEfficiencyScanner.cxx:558 AliJEfficiencyScanner.cxx:559 AliJEfficiencyScanner.cxx:560 AliJEfficiencyScanner.cxx:561 AliJEfficiencyScanner.cxx:562 AliJEfficiencyScanner.cxx:563