ROOT logo
/*
***********************************************************
  Implementation of reduced ESD information classes for
  quick analysis.
  Contact: i.c.arsene@gsi.de, i.c.arsene@cern.ch
  2012/06/21
  *********************************************************
*/

#ifndef ALIREDUCEDEVENT_H
#include "AliReducedEvent.h"
#endif

#include <TMath.h>
#include <TClonesArray.h>
#include <TClass.h>

ClassImp(AliReducedTrack)
ClassImp(AliReducedPair)
ClassImp(AliReducedFMD)
ClassImp(AliReducedEvent)
ClassImp(AliReducedEventFriend)
ClassImp(AliReducedCaloCluster)

TClonesArray* AliReducedEvent::fgTracks = 0;
TClonesArray* AliReducedEvent::fgCandidates = 0;
TClonesArray* AliReducedEvent::fgCaloClusters = 0;
TClonesArray* AliReducedEvent::fgFMD1 = 0;
TClonesArray* AliReducedEvent::fgFMD2I = 0;
TClonesArray* AliReducedEvent::fgFMD2O = 0;
TClonesArray* AliReducedEvent::fgFMD3I = 0;
TClonesArray* AliReducedEvent::fgFMD3O = 0;

//_______________________________________________________________________________
AliReducedTrack::AliReducedTrack() :
  fTrackId(-1),
  fStatus(0),
  fGlobalPhi(0.0),
  fGlobalPt(0.0),
  fGlobalEta(0.0),
  fTPCPhi(0.0),
  fTPCPt(0.0),
  fTPCEta(0.0),
  fMomentumInner(0.0),
  fDCA(),
  fTrackLength(0.0),
  fITSclusterMap(0),
  fITSsignal(0.0),
  fITSnSig(),
  fITSchi2(0.0),
  fTPCNcls(0),
  fTPCCrossedRows(0),
  fTPCNclsF(0),
  fTPCNclsIter1(0),
  fTPCClusterMap(0),
  fTPCsignal(0),
  fTPCsignalN(0),
  fTPCnSig(),
  fTPCchi2(0.0),
  fTOFbeta(0.0),
  fTOFnSig(),
  fTOFdeltaBC(0),
  fTRDntracklets(),
  fTRDpid(),
  fTRDpidLQ2D(),
  fCaloClusterId(-999),
  fBayesPID(),
  fFlags(0),
  fMoreFlags(0)
{
  //
  // Constructor
  //
  fDCA[0] = 0.0; fDCA[1]=0.0;
  for(Int_t i=0; i<4; ++i) {fTPCnSig[i]=-999.; fTOFnSig[i]=-999.; fITSnSig[i]=-999.;} 
  for(Int_t i=0; i<3; ++i) {fBayesPID[i]=-999.;}
  fTRDpid[0]=-999.; fTRDpid[1]=-999.;
  fTRDpidLQ2D[0] = -999.; fTRDpidLQ2D[1] = -999.;
}


//_______________________________________________________________________________
AliReducedTrack::~AliReducedTrack()
{
  //
  // De-Constructor
  //
}


//_______________________________________________________________________________
AliReducedPair::AliReducedPair() :
  fCandidateId(-1),
  fPairType(-1), 
  fLegIds(),
  fMass(),
  fPhi(0.0),
  fPt(0.0),
  fEta(0.0),
  fLxy(0.0),
  fLxyErr(0.0),
  fPointingAngle(0.0),
  fChisquare(0.0),
  fMCid(0)
{
  //
  // Constructor
  //
  fLegIds[0] = -1; fLegIds[1] = -1;
  fMass[0]=-999.; fMass[1]=-999.; fMass[2]=-999.; fMass[3]=-999.;
}


//_______________________________________________________________________________
AliReducedPair::AliReducedPair(const AliReducedPair &c) :
  TObject(c),
  fCandidateId(c.CandidateId()),
  fPairType(c.PairType()),
  fLegIds(),
  fMass(),
  fPhi(c.Phi()),
  fPt(c.Pt()),
  fEta(c.Eta()),
  fLxy(c.Lxy()),
  fLxyErr(c.LxyErr()),
  fPointingAngle(c.PointingAngle()),
  fChisquare(c.Chi2()),
  fMCid(c.MCid())
{
  //
  // copy constructor
  //
  fLegIds[0] = c.LegId(0);
  fLegIds[1] = c.LegId(1);
  fMass[0] = c.Mass(0); fMass[1] = c.Mass(1); fMass[2] = c.Mass(2); fMass[3] = c.Mass(3);
}


//_______________________________________________________________________________
AliReducedPair::~AliReducedPair() {
  //
  // destructor
  //
}


//_______________________________________________________________________________
AliReducedFMD::AliReducedFMD() :
  fMultiplicity(0),
  //fEta(0.0),
  fId(0)
{
  AliReducedFMD::Class()->IgnoreTObjectStreamer();
  //
  // Constructor
  //
}


//_______________________________________________________________________________
AliReducedFMD::~AliReducedFMD()
{
  //
  // De-Constructor
  //
}


//____________________________________________________________________________
AliReducedEvent::AliReducedEvent() :
  TObject(),
  fEventTag(0),
  fEventNumberInFile(0),
  fL0TriggerInputs(0),
  fL1TriggerInputs(0),
  fL2TriggerInputs(0),
  fRunNo(0),
  fBC(0),
  fTimeStamp(0),
  fEventType(0),
  fTriggerMask(0),
  fIsPhysicsSelection(kTRUE),
  fIsSPDPileup(kFALSE),
  fIsSPDPileupMultBins(kFALSE),
  fIRIntClosestIntMap(),
  fIsFMDReduced(kTRUE),
  fVtx(),
  fNVtxContributors(0),
  fVtxTPC(),
  fNVtxTPCContributors(0),
  fNpileupSPD(0),
  fNpileupTracks(0),
  fNPMDtracks(0),
  fNTRDtracks(0),
  fNTRDtracklets(0),
  fCentrality(),
  fCentQuality(0),
  fNV0candidates(),
  fNDielectronCandidates(0),
  fNtracks(),
  fSPDntracklets(0),
  fVZEROMult(),
  fZDCnEnergy(),
  fZDCpEnergy(),
  fT0amplitude(),
  fT0TOF(),
  fT0TOFbest(),
  fT0zVertex(0),
  fT0start(0),
  fT0pileup(kFALSE),
  fT0sattelite(kFALSE),
  fTracks(0x0),
  fCandidates(0x0),
  fNFMDchannels(),
  fFMDtotalMult(),
  fFMD1(0x0),
  fFMD2I(0x0),
  fFMD2O(0x0),
  fFMD3I(0x0),
  fFMD3O(0x0),
  fNCaloClusters(0),
  fCaloClusters(0x0)
{
  //
  // Constructor
  //
  for(Int_t i=0; i<2; ++i) fIRIntClosestIntMap[i] = 0;
  for(Int_t i=0; i<3; ++i) {fVtx[i]=-999.; fVtxTPC[i]=-999.;}
  for(Int_t i=0; i<4; ++i) fCentrality[i]=-1.;
  fNV0candidates[0]=0; fNV0candidates[1]=0;
  fNtracks[0]=0; fNtracks[1]=0;
  for(Int_t i=0; i<32; ++i) fSPDntrackletsEta[i]=0;
  for(Int_t i=0; i<32; ++i) fNtracksPerTrackingFlag[i]=0;
  for(Int_t i=0; i<64; ++i) fVZEROMult[i] = 0.0;
  for(Int_t i=0; i<10; ++i) fZDCnEnergy[i]=0.0;
  for(Int_t i=0; i<10; ++i) fZDCpEnergy[i]=0.0;
  for(Int_t i=0; i<26; ++i) fT0amplitude[i]=0.0;
  for(Int_t i=0; i<3; ++i)  fT0TOF[i]=0.0;
  for(Int_t i=0; i<3; ++i)  fT0TOFbest[i]=0.0;
  for(Int_t i=0; i<5; ++i)  fNFMDchannels[i]=0.0;
  for(Int_t i=0; i<5; ++i)  fFMDtotalMult[i]=0.0;
}


//____________________________________________________________________________
AliReducedEvent::AliReducedEvent(const Char_t* /*name*/) :
  TObject(),
  fEventTag(0),
  fEventNumberInFile(0),
  fL0TriggerInputs(0),
  fL1TriggerInputs(0),
  fL2TriggerInputs(0),
  fRunNo(0),
  fBC(0),
  fTimeStamp(0),
  fEventType(0),
  fTriggerMask(0),
  fIsPhysicsSelection(kTRUE),
  fIsSPDPileup(kFALSE),
  fIsSPDPileupMultBins(kFALSE),
  fIRIntClosestIntMap(),
  fIsFMDReduced(kTRUE),
  fVtx(),
  fNVtxContributors(0),
  fVtxTPC(),
  fNVtxTPCContributors(0),
  fNpileupSPD(0),
  fNpileupTracks(0),
  fNPMDtracks(0),
  fNTRDtracks(0),
  fNTRDtracklets(0),
  fCentrality(),
  fCentQuality(0),
  fNV0candidates(),
  fNDielectronCandidates(0),
  fNtracks(),
  fSPDntracklets(0),
  fVZEROMult(),
  fZDCnEnergy(),
  fZDCpEnergy(),
  fT0amplitude(),
  fT0TOF(),
  fT0TOFbest(),
  fT0zVertex(0),
  fT0start(0),
  fT0pileup(kFALSE),
  fT0sattelite(kFALSE),
  fTracks(0x0),
  fCandidates(0x0),
  fNFMDchannels(),
  fFMDtotalMult(),
  fFMD1(0x0),
  fFMD2I(0x0),
  fFMD2O(0x0),
  fFMD3I(0x0),
  fFMD3O(0x0),
  fNCaloClusters(0),
  fCaloClusters(0x0)
