#include "TChain.h"
#include "TTree.h"
#include "TLegend.h"
#include "TH1F.h"
#include "TH1I.h"
#include "TH2F.h"
#include "TCanvas.h"
#include "TProfile.h"
#include "TSpline.h"
#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliAODTrack.h"
#include "AliAODMCParticle.h"
#include "AliAODEvent.h"
#include "AliAODInputHandler.h"
#include "AliAnalysisTaskESDfilter.h"
#include "AliAnalysisDataContainer.h"
#include "AliESDVZERO.h"
#include "AliAODVZERO.h"
#include "AliSpectraAODEventCuts.h"
#include "AliSpectraAODTrackCuts.h"
#include <iostream>
using namespace std;
ClassImp(AliSpectraAODEventCuts)
AliSpectraAODEventCuts::AliSpectraAODEventCuts(const char *name) :
TNamed(name, "AOD Event Cuts"),
fAOD(0),
fSelectBit(AliVEvent::kMB),
fCentralityMethod("V0M"),
fTrackBits(1),
fIsMC(0),
fIsLHC10h(1),
fTrackCuts(0),
fIsSelected(0),
fCentralityCutMin(0.),
fCentralityCutMax(999),
fQVectorCutMin(-999.),
fQVectorCutMax(999.),
fVertexCutMin(-10.),
fVertexCutMax(10.),
fMultiplicityCutMin(-999.),
fMultiplicityCutMax(99999.),
fqTPC(-999.),
fqV0C(-999.),
fqV0A(-999.),
fqV0Cx(-999.),
fqV0Ax(-999.),
fqV0Cy(-999.),
fqV0Ay(-999.),
fPsiV0C(-999.),
fPsiV0A(-999.),
fCent(-999.),
fOutput(0),
fCalib(0),
fRun(-1),
fMultV0(0),
fV0Cpol1(-1),
fV0Cpol2(-1),
fV0Cpol3(-1),
fV0Cpol4(-1),
fV0Apol1(-1),
fV0Apol2(-1),
fV0Apol3(-1),
fV0Apol4(-1),
fQvecIntList(0),
fQvecIntegral(0),
fSplineArrayV0A(0),
fSplineArrayV0C(0),
fSplineArrayTPC(0),
fQgenIntegral(0),
fSplineArrayV0Agen(0),
fSplineArrayV0Cgen(0),
fQvecMC(0),
fNch(0),
fQvecCalibType(0),
fV0Aeff(0)
{
fOutput=new TList();
fOutput->SetOwner();
fOutput->SetName("fOutput");
fCalib=new TList();
fCalib->SetOwner();
fCalib->SetName("fCalib");
fQvecIntList=new TList();
fQvecIntList->SetOwner();
fQvecIntList->SetName("fQvecIntList");
TH1I *fHistoCuts = new TH1I("fHistoCuts", "Event Cuts", kNVtxCuts, -0.5, kNVtxCuts - 0.5);
TH1F *fHistoVtxBefSel = new TH1F("fHistoVtxBefSel", "Vtx distr before event selection;z (cm)",500,-15,15);
TH1F *fHistoVtxAftSel = new TH1F("fHistoVtxAftSel", "Vtx distr after event selection;z (cm)",500,-15,15);
TH1F *fHistoEtaBefSel = new TH1F("fHistoEtaBefSel", "Eta distr before event selection;eta",500,-2,2);
TH1F *fHistoEtaAftSel = new TH1F("fHistoEtaAftSel", "Eta distr after event selection;eta",500,-2,2);
TH1F *fHistoNChAftSel = new TH1F("fHistoNChAftSel", "NCh distr after event selection;Nch",2000,-0.5,1999.5);
TH2F *fHistoQVector = new TH2F("fHistoQVector", "QVector with VZERO distribution;centrality;Q vector from EP task",20,0,100,100,0,10);
TH2F *fHistoEP = new TH2F("fHistoEP", "EP with VZERO distribution;centrality;Psi_{EP} from EP task",20,0,100,100,-2,2);
TH2F *fPsiACor = new TH2F("fPsiACor", "EP with VZERO A distribution;centrality;Psi_{EP} VZERO-A",20,0,100,100,-2,2);
TH2F *fPsiCCor = new TH2F("fPsiCCor", "EP with VZERO C distribution;centrality;Psi_{EP} VZERO-C",20,0,100,100,-2,2);
TH2F *fQVecACor = new TH2F("fQVecACor", "QVec VZERO A;centrality;Qvector VZERO-A",20,0,100,100,0,10);
TH2F *fQVecCCor = new TH2F("fQVecCCor", "QVec VZERO C;centrality;Qvector VZERO-C",20,0,100,100,0,10);
TH2F *fV0M = new TH2F("fV0M", "V0 Multiplicity, before correction;V0 sector",64,-.5,63.5,500,0,1000);
TH2F *fV0MCor = new TH2F("fV0MCor", "V0 Multiplicity, after correction;V0 sector",64,-.5,63.5,500,0,1000);
TH2F *fV0Mmc = new TH2F("fV0Mmc", "V0 Multiplicity, before correction;V0 sector",64,-.5,63.5,500,0,1000);
fSplineArrayV0A = new TObjArray();
fSplineArrayV0A->SetOwner();
fSplineArrayV0C = new TObjArray();
fSplineArrayV0C->SetOwner();
fSplineArrayTPC = new TObjArray();
fSplineArrayTPC->SetOwner();
fSplineArrayV0Agen = new TObjArray();
fSplineArrayV0Agen->SetOwner();
fSplineArrayV0Cgen = new TObjArray();
fSplineArrayV0Cgen->SetOwner();
fOutput->Add(fHistoCuts);
fOutput->Add(fHistoVtxBefSel);
fOutput->Add(fHistoVtxAftSel);
fOutput->Add(fHistoEtaBefSel);
fOutput->Add(fHistoEtaAftSel);
fOutput->Add(fHistoNChAftSel);
fOutput->Add(fHistoQVector);
fOutput->Add(fHistoEP);
fOutput->Add(fPsiACor);
fOutput->Add(fPsiCCor);
fOutput->Add(fQVecACor);
fOutput->Add(fQVecCCor);
fOutput->Add(fV0M);
fOutput->Add(fV0MCor);
fOutput->Add(fV0Mmc);
for (Int_t i = 0; i<10; i++){
fMeanQxa2[i] = -1;
fMeanQya2[i] = -1;
fMeanQxc2[i] = -1;
fMeanQyc2[i] = -1;
}
}
Bool_t AliSpectraAODEventCuts::IsSelected(AliAODEvent * aod,AliSpectraAODTrackCuts *trackcuts)
{
fAOD = aod;
fTrackCuts = trackcuts;
((TH1I*)fOutput->FindObject("fHistoCuts"))->Fill(kProcessedEvents);
Bool_t IsPhysSel = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & fSelectBit);
if(!IsPhysSel)return IsPhysSel;
((TH1I*)fOutput->FindObject("fHistoCuts"))->Fill(kPhysSelEvents);
AliAODVertex * vertex = fAOD->GetPrimaryVertex();
if(vertex)((TH1F*)fOutput->FindObject("fHistoVtxBefSel"))->Fill(vertex->GetZ());
fIsSelected =kFALSE;
if(CheckVtxRange() && CheckCentralityCut() && CheckMultiplicityCut()){
fIsSelected=CheckQVectorCut();
}
if(fIsSelected){
((TH1I*)fOutput->FindObject("fHistoCuts"))->Fill(kAcceptedEvents);
if(vertex)((TH1F*)fOutput->FindObject("fHistoVtxAftSel"))->Fill(vertex->GetZ());
}
Int_t Nch=0;
for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++) {
AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
if(!track) AliFatal("Not a standard AOD");
if (!fTrackCuts->IsSelected(track,kFALSE)) continue;
((TH1F*)fOutput->FindObject("fHistoEtaBefSel"))->Fill(track->Eta());
if(fIsSelected){
((TH1F*)fOutput->FindObject("fHistoEtaAftSel"))->Fill(track->Eta());
Nch++;
}
}
fNch = Nch;
if(fIsSelected)((TH1F*)fOutput->FindObject("fHistoNChAftSel"))->Fill(Nch);
return fIsSelected;
}
Bool_t AliSpectraAODEventCuts::CheckVtxRange()
{
AliAODVertex * vertex = fAOD->GetPrimaryVertex();
if (!vertex)
{
((TH1I*)fOutput->FindObject("fHistoCuts"))->Fill(kVtxNoEvent);
return kFALSE;
}
if (vertex->GetZ() > fVertexCutMin && vertex->GetZ() < fVertexCutMax)
{
return kTRUE;
}
((TH1I*)fOutput->FindObject("fHistoCuts"))->Fill(kVtxRange);
return kFALSE;
}
Bool_t AliSpectraAODEventCuts::CheckCentralityCut()
{
fCent=-999.;
fCent=fAOD->GetCentrality()->GetCentralityPercentile(fCentralityMethod.Data());
if ( (fCent <= fCentralityCutMax) && (fCent >= fCentralityCutMin) ) return kTRUE;
((TH1I*)fOutput->FindObject("fHistoCuts"))->Fill(kVtxCentral);
return kFALSE;
}
Bool_t AliSpectraAODEventCuts::CheckMultiplicityCut()
{
Int_t Ncharged=0;
for (Int_t iTracks = 0; iTracks < fAOD->GetNumberOfTracks(); iTracks++){
AliAODTrack* track = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iTracks));
if(!track) AliFatal("Not a standard AOD");
if (!fTrackCuts->IsSelected(track,kFALSE)) continue;
Ncharged++;
}
if(Ncharged>fMultiplicityCutMin && Ncharged<fMultiplicityCutMax)return kTRUE;
return kFALSE;
}
Bool_t AliSpectraAODEventCuts::CheckQVectorCut()
{
Double_t qVZERO = -999.;
Double_t psi=-999.;
if(fIsLHC10h){
qVZERO=CalculateQVectorLHC10h();
psi=fPsiV0A;
}else{
qVZERO=CalculateQVector();
psi=fPsiV0A;
}
fqTPC=CalculateQVectorTPC();
if(qVZERO<fQVectorCutMin || qVZERO>fQVectorCutMax)return kFALSE;
Double_t cent=fAOD->GetCentrality()->GetCentralityPercentile(fCentralityMethod.Data());
((TH2F*)fOutput->FindObject("fHistoQVector"))->Fill(cent,qVZERO);
((TH2F*)fOutput->FindObject("fHistoEP"))->Fill(cent,psi);
((TH1I*)fOutput->FindObject("fHistoCuts"))->Fill(kQVector);
return kTRUE;
}
Double_t AliSpectraAODEventCuts::CalculateQVectorLHC10h(){
Int_t run = fAOD->GetRunNumber();
if(run != fRun){
if(OpenInfoCalbration(run))fRun=run;
else{
fqV0C=-999.;
fqV0A=-999.;
return -999.;
}
}
Double_t Qxa2 = 0, Qya2 = 0;
Double_t Qxc2 = 0, Qyc2 = 0;
Double_t sumMc = 0, sumMa = 0;
AliAODVZERO* aodV0 = fAOD->GetVZEROData();
for (Int_t iv0 = 0; iv0 < 64; iv0++) {
Double_t phiV0 = TMath::PiOver4()*(0.5 + iv0 % 8);
Float_t multv0 = aodV0->GetMultiplicity(iv0);
((TH2F*)fOutput->FindObject("fV0M"))->Fill(iv0,multv0);
if (iv0 < 32){
Double_t multCorC = -10;
if (iv0 < 8)
multCorC = multv0*fV0Cpol1/fMultV0->GetBinContent(iv0+1);
else if (iv0 >= 8 && iv0 < 16)
multCorC = multv0*fV0Cpol2/fMultV0->GetBinContent(iv0+1);
else if (iv0 >= 16 && iv0 < 24)
multCorC = multv0*fV0Cpol3/fMultV0->GetBinContent(iv0+1);
else if (iv0 >= 24 && iv0 < 32)
multCorC = multv0*fV0Cpol4/fMultV0->GetBinContent(iv0+1);
if (multCorC < 0){
cout<<"Problem with multiplicity in V0C"<<endl;
fqV0C=-999.;
fqV0A=-999.;
return -999.;
}
Qxc2 += TMath::Cos(2*phiV0) * multCorC;
Qyc2 += TMath::Sin(2*phiV0) * multCorC;
sumMc += multCorC;
((TH2F*)fOutput->FindObject("fV0MCor"))->Fill(iv0,multCorC);
} else {
Double_t multCorA = -10;
if (iv0 >= 32 && iv0 < 40)
multCorA = multv0*fV0Apol1/fMultV0->GetBinContent(iv0+1);
else if (iv0 >= 40 && iv0 < 48)
multCorA = multv0*fV0Apol2/fMultV0->GetBinContent(iv0+1);
else if (iv0 >= 48 && iv0 < 56)
multCorA = multv0*fV0Apol3/fMultV0->GetBinContent(iv0+1);
else if (iv0 >= 56 && iv0 < 64)
multCorA = multv0*fV0Apol4/fMultV0->GetBinContent(iv0+1);
if (multCorA < 0){
cout<<"Problem with multiplicity in V0A"<<endl;
fqV0C=-999.;
fqV0A=-999.;
return -999.;
}
Qxa2 += TMath::Cos(2*phiV0) * multCorA;
Qya2 += TMath::Sin(2*phiV0) * multCorA;
sumMa += multCorA;
((TH2F*)fOutput->FindObject("fV0MCor"))->Fill(iv0,multCorA);
}
}
Short_t centrV0 = GetCentrCode(fAOD);
Double_t Qxamean2 = 0.;
Double_t Qyamean2 = 0.;
Double_t Qxcmean2 = 0.;
Double_t Qycmean2 = 0.;
if(centrV0!=-1){
Qxamean2 = fMeanQxa2[centrV0];
Qyamean2 = fMeanQya2[centrV0];
Qxcmean2 = fMeanQxc2[centrV0];
Qycmean2 = fMeanQyc2[centrV0];
}
Double_t QxaCor2 = Qxa2 - Qxamean2*sumMa;
Double_t QyaCor2 = Qya2 - Qyamean2*sumMa;
Double_t QxcCor2 = Qxc2 - Qxcmean2*sumMc;
Double_t QycCor2 = Qyc2 - Qycmean2*sumMc;
fPsiV0A = TMath::ATan2(QyaCor2, QxaCor2)/2.;
fPsiV0C = TMath::ATan2(QycCor2, QxcCor2)/2.;
((TH2F*)fOutput->FindObject("fPsiACor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fPsiV0A);
((TH2F*)fOutput->FindObject("fPsiCCor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fPsiV0C);
fqV0A = TMath::Sqrt((QxaCor2*QxaCor2 + QyaCor2*QyaCor2)/sumMa);
fqV0C = TMath::Sqrt((QxcCor2*QxcCor2 + QycCor2*QycCor2)/sumMc);
fqV0Ax = QxaCor2*TMath::Sqrt(1./sumMa);
fqV0Cx = QxcCor2*TMath::Sqrt(1./sumMc);
fqV0Ay = QyaCor2*TMath::Sqrt(1./sumMa);
fqV0Cy = QycCor2*TMath::Sqrt(1./sumMc);
((TH2F*)fOutput->FindObject("fQVecACor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fqV0A);
((TH2F*)fOutput->FindObject("fQVecCCor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fqV0C);
return fqV0A;
}
Double_t AliSpectraAODEventCuts::CalculateQVectorTPC(Double_t etaMin,Double_t etaMax){
Double_t Qx2 = 0, Qy2 = 0;
Int_t mult = 0;
for(Int_t iT = 0; iT < fAOD->GetNumberOfTracks(); iT++) {
AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(iT));
if(!aodTrack) AliFatal("Not a standard AOD");
if (!aodTrack->TestFilterBit(128)) continue;
if (aodTrack->Eta() <etaMin || aodTrack->Eta() > etaMax)continue;
mult++;
Qx2 += TMath::Cos(2*aodTrack->Phi());
Qy2 += TMath::Sin(2*aodTrack->Phi());
}
if(mult!=0)fqTPC= TMath::Sqrt((Qx2*Qx2 + Qy2*Qy2)/mult);
return fqTPC;
}
Double_t AliSpectraAODEventCuts::CalculateQVector(){
Double_t Qxa2 = 0, Qya2 = 0;
Double_t Qxc2 = 0, Qyc2 = 0;
AliAODVZERO* aodV0 = fAOD->GetVZEROData();
for (Int_t iv0 = 0; iv0 < 64; iv0++) {
Float_t multv0 = aodV0->GetMultiplicity(iv0);
((TH2F*)fOutput->FindObject("fV0M"))->Fill(iv0,multv0);
}
fPsiV0A = fAOD->GetEventplane()->CalculateVZEROEventPlane(fAOD,8,2,Qxa2,Qya2);
fPsiV0C = fAOD->GetEventplane()->CalculateVZEROEventPlane(fAOD,9,2,Qxc2,Qyc2);
((TH2F*)fOutput->FindObject("fPsiACor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fPsiV0A);
((TH2F*)fOutput->FindObject("fPsiCCor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fPsiV0C);
if(fIsMC){
Double_t multA = aodV0->GetMTotV0A();
fqV0A = TMath::Sqrt((Qxa2*Qxa2 + Qya2*Qya2)/multA);
Double_t multC = aodV0->GetMTotV0C();
fqV0C = TMath::Sqrt((Qxc2*Qxc2 + Qyc2*Qyc2)/multC);
fqV0Ax = Qxa2*TMath::Sqrt(1./multA);
fqV0Cx = Qxc2*TMath::Sqrt(1./multC);
fqV0Ay = Qya2*TMath::Sqrt(1./multA);
fqV0Cy = Qyc2*TMath::Sqrt(1./multC);
} else {
fqV0A = TMath::Sqrt((Qxa2*Qxa2 + Qya2*Qya2));
fqV0C = TMath::Sqrt((Qxc2*Qxc2 + Qyc2*Qyc2));
fqV0Ax = Qxa2;
fqV0Cx = Qxc2;
fqV0Ay = Qya2;
fqV0Cy = Qyc2;
}
((TH2F*)fOutput->FindObject("fQVecACor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fqV0A);
((TH2F*)fOutput->FindObject("fQVecCCor"))->Fill((Float_t)fAOD->GetCentrality()->GetCentralityPercentile("V0M"), fqV0C);
return fqV0A;
}
Short_t AliSpectraAODEventCuts::GetCentrCode(AliVEvent* ev)
{
Short_t centrCode = -1;
AliCentrality* centrality = 0;
AliAODEvent* aod = (AliAODEvent*)ev;
centrality = ((AliVAODHeader*)aod->GetHeader())->GetCentralityP();
Float_t centV0 = centrality->GetCentralityPercentile("V0M");
Float_t centTrk = centrality->GetCentralityPercentile("TRK");
if (TMath::Abs(centV0 - centTrk) < 5.0 && centV0 <= 80 && centV0 > 0){
if ((centV0 > 0) && (centV0 <= 5.0))
centrCode = 0;
else if ((centV0 > 5.0) && (centV0 <= 10.0))
centrCode = 1;
else if ((centV0 > 10.0) && (centV0 <= 20.0))
centrCode = 2;
else if ((centV0 > 20.0) && (centV0 <= 30.0))
centrCode = 3;
else if ((centV0 > 30.0) && (centV0 <= 40.0))
centrCode = 4;
else if ((centV0 > 40.0) && (centV0 <= 50.0))
centrCode = 5;
else if ((centV0 > 50.0) && (centV0 <= 60.0))
centrCode = 6;
else if ((centV0 > 60.0) && (centV0 <= 70.0))
centrCode = 7;
else if ((centV0 > 70.0) && (centV0 <= 80.0))
centrCode = 8;
}
return centrCode;
}
void AliSpectraAODEventCuts::PrintCuts()
{
cout << "Event Stats" << endl;
cout << " > Trigger Selection: " << fSelectBit << endl;
cout << " > Centrality estimator: " << fCentralityMethod << endl;
cout << " > Number of accepted events: " << NumberOfEvents() << endl;
cout << " > Number of processed events: " << NumberOfProcessedEvents() << endl;
cout << " > Number of PhysSel events: " << NumberOfPhysSelEvents() << endl;
cout << " > Vertex out of range: " << ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kVtxRange + 1) << endl;
cout << " > Events cut by centrality: " << ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kVtxCentral + 1) << endl;
cout << " > Events without vertex: " << ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kVtxNoEvent + 1) << endl;
cout << " > QVector cut: " << ((TH1I*)fOutput->FindObject("fHistoCuts"))->GetBinContent(kQVector + 1) << endl;
cout << " > Track type used for the QVector calculation: " << fTrackBits << endl;
cout << " > QRange: [" << fQVectorCutMin <<"," <<fQVectorCutMax<<"]"<< endl;
cout << " > Vertex: [" << fVertexCutMin <<"," <<fVertexCutMax<<"]"<< endl;
cout << " > Multiplicity: [" << fMultiplicityCutMin <<"," <<fMultiplicityCutMax<<"]"<< endl;
cout << " > Centrality: [" << fCentralityCutMin <<"," <<fCentralityCutMax<<"]"<< endl;
}
Bool_t AliSpectraAODEventCuts::OpenInfoCalbration(Int_t run)
{
AliOADBContainer* cont = (AliOADBContainer*) fCalib->FindObject("hMultV0BefCorr");
if(!cont){
printf("OADB object hMultV0BefCorr is not available in the file\n");
return 0;
}
if(!(cont->GetObject(run))){
printf("OADB object hMultV0BefCorr is not available for run %i\n",run);
return 0;
}
fMultV0 = ((TH2F*) cont->GetObject(run))->ProfileX();
TF1* fpolc1 = new TF1("fpolc1","pol0", 0, 7);
fMultV0->Fit(fpolc1, "RN");
fV0Cpol1 = fpolc1->GetParameter(0);
TF1* fpolc2 = new TF1("fpolc2","pol0", 8, 15);
fMultV0->Fit(fpolc2, "RN");
fV0Cpol2 = fpolc2->GetParameter(0);
TF1* fpolc3 = new TF1("fpolc3","pol0", 16, 23);
fMultV0->Fit(fpolc3, "RN");
fV0Cpol3 = fpolc3->GetParameter(0);
TF1* fpolc4 = new TF1("fpolc4","pol0", 24, 31);
fMultV0->Fit(fpolc4, "RN");
fV0Cpol4 = fpolc4->GetParameter(0);
TF1* fpola1 = new TF1("fpola1","pol0", 32, 39);
fMultV0->Fit(fpola1, "RN");
fV0Apol1 = fpola1->GetParameter(0);
TF1* fpola2 = new TF1("fpola2","pol0", 40, 47);
fMultV0->Fit(fpola2, "RN");
fV0Apol2 = fpola2->GetParameter(0);
TF1* fpola3 = new TF1("fpola3","pol0", 48, 55);
fMultV0->Fit(fpola3, "RN");
fV0Apol3 = fpola3->GetParameter(0);
TF1* fpola4 = new TF1("fpola4","pol0", 56, 63);
fMultV0->Fit(fpola4, "RN");
fV0Apol4 = fpola4->GetParameter(0);
for(Int_t i=0; i < 10; i++){
char nameQxa2[100];
snprintf(nameQxa2,100, "hQxa2m_%i", i);
char nameQya2[100];
snprintf(nameQya2,100, "hQya2m_%i", i);
char nameQxc2[100];
snprintf(nameQxc2,100, "hQxc2m_%i", i);
char nameQyc2[100];
snprintf(nameQyc2,100, "hQyc2m_%i", i);
AliOADBContainer* contQxa2 = (AliOADBContainer*) fCalib->FindObject(nameQxa2);
if(!contQxa2){
printf("OADB object %s is not available in the file\n", nameQxa2);
return 0;
}
if(!(contQxa2->GetObject(run))){
printf("OADB object %s is not available for run %i\n", nameQxa2, run);
return 0;
}
fMeanQxa2[i] = ((TH1F*) contQxa2->GetObject(run))->GetMean();
AliOADBContainer* contQya2 = (AliOADBContainer*) fCalib->FindObject(nameQya2);
if(!contQya2){
printf("OADB object %s is not available in the file\n", nameQya2);
return 0;
}
if(!(contQya2->GetObject(run))){
printf("OADB object %s is not available for run %i\n", nameQya2, run);
return 0;
}
fMeanQya2[i] = ((TH1F*) contQya2->GetObject(run))->GetMean();
AliOADBContainer* contQxc2 = (AliOADBContainer*) fCalib->FindObject(nameQxc2);
if(!contQxc2){
printf("OADB object %s is not available in the file\n", nameQxc2);
return 0;
}
if(!(contQxc2->GetObject(run))){
printf("OADB object %s is not available for run %i\n", nameQxc2, run);
return 0;
}
fMeanQxc2[i] = ((TH1F*) contQxc2->GetObject(run))->GetMean();
AliOADBContainer* contQyc2 = (AliOADBContainer*) fCalib->FindObject(nameQyc2);
if(!contQyc2){
printf("OADB object %s is not available in the file\n", nameQyc2);
return 0;
}
if(!(contQyc2->GetObject(run))){
printf("OADB object %s is not available for run %i\n", nameQyc2, run);
return 0;
}
fMeanQyc2[i] = ((TH1F*) contQyc2->GetObject(run))->GetMean();
}
return 1;
}
Long64_t AliSpectraAODEventCuts::Merge(TCollection* list)
{
AliInfo("Merging");
if (!list)
return 0;
if (list->IsEmpty())
return 1;
TIterator* iter = list->MakeIterator();
TObject* obj;
TList collections;
Int_t count = 0;
while ((obj = iter->Next())) {
AliSpectraAODEventCuts* entry = dynamic_cast<AliSpectraAODEventCuts*> (obj);
if (entry == 0)
continue;
TList * l = entry->GetOutputList();
collections.Add(l);
count++;
}
fOutput->Merge(&collections);
delete iter;
return count+1;
}
Double_t AliSpectraAODEventCuts::GetQvecPercentile(Int_t v0side){
if(fCent>90.) return -999.;
if(v0side==0){ if(fqV0A== -999.) return -999.; }
if(v0side==1){ if(fqV0C== -999.) return -999.; }
if(v0side==2){ if(fqTPC== -999.) return -999.; }
fQvecIntegral = 0x0;
if(v0side==0){ fQvecIntegral = (TH2D*)fQvecIntList->FindObject("VZEROA"); }
if(v0side==1){ fQvecIntegral = (TH2D*)fQvecIntList->FindObject("VZEROC"); }
if(v0side==2){ fQvecIntegral = (TH2D*)fQvecIntList->FindObject("TPC"); }
Int_t ic = -999;
if(fQvecCalibType==1){
if(fNch<0.) return -999.;
ic = GetNchBin(fQvecIntegral);
} else ic = (Int_t)fCent;
TH1D *h1D = (TH1D*)fQvecIntegral->ProjectionY("h1D",ic+1,ic+1);
TSpline *spline = 0x0;
if(v0side==0){
if( CheckSplineArray(fSplineArrayV0A, ic) ) {
spline = (TSpline*)fSplineArrayV0A->At(ic);
} else {
spline = new TSpline3(h1D,"sp3");
fSplineArrayV0A->AddAtAndExpand(spline,ic);
}
}
else if(v0side==1){
if( CheckSplineArray(fSplineArrayV0C, ic) ) {
spline = (TSpline*)fSplineArrayV0C->At(ic);
} else {
spline = new TSpline3(h1D,"sp3");
fSplineArrayV0C->AddAtAndExpand(spline,ic);
}
}
else if(v0side==2){
if( CheckSplineArray(fSplineArrayTPC, ic) ) {
spline = (TSpline*)fSplineArrayTPC->At(ic);
} else {
spline = new TSpline3(h1D,"sp3");
fSplineArrayTPC->AddAtAndExpand(spline,ic);
}
}
Double_t percentile = -999.;
if(v0side==0){ percentile = 100*spline->Eval(fqV0A); }
if(v0side==1){ percentile = 100*spline->Eval(fqV0C); }
if(v0side==2){ percentile = 100*spline->Eval(fqTPC); }
if(percentile>100. || percentile<0.) return -999.;
return percentile;
}
Double_t AliSpectraAODEventCuts::CalculateQVectorMC(Int_t v0side, Int_t type=1){
if(!fIsMC) return -999.;
if(type==1){
fV0Aeff = 0x0;
fV0Aeff = (TH1F*)fQvecIntList->FindObject("vzeroa_efficiency_prim_plus_sec_over_gen");
if(!fV0Aeff) return -999.;
}
TClonesArray *arrayMC = (TClonesArray*) fAOD->GetList()->FindObject(AliAODMCParticle::StdBranchName());
if (!arrayMC) AliFatal("Error: MC particles branch not found!\n");
Double_t Qx2mc = 0., Qy2mc = 0.;
Double_t mult2mc = 0;
Int_t nMC = arrayMC->GetEntries();
if(type==0){
for (Int_t iMC = 0; iMC < nMC; iMC++){
AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(iMC);
if(!partMC->Charge()) continue;
if( CheckVZEROacceptance(partMC->Eta()) != v0side ) continue;
Qx2mc += TMath::Cos(2.*partMC->Phi());
Qy2mc += TMath::Sin(2.*partMC->Phi());
mult2mc++;
}
}
else if(type==1){
Double_t multv0mc[64];
for(Int_t iCh=0;iCh<64;iCh++) multv0mc[iCh]=0;
for (Int_t iMC = 0; iMC < nMC; iMC++){
AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(iMC);
if(!partMC->Charge()) continue;
if( CheckVZEROacceptance(partMC->Eta()) != v0side ) continue;
Int_t iv0 = CheckVZEROchannel(v0side, partMC->Eta(), partMC->Phi());
multv0mc[iv0] += fV0Aeff->GetFunction("f")->Eval(partMC->Pt());
}
Int_t firstCh=-1,lastCh=-1;
if (v0side == 0) {
firstCh = 32;
lastCh = 64;
}
else if (v0side == 1) {
firstCh = 0;
lastCh = 32;
}
for(Int_t iCh = firstCh; iCh < lastCh; ++iCh) {
Double_t phi = TMath::Pi()/8. + TMath::Pi()/4.*(iCh%8);
Double_t mult = multv0mc[iCh];
Qx2mc += mult*TMath::Cos(2*phi);
Qy2mc += mult*TMath::Sin(2*phi);
mult2mc += mult;
((TH2F*)fOutput->FindObject("fV0Mmc"))->Fill(iCh,multv0mc[iCh]);
}
}
fQvecMC = TMath::Sqrt((Qx2mc*Qx2mc + Qy2mc*Qy2mc)/mult2mc);
return fQvecMC;
}
Int_t AliSpectraAODEventCuts::CheckVZEROchannel(Int_t vzeroside, Double_t eta, Double_t phi){
Int_t ring = -1.;
if ( vzeroside == 0){
if (eta > 4.5 && eta <= 5.1 ) ring = 0;
if (eta > 3.9 && eta <= 4.5 ) ring = 1;
if (eta > 3.4 && eta <= 3.9 ) ring = 2;
if (eta > 2.8 && eta <= 3.4 ) ring = 3;
} else if (vzeroside == 1){
if (eta > -3.7 && eta <= -3.2 ) ring = 0;
if (eta > -3.2 && eta <= -2.7 ) ring = 1;
if (eta > -2.7 && eta <= -2.2 ) ring = 2;
if (eta > -2.2 && eta <= -1.7 ) ring = 3;
}
Int_t phisector= -1;
if ( phi > 0. && phi <= TMath::Pi()/4. ) phisector = 0;
else if (phi > TMath::Pi()/4. && phi <= TMath::Pi()/2.) phisector = 1;
else if (phi > TMath::Pi()/2 && phi <= (3./4.)*TMath::Pi() ) phisector =2;
else if (phi > (3./4.)*TMath::Pi() && phi <= TMath::Pi() ) phisector = 3;
else if (phi > TMath::Pi() && phi <= (5./4.)*TMath::Pi() ) phisector = 4;
else if (phi > (5./4.)*TMath::Pi() && phi <= (3./2.)*TMath::Pi() ) phisector = 5;
else if (phi > (3./2.)*TMath::Pi() && phi <= (7./4.)*TMath::Pi() ) phisector = 6;
else if (phi > (7./4.)*TMath::Pi() && phi <= TMath::TwoPi() ) phisector = 7;
if (vzeroside ==0) return Int_t(32+(phisector+(ring*8.)));
if (vzeroside ==1) return Int_t(phisector+(ring*8.));
else return -999.;
}
Int_t AliSpectraAODEventCuts::CheckVZEROacceptance(Double_t eta){
if(eta > 2.8 && eta < 5.1) return 0;
else if (eta > -3.7 && eta < -1.7) return 1;
return -999.;
}
Double_t AliSpectraAODEventCuts::GetQvecPercentileMC(Int_t v0side, Int_t type=1){
if(fCent>90.) return -999.;
Double_t qvec = CalculateQVectorMC(v0side, type);
if(qvec==-999.) return -999.;
fQgenIntegral = 0x0;
if(type==0){
if(v0side==0){ fQgenIntegral = (TH2D*)fQvecIntList->FindObject("VZEROAgen"); }
if(v0side==1){ fQgenIntegral = (TH2D*)fQvecIntList->FindObject("VZEROCgen"); }
} else if (type==1){
if(v0side==0){ fQgenIntegral = (TH2D*)fQvecIntList->FindObject("VZEROAgen_vzero"); }
if(v0side==1){ fQgenIntegral = (TH2D*)fQvecIntList->FindObject("VZEROCgen_vzero"); }
}
Int_t ic = -999;
if(fQvecCalibType==1){
if(fNch<0.) return -999.;
ic = GetNchBin(fQgenIntegral);
} else ic = (Int_t)fCent;
TH1D *h1D = (TH1D*)fQgenIntegral->ProjectionY("h1Dgen",ic+1,ic+1);
TSpline *spline = 0x0;
if(v0side==0){
if( CheckSplineArray(fSplineArrayV0Agen, ic) ) {
spline = (TSpline*)fSplineArrayV0Agen->At(ic);
} else {
spline = new TSpline3(h1D,"sp3");
fSplineArrayV0Agen->AddAtAndExpand(spline,ic);
}
}
else if(v0side==1){
if( CheckSplineArray(fSplineArrayV0Cgen, ic) ) {
spline = (TSpline*)fSplineArrayV0Cgen->At(ic);
} else {
spline = new TSpline3(h1D,"sp3");
fSplineArrayV0Cgen->AddAtAndExpand(spline,ic);
}
}
Double_t percentile = 100*spline->Eval(qvec);
if(percentile>100. || percentile<0.) return -999.;
return percentile;
}
Bool_t AliSpectraAODEventCuts::CheckSplineArray(TObjArray * splarr, Int_t n){
if(splarr->GetSize()<n) return kFALSE;
if(!splarr->At(n)) return kFALSE;
return kTRUE;
}
Int_t AliSpectraAODEventCuts::GetNchBin(TH2D * h){
Double_t xmax = h->GetXaxis()->GetXmax();
if(fNch>xmax) return (Int_t)h->GetNbinsX();
return (fNch*h->GetNbinsX())/h->GetXaxis()->GetXmax();
}
AliSpectraAODEventCuts.cxx:1 AliSpectraAODEventCuts.cxx:2 AliSpectraAODEventCuts.cxx:3 AliSpectraAODEventCuts.cxx:4 AliSpectraAODEventCuts.cxx:5 AliSpectraAODEventCuts.cxx:6 AliSpectraAODEventCuts.cxx:7 AliSpectraAODEventCuts.cxx:8 AliSpectraAODEventCuts.cxx:9 AliSpectraAODEventCuts.cxx:10 AliSpectraAODEventCuts.cxx:11 AliSpectraAODEventCuts.cxx:12 AliSpectraAODEventCuts.cxx:13 AliSpectraAODEventCuts.cxx:14 AliSpectraAODEventCuts.cxx:15 AliSpectraAODEventCuts.cxx:16 AliSpectraAODEventCuts.cxx:17 AliSpectraAODEventCuts.cxx:18 AliSpectraAODEventCuts.cxx:19 AliSpectraAODEventCuts.cxx:20 AliSpectraAODEventCuts.cxx:21 AliSpectraAODEventCuts.cxx:22 AliSpectraAODEventCuts.cxx:23 AliSpectraAODEventCuts.cxx:24 AliSpectraAODEventCuts.cxx:25 AliSpectraAODEventCuts.cxx:26 AliSpectraAODEventCuts.cxx:27 AliSpectraAODEventCuts.cxx:28 AliSpectraAODEventCuts.cxx:29 AliSpectraAODEventCuts.cxx:30 AliSpectraAODEventCuts.cxx:31 AliSpectraAODEventCuts.cxx:32 AliSpectraAODEventCuts.cxx:33 AliSpectraAODEventCuts.cxx:34 AliSpectraAODEventCuts.cxx:35 AliSpectraAODEventCuts.cxx:36 AliSpectraAODEventCuts.cxx:37 AliSpectraAODEventCuts.cxx:38 AliSpectraAODEventCuts.cxx:39 AliSpectraAODEventCuts.cxx:40 AliSpectraAODEventCuts.cxx:41 AliSpectraAODEventCuts.cxx:42 AliSpectraAODEventCuts.cxx:43 AliSpectraAODEventCuts.cxx:44 AliSpectraAODEventCuts.cxx:45 AliSpectraAODEventCuts.cxx:46 AliSpectraAODEventCuts.cxx:47 AliSpectraAODEventCuts.cxx:48 AliSpectraAODEventCuts.cxx:49 AliSpectraAODEventCuts.cxx:50 AliSpectraAODEventCuts.cxx:51 AliSpectraAODEventCuts.cxx:52 AliSpectraAODEventCuts.cxx:53 AliSpectraAODEventCuts.cxx:54 AliSpectraAODEventCuts.cxx:55 AliSpectraAODEventCuts.cxx:56 AliSpectraAODEventCuts.cxx:57 AliSpectraAODEventCuts.cxx:58 AliSpectraAODEventCuts.cxx:59 AliSpectraAODEventCuts.cxx:60 AliSpectraAODEventCuts.cxx:61 AliSpectraAODEventCuts.cxx:62 AliSpectraAODEventCuts.cxx:63 AliSpectraAODEventCuts.cxx:64 AliSpectraAODEventCuts.cxx:65 AliSpectraAODEventCuts.cxx:66 AliSpectraAODEventCuts.cxx:67 AliSpectraAODEventCuts.cxx:68 AliSpectraAODEventCuts.cxx:69 AliSpectraAODEventCuts.cxx:70 AliSpectraAODEventCuts.cxx:71 AliSpectraAODEventCuts.cxx:72 AliSpectraAODEventCuts.cxx:73 AliSpectraAODEventCuts.cxx:74 AliSpectraAODEventCuts.cxx:75 AliSpectraAODEventCuts.cxx:76 AliSpectraAODEventCuts.cxx:77 AliSpectraAODEventCuts.cxx:78 AliSpectraAODEventCuts.cxx:79 AliSpectraAODEventCuts.cxx:80 AliSpectraAODEventCuts.cxx:81 AliSpectraAODEventCuts.cxx:82 AliSpectraAODEventCuts.cxx:83 AliSpectraAODEventCuts.cxx:84 AliSpectraAODEventCuts.cxx:85 AliSpectraAODEventCuts.cxx:86 AliSpectraAODEventCuts.cxx:87 AliSpectraAODEventCuts.cxx:88 AliSpectraAODEventCuts.cxx:89 AliSpectraAODEventCuts.cxx:90 AliSpectraAODEventCuts.cxx:91 AliSpectraAODEventCuts.cxx:92 AliSpectraAODEventCuts.cxx:93 AliSpectraAODEventCuts.cxx:94 AliSpectraAODEventCuts.cxx:95 AliSpectraAODEventCuts.cxx:96 AliSpectraAODEventCuts.cxx:97 AliSpectraAODEventCuts.cxx:98 AliSpectraAODEventCuts.cxx:99 AliSpectraAODEventCuts.cxx:100 AliSpectraAODEventCuts.cxx:101 AliSpectraAODEventCuts.cxx:102 AliSpectraAODEventCuts.cxx:103 AliSpectraAODEventCuts.cxx:104 AliSpectraAODEventCuts.cxx:105 AliSpectraAODEventCuts.cxx:106 AliSpectraAODEventCuts.cxx:107 AliSpectraAODEventCuts.cxx:108 AliSpectraAODEventCuts.cxx:109 AliSpectraAODEventCuts.cxx:110 AliSpectraAODEventCuts.cxx:111 AliSpectraAODEventCuts.cxx:112 AliSpectraAODEventCuts.cxx:113 AliSpectraAODEventCuts.cxx:114 AliSpectraAODEventCuts.cxx:115 AliSpectraAODEventCuts.cxx:116 AliSpectraAODEventCuts.cxx:117 AliSpectraAODEventCuts.cxx:118 AliSpectraAODEventCuts.cxx:119 AliSpectraAODEventCuts.cxx:120 AliSpectraAODEventCuts.cxx:121 AliSpectraAODEventCuts.cxx:122 AliSpectraAODEventCuts.cxx:123 AliSpectraAODEventCuts.cxx:124 AliSpectraAODEventCuts.cxx:125 AliSpectraAODEventCuts.cxx:126 AliSpectraAODEventCuts.cxx:127 AliSpectraAODEventCuts.cxx:128 AliSpectraAODEventCuts.cxx:129 AliSpectraAODEventCuts.cxx:130 AliSpectraAODEventCuts.cxx:131 AliSpectraAODEventCuts.cxx:132 AliSpectraAODEventCuts.cxx:133 AliSpectraAODEventCuts.cxx:134 AliSpectraAODEventCuts.cxx:135 AliSpectraAODEventCuts.cxx:136 AliSpectraAODEventCuts.cxx:137 AliSpectraAODEventCuts.cxx:138 AliSpectraAODEventCuts.cxx:139 AliSpectraAODEventCuts.cxx:140 AliSpectraAODEventCuts.cxx:141 AliSpectraAODEventCuts.cxx:142 AliSpectraAODEventCuts.cxx:143 AliSpectraAODEventCuts.cxx:144 AliSpectraAODEventCuts.cxx:145 AliSpectraAODEventCuts.cxx:146 AliSpectraAODEventCuts.cxx:147 AliSpectraAODEventCuts.cxx:148 AliSpectraAODEventCuts.cxx:149 AliSpectraAODEventCuts.cxx:150 AliSpectraAODEventCuts.cxx:151 AliSpectraAODEventCuts.cxx:152 AliSpectraAODEventCuts.cxx:153 AliSpectraAODEventCuts.cxx:154 AliSpectraAODEventCuts.cxx:155 AliSpectraAODEventCuts.cxx:156 AliSpectraAODEventCuts.cxx:157 AliSpectraAODEventCuts.cxx:158 AliSpectraAODEventCuts.cxx:159 AliSpectraAODEventCuts.cxx:160 AliSpectraAODEventCuts.cxx:161 AliSpectraAODEventCuts.cxx:162 AliSpectraAODEventCuts.cxx:163 AliSpectraAODEventCuts.cxx:164 AliSpectraAODEventCuts.cxx:165 AliSpectraAODEventCuts.cxx:166 AliSpectraAODEventCuts.cxx:167 AliSpectraAODEventCuts.cxx:168 AliSpectraAODEventCuts.cxx:169 AliSpectraAODEventCuts.cxx:170 AliSpectraAODEventCuts.cxx:171 AliSpectraAODEventCuts.cxx:172 AliSpectraAODEventCuts.cxx:173 AliSpectraAODEventCuts.cxx:174 AliSpectraAODEventCuts.cxx:175 AliSpectraAODEventCuts.cxx:176 AliSpectraAODEventCuts.cxx:177 AliSpectraAODEventCuts.cxx:178 AliSpectraAODEventCuts.cxx:179 AliSpectraAODEventCuts.cxx:180 AliSpectraAODEventCuts.cxx:181 AliSpectraAODEventCuts.cxx:182 AliSpectraAODEventCuts.cxx:183 AliSpectraAODEventCuts.cxx:184 AliSpectraAODEventCuts.cxx:185 AliSpectraAODEventCuts.cxx:186 AliSpectraAODEventCuts.cxx:187 AliSpectraAODEventCuts.cxx:188 AliSpectraAODEventCuts.cxx:189 AliSpectraAODEventCuts.cxx:190 AliSpectraAODEventCuts.cxx:191 AliSpectraAODEventCuts.cxx:192 AliSpectraAODEventCuts.cxx:193 AliSpectraAODEventCuts.cxx:194 AliSpectraAODEventCuts.cxx:195 AliSpectraAODEventCuts.cxx:196 AliSpectraAODEventCuts.cxx:197 AliSpectraAODEventCuts.cxx:198 AliSpectraAODEventCuts.cxx:199 AliSpectraAODEventCuts.cxx:200 AliSpectraAODEventCuts.cxx:201 AliSpectraAODEventCuts.cxx:202 AliSpectraAODEventCuts.cxx:203 AliSpectraAODEventCuts.cxx:204 AliSpectraAODEventCuts.cxx:205 AliSpectraAODEventCuts.cxx:206 AliSpectraAODEventCuts.cxx:207 AliSpectraAODEventCuts.cxx:208 AliSpectraAODEventCuts.cxx:209 AliSpectraAODEventCuts.cxx:210 AliSpectraAODEventCuts.cxx:211 AliSpectraAODEventCuts.cxx:212 AliSpectraAODEventCuts.cxx:213 AliSpectraAODEventCuts.cxx:214 AliSpectraAODEventCuts.cxx:215 AliSpectraAODEventCuts.cxx:216 AliSpectraAODEventCuts.cxx:217 AliSpectraAODEventCuts.cxx:218 AliSpectraAODEventCuts.cxx:219 AliSpectraAODEventCuts.cxx:220 AliSpectraAODEventCuts.cxx:221 AliSpectraAODEventCuts.cxx:222 AliSpectraAODEventCuts.cxx:223 AliSpectraAODEventCuts.cxx:224 AliSpectraAODEventCuts.cxx:225 AliSpectraAODEventCuts.cxx:226 AliSpectraAODEventCuts.cxx:227 AliSpectraAODEventCuts.cxx:228 AliSpectraAODEventCuts.cxx:229 AliSpectraAODEventCuts.cxx:230 AliSpectraAODEventCuts.cxx:231 AliSpectraAODEventCuts.cxx:232 AliSpectraAODEventCuts.cxx:233 AliSpectraAODEventCuts.cxx:234 AliSpectraAODEventCuts.cxx:235 AliSpectraAODEventCuts.cxx:236 AliSpectraAODEventCuts.cxx:237 AliSpectraAODEventCuts.cxx:238 AliSpectraAODEventCuts.cxx:239 AliSpectraAODEventCuts.cxx:240 AliSpectraAODEventCuts.cxx:241 AliSpectraAODEventCuts.cxx:242 AliSpectraAODEventCuts.cxx:243 AliSpectraAODEventCuts.cxx:244 AliSpectraAODEventCuts.cxx:245 AliSpectraAODEventCuts.cxx:246 AliSpectraAODEventCuts.cxx:247 AliSpectraAODEventCuts.cxx:248 AliSpectraAODEventCuts.cxx:249 AliSpectraAODEventCuts.cxx:250 AliSpectraAODEventCuts.cxx:251 AliSpectraAODEventCuts.cxx:252 AliSpectraAODEventCuts.cxx:253 AliSpectraAODEventCuts.cxx:254 AliSpectraAODEventCuts.cxx:255 AliSpectraAODEventCuts.cxx:256 AliSpectraAODEventCuts.cxx:257 AliSpectraAODEventCuts.cxx:258 AliSpectraAODEventCuts.cxx:259 AliSpectraAODEventCuts.cxx:260 AliSpectraAODEventCuts.cxx:261 AliSpectraAODEventCuts.cxx:262 AliSpectraAODEventCuts.cxx:263 AliSpectraAODEventCuts.cxx:264 AliSpectraAODEventCuts.cxx:265 AliSpectraAODEventCuts.cxx:266 AliSpectraAODEventCuts.cxx:267 AliSpectraAODEventCuts.cxx:268 AliSpectraAODEventCuts.cxx:269 AliSpectraAODEventCuts.cxx:270 AliSpectraAODEventCuts.cxx:271 AliSpectraAODEventCuts.cxx:272 AliSpectraAODEventCuts.cxx:273 AliSpectraAODEventCuts.cxx:274 AliSpectraAODEventCuts.cxx:275 AliSpectraAODEventCuts.cxx:276 AliSpectraAODEventCuts.cxx:277 AliSpectraAODEventCuts.cxx:278 AliSpectraAODEventCuts.cxx:279 AliSpectraAODEventCuts.cxx:280 AliSpectraAODEventCuts.cxx:281 AliSpectraAODEventCuts.cxx:282 AliSpectraAODEventCuts.cxx:283 AliSpectraAODEventCuts.cxx:284 AliSpectraAODEventCuts.cxx:285 AliSpectraAODEventCuts.cxx:286 AliSpectraAODEventCuts.cxx:287 AliSpectraAODEventCuts.cxx:288 AliSpectraAODEventCuts.cxx:289 AliSpectraAODEventCuts.cxx:290 AliSpectraAODEventCuts.cxx:291 AliSpectraAODEventCuts.cxx:292 AliSpectraAODEventCuts.cxx:293 AliSpectraAODEventCuts.cxx:294 AliSpectraAODEventCuts.cxx:295 AliSpectraAODEventCuts.cxx:296 AliSpectraAODEventCuts.cxx:297 AliSpectraAODEventCuts.cxx:298 AliSpectraAODEventCuts.cxx:299 AliSpectraAODEventCuts.cxx:300 AliSpectraAODEventCuts.cxx:301 AliSpectraAODEventCuts.cxx:302 AliSpectraAODEventCuts.cxx:303 AliSpectraAODEventCuts.cxx:304 AliSpectraAODEventCuts.cxx:305 AliSpectraAODEventCuts.cxx:306 AliSpectraAODEventCuts.cxx:307 AliSpectraAODEventCuts.cxx:308 AliSpectraAODEventCuts.cxx:309 AliSpectraAODEventCuts.cxx:310 AliSpectraAODEventCuts.cxx:311 AliSpectraAODEventCuts.cxx:312 AliSpectraAODEventCuts.cxx:313 AliSpectraAODEventCuts.cxx:314 AliSpectraAODEventCuts.cxx:315 AliSpectraAODEventCuts.cxx:316 AliSpectraAODEventCuts.cxx:317 AliSpectraAODEventCuts.cxx:318 AliSpectraAODEventCuts.cxx:319 AliSpectraAODEventCuts.cxx:320 AliSpectraAODEventCuts.cxx:321 AliSpectraAODEventCuts.cxx:322 AliSpectraAODEventCuts.cxx:323 AliSpectraAODEventCuts.cxx:324 AliSpectraAODEventCuts.cxx:325 AliSpectraAODEventCuts.cxx:326 AliSpectraAODEventCuts.cxx:327 AliSpectraAODEventCuts.cxx:328 AliSpectraAODEventCuts.cxx:329 AliSpectraAODEventCuts.cxx:330 AliSpectraAODEventCuts.cxx:331 AliSpectraAODEventCuts.cxx:332 AliSpectraAODEventCuts.cxx:333 AliSpectraAODEventCuts.cxx:334 AliSpectraAODEventCuts.cxx:335 AliSpectraAODEventCuts.cxx:336 AliSpectraAODEventCuts.cxx:337 AliSpectraAODEventCuts.cxx:338 AliSpectraAODEventCuts.cxx:339 AliSpectraAODEventCuts.cxx:340 AliSpectraAODEventCuts.cxx:341 AliSpectraAODEventCuts.cxx:342 AliSpectraAODEventCuts.cxx:343 AliSpectraAODEventCuts.cxx:344 AliSpectraAODEventCuts.cxx:345 AliSpectraAODEventCuts.cxx:346 AliSpectraAODEventCuts.cxx:347 AliSpectraAODEventCuts.cxx:348 AliSpectraAODEventCuts.cxx:349 AliSpectraAODEventCuts.cxx:350 AliSpectraAODEventCuts.cxx:351 AliSpectraAODEventCuts.cxx:352 AliSpectraAODEventCuts.cxx:353 AliSpectraAODEventCuts.cxx:354 AliSpectraAODEventCuts.cxx:355 AliSpectraAODEventCuts.cxx:356 AliSpectraAODEventCuts.cxx:357 AliSpectraAODEventCuts.cxx:358 AliSpectraAODEventCuts.cxx:359 AliSpectraAODEventCuts.cxx:360 AliSpectraAODEventCuts.cxx:361 AliSpectraAODEventCuts.cxx:362 AliSpectraAODEventCuts.cxx:363 AliSpectraAODEventCuts.cxx:364 AliSpectraAODEventCuts.cxx:365 AliSpectraAODEventCuts.cxx:366 AliSpectraAODEventCuts.cxx:367 AliSpectraAODEventCuts.cxx:368 AliSpectraAODEventCuts.cxx:369 AliSpectraAODEventCuts.cxx:370 AliSpectraAODEventCuts.cxx:371 AliSpectraAODEventCuts.cxx:372 AliSpectraAODEventCuts.cxx:373 AliSpectraAODEventCuts.cxx:374 AliSpectraAODEventCuts.cxx:375 AliSpectraAODEventCuts.cxx:376 AliSpectraAODEventCuts.cxx:377 AliSpectraAODEventCuts.cxx:378 AliSpectraAODEventCuts.cxx:379 AliSpectraAODEventCuts.cxx:380 AliSpectraAODEventCuts.cxx:381 AliSpectraAODEventCuts.cxx:382 AliSpectraAODEventCuts.cxx:383 AliSpectraAODEventCuts.cxx:384 AliSpectraAODEventCuts.cxx:385 AliSpectraAODEventCuts.cxx:386 AliSpectraAODEventCuts.cxx:387 AliSpectraAODEventCuts.cxx:388 AliSpectraAODEventCuts.cxx:389 AliSpectraAODEventCuts.cxx:390 AliSpectraAODEventCuts.cxx:391 AliSpectraAODEventCuts.cxx:392 AliSpectraAODEventCuts.cxx:393 AliSpectraAODEventCuts.cxx:394 AliSpectraAODEventCuts.cxx:395 AliSpectraAODEventCuts.cxx:396 AliSpectraAODEventCuts.cxx:397 AliSpectraAODEventCuts.cxx:398 AliSpectraAODEventCuts.cxx:399 AliSpectraAODEventCuts.cxx:400 AliSpectraAODEventCuts.cxx:401 AliSpectraAODEventCuts.cxx:402 AliSpectraAODEventCuts.cxx:403 AliSpectraAODEventCuts.cxx:404 AliSpectraAODEventCuts.cxx:405 AliSpectraAODEventCuts.cxx:406 AliSpectraAODEventCuts.cxx:407 AliSpectraAODEventCuts.cxx:408 AliSpectraAODEventCuts.cxx:409 AliSpectraAODEventCuts.cxx:410 AliSpectraAODEventCuts.cxx:411 AliSpectraAODEventCuts.cxx:412 AliSpectraAODEventCuts.cxx:413 AliSpectraAODEventCuts.cxx:414 AliSpectraAODEventCuts.cxx:415 AliSpectraAODEventCuts.cxx:416 AliSpectraAODEventCuts.cxx:417 AliSpectraAODEventCuts.cxx:418 AliSpectraAODEventCuts.cxx:419 AliSpectraAODEventCuts.cxx:420 AliSpectraAODEventCuts.cxx:421 AliSpectraAODEventCuts.cxx:422 AliSpectraAODEventCuts.cxx:423 AliSpectraAODEventCuts.cxx:424 AliSpectraAODEventCuts.cxx:425 AliSpectraAODEventCuts.cxx:426 AliSpectraAODEventCuts.cxx:427 AliSpectraAODEventCuts.cxx:428 AliSpectraAODEventCuts.cxx:429 AliSpectraAODEventCuts.cxx:430 AliSpectraAODEventCuts.cxx:431 AliSpectraAODEventCuts.cxx:432 AliSpectraAODEventCuts.cxx:433 AliSpectraAODEventCuts.cxx:434 AliSpectraAODEventCuts.cxx:435 AliSpectraAODEventCuts.cxx:436 AliSpectraAODEventCuts.cxx:437 AliSpectraAODEventCuts.cxx:438 AliSpectraAODEventCuts.cxx:439 AliSpectraAODEventCuts.cxx:440 AliSpectraAODEventCuts.cxx:441 AliSpectraAODEventCuts.cxx:442 AliSpectraAODEventCuts.cxx:443 AliSpectraAODEventCuts.cxx:444 AliSpectraAODEventCuts.cxx:445 AliSpectraAODEventCuts.cxx:446 AliSpectraAODEventCuts.cxx:447 AliSpectraAODEventCuts.cxx:448 AliSpectraAODEventCuts.cxx:449 AliSpectraAODEventCuts.cxx:450 AliSpectraAODEventCuts.cxx:451 AliSpectraAODEventCuts.cxx:452 AliSpectraAODEventCuts.cxx:453 AliSpectraAODEventCuts.cxx:454 AliSpectraAODEventCuts.cxx:455 AliSpectraAODEventCuts.cxx:456 AliSpectraAODEventCuts.cxx:457 AliSpectraAODEventCuts.cxx:458 AliSpectraAODEventCuts.cxx:459 AliSpectraAODEventCuts.cxx:460 AliSpectraAODEventCuts.cxx:461 AliSpectraAODEventCuts.cxx:462 AliSpectraAODEventCuts.cxx:463 AliSpectraAODEventCuts.cxx:464 AliSpectraAODEventCuts.cxx:465 AliSpectraAODEventCuts.cxx:466 AliSpectraAODEventCuts.cxx:467 AliSpectraAODEventCuts.cxx:468 AliSpectraAODEventCuts.cxx:469 AliSpectraAODEventCuts.cxx:470 AliSpectraAODEventCuts.cxx:471 AliSpectraAODEventCuts.cxx:472 AliSpectraAODEventCuts.cxx:473 AliSpectraAODEventCuts.cxx:474 AliSpectraAODEventCuts.cxx:475 AliSpectraAODEventCuts.cxx:476 AliSpectraAODEventCuts.cxx:477 AliSpectraAODEventCuts.cxx:478 AliSpectraAODEventCuts.cxx:479 AliSpectraAODEventCuts.cxx:480 AliSpectraAODEventCuts.cxx:481 AliSpectraAODEventCuts.cxx:482 AliSpectraAODEventCuts.cxx:483 AliSpectraAODEventCuts.cxx:484 AliSpectraAODEventCuts.cxx:485 AliSpectraAODEventCuts.cxx:486 AliSpectraAODEventCuts.cxx:487 AliSpectraAODEventCuts.cxx:488 AliSpectraAODEventCuts.cxx:489 AliSpectraAODEventCuts.cxx:490 AliSpectraAODEventCuts.cxx:491 AliSpectraAODEventCuts.cxx:492 AliSpectraAODEventCuts.cxx:493 AliSpectraAODEventCuts.cxx:494 AliSpectraAODEventCuts.cxx:495 AliSpectraAODEventCuts.cxx:496 AliSpectraAODEventCuts.cxx:497 AliSpectraAODEventCuts.cxx:498 AliSpectraAODEventCuts.cxx:499 AliSpectraAODEventCuts.cxx:500 AliSpectraAODEventCuts.cxx:501 AliSpectraAODEventCuts.cxx:502 AliSpectraAODEventCuts.cxx:503 AliSpectraAODEventCuts.cxx:504 AliSpectraAODEventCuts.cxx:505 AliSpectraAODEventCuts.cxx:506 AliSpectraAODEventCuts.cxx:507 AliSpectraAODEventCuts.cxx:508 AliSpectraAODEventCuts.cxx:509 AliSpectraAODEventCuts.cxx:510 AliSpectraAODEventCuts.cxx:511 AliSpectraAODEventCuts.cxx:512 AliSpectraAODEventCuts.cxx:513 AliSpectraAODEventCuts.cxx:514 AliSpectraAODEventCuts.cxx:515 AliSpectraAODEventCuts.cxx:516 AliSpectraAODEventCuts.cxx:517 AliSpectraAODEventCuts.cxx:518 AliSpectraAODEventCuts.cxx:519 AliSpectraAODEventCuts.cxx:520 AliSpectraAODEventCuts.cxx:521 AliSpectraAODEventCuts.cxx:522 AliSpectraAODEventCuts.cxx:523 AliSpectraAODEventCuts.cxx:524 AliSpectraAODEventCuts.cxx:525 AliSpectraAODEventCuts.cxx:526 AliSpectraAODEventCuts.cxx:527 AliSpectraAODEventCuts.cxx:528 AliSpectraAODEventCuts.cxx:529 AliSpectraAODEventCuts.cxx:530 AliSpectraAODEventCuts.cxx:531 AliSpectraAODEventCuts.cxx:532 AliSpectraAODEventCuts.cxx:533 AliSpectraAODEventCuts.cxx:534 AliSpectraAODEventCuts.cxx:535 AliSpectraAODEventCuts.cxx:536 AliSpectraAODEventCuts.cxx:537 AliSpectraAODEventCuts.cxx:538 AliSpectraAODEventCuts.cxx:539 AliSpectraAODEventCuts.cxx:540 AliSpectraAODEventCuts.cxx:541 AliSpectraAODEventCuts.cxx:542 AliSpectraAODEventCuts.cxx:543 AliSpectraAODEventCuts.cxx:544 AliSpectraAODEventCuts.cxx:545 AliSpectraAODEventCuts.cxx:546 AliSpectraAODEventCuts.cxx:547 AliSpectraAODEventCuts.cxx:548 AliSpectraAODEventCuts.cxx:549 AliSpectraAODEventCuts.cxx:550 AliSpectraAODEventCuts.cxx:551 AliSpectraAODEventCuts.cxx:552 AliSpectraAODEventCuts.cxx:553 AliSpectraAODEventCuts.cxx:554 AliSpectraAODEventCuts.cxx:555 AliSpectraAODEventCuts.cxx:556 AliSpectraAODEventCuts.cxx:557 AliSpectraAODEventCuts.cxx:558 AliSpectraAODEventCuts.cxx:559 AliSpectraAODEventCuts.cxx:560 AliSpectraAODEventCuts.cxx:561 AliSpectraAODEventCuts.cxx:562 AliSpectraAODEventCuts.cxx:563 AliSpectraAODEventCuts.cxx:564 AliSpectraAODEventCuts.cxx:565 AliSpectraAODEventCuts.cxx:566 AliSpectraAODEventCuts.cxx:567 AliSpectraAODEventCuts.cxx:568 AliSpectraAODEventCuts.cxx:569 AliSpectraAODEventCuts.cxx:570 AliSpectraAODEventCuts.cxx:571 AliSpectraAODEventCuts.cxx:572 AliSpectraAODEventCuts.cxx:573 AliSpectraAODEventCuts.cxx:574 AliSpectraAODEventCuts.cxx:575 AliSpectraAODEventCuts.cxx:576 AliSpectraAODEventCuts.cxx:577 AliSpectraAODEventCuts.cxx:578 AliSpectraAODEventCuts.cxx:579 AliSpectraAODEventCuts.cxx:580 AliSpectraAODEventCuts.cxx:581 AliSpectraAODEventCuts.cxx:582 AliSpectraAODEventCuts.cxx:583 AliSpectraAODEventCuts.cxx:584 AliSpectraAODEventCuts.cxx:585 AliSpectraAODEventCuts.cxx:586 AliSpectraAODEventCuts.cxx:587 AliSpectraAODEventCuts.cxx:588 AliSpectraAODEventCuts.cxx:589 AliSpectraAODEventCuts.cxx:590 AliSpectraAODEventCuts.cxx:591 AliSpectraAODEventCuts.cxx:592 AliSpectraAODEventCuts.cxx:593 AliSpectraAODEventCuts.cxx:594 AliSpectraAODEventCuts.cxx:595 AliSpectraAODEventCuts.cxx:596 AliSpectraAODEventCuts.cxx:597 AliSpectraAODEventCuts.cxx:598 AliSpectraAODEventCuts.cxx:599 AliSpectraAODEventCuts.cxx:600 AliSpectraAODEventCuts.cxx:601 AliSpectraAODEventCuts.cxx:602 AliSpectraAODEventCuts.cxx:603 AliSpectraAODEventCuts.cxx:604 AliSpectraAODEventCuts.cxx:605 AliSpectraAODEventCuts.cxx:606 AliSpectraAODEventCuts.cxx:607 AliSpectraAODEventCuts.cxx:608 AliSpectraAODEventCuts.cxx:609 AliSpectraAODEventCuts.cxx:610 AliSpectraAODEventCuts.cxx:611 AliSpectraAODEventCuts.cxx:612 AliSpectraAODEventCuts.cxx:613 AliSpectraAODEventCuts.cxx:614 AliSpectraAODEventCuts.cxx:615 AliSpectraAODEventCuts.cxx:616 AliSpectraAODEventCuts.cxx:617 AliSpectraAODEventCuts.cxx:618 AliSpectraAODEventCuts.cxx:619 AliSpectraAODEventCuts.cxx:620 AliSpectraAODEventCuts.cxx:621 AliSpectraAODEventCuts.cxx:622 AliSpectraAODEventCuts.cxx:623 AliSpectraAODEventCuts.cxx:624 AliSpectraAODEventCuts.cxx:625 AliSpectraAODEventCuts.cxx:626 AliSpectraAODEventCuts.cxx:627 AliSpectraAODEventCuts.cxx:628 AliSpectraAODEventCuts.cxx:629 AliSpectraAODEventCuts.cxx:630 AliSpectraAODEventCuts.cxx:631 AliSpectraAODEventCuts.cxx:632 AliSpectraAODEventCuts.cxx:633 AliSpectraAODEventCuts.cxx:634 AliSpectraAODEventCuts.cxx:635 AliSpectraAODEventCuts.cxx:636 AliSpectraAODEventCuts.cxx:637 AliSpectraAODEventCuts.cxx:638 AliSpectraAODEventCuts.cxx:639 AliSpectraAODEventCuts.cxx:640 AliSpectraAODEventCuts.cxx:641 AliSpectraAODEventCuts.cxx:642 AliSpectraAODEventCuts.cxx:643 AliSpectraAODEventCuts.cxx:644 AliSpectraAODEventCuts.cxx:645 AliSpectraAODEventCuts.cxx:646 AliSpectraAODEventCuts.cxx:647 AliSpectraAODEventCuts.cxx:648 AliSpectraAODEventCuts.cxx:649 AliSpectraAODEventCuts.cxx:650 AliSpectraAODEventCuts.cxx:651 AliSpectraAODEventCuts.cxx:652 AliSpectraAODEventCuts.cxx:653 AliSpectraAODEventCuts.cxx:654 AliSpectraAODEventCuts.cxx:655 AliSpectraAODEventCuts.cxx:656 AliSpectraAODEventCuts.cxx:657 AliSpectraAODEventCuts.cxx:658 AliSpectraAODEventCuts.cxx:659 AliSpectraAODEventCuts.cxx:660 AliSpectraAODEventCuts.cxx:661 AliSpectraAODEventCuts.cxx:662 AliSpectraAODEventCuts.cxx:663 AliSpectraAODEventCuts.cxx:664 AliSpectraAODEventCuts.cxx:665 AliSpectraAODEventCuts.cxx:666 AliSpectraAODEventCuts.cxx:667 AliSpectraAODEventCuts.cxx:668 AliSpectraAODEventCuts.cxx:669 AliSpectraAODEventCuts.cxx:670 AliSpectraAODEventCuts.cxx:671 AliSpectraAODEventCuts.cxx:672 AliSpectraAODEventCuts.cxx:673 AliSpectraAODEventCuts.cxx:674 AliSpectraAODEventCuts.cxx:675 AliSpectraAODEventCuts.cxx:676 AliSpectraAODEventCuts.cxx:677 AliSpectraAODEventCuts.cxx:678 AliSpectraAODEventCuts.cxx:679 AliSpectraAODEventCuts.cxx:680 AliSpectraAODEventCuts.cxx:681 AliSpectraAODEventCuts.cxx:682 AliSpectraAODEventCuts.cxx:683 AliSpectraAODEventCuts.cxx:684 AliSpectraAODEventCuts.cxx:685 AliSpectraAODEventCuts.cxx:686 AliSpectraAODEventCuts.cxx:687 AliSpectraAODEventCuts.cxx:688 AliSpectraAODEventCuts.cxx:689 AliSpectraAODEventCuts.cxx:690 AliSpectraAODEventCuts.cxx:691 AliSpectraAODEventCuts.cxx:692 AliSpectraAODEventCuts.cxx:693 AliSpectraAODEventCuts.cxx:694 AliSpectraAODEventCuts.cxx:695 AliSpectraAODEventCuts.cxx:696 AliSpectraAODEventCuts.cxx:697 AliSpectraAODEventCuts.cxx:698 AliSpectraAODEventCuts.cxx:699 AliSpectraAODEventCuts.cxx:700 AliSpectraAODEventCuts.cxx:701 AliSpectraAODEventCuts.cxx:702 AliSpectraAODEventCuts.cxx:703 AliSpectraAODEventCuts.cxx:704 AliSpectraAODEventCuts.cxx:705 AliSpectraAODEventCuts.cxx:706 AliSpectraAODEventCuts.cxx:707 AliSpectraAODEventCuts.cxx:708 AliSpectraAODEventCuts.cxx:709 AliSpectraAODEventCuts.cxx:710 AliSpectraAODEventCuts.cxx:711 AliSpectraAODEventCuts.cxx:712 AliSpectraAODEventCuts.cxx:713 AliSpectraAODEventCuts.cxx:714 AliSpectraAODEventCuts.cxx:715 AliSpectraAODEventCuts.cxx:716 AliSpectraAODEventCuts.cxx:717 AliSpectraAODEventCuts.cxx:718 AliSpectraAODEventCuts.cxx:719 AliSpectraAODEventCuts.cxx:720 AliSpectraAODEventCuts.cxx:721 AliSpectraAODEventCuts.cxx:722 AliSpectraAODEventCuts.cxx:723 AliSpectraAODEventCuts.cxx:724 AliSpectraAODEventCuts.cxx:725 AliSpectraAODEventCuts.cxx:726 AliSpectraAODEventCuts.cxx:727 AliSpectraAODEventCuts.cxx:728 AliSpectraAODEventCuts.cxx:729 AliSpectraAODEventCuts.cxx:730 AliSpectraAODEventCuts.cxx:731 AliSpectraAODEventCuts.cxx:732 AliSpectraAODEventCuts.cxx:733 AliSpectraAODEventCuts.cxx:734 AliSpectraAODEventCuts.cxx:735 AliSpectraAODEventCuts.cxx:736 AliSpectraAODEventCuts.cxx:737 AliSpectraAODEventCuts.cxx:738 AliSpectraAODEventCuts.cxx:739 AliSpectraAODEventCuts.cxx:740 AliSpectraAODEventCuts.cxx:741 AliSpectraAODEventCuts.cxx:742 AliSpectraAODEventCuts.cxx:743 AliSpectraAODEventCuts.cxx:744 AliSpectraAODEventCuts.cxx:745 AliSpectraAODEventCuts.cxx:746 AliSpectraAODEventCuts.cxx:747 AliSpectraAODEventCuts.cxx:748 AliSpectraAODEventCuts.cxx:749 AliSpectraAODEventCuts.cxx:750 AliSpectraAODEventCuts.cxx:751 AliSpectraAODEventCuts.cxx:752 AliSpectraAODEventCuts.cxx:753 AliSpectraAODEventCuts.cxx:754 AliSpectraAODEventCuts.cxx:755 AliSpectraAODEventCuts.cxx:756 AliSpectraAODEventCuts.cxx:757 AliSpectraAODEventCuts.cxx:758 AliSpectraAODEventCuts.cxx:759 AliSpectraAODEventCuts.cxx:760 AliSpectraAODEventCuts.cxx:761 AliSpectraAODEventCuts.cxx:762 AliSpectraAODEventCuts.cxx:763 AliSpectraAODEventCuts.cxx:764 AliSpectraAODEventCuts.cxx:765 AliSpectraAODEventCuts.cxx:766 AliSpectraAODEventCuts.cxx:767 AliSpectraAODEventCuts.cxx:768 AliSpectraAODEventCuts.cxx:769 AliSpectraAODEventCuts.cxx:770 AliSpectraAODEventCuts.cxx:771 AliSpectraAODEventCuts.cxx:772 AliSpectraAODEventCuts.cxx:773 AliSpectraAODEventCuts.cxx:774 AliSpectraAODEventCuts.cxx:775 AliSpectraAODEventCuts.cxx:776 AliSpectraAODEventCuts.cxx:777 AliSpectraAODEventCuts.cxx:778 AliSpectraAODEventCuts.cxx:779 AliSpectraAODEventCuts.cxx:780 AliSpectraAODEventCuts.cxx:781 AliSpectraAODEventCuts.cxx:782 AliSpectraAODEventCuts.cxx:783 AliSpectraAODEventCuts.cxx:784 AliSpectraAODEventCuts.cxx:785 AliSpectraAODEventCuts.cxx:786 AliSpectraAODEventCuts.cxx:787 AliSpectraAODEventCuts.cxx:788 AliSpectraAODEventCuts.cxx:789 AliSpectraAODEventCuts.cxx:790 AliSpectraAODEventCuts.cxx:791 AliSpectraAODEventCuts.cxx:792 AliSpectraAODEventCuts.cxx:793 AliSpectraAODEventCuts.cxx:794 AliSpectraAODEventCuts.cxx:795 AliSpectraAODEventCuts.cxx:796 AliSpectraAODEventCuts.cxx:797 AliSpectraAODEventCuts.cxx:798 AliSpectraAODEventCuts.cxx:799 AliSpectraAODEventCuts.cxx:800 AliSpectraAODEventCuts.cxx:801 AliSpectraAODEventCuts.cxx:802 AliSpectraAODEventCuts.cxx:803 AliSpectraAODEventCuts.cxx:804 AliSpectraAODEventCuts.cxx:805 AliSpectraAODEventCuts.cxx:806 AliSpectraAODEventCuts.cxx:807 AliSpectraAODEventCuts.cxx:808 AliSpectraAODEventCuts.cxx:809 AliSpectraAODEventCuts.cxx:810 AliSpectraAODEventCuts.cxx:811 AliSpectraAODEventCuts.cxx:812 AliSpectraAODEventCuts.cxx:813 AliSpectraAODEventCuts.cxx:814 AliSpectraAODEventCuts.cxx:815 AliSpectraAODEventCuts.cxx:816 AliSpectraAODEventCuts.cxx:817 AliSpectraAODEventCuts.cxx:818 AliSpectraAODEventCuts.cxx:819 AliSpectraAODEventCuts.cxx:820 AliSpectraAODEventCuts.cxx:821 AliSpectraAODEventCuts.cxx:822 AliSpectraAODEventCuts.cxx:823 AliSpectraAODEventCuts.cxx:824 AliSpectraAODEventCuts.cxx:825 AliSpectraAODEventCuts.cxx:826 AliSpectraAODEventCuts.cxx:827 AliSpectraAODEventCuts.cxx:828 AliSpectraAODEventCuts.cxx:829 AliSpectraAODEventCuts.cxx:830 AliSpectraAODEventCuts.cxx:831 AliSpectraAODEventCuts.cxx:832 AliSpectraAODEventCuts.cxx:833 AliSpectraAODEventCuts.cxx:834 AliSpectraAODEventCuts.cxx:835 AliSpectraAODEventCuts.cxx:836 AliSpectraAODEventCuts.cxx:837 AliSpectraAODEventCuts.cxx:838 AliSpectraAODEventCuts.cxx:839 AliSpectraAODEventCuts.cxx:840 AliSpectraAODEventCuts.cxx:841 AliSpectraAODEventCuts.cxx:842 AliSpectraAODEventCuts.cxx:843 AliSpectraAODEventCuts.cxx:844 AliSpectraAODEventCuts.cxx:845 AliSpectraAODEventCuts.cxx:846 AliSpectraAODEventCuts.cxx:847 AliSpectraAODEventCuts.cxx:848 AliSpectraAODEventCuts.cxx:849 AliSpectraAODEventCuts.cxx:850 AliSpectraAODEventCuts.cxx:851 AliSpectraAODEventCuts.cxx:852 AliSpectraAODEventCuts.cxx:853 AliSpectraAODEventCuts.cxx:854 AliSpectraAODEventCuts.cxx:855 AliSpectraAODEventCuts.cxx:856 AliSpectraAODEventCuts.cxx:857 AliSpectraAODEventCuts.cxx:858 AliSpectraAODEventCuts.cxx:859 AliSpectraAODEventCuts.cxx:860 AliSpectraAODEventCuts.cxx:861 AliSpectraAODEventCuts.cxx:862 AliSpectraAODEventCuts.cxx:863 AliSpectraAODEventCuts.cxx:864 AliSpectraAODEventCuts.cxx:865 AliSpectraAODEventCuts.cxx:866 AliSpectraAODEventCuts.cxx:867 AliSpectraAODEventCuts.cxx:868 AliSpectraAODEventCuts.cxx:869 AliSpectraAODEventCuts.cxx:870 AliSpectraAODEventCuts.cxx:871 AliSpectraAODEventCuts.cxx:872 AliSpectraAODEventCuts.cxx:873 AliSpectraAODEventCuts.cxx:874 AliSpectraAODEventCuts.cxx:875 AliSpectraAODEventCuts.cxx:876 AliSpectraAODEventCuts.cxx:877 AliSpectraAODEventCuts.cxx:878 AliSpectraAODEventCuts.cxx:879 AliSpectraAODEventCuts.cxx:880 AliSpectraAODEventCuts.cxx:881 AliSpectraAODEventCuts.cxx:882 AliSpectraAODEventCuts.cxx:883 AliSpectraAODEventCuts.cxx:884 AliSpectraAODEventCuts.cxx:885 AliSpectraAODEventCuts.cxx:886 AliSpectraAODEventCuts.cxx:887 AliSpectraAODEventCuts.cxx:888 AliSpectraAODEventCuts.cxx:889 AliSpectraAODEventCuts.cxx:890 AliSpectraAODEventCuts.cxx:891 AliSpectraAODEventCuts.cxx:892 AliSpectraAODEventCuts.cxx:893 AliSpectraAODEventCuts.cxx:894 AliSpectraAODEventCuts.cxx:895 AliSpectraAODEventCuts.cxx:896 AliSpectraAODEventCuts.cxx:897 AliSpectraAODEventCuts.cxx:898 AliSpectraAODEventCuts.cxx:899 AliSpectraAODEventCuts.cxx:900 AliSpectraAODEventCuts.cxx:901 AliSpectraAODEventCuts.cxx:902 AliSpectraAODEventCuts.cxx:903 AliSpectraAODEventCuts.cxx:904 AliSpectraAODEventCuts.cxx:905 AliSpectraAODEventCuts.cxx:906 AliSpectraAODEventCuts.cxx:907 AliSpectraAODEventCuts.cxx:908 AliSpectraAODEventCuts.cxx:909 AliSpectraAODEventCuts.cxx:910 AliSpectraAODEventCuts.cxx:911 AliSpectraAODEventCuts.cxx:912 AliSpectraAODEventCuts.cxx:913 AliSpectraAODEventCuts.cxx:914 AliSpectraAODEventCuts.cxx:915 AliSpectraAODEventCuts.cxx:916 AliSpectraAODEventCuts.cxx:917 AliSpectraAODEventCuts.cxx:918 AliSpectraAODEventCuts.cxx:919 AliSpectraAODEventCuts.cxx:920 AliSpectraAODEventCuts.cxx:921 AliSpectraAODEventCuts.cxx:922 AliSpectraAODEventCuts.cxx:923 AliSpectraAODEventCuts.cxx:924 AliSpectraAODEventCuts.cxx:925 AliSpectraAODEventCuts.cxx:926 AliSpectraAODEventCuts.cxx:927 AliSpectraAODEventCuts.cxx:928 AliSpectraAODEventCuts.cxx:929 AliSpectraAODEventCuts.cxx:930 AliSpectraAODEventCuts.cxx:931 AliSpectraAODEventCuts.cxx:932 AliSpectraAODEventCuts.cxx:933 AliSpectraAODEventCuts.cxx:934 AliSpectraAODEventCuts.cxx:935 AliSpectraAODEventCuts.cxx:936 AliSpectraAODEventCuts.cxx:937 AliSpectraAODEventCuts.cxx:938 AliSpectraAODEventCuts.cxx:939 AliSpectraAODEventCuts.cxx:940 AliSpectraAODEventCuts.cxx:941 AliSpectraAODEventCuts.cxx:942 AliSpectraAODEventCuts.cxx:943 AliSpectraAODEventCuts.cxx:944 AliSpectraAODEventCuts.cxx:945 AliSpectraAODEventCuts.cxx:946 AliSpectraAODEventCuts.cxx:947 AliSpectraAODEventCuts.cxx:948 AliSpectraAODEventCuts.cxx:949 AliSpectraAODEventCuts.cxx:950 AliSpectraAODEventCuts.cxx:951 AliSpectraAODEventCuts.cxx:952 AliSpectraAODEventCuts.cxx:953 AliSpectraAODEventCuts.cxx:954 AliSpectraAODEventCuts.cxx:955 AliSpectraAODEventCuts.cxx:956 AliSpectraAODEventCuts.cxx:957 AliSpectraAODEventCuts.cxx:958 AliSpectraAODEventCuts.cxx:959 AliSpectraAODEventCuts.cxx:960 AliSpectraAODEventCuts.cxx:961 AliSpectraAODEventCuts.cxx:962 AliSpectraAODEventCuts.cxx:963 AliSpectraAODEventCuts.cxx:964 AliSpectraAODEventCuts.cxx:965 AliSpectraAODEventCuts.cxx:966 AliSpectraAODEventCuts.cxx:967 AliSpectraAODEventCuts.cxx:968 AliSpectraAODEventCuts.cxx:969 AliSpectraAODEventCuts.cxx:970 AliSpectraAODEventCuts.cxx:971 AliSpectraAODEventCuts.cxx:972 AliSpectraAODEventCuts.cxx:973 AliSpectraAODEventCuts.cxx:974 AliSpectraAODEventCuts.cxx:975 AliSpectraAODEventCuts.cxx:976 AliSpectraAODEventCuts.cxx:977 AliSpectraAODEventCuts.cxx:978 AliSpectraAODEventCuts.cxx:979 AliSpectraAODEventCuts.cxx:980 AliSpectraAODEventCuts.cxx:981 AliSpectraAODEventCuts.cxx:982 AliSpectraAODEventCuts.cxx:983 AliSpectraAODEventCuts.cxx:984 AliSpectraAODEventCuts.cxx:985 AliSpectraAODEventCuts.cxx:986 AliSpectraAODEventCuts.cxx:987 AliSpectraAODEventCuts.cxx:988 AliSpectraAODEventCuts.cxx:989 AliSpectraAODEventCuts.cxx:990 AliSpectraAODEventCuts.cxx:991 AliSpectraAODEventCuts.cxx:992 AliSpectraAODEventCuts.cxx:993 AliSpectraAODEventCuts.cxx:994 AliSpectraAODEventCuts.cxx:995 AliSpectraAODEventCuts.cxx:996 AliSpectraAODEventCuts.cxx:997