//fFMDMult()
{
  //
  // Constructor
  //
  for(Int_t i=0; i<2; ++i) fIRIntClosestIntMap[i] = 0;
  for(Int_t i=0; i<3; ++i) {fVtx[i]=-999.; fVtxTPC[i]=-999.;}
  for(Int_t i=0; i<4; ++i) fCentrality[i]=-1.;
  fNV0candidates[0]=0; fNV0candidates[1]=0;
  fNtracks[0]=0; fNtracks[1]=0;
  for(Int_t i=0; i<32; ++i) fSPDntrackletsEta[i]=0;
  for(Int_t i=0; i<32; ++i) fNtracksPerTrackingFlag[i]=0;
  for(Int_t i=0; i<64; ++i) fVZEROMult[i] = 0.0;
  for(Int_t i=0; i<10; ++i) fZDCnEnergy[i]=0.0;
  for(Int_t i=0; i<10; ++i) fZDCpEnergy[i]=0.0;
  for(Int_t i=0; i<26; ++i) fT0amplitude[i]=0.0;
  for(Int_t i=0; i<3; ++i)  fT0TOF[i]=0.0;
  for(Int_t i=0; i<3; ++i)  fT0TOFbest[i]=0.0;
  for(Int_t i=0; i<5; ++i)  fNFMDchannels[i]=0.0;
  for(Int_t i=0; i<5; ++i)  fFMDtotalMult[i]=0.0;
  
  if(!fgTracks) fgTracks = new TClonesArray("AliReducedTrack", 100000);
  fTracks = fgTracks;
  if(!fgCandidates) fgCandidates = new TClonesArray("AliReducedPair", 100000);
  fCandidates = fgCandidates;
  if(!fgCaloClusters) fgCaloClusters = new TClonesArray("AliReducedCaloCluster", 50000);
  fCaloClusters = fgCaloClusters;
  if(!fgFMD1) fgFMD1 = new TClonesArray("AliReducedFMD", 10240);
  fFMD1 = fgFMD1;
  if(!fgFMD2I) fgFMD2I = new TClonesArray("AliReducedFMD", 10240);
  fFMD2I = fgFMD2I;
  if(!fgFMD2O) fgFMD2O = new TClonesArray("AliReducedFMD", 10240);
  fFMD2O = fgFMD2O;
  if(!fgFMD3I) fgFMD3I = new TClonesArray("AliReducedFMD", 10240);
  fFMD3I = fgFMD3I;
  if(!fgFMD3O) fgFMD3O = new TClonesArray("AliReducedFMD", 10240);
  fFMD3O = fgFMD3O;
}


//____________________________________________________________________________
AliReducedEvent::~AliReducedEvent()
{
  //
  // De-Constructor
  //
  //ClearEvent();
}


//____________________________________________________________________________
Float_t AliReducedEvent::MultVZEROA() const
{
  //
  // Total VZERO multiplicity in A side
  //
  Float_t mult=0.0;
  for(Int_t i=32;i<64;++i)
    mult += fVZEROMult[i];
  return mult;
}


//____________________________________________________________________________
Float_t AliReducedEvent::MultVZEROC() const
{
  //
  // Total VZERO multiplicity in C side
  //
  Float_t mult=0.0;
  for(Int_t i=0;i<32;++i)
    mult += fVZEROMult[i];
  return mult;
}


//____________________________________________________________________________
Float_t AliReducedEvent::MultVZERO() const
{
  //
  // Total VZERO multiplicity
  //
  return MultVZEROA()+MultVZEROC();
}


//____________________________________________________________________________
Float_t AliReducedEvent::MultRingVZEROA(Int_t ring) const 
{
  //
  //  VZERO multiplicity in a given ring on A side
  //
  if(ring<0 || ring>3) return -1.0;

  Float_t mult=0.0;
  for(Int_t i=32+8*ring; i<32+8*(ring+1); ++i)
    mult += fVZEROMult[i];
  return mult;
}


//____________________________________________________________________________
Float_t AliReducedEvent::MultRingVZEROC(Int_t ring) const 
{
  //
  //  VZERO multiplicity in a given ring on C side
  //
  if(ring<0 || ring>3) return -1.0;

  Float_t mult=0.0;
  for(Int_t i=8*ring; i<8*(ring+1); ++i)
    mult += fVZEROMult[i];
  return mult;
}

//____________________________________________________________________________
Float_t AliReducedEvent::AmplitudeTZEROA() const
{
  //
  // Total TZERO multiplicity in A side
  //
  Float_t mult=0.0;
  for(Int_t i=12;i<24;++i)
    mult += fT0amplitude[i];
  return mult;
}


//____________________________________________________________________________
Float_t AliReducedEvent::AmplitudeTZEROC() const
{
  //
  // Total TZERO multiplicity in C side
  //
  Float_t mult=0.0;
  for(Int_t i=0;i<12;++i)
    mult += fT0amplitude[i];
  return mult;
}


//____________________________________________________________________________
Float_t AliReducedEvent::AmplitudeTZERO() const
{
  //
  // Total TZERO multiplicity
  //
  return AmplitudeTZEROA()+AmplitudeTZEROC();
}



//____________________________________________________________________________
Float_t AliReducedEvent::EnergyZDCA() const
{
  //
  // Total ZDC energy in A side
  //
  Float_t energy=0.0;
  for(Int_t i=6;i<10;++i){
      if(fZDCnEnergy[i]>0.) {
  Float_t zdcNenergyAlpha = TMath::Power(fZDCnEnergy[i], gZdcNalpha);
    energy += zdcNenergyAlpha;}
  }
  return energy;
}


//____________________________________________________________________________
Float_t AliReducedEvent::EnergyZDCC() const
{
  //
  // Total ZDC energy in C side
  //
  Float_t energy=0.0;
  for(Int_t i=1;i<5;++i){
      if(fZDCnEnergy[i]>0.) {
    Float_t zdcNenergyAlpha = TMath::Power(fZDCnEnergy[i], gZdcNalpha);
    energy += zdcNenergyAlpha;}
  }
  return energy;
}


//____________________________________________________________________________
Float_t AliReducedEvent::EnergyZDC() const
{
  //
  // Total ZDC energy   
  //
  return EnergyZDCA()+EnergyZDCC();
}


//____________________________________________________________________________
Float_t AliReducedEvent::EnergyZDCn(Int_t ch) const
{
  //
  // Total ZDC energy in channel
  //
  Float_t energy=0;
  if(ch<0 || ch>9) return -999.;
      if(fZDCnEnergy[ch]>0.) {
  			energy = TMath::Power(fZDCnEnergy[ch], gZdcNalpha);
		}
  return energy;

}


//_____________________________________________________________________________
void AliReducedEvent::ClearEvent() {
  //
  // clear the event
  //
  if(fTracks) fTracks->Clear("C");
  if(fCandidates) fCandidates->Clear("C");
  if(fCaloClusters) fCaloClusters->Clear("C");
  if(fFMD1) fFMD1->Clear("C");
  if(fFMD2I) fFMD2I->Clear("C");
  if(fFMD2O) fFMD2O->Clear("C");
  if(fFMD3I) fFMD3I->Clear("C");
  if(fFMD3O) fFMD3O->Clear("C");
  fEventTag = 0;
  fEventNumberInFile = -999;
  fL0TriggerInputs=0;
  fL1TriggerInputs=0;
  fL2TriggerInputs=0;
  fIRIntClosestIntMap[0] = 0; fIRIntClosestIntMap[1] = 0;
  fRunNo = 0;
  fBC = 0;
  fTimeStamp = 0;
  fEventType = 0;
  fTriggerMask = 0;
  fIsPhysicsSelection = kTRUE;
  fIsSPDPileup = kFALSE;
  fIsSPDPileupMultBins = kFALSE;
  fIsFMDReduced = kTRUE;
  fNVtxContributors = 0;
  fNVtxTPCContributors = 0;
  fCentQuality = 0;
  for(Int_t i=0;i<4;++i) fCentrality[i] = -1.0;
  fNV0candidates[0] = 0; fNV0candidates[1] = 0;
  fNpileupSPD=0;
  fNpileupTracks=0;
  fNPMDtracks=0;
  fNTRDtracks=0;
  fNTRDtracklets=0;
  fNDielectronCandidates = 0;
  fNtracks[0] = 0; fNtracks[1] = 0;
  for(Int_t i=0; i<32; ++i) fSPDntrackletsEta[i] = 0;
  for(Int_t i=0; i<32; ++i) fNtracksPerTrackingFlag[i] = 0;
  for(Int_t i=0; i<3; ++i) {fVtx[i]=-999.; fVtxTPC[i]=-999.;}
  for(Int_t i=0; i<64; ++i) fVZEROMult[i] = 0.0;
  for(Int_t i=0; i<10; ++i) fZDCnEnergy[i]=0.0;
  for(Int_t i=0; i<10; ++i) fZDCpEnergy[i]=0.0;
  for(Int_t i=0; i<26; ++i) fT0amplitude[i]=0.0;
  for(Int_t i=0; i<3; ++i)  fT0TOF[i]=0.0;
  for(Int_t i=0; i<3; ++i)  fT0TOFbest[i]=0.0;
  fT0pileup = kFALSE;
  fT0zVertex = -999.;
  fT0start = -999.;
  fT0sattelite = kFALSE;
  for(Int_t i=0; i<5; ++i)  fNFMDchannels[i]=0.0;
  for(Int_t i=0; i<5; ++i)  fFMDtotalMult[i]=0.0;
}


//_______________________________________________________________________________
AliReducedEventFriend::AliReducedEventFriend() :
 fQvector(),
 fEventPlaneStatus()
{
  //
  // default constructor
  //
  for(Int_t idet=0; idet<kNdetectors; ++idet) {
    for(Int_t ih=0; ih<fgkNMaxHarmonics; ++ih) {
      fEventPlaneStatus[idet][ih] = 0;
      for(Int_t ic=0; ic<2; ++ic)
	fQvector[idet][ih][ic] = 0.0;
    }
  }
}


//____________________________________________________________________________
AliReducedEventFriend::~AliReducedEventFriend()
{
  //
  // De-Constructor
  //
  ClearEvent();
}


//_____________________________________________________________________________
void AliReducedEventFriend::ClearEvent() {
  //
  // clear the event
  //
  for(Int_t idet=0; idet<kNdetectors; ++idet) {
    for(Int_t ih=0; ih<fgkNMaxHarmonics; ++ih) {
      fEventPlaneStatus[idet][ih] = 0;
      for(Int_t ic=0; ic<2; ++ic)
	fQvector[idet][ih][ic] = 0.0;
    }
  }
}


//____________________________________________________________________________
void AliReducedEventFriend::CopyEvent(const AliReducedEventFriend* event) {
  //
  // copy information from another event to this one
  //
  for(Int_t idet=0; idet<kNdetectors; ++idet) {
    for(Int_t ih=0; ih<fgkNMaxHarmonics; ++ih) {
      fQvector[idet][ih][0] = event->Qx(idet, ih+1);
      fQvector[idet][ih][1] = event->Qy(idet, ih+1);
      fEventPlaneStatus[idet][ih] = event->GetEventPlaneStatus(idet, ih+1);
    }
  }
}


//_____________________________________________________________________________
AliReducedCaloCluster::AliReducedCaloCluster() :
 fType(kUndefined),
 fEnergy(-999.),
 fTrackDx(-999.),
 fTrackDz(-999.),
 fM20(-999.),
 fM02(-999.),
 fDispersion(-999.)
{
  //
  // default constructor
  //
}


//_____________________________________________________________________________
AliReducedCaloCluster::~AliReducedCaloCluster()
{
  //
  // destructor
  //
}


//_______________________________________________________________________________
void AliReducedEvent::GetQvector(Double_t Qvec[][2], Int_t det,
                                 Float_t etaMin/*=-0.8*/, Float_t etaMax/*=+0.8*/,
				 Bool_t (*IsTrackSelected)(AliReducedTrack*)/*=NULL*/) {
  //
  // Get the event plane for a specified detector
  //
  if(det==AliReducedEventFriend::kTPC || 
     det==AliReducedEventFriend::kTPCptWeights ||
     det==AliReducedEventFriend::kTPCpos ||
     det==AliReducedEventFriend::kTPCneg) {
    GetTPCQvector(Qvec, det, etaMin, etaMax, IsTrackSelected);
    return;
  }
  if(det==AliReducedEventFriend::kVZEROA ||
     det==AliReducedEventFriend::kVZEROC) {
    GetVZEROQvector(Qvec, det);   
    return;
  }
  if(det==AliReducedEventFriend::kZDCA ||
     det==AliReducedEventFriend::kZDCC) {
    GetZDCQvector(Qvec, det);
    return;
  }
  if(det==AliReducedEventFriend::kFMD) {
    //TODO implementation
    return;
  }
  return;
}


//_________________________________________________________________
Int_t AliReducedEvent::GetTPCQvector(Double_t Qvec[][2], Int_t det, 
                                     Float_t etaMin/*=-0.8*/, Float_t etaMax/*=+0.8*/,
				     Bool_t (*IsTrackSelected)(AliReducedTrack*)/*=NULL*/) {
  //
  // Construct the event plane using tracks in the barrel
  //
  if(!(det==AliReducedEventFriend::kTPC ||
       det==AliReducedEventFriend::kTPCpos ||
       det==AliReducedEventFriend::kTPCneg))
    return 0;
  Int_t nUsedTracks = 0;
  Short_t charge = 0;
  AliReducedTrack* track=0x0;
  Double_t weight=0.0; Double_t absWeight = 0.0; Double_t x=0.0; Double_t y=0.0; 
  TIter nextTrack(fTracks);
  while((track=static_cast<AliReducedTrack*>(nextTrack()))) {
    if(track->Eta()<etaMin) continue;
    if(track->Eta()>etaMax) continue;
    charge = track->Charge();
    if(det==AliReducedEventFriend::kTPCpos && charge<0) continue;
    if(det==AliReducedEventFriend::kTPCneg && charge>0) continue;
    
    if(IsTrackSelected && !IsTrackSelected(track)) continue;
    absWeight = 1.0;
    if(det==AliReducedEventFriend::kTPCptWeights) {
      absWeight = track->Pt();
      if(absWeight>2.0) absWeight = 2.0;    // pt is the weight used for the event plane
    }
    weight = absWeight;
        
    ++nUsedTracks;
    x = TMath::Cos(track->Phi());
    y = TMath::Sin(track->Phi());
    //  1st harmonic  
    Qvec[0][0] += weight*x;
    Qvec[0][1] += weight*y;
    //  2nd harmonic
    Qvec[1][0] += absWeight*(2.0*TMath::Power(x,2.0)-1);
    Qvec[1][1] += absWeight*(2.0*x*y);
    //  3rd harmonic
    Qvec[2][0] += weight*(4.0*TMath::Power(x,3.0)-3.0*x);
    Qvec[2][1] += weight*(3.0*y-4.0*TMath::Power(y,3.0));
    //  4th harmonic
    Qvec[3][0] += absWeight*(1.0-8.0*TMath::Power(x*y,2.0));
    Qvec[3][1] += absWeight*(4.0*x*y-8.0*x*TMath::Power(y,3.0));
    //  5th harmonic
    Qvec[4][0] += weight*(16.0*TMath::Power(x,5.0)-20.0*TMath::Power(x, 3.0)+5.0*x);
    Qvec[4][1] += weight*(16.0*TMath::Power(y,5.0)-20.0*TMath::Power(y, 3.0)+5.0*y);
    //  6th harmonic
    Qvec[5][0] += absWeight*(32.0*TMath::Power(x,6.0)-48.0*TMath::Power(x, 4.0)+18.0*TMath::Power(x, 2.0)-1.0);
    Qvec[5][1] += absWeight*(x*y*(32.0*TMath::Power(y,4.0)-32.0*TMath::Power(y, 2.0)+6.0)); 
  }
  return nUsedTracks;
}


//____________________________________________________________________________
void AliReducedEvent::SubtractParticleFromQvector(
	AliReducedTrack* particle, Double_t Qvec[][2], Int_t det, 
        Float_t etaMin/*=-0.8*/, Float_t etaMax/*=+0.8*/,
	Bool_t (*IsTrackSelected)(AliReducedTrack*)/*=NULL*/) {
  //
  // subtract a particle from the event Q-vector
  //
  Float_t eta = particle->Eta();
  if(eta<etaMin) return;
  if(eta>etaMax) return;
  
  Float_t charge = particle->Charge();
  if(det==AliReducedEventFriend::kTPCpos && charge<0) return;
  if(det==AliReducedEventFriend::kTPCneg && charge>0) return;
  
  if(IsTrackSelected && !IsTrackSelected(particle)) return;
  
  Double_t weight=0.0; Double_t absWeight = 0.0;
  if(det==AliReducedEventFriend::kTPCptWeights) {
    absWeight = particle->Pt();
    if(absWeight>2.0) absWeight = 2.0;
  }
  weight = absWeight;
  //  if(eta<0.0) weight *= -1.0;
    
  Float_t x = TMath::Cos(particle->Phi());
  Float_t y = TMath::Sin(particle->Phi());
  
  //  1st harmonic  
  Qvec[0][0] -= weight*x;
  Qvec[0][1] -= weight*y;
  //  2nd harmonic
  Qvec[1][0] -= absWeight*(2.0*TMath::Power(x,2.0)-1);
  Qvec[1][1] -= absWeight*(2.0*x*y);
  //  3rd harmonic
  Qvec[2][0] -= weight*(4.0*TMath::Power(x,3.0)-3.0*x);
  Qvec[2][1] -= weight*(3.0*y-4.0*TMath::Power(y,3.0));
  //  4th harmonic
  Qvec[3][0] -= absWeight*(1.0-8.0*TMath::Power(x*y,2.0));
  Qvec[3][1] -= absWeight*(4.0*x*y-8.0*x*TMath::Power(y,3.0));
  //  5th harmonic
  Qvec[4][0] -= weight*(16.0*TMath::Power(x,5.0)-20.0*TMath::Power(x, 3.0)+5.0*x);
  Qvec[4][1] -= weight*(16.0*TMath::Power(y,5.0)-20.0*TMath::Power(y, 3.0)+5.0*y);
  //  6th harmonic
  Qvec[5][0] -= absWeight*(32.0*TMath::Power(x,6.0)-48.0*TMath::Power(x, 4.0)+18.0*TMath::Power(x, 2.0)-1.0);
  Qvec[5][1] -= absWeight*(x*y*(32.0*TMath::Power(y,4.0)-32.0*TMath::Power(y, 2.0)+6.0)); 
  
  return;
}


//_________________________________________________________________
void AliReducedEvent::GetVZEROQvector(Double_t Qvec[][2], Int_t det) {
  //
  // Get the reaction plane from the VZERO detector for a given harmonic
  //
  GetVZEROQvector(Qvec, det, fVZEROMult);
}


//_________________________________________________________________
void AliReducedEvent::GetVZEROQvector(Double_t Qvec[][2], Int_t det, Float_t* vzeroMult) {
  //
  // Get the reaction plane from the VZERO detector for a given harmonic
  //
  //  Q{x,y} = SUM_i mult(i) * {cos(n*phi_i), sin(n*phi_i)} 
  //  phi_i - phi angle of the VZERO sector i
  //          Each sector covers 45 degrees(8 sectors per ring). Middle of sector 0 is at 45/2
  //        channel 0: 22.5
  //                1: 22.5+45
  //                2: 22.5+45*2
  //               ...
  //        at the next ring continues the same
  //        channel 8: 22.5
  //        channel 9: 22.5 + 45
  //       
  if(!(det==AliReducedEventFriend::kVZEROA ||
       det==AliReducedEventFriend::kVZEROC))
    return; 
  
  const Double_t kX[8] = {0.92388, 0.38268, -0.38268, -0.92388, -0.92388, -0.38268, 0.38268, 0.92388};    // cosines of the angles of the VZERO sectors (8 per ring)
  const Double_t kY[8] = {0.38268, 0.92388, 0.92388, 0.38268, -0.38268, -0.92388, -0.92388, -0.38268};    // sines     -- " --
  Int_t phi;
  
  for(Int_t iChannel=0; iChannel<64; ++iChannel) {
    if(iChannel<32 && det==AliReducedEventFriend::kVZEROA) continue;
    if(iChannel>=32 && det==AliReducedEventFriend::kVZEROC) continue;
    phi=iChannel%8;
    //  1st harmonic  
    Qvec[0][0] += vzeroMult[iChannel]*kX[phi];
    Qvec[0][1] += vzeroMult[iChannel]*kY[phi];
    //  2nd harmonic
    Qvec[1][0] += vzeroMult[iChannel]*(2.0*TMath::Power(kX[phi],2.0)-1);
    Qvec[1][1] += vzeroMult[iChannel]*(2.0*kX[phi]*kY[phi]);
    //  3rd harmonic
    Qvec[2][0] += vzeroMult[iChannel]*(4.0*TMath::Power(kX[phi],3.0)-3.0*kX[phi]);
    Qvec[2][1] += vzeroMult[iChannel]*(3.0*kY[phi]-4.0*TMath::Power(kY[phi],3.0));
    //  4th harmonic
    Qvec[3][0] += vzeroMult[iChannel]*(1.0-8.0*TMath::Power(kX[phi]*kY[phi],2.0));
    Qvec[3][1] += vzeroMult[iChannel]*(4.0*kX[phi]*kY[phi]-8.0*kX[phi]*TMath::Power(kY[phi],3.0));
    //  5th harmonic
    Qvec[4][0] += vzeroMult[iChannel]*(16.0*TMath::Power(kX[phi],5.0)-20.0*TMath::Power(kX[phi], 3.0)+5.0*kX[phi]);
    Qvec[4][1] += vzeroMult[iChannel]*(16.0*TMath::Power(kY[phi],5.0)-20.0*TMath::Power(kY[phi], 3.0)+5.0*kY[phi]);
    //  6th harmonic
    Qvec[5][0] += vzeroMult[iChannel]*(32.0*TMath::Power(kX[phi],6.0)-48.0*TMath::Power(kX[phi], 4.0)+18.0*TMath::Power(kX[phi], 2.0)-1.0);
    Qvec[5][1] += vzeroMult[iChannel]*(kX[phi]*kY[phi]*(32.0*TMath::Power(kY[phi],4.0)-32.0*TMath::Power(kY[phi], 2.0)+6.0));
  }    // end loop over channels 
}


//_________________________________________________________________
void AliReducedEvent::GetZDCQvector(Double_t Qvec[][2], Int_t det) const {
  //
  // Get the reaction plane from the ZDC detector for a given harmonic
  //
  GetZDCQvector(Qvec, det, fZDCnEnergy);
}


//_________________________________________________________________
void AliReducedEvent::GetZDCQvector(Double_t Qvec[][2], Int_t det, const Float_t* zdcEnergy) const {
  //
  // Construct the event plane using the ZDC
  // ZDC has 2 side (A and C) with 4 calorimeters on each side  
  // The XY position of each calorimeter is specified by the 
  // zdcNTowerCenters_x and zdcNTowerCenters_y arrays
  if(!(det==AliReducedEventFriend::kZDCA ||
       det==AliReducedEventFriend::kZDCC ))
    return; 
 

  //Int_t minTower,maxTower;
  //Float_t totalEnergy = 0.0;

  const Float_t zdcTowerCenter = 1.75;


  Float_t zdcNTowerCentersX[4] = {0.0};
  Float_t zdcNTowerCentersY[4] = {0.0};


  if(det==AliReducedEventFriend::kZDCA){
    zdcNTowerCentersX[0] =  zdcTowerCenter; zdcNTowerCentersX[1] =-zdcTowerCenter;
    zdcNTowerCentersX[2] =  zdcTowerCenter; zdcNTowerCentersX[3] =-zdcTowerCenter;
  }

  if(det==AliReducedEventFriend::kZDCC){
    zdcNTowerCentersX[0] = -zdcTowerCenter; zdcNTowerCentersX[1] = zdcTowerCenter;
    zdcNTowerCentersX[2] = -zdcTowerCenter; zdcNTowerCentersX[3] = zdcTowerCenter;
  }

  zdcNTowerCentersY[0] = -zdcTowerCenter; zdcNTowerCentersY[1] =-zdcTowerCenter;
  zdcNTowerCentersY[2] =  zdcTowerCenter; zdcNTowerCentersY[3] = zdcTowerCenter;

 
  for(Int_t ih=0; ih<6; ih++) {Qvec[ih][0] = 0.0; Qvec[ih][1] = 0.0;}   // harmonic Q-vector
  Float_t zdcNCentroidSum = 0;
    
  for(Int_t iTow=(det==AliReducedEventFriend::kZDCA ? 6 : 1); iTow<(det==AliReducedEventFriend::kZDCA ? 10 : 5); ++iTow) {
    //if(fZDCnEnergy[i+(det==AliReducedEventFriend::kZDCA ? 4 : 0)]>0.0) {
    //  1st harmonic  
    Qvec[0][0] += zdcEnergy[iTow]*zdcNTowerCentersX[(iTow-1)%5];
    Qvec[0][1] += zdcEnergy[iTow]*zdcNTowerCentersY[(iTow-1)%5];
    //  2nd harmonic
    Qvec[1][0] += zdcEnergy[iTow]*(2.0*TMath::Power(zdcNTowerCentersX[(iTow-1)%5],2.0)-1);
    Qvec[1][1] += zdcEnergy[iTow]*(2.0*zdcNTowerCentersX[(iTow-1)%5]*zdcNTowerCentersY[(iTow-1)%5]);
    //  3rd harmonic
    Qvec[2][0] += zdcEnergy[iTow]*(4.0*TMath::Power(zdcNTowerCentersX[(iTow-1)%5],3.0)-3.0*zdcNTowerCentersX[(iTow-1)%5]);
    Qvec[2][1] += zdcEnergy[iTow]*(3.0*zdcNTowerCentersY[(iTow-1)%5]-4.0*TMath::Power(zdcNTowerCentersY[(iTow-1)%5],3.0));
    //  4th harmonic
    Qvec[3][0] += zdcEnergy[iTow]*(1.0-8.0*TMath::Power(zdcNTowerCentersX[(iTow-1)%5]*zdcNTowerCentersY[(iTow-1)%5],2.0));
    Qvec[3][1] += zdcEnergy[iTow]*(4.0*zdcNTowerCentersX[(iTow-1)%5]*zdcNTowerCentersY[(iTow-1)%5]-8.0*zdcNTowerCentersX[(iTow-1)%5]*TMath::Power(zdcNTowerCentersY[(iTow-1)%5],3.0));
    //  5th harmonic
    Qvec[4][0] += zdcEnergy[iTow]*(16.0*TMath::Power(zdcNTowerCentersX[(iTow-1)%5],5.0)-20.0*TMath::Power(zdcNTowerCentersX[(iTow-1)%5], 3.0)+5.0*zdcNTowerCentersX[(iTow-1)%5]);
    Qvec[4][1] += zdcEnergy[iTow]*(16.0*TMath::Power(zdcNTowerCentersY[(iTow-1)%5],5.0)-20.0*TMath::Power(zdcNTowerCentersY[(iTow-1)%5], 3.0)+5.0*zdcNTowerCentersY[(iTow-1)%5]);
    //  6th harmonic
    Qvec[5][0] += zdcEnergy[iTow]*(32.0*TMath::Power(zdcNTowerCentersX[(iTow-1)%5],6.0)-48.0*TMath::Power(zdcNTowerCentersX[(iTow-1)%5], 4.0)+18.0*TMath::Power(zdcNTowerCentersX[(iTow-1)%5], 2.0)-1.0);
    Qvec[5][1] += zdcEnergy[iTow]*(zdcNTowerCentersX[(iTow-1)%5]*zdcNTowerCentersY[(iTow-1)%5]*(32.0*TMath::Power(zdcNTowerCentersY[(iTow-1)%5],4.0)-32.0*TMath::Power(zdcNTowerCentersY[(iTow-1)%5], 2.0)+6.0));

    zdcNCentroidSum += zdcEnergy[iTow];

    if(zdcNCentroidSum>0.0) {
      Qvec[0][0] /= zdcNCentroidSum;
      Qvec[0][1] /= zdcNCentroidSum;
      Qvec[1][0] /= zdcNCentroidSum;
      Qvec[1][1] /= zdcNCentroidSum;
      Qvec[2][0] /= zdcNCentroidSum;
      Qvec[2][1] /= zdcNCentroidSum;
      Qvec[3][0] /= zdcNCentroidSum;
      Qvec[3][1] /= zdcNCentroidSum;
      Qvec[4][0] /= zdcNCentroidSum;
      Qvec[4][1] /= zdcNCentroidSum;
      Qvec[5][0] /= zdcNCentroidSum;
      Qvec[5][1] /= zdcNCentroidSum;
    }
  }   // end loop over channels
  return;
}
 AliReducedEvent.cxx:1
 AliReducedEvent.cxx:2
 AliReducedEvent.cxx:3
 AliReducedEvent.cxx:4
 AliReducedEvent.cxx:5
 AliReducedEvent.cxx:6
 AliReducedEvent.cxx:7
 AliReducedEvent.cxx:8
 AliReducedEvent.cxx:9
 AliReducedEvent.cxx:10
 AliReducedEvent.cxx:11
 AliReducedEvent.cxx:12
 AliReducedEvent.cxx:13
 AliReducedEvent.cxx:14
 AliReducedEvent.cxx:15
 AliReducedEvent.cxx:16
 AliReducedEvent.cxx:17
 AliReducedEvent.cxx:18
 AliReducedEvent.cxx:19
 AliReducedEvent.cxx:20
 AliReducedEvent.cxx:21
 AliReducedEvent.cxx:22
 AliReducedEvent.cxx:23
 AliReducedEvent.cxx:24
 AliReducedEvent.cxx:25
 AliReducedEvent.cxx:26
 AliReducedEvent.cxx:27
 AliReducedEvent.cxx:28
 AliReducedEvent.cxx:29
 AliReducedEvent.cxx:30
 AliReducedEvent.cxx:31
 AliReducedEvent.cxx:32
 AliReducedEvent.cxx:33
 AliReducedEvent.cxx:34
 AliReducedEvent.cxx:35
 AliReducedEvent.cxx:36
 AliReducedEvent.cxx:37
 AliReducedEvent.cxx:38
 AliReducedEvent.cxx:39
 AliReducedEvent.cxx:40
 AliReducedEvent.cxx:41
 AliReducedEvent.cxx:42
 AliReducedEvent.cxx:43
 AliReducedEvent.cxx:44
 AliReducedEvent.cxx:45
 AliReducedEvent.cxx:46
 AliReducedEvent.cxx:47
 AliReducedEvent.cxx:48
 AliReducedEvent.cxx:49
 AliReducedEvent.cxx:50
 AliReducedEvent.cxx:51
 AliReducedEvent.cxx:52
 AliReducedEvent.cxx:53
 AliReducedEvent.cxx:54
 AliReducedEvent.cxx:55
 AliReducedEvent.cxx:56
 AliReducedEvent.cxx:57
 AliReducedEvent.cxx:58
 AliReducedEvent.cxx:59
 AliReducedEvent.cxx:60
 AliReducedEvent.cxx:61
 AliReducedEvent.cxx:62
 AliReducedEvent.cxx:63
 AliReducedEvent.cxx:64
 AliReducedEvent.cxx:65
 AliReducedEvent.cxx:66
 AliReducedEvent.cxx:67
 AliReducedEvent.cxx:68
 AliReducedEvent.cxx:69
 AliReducedEvent.cxx:70
 AliReducedEvent.cxx:71
 AliReducedEvent.cxx:72
 AliReducedEvent.cxx:73
 AliReducedEvent.cxx:74
 AliReducedEvent.cxx:75
 AliReducedEvent.cxx:76
 AliReducedEvent.cxx:77
 AliReducedEvent.cxx:78
 AliReducedEvent.cxx:79
 AliReducedEvent.cxx:80
 AliReducedEvent.cxx:81
 AliReducedEvent.cxx:82
 AliReducedEvent.cxx:83
 AliReducedEvent.cxx:84
 AliReducedEvent.cxx:85
 AliReducedEvent.cxx:86
 AliReducedEvent.cxx:87
 AliReducedEvent.cxx:88
 AliReducedEvent.cxx:89
 AliReducedEvent.cxx:90
 AliReducedEvent.cxx:91
 AliReducedEvent.cxx:92
 AliReducedEvent.cxx:93
 AliReducedEvent.cxx:94
 AliReducedEvent.cxx:95
 AliReducedEvent.cxx:96
 AliReducedEvent.cxx:97
 AliReducedEvent.cxx:98
 AliReducedEvent.cxx:99
 AliReducedEvent.cxx:100
 AliReducedEvent.cxx:101
 AliReducedEvent.cxx:102
 AliReducedEvent.cxx:103
 AliReducedEvent.cxx:104
 AliReducedEvent.cxx:105
 AliReducedEvent.cxx:106
 AliReducedEvent.cxx:107
 AliReducedEvent.cxx:108
 AliReducedEvent.cxx:109
 AliReducedEvent.cxx:110
 AliReducedEvent.cxx:111
 AliReducedEvent.cxx:112
 AliReducedEvent.cxx:113
 AliReducedEvent.cxx:114
 AliReducedEvent.cxx:115
 AliReducedEvent.cxx:116
 AliReducedEvent.cxx:117
 AliReducedEvent.cxx:118
 AliReducedEvent.cxx:119
 AliReducedEvent.cxx:120
 AliReducedEvent.cxx:121
 AliReducedEvent.cxx:122
 AliReducedEvent.cxx:123
 AliReducedEvent.cxx:124
 AliReducedEvent.cxx:125
 AliReducedEvent.cxx:126
 AliReducedEvent.cxx:127
 AliReducedEvent.cxx:128
 AliReducedEvent.cxx:129
 AliReducedEvent.cxx:130
 AliReducedEvent.cxx:131
 AliReducedEvent.cxx:132
 AliReducedEvent.cxx:133
 AliReducedEvent.cxx:134
 AliReducedEvent.cxx:135
 AliReducedEvent.cxx:136
 AliReducedEvent.cxx:137
 AliReducedEvent.cxx:138
 AliReducedEvent.cxx:139
 AliReducedEvent.cxx:140
 AliReducedEvent.cxx:141
 AliReducedEvent.cxx:142
 AliReducedEvent.cxx:143
 AliReducedEvent.cxx:144
 AliReducedEvent.cxx:145
 AliReducedEvent.cxx:146
 AliReducedEvent.cxx:147
 AliReducedEvent.cxx:148
 AliReducedEvent.cxx:149
 AliReducedEvent.cxx:150
 AliReducedEvent.cxx:151
 AliReducedEvent.cxx:152
 AliReducedEvent.cxx:153
 AliReducedEvent.cxx:154
 AliReducedEvent.cxx:155
 AliReducedEvent.cxx:156
 AliReducedEvent.cxx:157
 AliReducedEvent.cxx:158
 AliReducedEvent.cxx:159
 AliReducedEvent.cxx:160
 AliReducedEvent.cxx:161
 AliReducedEvent.cxx:162
 AliReducedEvent.cxx:163
 AliReducedEvent.cxx:164
 AliReducedEvent.cxx:165
 AliReducedEvent.cxx:166
 AliReducedEvent.cxx:167
 AliReducedEvent.cxx:168
 AliReducedEvent.cxx:169
 AliReducedEvent.cxx:170
 AliReducedEvent.cxx:171
 AliReducedEvent.cxx:172
 AliReducedEvent.cxx:173
 AliReducedEvent.cxx:174
 AliReducedEvent.cxx:175
 AliReducedEvent.cxx:176
 AliReducedEvent.cxx:177
 AliReducedEvent.cxx:178
 AliReducedEvent.cxx:179
 AliReducedEvent.cxx:180
 AliReducedEvent.cxx:181
 AliReducedEvent.cxx:182
 AliReducedEvent.cxx:183
 AliReducedEvent.cxx:184
 AliReducedEvent.cxx:185
 AliReducedEvent.cxx:186
 AliReducedEvent.cxx:187
 AliReducedEvent.cxx:188
 AliReducedEvent.cxx:189
 AliReducedEvent.cxx:190
 AliReducedEvent.cxx:191
 AliReducedEvent.cxx:192
 AliReducedEvent.cxx:193
 AliReducedEvent.cxx:194
 AliReducedEvent.cxx:195
 AliReducedEvent.cxx:196
 AliReducedEvent.cxx:197
 AliReducedEvent.cxx:198
 AliReducedEvent.cxx:199
 AliReducedEvent.cxx:200
 AliReducedEvent.cxx:201
 AliReducedEvent.cxx:202
 AliReducedEvent.cxx:203
 AliReducedEvent.cxx:204
 AliReducedEvent.cxx:205
 AliReducedEvent.cxx:206
 AliReducedEvent.cxx:207
 AliReducedEvent.cxx:208
 AliReducedEvent.cxx:209
 AliReducedEvent.cxx:210
 AliReducedEvent.cxx:211
 AliReducedEvent.cxx:212
 AliReducedEvent.cxx:213
 AliReducedEvent.cxx:214
 AliReducedEvent.cxx:215
 AliReducedEvent.cxx:216
 AliReducedEvent.cxx:217
 AliReducedEvent.cxx:218
 AliReducedEvent.cxx:219
 AliReducedEvent.cxx:220
 AliReducedEvent.cxx:221
 AliReducedEvent.cxx:222
 AliReducedEvent.cxx:223
 AliReducedEvent.cxx:224
 AliReducedEvent.cxx:225
 AliReducedEvent.cxx:226
 AliReducedEvent.cxx:227
 AliReducedEvent.cxx:228
 AliReducedEvent.cxx:229
 AliReducedEvent.cxx:230
 AliReducedEvent.cxx:231
 AliReducedEvent.cxx:232
 AliReducedEvent.cxx:233
 AliReducedEvent.cxx:234
 AliReducedEvent.cxx:235
 AliReducedEvent.cxx:236
 AliReducedEvent.cxx:237
 AliReducedEvent.cxx:238
 AliReducedEvent.cxx:239
 AliReducedEvent.cxx:240
 AliReducedEvent.cxx:241
 AliReducedEvent.cxx:242
 AliReducedEvent.cxx:243
 AliReducedEvent.cxx:244
 AliReducedEvent.cxx:245
 AliReducedEvent.cxx:246
 AliReducedEvent.cxx:247
 AliReducedEvent.cxx:248
 AliReducedEvent.cxx:249
 AliReducedEvent.cxx:250
 AliReducedEvent.cxx:251
 AliReducedEvent.cxx:252
 AliReducedEvent.cxx:253
 AliReducedEvent.cxx:254
 AliReducedEvent.cxx:255
 AliReducedEvent.cxx:256
 AliReducedEvent.cxx:257
 AliReducedEvent.cxx:258
 AliReducedEvent.cxx:259
 AliReducedEvent.cxx:260
 AliReducedEvent.cxx:261
 AliReducedEvent.cxx:262
 AliReducedEvent.cxx:263
 AliReducedEvent.cxx:264
 AliReducedEvent.cxx:265
 AliReducedEvent.cxx:266
 AliReducedEvent.cxx:267
 AliReducedEvent.cxx:268
 AliReducedEvent.cxx:269
 AliReducedEvent.cxx:270
 AliReducedEvent.cxx:271
 AliReducedEvent.cxx:272
 AliReducedEvent.cxx:273
 AliReducedEvent.cxx:274
 AliReducedEvent.cxx:275
 AliReducedEvent.cxx:276
 AliReducedEvent.cxx:277
 AliReducedEvent.cxx:278
 AliReducedEvent.cxx:279
 AliReducedEvent.cxx:280
 AliReducedEvent.cxx:281
 AliReducedEvent.cxx:282
 AliReducedEvent.cxx:283
 AliReducedEvent.cxx:284
 AliReducedEvent.cxx:285
 AliReducedEvent.cxx:286
 AliReducedEvent.cxx:287
 AliReducedEvent.cxx:288
 AliReducedEvent.cxx:289
 AliReducedEvent.cxx:290
 AliReducedEvent.cxx:291
 AliReducedEvent.cxx:292
 AliReducedEvent.cxx:293
 AliReducedEvent.cxx:294
 AliReducedEvent.cxx:295
 AliReducedEvent.cxx:296
 AliReducedEvent.cxx:297
 AliReducedEvent.cxx:298
 AliReducedEvent.cxx:299
 AliReducedEvent.cxx:300
 AliReducedEvent.cxx:301
 AliReducedEvent.cxx:302
 AliReducedEvent.cxx:303
 AliReducedEvent.cxx:304
 AliReducedEvent.cxx:305
 AliReducedEvent.cxx:306
 AliReducedEvent.cxx:307
 AliReducedEvent.cxx:308
 AliReducedEvent.cxx:309
 AliReducedEvent.cxx:310
 AliReducedEvent.cxx:311
 AliReducedEvent.cxx:312
 AliReducedEvent.cxx:313
 AliReducedEvent.cxx:314
 AliReducedEvent.cxx:315
 AliReducedEvent.cxx:316
 AliReducedEvent.cxx:317
 AliReducedEvent.cxx:318
 AliReducedEvent.cxx:319
 AliReducedEvent.cxx:320
 AliReducedEvent.cxx:321
 AliReducedEvent.cxx:322
 AliReducedEvent.cxx:323
 AliReducedEvent.cxx:324
 AliReducedEvent.cxx:325
 AliReducedEvent.cxx:326
 AliReducedEvent.cxx:327
 AliReducedEvent.cxx:328
 AliReducedEvent.cxx:329
 AliReducedEvent.cxx:330
 AliReducedEvent.cxx:331
 AliReducedEvent.cxx:332
 AliReducedEvent.cxx:333
 AliReducedEvent.cxx:334
 AliReducedEvent.cxx:335
 AliReducedEvent.cxx:336
 AliReducedEvent.cxx:337
 AliReducedEvent.cxx:338
 AliReducedEvent.cxx:339
 AliReducedEvent.cxx:340
 AliReducedEvent.cxx:341
 AliReducedEvent.cxx:342
 AliReducedEvent.cxx:343
 AliReducedEvent.cxx:344
 AliReducedEvent.cxx:345
 AliReducedEvent.cxx:346
 AliReducedEvent.cxx:347
 AliReducedEvent.cxx:348
 AliReducedEvent.cxx:349
 AliReducedEvent.cxx:350
 AliReducedEvent.cxx:351
 AliReducedEvent.cxx:352
 AliReducedEvent.cxx:353
 AliReducedEvent.cxx:354
 AliReducedEvent.cxx:355
 AliReducedEvent.cxx:356
 AliReducedEvent.cxx:357
 AliReducedEvent.cxx:358
 AliReducedEvent.cxx:359
 AliReducedEvent.cxx:360
 AliReducedEvent.cxx:361
 AliReducedEvent.cxx:362
 AliReducedEvent.cxx:363
 AliReducedEvent.cxx:364
 AliReducedEvent.cxx:365
 AliReducedEvent.cxx:366
 AliReducedEvent.cxx:367
 AliReducedEvent.cxx:368
 AliReducedEvent.cxx:369
 AliReducedEvent.cxx:370
 AliReducedEvent.cxx:371
 AliReducedEvent.cxx:372
 AliReducedEvent.cxx:373
 AliReducedEvent.cxx:374
 AliReducedEvent.cxx:375
 AliReducedEvent.cxx:376
 AliReducedEvent.cxx:377
 AliReducedEvent.cxx:378
 AliReducedEvent.cxx:379
 AliReducedEvent.cxx:380
 AliReducedEvent.cxx:381
 AliReducedEvent.cxx:382
 AliReducedEvent.cxx:383
 AliReducedEvent.cxx:384
 AliReducedEvent.cxx:385
 AliReducedEvent.cxx:386
 AliReducedEvent.cxx:387
 AliReducedEvent.cxx:388
 AliReducedEvent.cxx:389
 AliReducedEvent.cxx:390
 AliReducedEvent.cxx:391
 AliReducedEvent.cxx:392
 AliReducedEvent.cxx:393
 AliReducedEvent.cxx:394
 AliReducedEvent.cxx:395
 AliReducedEvent.cxx:396
 AliReducedEvent.cxx:397
 AliReducedEvent.cxx:398
 AliReducedEvent.cxx:399
 AliReducedEvent.cxx:400
 AliReducedEvent.cxx:401
 AliReducedEvent.cxx:402
 AliReducedEvent.cxx:403
 AliReducedEvent.cxx:404
 AliReducedEvent.cxx:405
 AliReducedEvent.cxx:406
 AliReducedEvent.cxx:407
 AliReducedEvent.cxx:408
 AliReducedEvent.cxx:409
 AliReducedEvent.cxx:410
 AliReducedEvent.cxx:411
 AliReducedEvent.cxx:412
 AliReducedEvent.cxx:413
 AliReducedEvent.cxx:414
 AliReducedEvent.cxx:415
 AliReducedEvent.cxx:416
 AliReducedEvent.cxx:417
 AliReducedEvent.cxx:418
 AliReducedEvent.cxx:419
 AliReducedEvent.cxx:420
 AliReducedEvent.cxx:421
 AliReducedEvent.cxx:422
 AliReducedEvent.cxx:423
 AliReducedEvent.cxx:424
 AliReducedEvent.cxx:425
 AliReducedEvent.cxx:426
 AliReducedEvent.cxx:427
 AliReducedEvent.cxx:428
 AliReducedEvent.cxx:429
 AliReducedEvent.cxx:430
 AliReducedEvent.cxx:431
 AliReducedEvent.cxx:432
 AliReducedEvent.cxx:433
 AliReducedEvent.cxx:434
 AliReducedEvent.cxx:435
 AliReducedEvent.cxx:436
 AliReducedEvent.cxx:437
 AliReducedEvent.cxx:438
 AliReducedEvent.cxx:439
 AliReducedEvent.cxx:440
 AliReducedEvent.cxx:441
 AliReducedEvent.cxx:442
 AliReducedEvent.cxx:443
 AliReducedEvent.cxx:444
 AliReducedEvent.cxx:445
 AliReducedEvent.cxx:446
 AliReducedEvent.cxx:447
 AliReducedEvent.cxx:448
 AliReducedEvent.cxx:449
 AliReducedEvent.cxx:450
 AliReducedEvent.cxx:451
 AliReducedEvent.cxx:452
 AliReducedEvent.cxx:453
 AliReducedEvent.cxx:454
 AliReducedEvent.cxx:455
 AliReducedEvent.cxx:456
 AliReducedEvent.cxx:457
 AliReducedEvent.cxx:458
 AliReducedEvent.cxx:459
 AliReducedEvent.cxx:460
 AliReducedEvent.cxx:461
 AliReducedEvent.cxx:462
 AliReducedEvent.cxx:463
 AliReducedEvent.cxx:464
 AliReducedEvent.cxx:465
 AliReducedEvent.cxx:466
 AliReducedEvent.cxx:467
 AliReducedEvent.cxx:468
 AliReducedEvent.cxx:469
 AliReducedEvent.cxx:470
 AliReducedEvent.cxx:471
 AliReducedEvent.cxx:472
 AliReducedEvent.cxx:473
 AliReducedEvent.cxx:474
 AliReducedEvent.cxx:475
 AliReducedEvent.cxx:476
 AliReducedEvent.cxx:477
 AliReducedEvent.cxx:478
 AliReducedEvent.cxx:479
 AliReducedEvent.cxx:480
 AliReducedEvent.cxx:481
 AliReducedEvent.cxx:482
 AliReducedEvent.cxx:483
 AliReducedEvent.cxx:484
 AliReducedEvent.cxx:485
 AliReducedEvent.cxx:486
 AliReducedEvent.cxx:487
 AliReducedEvent.cxx:488
 AliReducedEvent.cxx:489
 AliReducedEvent.cxx:490
 AliReducedEvent.cxx:491
 AliReducedEvent.cxx:492
 AliReducedEvent.cxx:493
 AliReducedEvent.cxx:494
 AliReducedEvent.cxx:495
 AliReducedEvent.cxx:496
 AliReducedEvent.cxx:497
 AliReducedEvent.cxx:498
 AliReducedEvent.cxx:499
 AliReducedEvent.cxx:500
 AliReducedEvent.cxx:501
 AliReducedEvent.cxx:502
 AliReducedEvent.cxx:503
 AliReducedEvent.cxx:504
 AliReducedEvent.cxx:505
 AliReducedEvent.cxx:506
 AliReducedEvent.cxx:507
 AliReducedEvent.cxx:508
 AliReducedEvent.cxx:509
 AliReducedEvent.cxx:510
 AliReducedEvent.cxx:511
 AliReducedEvent.cxx:512
 AliReducedEvent.cxx:513
 AliReducedEvent.cxx:514
 AliReducedEvent.cxx:515
 AliReducedEvent.cxx:516
 AliReducedEvent.cxx:517
 AliReducedEvent.cxx:518
 AliReducedEvent.cxx:519
 AliReducedEvent.cxx:520
 AliReducedEvent.cxx:521
 AliReducedEvent.cxx:522
 AliReducedEvent.cxx:523
 AliReducedEvent.cxx:524
 AliReducedEvent.cxx:525
 AliReducedEvent.cxx:526
 AliReducedEvent.cxx:527
 AliReducedEvent.cxx:528
 AliReducedEvent.cxx:529
 AliReducedEvent.cxx:530
 AliReducedEvent.cxx:531
 AliReducedEvent.cxx:532
 AliReducedEvent.cxx:533
 AliReducedEvent.cxx:534
 AliReducedEvent.cxx:535
 AliReducedEvent.cxx:536
 AliReducedEvent.cxx:537
 AliReducedEvent.cxx:538
 AliReducedEvent.cxx:539
 AliReducedEvent.cxx:540
 AliReducedEvent.cxx:541
 AliReducedEvent.cxx:542
 AliReducedEvent.cxx:543
 AliReducedEvent.cxx:544
 AliReducedEvent.cxx:545
 AliReducedEvent.cxx:546
 AliReducedEvent.cxx:547
 AliReducedEvent.cxx:548
 AliReducedEvent.cxx:549
 AliReducedEvent.cxx:550
 AliReducedEvent.cxx:551
 AliReducedEvent.cxx:552
 AliReducedEvent.cxx:553
 AliReducedEvent.cxx:554
 AliReducedEvent.cxx:555
 AliReducedEvent.cxx:556
 AliReducedEvent.cxx:557
 AliReducedEvent.cxx:558
 AliReducedEvent.cxx:559
 AliReducedEvent.cxx:560
 AliReducedEvent.cxx:561
 AliReducedEvent.cxx:562
 AliReducedEvent.cxx:563
 AliReducedEvent.cxx:564
 AliReducedEvent.cxx:565
 AliReducedEvent.cxx:566
 AliReducedEvent.cxx:567
 AliReducedEvent.cxx:568
 AliReducedEvent.cxx:569
 AliReducedEvent.cxx:570
 AliReducedEvent.cxx:571
 AliReducedEvent.cxx:572
 AliReducedEvent.cxx:573
 AliReducedEvent.cxx:574
 AliReducedEvent.cxx:575
 AliReducedEvent.cxx:576
 AliReducedEvent.cxx:577
 AliReducedEvent.cxx:578
 AliReducedEvent.cxx:579
 AliReducedEvent.cxx:580
 AliReducedEvent.cxx:581
 AliReducedEvent.cxx:582
 AliReducedEvent.cxx:583
 AliReducedEvent.cxx:584
 AliReducedEvent.cxx:585
 AliReducedEvent.cxx:586
 AliReducedEvent.cxx:587
 AliReducedEvent.cxx:588
 AliReducedEvent.cxx:589
 AliReducedEvent.cxx:590
 AliReducedEvent.cxx:591
 AliReducedEvent.cxx:592
 AliReducedEvent.cxx:593
 AliReducedEvent.cxx:594
 AliReducedEvent.cxx:595
 AliReducedEvent.cxx:596
 AliReducedEvent.cxx:597
 AliReducedEvent.cxx:598
 AliReducedEvent.cxx:599
 AliReducedEvent.cxx:600
 AliReducedEvent.cxx:601
 AliReducedEvent.cxx:602
 AliReducedEvent.cxx:603
 AliReducedEvent.cxx:604
 AliReducedEvent.cxx:605
 AliReducedEvent.cxx:606
 AliReducedEvent.cxx:607
 AliReducedEvent.cxx:608
 AliReducedEvent.cxx:609
 AliReducedEvent.cxx:610
 AliReducedEvent.cxx:611
 AliReducedEvent.cxx:612
 AliReducedEvent.cxx:613
 AliReducedEvent.cxx:614
 AliReducedEvent.cxx:615
 AliReducedEvent.cxx:616
 AliReducedEvent.cxx:617
 AliReducedEvent.cxx:618
 AliReducedEvent.cxx:619
 AliReducedEvent.cxx:620
 AliReducedEvent.cxx:621
 AliReducedEvent.cxx:622
 AliReducedEvent.cxx:623
 AliReducedEvent.cxx:624
 AliReducedEvent.cxx:625
 AliReducedEvent.cxx:626
 AliReducedEvent.cxx:627
 AliReducedEvent.cxx:628
 AliReducedEvent.cxx:629
 AliReducedEvent.cxx:630
 AliReducedEvent.cxx:631
 AliReducedEvent.cxx:632
 AliReducedEvent.cxx:633
 AliReducedEvent.cxx:634
 AliReducedEvent.cxx:635
 AliReducedEvent.cxx:636
 AliReducedEvent.cxx:637
 AliReducedEvent.cxx:638
 AliReducedEvent.cxx:639
 AliReducedEvent.cxx:640
 AliReducedEvent.cxx:641
 AliReducedEvent.cxx:642
 AliReducedEvent.cxx:643
 AliReducedEvent.cxx:644
 AliReducedEvent.cxx:645
 AliReducedEvent.cxx:646
 AliReducedEvent.cxx:647
 AliReducedEvent.cxx:648
 AliReducedEvent.cxx:649
 AliReducedEvent.cxx:650
 AliReducedEvent.cxx:651
 AliReducedEvent.cxx:652
 AliReducedEvent.cxx:653
 AliReducedEvent.cxx:654
 AliReducedEvent.cxx:655
 AliReducedEvent.cxx:656
 AliReducedEvent.cxx:657
 AliReducedEvent.cxx:658
 AliReducedEvent.cxx:659
 AliReducedEvent.cxx:660
 AliReducedEvent.cxx:661
 AliReducedEvent.cxx:662
 AliReducedEvent.cxx:663
 AliReducedEvent.cxx:664
 AliReducedEvent.cxx:665
 AliReducedEvent.cxx:666
 AliReducedEvent.cxx:667
 AliReducedEvent.cxx:668
 AliReducedEvent.cxx:669
 AliReducedEvent.cxx:670
 AliReducedEvent.cxx:671
 AliReducedEvent.cxx:672
 AliReducedEvent.cxx:673
 AliReducedEvent.cxx:674
 AliReducedEvent.cxx:675
 AliReducedEvent.cxx:676
 AliReducedEvent.cxx:677
 AliReducedEvent.cxx:678
 AliReducedEvent.cxx:679
 AliReducedEvent.cxx:680
 AliReducedEvent.cxx:681
 AliReducedEvent.cxx:682
 AliReducedEvent.cxx:683
 AliReducedEvent.cxx:684
 AliReducedEvent.cxx:685
 AliReducedEvent.cxx:686
 AliReducedEvent.cxx:687
 AliReducedEvent.cxx:688
 AliReducedEvent.cxx:689
 AliReducedEvent.cxx:690
 AliReducedEvent.cxx:691
 AliReducedEvent.cxx:692
 AliReducedEvent.cxx:693
 AliReducedEvent.cxx:694
 AliReducedEvent.cxx:695
 AliReducedEvent.cxx:696
 AliReducedEvent.cxx:697
 AliReducedEvent.cxx:698
 AliReducedEvent.cxx:699
 AliReducedEvent.cxx:700
 AliReducedEvent.cxx:701
 AliReducedEvent.cxx:702
 AliReducedEvent.cxx:703
 AliReducedEvent.cxx:704
 AliReducedEvent.cxx:705
 AliReducedEvent.cxx:706
 AliReducedEvent.cxx:707
 AliReducedEvent.cxx:708
 AliReducedEvent.cxx:709
 AliReducedEvent.cxx:710
 AliReducedEvent.cxx:711
 AliReducedEvent.cxx:712
 AliReducedEvent.cxx:713
 AliReducedEvent.cxx:714
 AliReducedEvent.cxx:715
 AliReducedEvent.cxx:716
 AliReducedEvent.cxx:717
 AliReducedEvent.cxx:718
 AliReducedEvent.cxx:719
 AliReducedEvent.cxx:720
 AliReducedEvent.cxx:721
 AliReducedEvent.cxx:722
 AliReducedEvent.cxx:723
 AliReducedEvent.cxx:724
 AliReducedEvent.cxx:725
 AliReducedEvent.cxx:726
 AliReducedEvent.cxx:727
 AliReducedEvent.cxx:728
 AliReducedEvent.cxx:729
 AliReducedEvent.cxx:730
 AliReducedEvent.cxx:731
 AliReducedEvent.cxx:732
 AliReducedEvent.cxx:733
 AliReducedEvent.cxx:734
 AliReducedEvent.cxx:735
 AliReducedEvent.cxx:736
 AliReducedEvent.cxx:737
 AliReducedEvent.cxx:738
 AliReducedEvent.cxx:739
 AliReducedEvent.cxx:740
 AliReducedEvent.cxx:741
 AliReducedEvent.cxx:742
 AliReducedEvent.cxx:743
 AliReducedEvent.cxx:744
 AliReducedEvent.cxx:745
 AliReducedEvent.cxx:746
 AliReducedEvent.cxx:747
 AliReducedEvent.cxx:748
 AliReducedEvent.cxx:749
 AliReducedEvent.cxx:750
 AliReducedEvent.cxx:751
 AliReducedEvent.cxx:752
 AliReducedEvent.cxx:753
 AliReducedEvent.cxx:754
 AliReducedEvent.cxx:755
 AliReducedEvent.cxx:756
 AliReducedEvent.cxx:757
 AliReducedEvent.cxx:758
 AliReducedEvent.cxx:759
 AliReducedEvent.cxx:760
 AliReducedEvent.cxx:761
 AliReducedEvent.cxx:762
 AliReducedEvent.cxx:763
 AliReducedEvent.cxx:764
 AliReducedEvent.cxx:765
 AliReducedEvent.cxx:766
 AliReducedEvent.cxx:767
 AliReducedEvent.cxx:768
 AliReducedEvent.cxx:769
 AliReducedEvent.cxx:770
 AliReducedEvent.cxx:771
 AliReducedEvent.cxx:772
 AliReducedEvent.cxx:773
 AliReducedEvent.cxx:774
 AliReducedEvent.cxx:775
 AliReducedEvent.cxx:776
 AliReducedEvent.cxx:777
 AliReducedEvent.cxx:778
 AliReducedEvent.cxx:779
 AliReducedEvent.cxx:780
 AliReducedEvent.cxx:781
 AliReducedEvent.cxx:782
 AliReducedEvent.cxx:783
 AliReducedEvent.cxx:784
 AliReducedEvent.cxx:785
 AliReducedEvent.cxx:786
 AliReducedEvent.cxx:787
 AliReducedEvent.cxx:788
 AliReducedEvent.cxx:789
 AliReducedEvent.cxx:790
 AliReducedEvent.cxx:791
 AliReducedEvent.cxx:792
 AliReducedEvent.cxx:793
 AliReducedEvent.cxx:794
 AliReducedEvent.cxx:795
 AliReducedEvent.cxx:796
 AliReducedEvent.cxx:797
 AliReducedEvent.cxx:798
 AliReducedEvent.cxx:799
 AliReducedEvent.cxx:800
 AliReducedEvent.cxx:801
 AliReducedEvent.cxx:802
 AliReducedEvent.cxx:803
 AliReducedEvent.cxx:804
 AliReducedEvent.cxx:805
 AliReducedEvent.cxx:806
 AliReducedEvent.cxx:807
 AliReducedEvent.cxx:808
 AliReducedEvent.cxx:809
 AliReducedEvent.cxx:810
 AliReducedEvent.cxx:811
 AliReducedEvent.cxx:812
 AliReducedEvent.cxx:813
 AliReducedEvent.cxx:814
 AliReducedEvent.cxx:815
 AliReducedEvent.cxx:816
 AliReducedEvent.cxx:817
 AliReducedEvent.cxx:818
 AliReducedEvent.cxx:819
 AliReducedEvent.cxx:820
 AliReducedEvent.cxx:821
 AliReducedEvent.cxx:822
 AliReducedEvent.cxx:823
 AliReducedEvent.cxx:824
 AliReducedEvent.cxx:825
 AliReducedEvent.cxx:826
 AliReducedEvent.cxx:827
 AliReducedEvent.cxx:828
 AliReducedEvent.cxx:829
 AliReducedEvent.cxx:830
 AliReducedEvent.cxx:831
 AliReducedEvent.cxx:832
 AliReducedEvent.cxx:833
 AliReducedEvent.cxx:834
 AliReducedEvent.cxx:835
 AliReducedEvent.cxx:836
 AliReducedEvent.cxx:837
 AliReducedEvent.cxx:838
 AliReducedEvent.cxx:839
 AliReducedEvent.cxx:840
 AliReducedEvent.cxx:841
 AliReducedEvent.cxx:842
 AliReducedEvent.cxx:843
 AliReducedEvent.cxx:844
 AliReducedEvent.cxx:845
 AliReducedEvent.cxx:846
 AliReducedEvent.cxx:847
 AliReducedEvent.cxx:848
 AliReducedEvent.cxx:849
 AliReducedEvent.cxx:850
 AliReducedEvent.cxx:851
 AliReducedEvent.cxx:852
 AliReducedEvent.cxx:853
 AliReducedEvent.cxx:854
 AliReducedEvent.cxx:855
 AliReducedEvent.cxx:856
 AliReducedEvent.cxx:857
 AliReducedEvent.cxx:858
 AliReducedEvent.cxx:859
 AliReducedEvent.cxx:860
 AliReducedEvent.cxx:861
 AliReducedEvent.cxx:862
 AliReducedEvent.cxx:863
 AliReducedEvent.cxx:864
 AliReducedEvent.cxx:865
 AliReducedEvent.cxx:866
 AliReducedEvent.cxx:867
 AliReducedEvent.cxx:868
 AliReducedEvent.cxx:869
 AliReducedEvent.cxx:870
 AliReducedEvent.cxx:871
 AliReducedEvent.cxx:872
 AliReducedEvent.cxx:873
 AliReducedEvent.cxx:874
 AliReducedEvent.cxx:875
 AliReducedEvent.cxx:876
 AliReducedEvent.cxx:877
 AliReducedEvent.cxx:878
 AliReducedEvent.cxx:879
 AliReducedEvent.cxx:880
 AliReducedEvent.cxx:881
 AliReducedEvent.cxx:882
 AliReducedEvent.cxx:883
 AliReducedEvent.cxx:884
 AliReducedEvent.cxx:885
 AliReducedEvent.cxx:886
 AliReducedEvent.cxx:887
 AliReducedEvent.cxx:888
 AliReducedEvent.cxx:889
 AliReducedEvent.cxx:890
 AliReducedEvent.cxx:891
 AliReducedEvent.cxx:892
 AliReducedEvent.cxx:893
 AliReducedEvent.cxx:894
 AliReducedEvent.cxx:895
 AliReducedEvent.cxx:896
 AliReducedEvent.cxx:897
 AliReducedEvent.cxx:898
 AliReducedEvent.cxx:899
 AliReducedEvent.cxx:900
 AliReducedEvent.cxx:901
 AliReducedEvent.cxx:902
 AliReducedEvent.cxx:903
 AliReducedEvent.cxx:904
 AliReducedEvent.cxx:905
 AliReducedEvent.cxx:906
 AliReducedEvent.cxx:907
 AliReducedEvent.cxx:908
 AliReducedEvent.cxx:909
 AliReducedEvent.cxx:910
 AliReducedEvent.cxx:911
 AliReducedEvent.cxx:912
 AliReducedEvent.cxx:913
 AliReducedEvent.cxx:914
 AliReducedEvent.cxx:915
 AliReducedEvent.cxx:916
 AliReducedEvent.cxx:917
 AliReducedEvent.cxx:918
 AliReducedEvent.cxx:919
 AliReducedEvent.cxx:920
 AliReducedEvent.cxx:921
 AliReducedEvent.cxx:922
 AliReducedEvent.cxx:923
 AliReducedEvent.cxx:924
 AliReducedEvent.cxx:925
 AliReducedEvent.cxx:926
 AliReducedEvent.cxx:927
 AliReducedEvent.cxx:928
 AliReducedEvent.cxx:929
 AliReducedEvent.cxx:930
 AliReducedEvent.cxx:931
 AliReducedEvent.cxx:932
 AliReducedEvent.cxx:933
 AliReducedEvent.cxx:934
 AliReducedEvent.cxx:935
 AliReducedEvent.cxx:936
 AliReducedEvent.cxx:937