ROOT logo
//
// Emcal jet class.
//
// Author: C.Loizides

#include "AliEmcalJet.h"

#include "AliLog.h"
#include "Riostream.h"

ClassImp(AliEmcalJet)

//__________________________________________________________________________________________________
AliEmcalJet::AliEmcalJet() :
  AliVParticle(),
  fPt(0),
  fEta(0),
  fPhi(0),
  fM(0),
  fNEF(0),
  fArea(0),
  fAreaEta(0),
  fAreaPhi(0),
  fAreaE(0),
  fAreaEmc(-1),
  fAxisInEmcal(0),
  fFlavourTagging(0),
  fMaxCPt(0),
  fMaxNPt(0),
  fMCPt(0),
  fNn(0),
  fNch(0),
  fPtEmc(0),
  fNEmc(0),
  fClusterIDs(),
  fTrackIDs(),
  fMatched(2),
  fMatchingType(0),
  fTaggedJet(0x0),
  fTagStatus(-1),
  fPtSub(0),
  fPtSubVect(0),
  fTriggers(0),
  fJetShapeMassFirstDer(0),
  fJetShapeMassSecondDer(0),
  fJetShapeMassFirstSub(0),
  fJetShapeMassSecondSub(0),
  fLabel(-1),
  fGRNumerator(0),
  fGRDenominator(0),
  fGRNumeratorSub(0),
  fGRDenominatorSub(0),
  fJetShapeAngularityFirstDer(0),
  fJetShapeAngularitySecondDer(0),
  fJetShapeAngularityFirstSub(0),
  fJetShapeAngularitySecondSub(0),
  fJetShapepTDFirstDer(0),
  fJetShapepTDSecondDer(0),
  fJetShapepTDFirstSub(0),
  fJetShapepTDSecondSub(0),
  fJetShapeCircularityFirstDer(0),
  fJetShapeCircularitySecondDer(0),
  fJetShapeCircularityFirstSub(0),
  fJetShapeCircularitySecondSub(0),
  fJetShapeSigma2FirstDer(0),
  fJetShapeSigma2SecondDer(0),
  fJetShapeSigma2FirstSub(0),
  fJetShapeSigma2SecondSub(0),
  fJetShapeConstituentFirstDer(0),
  fJetShapeConstituentSecondDer(0),
  fJetShapeConstituentFirstSub(0),
  fJetShapeConstituentSecondSub(0),
  fJetShapeLeSubFirstDer(0),
  fJetShapeLeSubSecondDer(0),
  fJetShapeLeSubFirstSub(0),
  fJetShapeLeSubSecondSub(0)
{
  // Constructor.
  fClosestJets[0] = 0;
  fClosestJets[1] = 0;
  fClosestJetsDist[0] = 999;
  fClosestJetsDist[1] = 999;
}

//__________________________________________________________________________________________________
AliEmcalJet::AliEmcalJet(Double_t px, Double_t py, Double_t pz) :
  AliVParticle(),
  fPt(TMath::Sqrt(px * px + py* py)),
  fEta(TMath::ASinH(pz / fPt)),
  fPhi(0),
  fM(0),
  fNEF(0),
  fArea(0),
  fAreaEta(0),
  fAreaPhi(0),
  fAreaE(0),
  fAreaEmc(-1),
  fAxisInEmcal(0),
  fFlavourTagging(0),
  fMaxCPt(0),
  fMaxNPt(0),
  fMCPt(0),
  fNn(0),
  fNch(0),
  fPtEmc(0),
  fNEmc(0),
  fClusterIDs(),
  fTrackIDs(),
  fMatched(2),
  fMatchingType(0),
  fTaggedJet(0x0),
  fTagStatus(-1),
  fPtSub(0),
  fPtSubVect(0),
  fTriggers(0),
  fJetShapeMassFirstDer(0),
  fJetShapeMassSecondDer(0),
  fJetShapeMassFirstSub(0),
  fJetShapeMassSecondSub(0),
  fLabel(-1),
  fGRNumerator(0),
  fGRDenominator(0),
  fGRNumeratorSub(0),
  fGRDenominatorSub(0),
  fJetShapeAngularityFirstDer(0),
  fJetShapeAngularitySecondDer(0),
  fJetShapeAngularityFirstSub(0),
  fJetShapeAngularitySecondSub(0),
  fJetShapepTDFirstDer(0),
  fJetShapepTDSecondDer(0),
  fJetShapepTDFirstSub(0),
  fJetShapepTDSecondSub(0),
  fJetShapeCircularityFirstDer(0),
  fJetShapeCircularitySecondDer(0),
  fJetShapeCircularityFirstSub(0),
  fJetShapeCircularitySecondSub(0),
  fJetShapeSigma2FirstDer(0),
  fJetShapeSigma2SecondDer(0),
  fJetShapeSigma2FirstSub(0),
  fJetShapeSigma2SecondSub(0),
  fJetShapeConstituentFirstDer(0),
  fJetShapeConstituentSecondDer(0),
  fJetShapeConstituentFirstSub(0),
  fJetShapeConstituentSecondSub(0),
  fJetShapeLeSubFirstDer(0),
  fJetShapeLeSubSecondDer(0),
  fJetShapeLeSubFirstSub(0),
  fJetShapeLeSubSecondSub(0)
{
  // Constructor.

  if(fPt != 0) {
    fPhi = TVector2::Phi_0_2pi(TMath::ATan2(py, px));
  }

  fClosestJets[0] = 0;
  fClosestJets[1] = 0;
  fClosestJetsDist[0] = 999;
  fClosestJetsDist[1] = 999;
}

//_________________________________________________________________________________________________
AliEmcalJet::AliEmcalJet(Double_t pt, Double_t eta, Double_t phi, Double_t m) :
  AliVParticle(),
  fPt(pt),
  fEta(eta),
  fPhi(phi),
  fM(m),
  fNEF(0),
  fArea(0),
  fAreaEta(0),
  fAreaPhi(0),
  fAreaE(0),
  fAreaEmc(-1),
  fAxisInEmcal(0),
  fFlavourTagging(0),
  fMaxCPt(0),
  fMaxNPt(0),
  fMCPt(0),
  fNn(0),
  fNch(0),
  fPtEmc(0),
  fNEmc(0),
  fClusterIDs(),
  fTrackIDs(),
  fMatched(2),
  fMatchingType(0),
  fTaggedJet(0x0),
  fTagStatus(-1),
  fPtSub(0),
  fPtSubVect(0),
  fTriggers(0),
  fJetShapeMassFirstDer(0),
  fJetShapeMassSecondDer(0),
  fJetShapeMassFirstSub(0),
  fJetShapeMassSecondSub(0),
  fLabel(-1),
  fGRNumerator(0),
  fGRDenominator(0),
  fGRNumeratorSub(0),
  fGRDenominatorSub(0),
  fJetShapeAngularityFirstDer(0),
  fJetShapeAngularitySecondDer(0),
  fJetShapeAngularityFirstSub(0),
  fJetShapeAngularitySecondSub(0),
  fJetShapepTDFirstDer(0),
  fJetShapepTDSecondDer(0),
  fJetShapepTDFirstSub(0),
  fJetShapepTDSecondSub(0),
  fJetShapeCircularityFirstDer(0),
  fJetShapeCircularitySecondDer(0),
  fJetShapeCircularityFirstSub(0),
  fJetShapeCircularitySecondSub(0),
  fJetShapeSigma2FirstDer(0),
  fJetShapeSigma2SecondDer(0),
  fJetShapeSigma2FirstSub(0),
  fJetShapeSigma2SecondSub(0),
  fJetShapeConstituentFirstDer(0),
  fJetShapeConstituentSecondDer(0),
  fJetShapeConstituentFirstSub(0),
  fJetShapeConstituentSecondSub(0),
  fJetShapeLeSubFirstDer(0),
  fJetShapeLeSubSecondDer(0),
  fJetShapeLeSubFirstSub(0),
  fJetShapeLeSubSecondSub(0)

{
  // Constructor.

  fPhi = TVector2::Phi_0_2pi(fPhi);

  fClosestJets[0] = 0;
  fClosestJets[1] = 0;
  fClosestJetsDist[0] = 999;
  fClosestJetsDist[1] = 999;
}

//_________________________________________________________________________________________________
AliEmcalJet::AliEmcalJet(const AliEmcalJet& jet) :
  AliVParticle(jet),
  fPt(jet.fPt),
  fEta(jet.fEta),
  fPhi(jet.fPhi),
  fM(jet.fM),
  fNEF(jet.fNEF),
  fArea(jet.fArea),
  fAreaEta(jet.fAreaEta),
  fAreaPhi(jet.fAreaPhi),
  fAreaE(jet.fAreaE),
  fAreaEmc(jet.fAreaEmc),
  fAxisInEmcal(jet.fAxisInEmcal),
  fFlavourTagging(jet.fFlavourTagging),
  fMaxCPt(jet.fMaxCPt),
  fMaxNPt(jet.fMaxNPt),
  fMCPt(jet.fMCPt),
  fNn(jet.fNn),
  fNch(jet.fNch),
  fPtEmc(jet.fPtEmc),
  fNEmc(jet.fNEmc),
  fClusterIDs(jet.fClusterIDs),
  fTrackIDs(jet.fTrackIDs),
  fMatched(jet.fMatched),
  fMatchingType(jet.fMatchingType),
  fTaggedJet(jet.fTaggedJet),
  fTagStatus(jet.fTagStatus),
  fPtSub(jet.fPtSub),
  fPtSubVect(jet.fPtSubVect),
  fTriggers(jet.fTriggers),
  fJetShapeMassFirstDer(jet.fJetShapeMassFirstDer),
  fJetShapeMassSecondDer(jet.fJetShapeMassSecondDer),
  fJetShapeMassFirstSub(jet.fJetShapeMassFirstSub),
  fJetShapeMassSecondSub(jet.fJetShapeMassSecondSub),
  fLabel(jet.fLabel),
  fGRNumerator(jet.fGRNumerator),
  fGRDenominator(jet.fGRDenominator),
  fGRNumeratorSub(jet.fGRNumeratorSub),
  fGRDenominatorSub(jet.fGRDenominatorSub),
  fJetShapeAngularityFirstDer(jet.fJetShapeAngularityFirstDer),
  fJetShapeAngularitySecondDer(jet.fJetShapeAngularitySecondDer),
  fJetShapeAngularityFirstSub(jet.fJetShapeAngularityFirstSub),
  fJetShapeAngularitySecondSub(jet.fJetShapeAngularitySecondSub),
  fJetShapepTDFirstDer(jet.fJetShapepTDFirstDer),
  fJetShapepTDSecondDer(jet.fJetShapepTDSecondDer),
  fJetShapepTDFirstSub(jet.fJetShapepTDFirstSub),
  fJetShapepTDSecondSub(jet.fJetShapepTDSecondSub),
  fJetShapeCircularityFirstDer(jet.fJetShapeCircularityFirstDer),
  fJetShapeCircularitySecondDer(jet.fJetShapeCircularitySecondDer),
  fJetShapeCircularityFirstSub(jet.fJetShapeCircularityFirstSub),
  fJetShapeCircularitySecondSub(jet.fJetShapeCircularitySecondSub),
  fJetShapeSigma2FirstDer(jet.fJetShapeSigma2FirstDer),
  fJetShapeSigma2SecondDer(jet.fJetShapeSigma2SecondDer),
  fJetShapeSigma2FirstSub(jet.fJetShapeSigma2FirstSub),
  fJetShapeSigma2SecondSub(jet.fJetShapeSigma2SecondSub),
  fJetShapeConstituentFirstDer(jet.fJetShapeConstituentFirstDer),
  fJetShapeConstituentSecondDer(jet.fJetShapeConstituentSecondDer),
  fJetShapeConstituentFirstSub(jet.fJetShapeConstituentFirstSub),
  fJetShapeConstituentSecondSub(jet.fJetShapeConstituentSecondSub),
  fJetShapeLeSubFirstDer(jet.fJetShapeLeSubFirstDer),
  fJetShapeLeSubSecondDer(jet.fJetShapeLeSubSecondDer),
  fJetShapeLeSubFirstSub(jet.fJetShapeLeSubFirstSub),
  fJetShapeLeSubSecondSub(jet.fJetShapeLeSubSecondSub)
{
  // Copy constructor.
  fClosestJets[0]     = jet.fClosestJets[0];
  fClosestJets[1]     = jet.fClosestJets[1];
  fClosestJetsDist[0] = jet.fClosestJetsDist[0];
  fClosestJetsDist[1] = jet.fClosestJetsDist[1];
}

//_________________________________________________________________________________________________
AliEmcalJet& AliEmcalJet::operator=(const AliEmcalJet& jet)
{
  // Assignment operator.

  if(this != &jet) {
    AliVParticle::operator=(jet);
    fPt                 = jet.fPt;
    fEta                = jet.fEta;
    fPhi                = jet.fPhi;
    fM                  = jet.fM;
    fNEF                = jet.fNEF;
    fArea               = jet.fArea;
    fAreaEta            = jet.fAreaEta;
    fAreaPhi            = jet.fAreaPhi;
    fAreaE              = jet.fAreaE;
    fAreaEmc            = jet.fAreaEmc;
    fAxisInEmcal        = jet.fAxisInEmcal;
    fFlavourTagging     = jet.fFlavourTagging;
    fMaxCPt             = jet.fMaxCPt;
    fMaxNPt             = jet.fMaxNPt;
    fMCPt               = jet.fMCPt;
    fNn                 = jet.fNn;
    fNch                = jet.fNch;
    fPtEmc              = jet.fPtEmc;
    fNEmc               = jet.fNEmc;
    fClusterIDs         = jet.fClusterIDs;
    fTrackIDs           = jet.fTrackIDs;
    fClosestJets[0]     = jet.fClosestJets[0];
    fClosestJets[1]     = jet.fClosestJets[1];
    fClosestJetsDist[0] = jet.fClosestJetsDist[0];
    fClosestJetsDist[1] = jet.fClosestJetsDist[1];
    fMatched            = jet.fMatched;
    fTaggedJet          = jet.fTaggedJet;
    fTagStatus          = jet.fTagStatus;
    fPtSub              = jet.fPtSub;
    fPtSubVect          = jet.fPtSubVect;
    fTriggers           = jet.fTriggers;
    fJetShapeMassFirstDer  = jet.fJetShapeMassFirstDer;
    fJetShapeMassSecondDer = jet.fJetShapeMassSecondDer;
    fJetShapeMassFirstSub  = jet.fJetShapeMassFirstSub;
    fJetShapeMassSecondSub = jet.fJetShapeMassSecondSub;
    fLabel              = jet.fLabel;
    fGRNumerator        = jet.fGRNumerator;
    fGRDenominator      = jet.fGRDenominator;
    fGRNumeratorSub     = jet.fGRNumeratorSub;
    fGRDenominatorSub   = jet.fGRDenominatorSub;
    fJetShapeAngularityFirstDer  = jet.fJetShapeAngularityFirstDer;
    fJetShapeAngularitySecondDer = jet.fJetShapeAngularitySecondDer;
    fJetShapeAngularityFirstSub  = jet.fJetShapeAngularityFirstSub;
    fJetShapeAngularitySecondSub = jet.fJetShapeAngularitySecondSub;
    fJetShapepTDFirstDer  = jet.fJetShapepTDFirstDer;
    fJetShapepTDSecondDer = jet.fJetShapepTDSecondDer;
    fJetShapepTDFirstSub  = jet.fJetShapepTDFirstSub;
    fJetShapepTDSecondSub = jet.fJetShapepTDSecondSub;
    fJetShapeCircularityFirstDer  = jet.fJetShapeCircularityFirstDer;
    fJetShapeCircularitySecondDer = jet.fJetShapeCircularitySecondDer;
    fJetShapeCircularityFirstSub  = jet.fJetShapeCircularityFirstSub;
    fJetShapeCircularitySecondSub = jet.fJetShapeCircularitySecondSub;
    fJetShapeSigma2FirstDer  = jet.fJetShapeSigma2FirstDer;
    fJetShapeSigma2SecondDer = jet.fJetShapeSigma2SecondDer;
    fJetShapeSigma2FirstSub  = jet.fJetShapeSigma2FirstSub;
    fJetShapeSigma2SecondSub = jet.fJetShapeSigma2SecondSub;
    fJetShapeConstituentFirstDer  = jet.fJetShapeConstituentFirstDer;
    fJetShapeConstituentSecondDer = jet.fJetShapeConstituentSecondDer;
    fJetShapeConstituentFirstSub  = jet.fJetShapeConstituentFirstSub;
    fJetShapeConstituentSecondSub = jet.fJetShapeConstituentSecondSub;
    fJetShapeLeSubFirstDer  = jet.fJetShapeLeSubFirstDer;
    fJetShapeLeSubSecondDer = jet.fJetShapeLeSubSecondDer;
    fJetShapeLeSubFirstSub  = jet.fJetShapeLeSubFirstSub;
    fJetShapeLeSubSecondSub = jet.fJetShapeLeSubSecondSub;
  }

  return *this;
}

//_________________________________________________________________________________________________
Int_t AliEmcalJet::Compare(const TObject* obj) const
{
  //Return -1 if this is smaller than obj, 0 if objects are equal and 1 if this is larger than obj.

  const AliEmcalJet* jet = static_cast<const AliEmcalJet*>(obj);
  if(!obj)
    return 0;
  if(Pt() > jet->Pt())
    return -1;
  return 1;
}

//__________________________________________________________________________________________________
void AliEmcalJet::GetMom(TLorentzVector& vec) const
{
  // Return momentum as four-vector.

  vec.SetPtEtaPhiE(fPt, fEta, fPhi, E());
}

//__________________________________________________________________________________________________
void AliEmcalJet::Print(Option_t* /*option*/) const
{
  // Print jet information.

  Printf("Jet pt=%.2f, eta=%.2f, phi=%.2f, area=%.2f, NEF=%.2f", fPt, fEta, fPhi, fArea, fNEF);
}

//__________________________________________________________________________________________________
Double_t AliEmcalJet::PtSub(Double_t rho, Bool_t save)
{
  // Return transverse momentum after scalar subtraction. Save the result if required.
  // Result can be negative.

  Double_t ptcorr = fPt - rho * fArea;
  if(save)
    fPtSub = ptcorr;
  return ptcorr;
}

//__________________________________________________________________________________________________
Double_t AliEmcalJet::PtSubVect(Double_t rho, Bool_t save)
{
  // Return transverse momentum after vectorial subtraction. Save the result if required.
  // Result cannot be negative.

  Double_t dx = Px() - rho * fArea * TMath::Cos(fAreaPhi);
  Double_t dy = Py() - rho * fArea * TMath::Sin(fAreaPhi);
  //Double_t dz = Pz() - rho * fArea * TMath::SinH(fAreaEta);
  Double_t ptcorr = TMath::Sqrt(dx * dx + dy * dy);
  if(save)
    fPtSubVect = ptcorr;
  return ptcorr;
}

//__________________________________________________________________________________________________
TLorentzVector AliEmcalJet::SubtractRhoVect(Double_t rho, Bool_t save)
{
  // Return four-momentum after vectorial subtraction. Save pt if required.
  // Saved value of pt is negative if the corrected momentum is pointing to the opposite half-plane in the x-y plane w.r.t. the raw momentum.

  TLorentzVector vecCorr;
  GetMom(vecCorr);
  TLorentzVector vecBg;
  vecBg.SetPtEtaPhiE(fArea, fAreaEta, fAreaPhi, fAreaE);
  vecBg *= rho;
  vecCorr -= vecBg;
  if(save)
  {
    Double_t dPhi = TMath::Abs(TVector2::Phi_mpi_pi(Phi() - vecCorr.Phi()));
    Int_t signum = dPhi <= TMath::PiOver2() ? 1 : -1;
    fPtSubVect = signum * vecCorr.Pt();
  }
  return vecCorr;
}

//__________________________________________________________________________________________________
void AliEmcalJet::SortConstituents()
{
  // Sort constituent by index (increasing).

  std::sort(fClusterIDs.GetArray(), fClusterIDs.GetArray() + fClusterIDs.GetSize());
  std::sort(fTrackIDs.GetArray(), fTrackIDs.GetArray() + fTrackIDs.GetSize());
}

//__________________________________________________________________________________________________
Double_t AliEmcalJet::DeltaR(const AliVParticle* part) const
{
  // Helper function to calculate the distance between two jets or a jet and a particle

  Double_t dPhi = Phi() - part->Phi();
  Double_t dEta = Eta() - part->Eta();
  dPhi = TVector2::Phi_mpi_pi(dPhi);
  return TMath::Sqrt(dPhi * dPhi + dEta * dEta);
}


//__________________________________________________________________________________________________
std::vector<int> AliEmcalJet::SortConstituentsPt(TClonesArray* tracks) const
{
  // Sorting by p_T (decreasing) jet constituents

  typedef std::pair<Double_t, Int_t> ptidx_pair;

  // Create vector for Pt sorting
  std::vector<ptidx_pair> pair_list ;

  for(Int_t i_entry = 0; i_entry < GetNumberOfTracks(); i_entry++)
  {
    AliVParticle* track = TrackAt(i_entry, tracks);
    if(!track)
    {
      AliError(Form("Unable to find jet track %d in collection %s (pos in collection %d, max %d)", i_entry, tracks->GetName(), TrackAt(i_entry), tracks->GetEntriesFast()));
      continue;
    }

    pair_list.push_back(std::make_pair(track->Pt(), i_entry));
  }

  std::stable_sort(pair_list.begin() , pair_list.end() , sort_descend());

  // return an vector of indexes of constituents (sorted descending by pt)
  std::vector <int> index_sorted_list;

  for(std::vector< std::pair<Double_t, Int_t> >::iterator it = pair_list.begin(); it != pair_list.end(); ++it)
  { index_sorted_list.push_back((*it).second); }   // populating the return object with indexes of sorted tracks

  return index_sorted_list;
}

//________________________________________________________________________
Double_t AliEmcalJet::GetZ(const Double_t trkPx, const Double_t trkPy, const Double_t trkPz) const
{
  // Get the z of a constituent inside of a jet

  Double_t pJetSq = P();
  pJetSq *= pJetSq;

  if(pJetSq > 1e-6)
  { return (trkPx * Px() + trkPy * Py() + trkPz * Pz()) / pJetSq ; }
  else
  { AliWarning(Form("%s: strange, pjet*pjet seems to be zero pJetSq: %f", GetName(), pJetSq)); return -1; }
}

//________________________________________________________________________
Double_t AliEmcalJet::GetZ(const AliVParticle* trk) const
{
  // Get Z of constituent trk

  return GetZ(trk->Px(), trk->Py(), trk->Pz());
}

//__________________________________________________________________________________________________
AliVParticle* AliEmcalJet::GetLeadingTrack(TClonesArray* tracks) const
{
  AliVParticle* maxTrack = 0;
  for(Int_t i = 0; i < GetNumberOfTracks(); i++) {
    AliVParticle* track = TrackAt(i, tracks);
    if(!track) {
      AliError(Form("Unable to find jet track %d in collection %s (pos in collection %d, max %d)",
                    i, tracks->GetName(), TrackAt(i), tracks->GetEntriesFast()));
      continue;
    }
    if(!maxTrack || track->Pt() > maxTrack->Pt())
      maxTrack = track;
  }

  return maxTrack;
}

//__________________________________________________________________________________________________
AliVCluster* AliEmcalJet::GetLeadingCluster(TClonesArray* clusters) const
{
  AliVCluster* maxCluster = 0;
  for(Int_t i = 0; i < GetNumberOfClusters(); i++) {
    AliVCluster* cluster = ClusterAt(i, clusters);
    if(!cluster) {
      AliError(Form("Unable to find jet cluster %d in collection %s (pos in collection %d, max %d)",
                    i, clusters->GetName(), ClusterAt(i), clusters->GetEntriesFast()));
      continue;
    }
    if(!maxCluster || cluster->E() > maxCluster->E())
      maxCluster = cluster;
  }

  return maxCluster;
}

//__________________________________________________________________________________________________
void AliEmcalJet::ResetMatching()
{
  fClosestJets[0] = 0;
  fClosestJets[1] = 0;
  fClosestJetsDist[0] = 999;
  fClosestJetsDist[1] = 999;
  fMatched = 2;
}

//__________________________________________________________________________________________________
void AliEmcalJet::PrintGR()
{
  for(Int_t i = 0; i < fGRNumerator.GetSize(); i++) {
    Printf("num[%d] = %f", i, fGRNumerator.At(i));
  }
}
 AliEmcalJet.cxx:1
 AliEmcalJet.cxx:2
 AliEmcalJet.cxx:3
 AliEmcalJet.cxx:4
 AliEmcalJet.cxx:5
 AliEmcalJet.cxx:6
 AliEmcalJet.cxx:7
 AliEmcalJet.cxx:8
 AliEmcalJet.cxx:9
 AliEmcalJet.cxx:10
 AliEmcalJet.cxx:11
 AliEmcalJet.cxx:12
 AliEmcalJet.cxx:13
 AliEmcalJet.cxx:14
 AliEmcalJet.cxx:15
 AliEmcalJet.cxx:16
 AliEmcalJet.cxx:17
 AliEmcalJet.cxx:18
 AliEmcalJet.cxx:19
 AliEmcalJet.cxx:20
 AliEmcalJet.cxx:21
 AliEmcalJet.cxx:22
 AliEmcalJet.cxx:23
 AliEmcalJet.cxx:24
 AliEmcalJet.cxx:25
 AliEmcalJet.cxx:26
 AliEmcalJet.cxx:27
 AliEmcalJet.cxx:28
 AliEmcalJet.cxx:29
 AliEmcalJet.cxx:30
 AliEmcalJet.cxx:31
 AliEmcalJet.cxx:32
 AliEmcalJet.cxx:33
 AliEmcalJet.cxx:34
 AliEmcalJet.cxx:35
 AliEmcalJet.cxx:36
 AliEmcalJet.cxx:37
 AliEmcalJet.cxx:38
 AliEmcalJet.cxx:39
 AliEmcalJet.cxx:40
 AliEmcalJet.cxx:41
 AliEmcalJet.cxx:42
 AliEmcalJet.cxx:43
 AliEmcalJet.cxx:44
 AliEmcalJet.cxx:45
 AliEmcalJet.cxx:46
 AliEmcalJet.cxx:47
 AliEmcalJet.cxx:48
 AliEmcalJet.cxx:49
 AliEmcalJet.cxx:50
 AliEmcalJet.cxx:51
 AliEmcalJet.cxx:52
 AliEmcalJet.cxx:53
 AliEmcalJet.cxx:54
 AliEmcalJet.cxx:55
 AliEmcalJet.cxx:56
 AliEmcalJet.cxx:57
 AliEmcalJet.cxx:58
 AliEmcalJet.cxx:59
 AliEmcalJet.cxx:60
 AliEmcalJet.cxx:61
 AliEmcalJet.cxx:62
 AliEmcalJet.cxx:63
 AliEmcalJet.cxx:64
 AliEmcalJet.cxx:65
 AliEmcalJet.cxx:66
 AliEmcalJet.cxx:67
 AliEmcalJet.cxx:68
 AliEmcalJet.cxx:69
 AliEmcalJet.cxx:70
 AliEmcalJet.cxx:71
 AliEmcalJet.cxx:72
 AliEmcalJet.cxx:73
 AliEmcalJet.cxx:74
 AliEmcalJet.cxx:75
 AliEmcalJet.cxx:76
 AliEmcalJet.cxx:77
 AliEmcalJet.cxx:78
 AliEmcalJet.cxx:79
 AliEmcalJet.cxx:80
 AliEmcalJet.cxx:81
 AliEmcalJet.cxx:82
 AliEmcalJet.cxx:83
 AliEmcalJet.cxx:84
 AliEmcalJet.cxx:85
 AliEmcalJet.cxx:86
 AliEmcalJet.cxx:87
 AliEmcalJet.cxx:88
 AliEmcalJet.cxx:89
 AliEmcalJet.cxx:90
 AliEmcalJet.cxx:91
 AliEmcalJet.cxx:92
 AliEmcalJet.cxx:93
 AliEmcalJet.cxx:94
 AliEmcalJet.cxx:95
 AliEmcalJet.cxx:96
 AliEmcalJet.cxx:97
 AliEmcalJet.cxx:98
 AliEmcalJet.cxx:99
 AliEmcalJet.cxx:100
 AliEmcalJet.cxx:101
 AliEmcalJet.cxx:102
 AliEmcalJet.cxx:103
 AliEmcalJet.cxx:104
 AliEmcalJet.cxx:105
 AliEmcalJet.cxx:106
 AliEmcalJet.cxx:107
 AliEmcalJet.cxx:108
 AliEmcalJet.cxx:109
 AliEmcalJet.cxx:110
 AliEmcalJet.cxx:111
 AliEmcalJet.cxx:112
 AliEmcalJet.cxx:113
 AliEmcalJet.cxx:114
 AliEmcalJet.cxx:115
 AliEmcalJet.cxx:116
 AliEmcalJet.cxx:117
 AliEmcalJet.cxx:118
 AliEmcalJet.cxx:119
 AliEmcalJet.cxx:120
 AliEmcalJet.cxx:121
 AliEmcalJet.cxx:122
 AliEmcalJet.cxx:123
 AliEmcalJet.cxx:124
 AliEmcalJet.cxx:125
 AliEmcalJet.cxx:126
 AliEmcalJet.cxx:127
 AliEmcalJet.cxx:128
 AliEmcalJet.cxx:129
 AliEmcalJet.cxx:130
 AliEmcalJet.cxx:131
 AliEmcalJet.cxx:132
 AliEmcalJet.cxx:133
 AliEmcalJet.cxx:134
 AliEmcalJet.cxx:135
 AliEmcalJet.cxx:136
 AliEmcalJet.cxx:137
 AliEmcalJet.cxx:138
 AliEmcalJet.cxx:139
 AliEmcalJet.cxx:140
 AliEmcalJet.cxx:141
 AliEmcalJet.cxx:142
 AliEmcalJet.cxx:143
 AliEmcalJet.cxx:144
 AliEmcalJet.cxx:145
 AliEmcalJet.cxx:146
 AliEmcalJet.cxx:147
 AliEmcalJet.cxx:148
 AliEmcalJet.cxx:149
 AliEmcalJet.cxx:150
 AliEmcalJet.cxx:151
 AliEmcalJet.cxx:152
 AliEmcalJet.cxx:153
 AliEmcalJet.cxx:154
 AliEmcalJet.cxx:155
 AliEmcalJet.cxx:156
 AliEmcalJet.cxx:157
 AliEmcalJet.cxx:158
 AliEmcalJet.cxx:159
 AliEmcalJet.cxx:160
 AliEmcalJet.cxx:161
 AliEmcalJet.cxx:162
 AliEmcalJet.cxx:163
 AliEmcalJet.cxx:164
 AliEmcalJet.cxx:165
 AliEmcalJet.cxx:166
 AliEmcalJet.cxx:167
 AliEmcalJet.cxx:168
 AliEmcalJet.cxx:169
 AliEmcalJet.cxx:170
 AliEmcalJet.cxx:171
 AliEmcalJet.cxx:172
 AliEmcalJet.cxx:173
 AliEmcalJet.cxx:174
 AliEmcalJet.cxx:175
 AliEmcalJet.cxx:176
 AliEmcalJet.cxx:177
 AliEmcalJet.cxx:178
 AliEmcalJet.cxx:179
 AliEmcalJet.cxx:180
 AliEmcalJet.cxx:181
 AliEmcalJet.cxx:182
 AliEmcalJet.cxx:183
 AliEmcalJet.cxx:184
 AliEmcalJet.cxx:185
 AliEmcalJet.cxx:186
 AliEmcalJet.cxx:187
 AliEmcalJet.cxx:188
 AliEmcalJet.cxx:189
 AliEmcalJet.cxx:190
 AliEmcalJet.cxx:191
 AliEmcalJet.cxx:192
 AliEmcalJet.cxx:193
 AliEmcalJet.cxx:194
 AliEmcalJet.cxx:195
 AliEmcalJet.cxx:196
 AliEmcalJet.cxx:197
 AliEmcalJet.cxx:198
 AliEmcalJet.cxx:199
 AliEmcalJet.cxx:200
 AliEmcalJet.cxx:201
 AliEmcalJet.cxx:202
 AliEmcalJet.cxx:203
 AliEmcalJet.cxx:204
 AliEmcalJet.cxx:205
 AliEmcalJet.cxx:206
 AliEmcalJet.cxx:207
 AliEmcalJet.cxx:208
 AliEmcalJet.cxx:209
 AliEmcalJet.cxx:210
 AliEmcalJet.cxx:211
 AliEmcalJet.cxx:212
 AliEmcalJet.cxx:213
 AliEmcalJet.cxx:214
 AliEmcalJet.cxx:215
 AliEmcalJet.cxx:216
 AliEmcalJet.cxx:217
 AliEmcalJet.cxx:218
 AliEmcalJet.cxx:219
 AliEmcalJet.cxx:220
 AliEmcalJet.cxx:221
 AliEmcalJet.cxx:222
 AliEmcalJet.cxx:223
 AliEmcalJet.cxx:224
 AliEmcalJet.cxx:225
 AliEmcalJet.cxx:226
 AliEmcalJet.cxx:227
 AliEmcalJet.cxx:228
 AliEmcalJet.cxx:229
 AliEmcalJet.cxx:230
 AliEmcalJet.cxx:231
 AliEmcalJet.cxx:232
 AliEmcalJet.cxx:233
 AliEmcalJet.cxx:234
 AliEmcalJet.cxx:235
 AliEmcalJet.cxx:236
 AliEmcalJet.cxx:237
 AliEmcalJet.cxx:238
 AliEmcalJet.cxx:239
 AliEmcalJet.cxx:240
 AliEmcalJet.cxx:241
 AliEmcalJet.cxx:242
 AliEmcalJet.cxx:243
 AliEmcalJet.cxx:244
 AliEmcalJet.cxx:245
 AliEmcalJet.cxx:246
 AliEmcalJet.cxx:247
 AliEmcalJet.cxx:248
 AliEmcalJet.cxx:249
 AliEmcalJet.cxx:250
 AliEmcalJet.cxx:251
 AliEmcalJet.cxx:252
 AliEmcalJet.cxx:253
 AliEmcalJet.cxx:254
 AliEmcalJet.cxx:255
 AliEmcalJet.cxx:256
 AliEmcalJet.cxx:257
 AliEmcalJet.cxx:258
 AliEmcalJet.cxx:259
 AliEmcalJet.cxx:260
 AliEmcalJet.cxx:261
 AliEmcalJet.cxx:262
 AliEmcalJet.cxx:263
 AliEmcalJet.cxx:264
 AliEmcalJet.cxx:265
 AliEmcalJet.cxx:266
 AliEmcalJet.cxx:267
 AliEmcalJet.cxx:268
 AliEmcalJet.cxx:269
 AliEmcalJet.cxx:270
 AliEmcalJet.cxx:271
 AliEmcalJet.cxx:272
 AliEmcalJet.cxx:273
 AliEmcalJet.cxx:274
 AliEmcalJet.cxx:275
 AliEmcalJet.cxx:276
 AliEmcalJet.cxx:277
 AliEmcalJet.cxx:278
 AliEmcalJet.cxx:279
 AliEmcalJet.cxx:280
 AliEmcalJet.cxx:281
 AliEmcalJet.cxx:282
 AliEmcalJet.cxx:283
 AliEmcalJet.cxx:284
 AliEmcalJet.cxx:285
 AliEmcalJet.cxx:286
 AliEmcalJet.cxx:287
 AliEmcalJet.cxx:288
 AliEmcalJet.cxx:289
 AliEmcalJet.cxx:290
 AliEmcalJet.cxx:291
 AliEmcalJet.cxx:292
 AliEmcalJet.cxx:293
 AliEmcalJet.cxx:294
 AliEmcalJet.cxx:295
 AliEmcalJet.cxx:296
 AliEmcalJet.cxx:297
 AliEmcalJet.cxx:298
 AliEmcalJet.cxx:299
 AliEmcalJet.cxx:300
 AliEmcalJet.cxx:301
 AliEmcalJet.cxx:302
 AliEmcalJet.cxx:303
 AliEmcalJet.cxx:304
 AliEmcalJet.cxx:305
 AliEmcalJet.cxx:306
 AliEmcalJet.cxx:307
 AliEmcalJet.cxx:308
 AliEmcalJet.cxx:309
 AliEmcalJet.cxx:310
 AliEmcalJet.cxx:311
 AliEmcalJet.cxx:312
 AliEmcalJet.cxx:313
 AliEmcalJet.cxx:314
 AliEmcalJet.cxx:315
 AliEmcalJet.cxx:316
 AliEmcalJet.cxx:317
 AliEmcalJet.cxx:318
 AliEmcalJet.cxx:319
 AliEmcalJet.cxx:320
 AliEmcalJet.cxx:321
 AliEmcalJet.cxx:322
 AliEmcalJet.cxx:323
 AliEmcalJet.cxx:324
 AliEmcalJet.cxx:325
 AliEmcalJet.cxx:326
 AliEmcalJet.cxx:327
 AliEmcalJet.cxx:328
 AliEmcalJet.cxx:329
 AliEmcalJet.cxx:330
 AliEmcalJet.cxx:331
 AliEmcalJet.cxx:332
 AliEmcalJet.cxx:333
 AliEmcalJet.cxx:334
 AliEmcalJet.cxx:335
 AliEmcalJet.cxx:336
 AliEmcalJet.cxx:337
 AliEmcalJet.cxx:338
 AliEmcalJet.cxx:339
 AliEmcalJet.cxx:340
 AliEmcalJet.cxx:341
 AliEmcalJet.cxx:342
 AliEmcalJet.cxx:343
 AliEmcalJet.cxx:344
 AliEmcalJet.cxx:345
 AliEmcalJet.cxx:346
 AliEmcalJet.cxx:347
 AliEmcalJet.cxx:348
 AliEmcalJet.cxx:349
 AliEmcalJet.cxx:350
 AliEmcalJet.cxx:351
 AliEmcalJet.cxx:352
 AliEmcalJet.cxx:353
 AliEmcalJet.cxx:354
 AliEmcalJet.cxx:355
 AliEmcalJet.cxx:356
 AliEmcalJet.cxx:357
 AliEmcalJet.cxx:358
 AliEmcalJet.cxx:359
 AliEmcalJet.cxx:360
 AliEmcalJet.cxx:361
 AliEmcalJet.cxx:362
 AliEmcalJet.cxx:363
 AliEmcalJet.cxx:364
 AliEmcalJet.cxx:365
 AliEmcalJet.cxx:366
 AliEmcalJet.cxx:367
 AliEmcalJet.cxx:368
 AliEmcalJet.cxx:369
 AliEmcalJet.cxx:370
 AliEmcalJet.cxx:371
 AliEmcalJet.cxx:372
 AliEmcalJet.cxx:373
 AliEmcalJet.cxx:374
 AliEmcalJet.cxx:375
 AliEmcalJet.cxx:376
 AliEmcalJet.cxx:377
 AliEmcalJet.cxx:378
 AliEmcalJet.cxx:379
 AliEmcalJet.cxx:380
 AliEmcalJet.cxx:381
 AliEmcalJet.cxx:382
 AliEmcalJet.cxx:383
 AliEmcalJet.cxx:384
 AliEmcalJet.cxx:385
 AliEmcalJet.cxx:386
 AliEmcalJet.cxx:387
 AliEmcalJet.cxx:388
 AliEmcalJet.cxx:389
 AliEmcalJet.cxx:390
 AliEmcalJet.cxx:391
 AliEmcalJet.cxx:392
 AliEmcalJet.cxx:393
 AliEmcalJet.cxx:394
 AliEmcalJet.cxx:395
 AliEmcalJet.cxx:396
 AliEmcalJet.cxx:397
 AliEmcalJet.cxx:398
 AliEmcalJet.cxx:399
 AliEmcalJet.cxx:400
 AliEmcalJet.cxx:401
 AliEmcalJet.cxx:402
 AliEmcalJet.cxx:403
 AliEmcalJet.cxx:404
 AliEmcalJet.cxx:405
 AliEmcalJet.cxx:406
 AliEmcalJet.cxx:407
 AliEmcalJet.cxx:408
 AliEmcalJet.cxx:409
 AliEmcalJet.cxx:410
 AliEmcalJet.cxx:411
 AliEmcalJet.cxx:412
 AliEmcalJet.cxx:413
 AliEmcalJet.cxx:414
 AliEmcalJet.cxx:415
 AliEmcalJet.cxx:416
 AliEmcalJet.cxx:417
 AliEmcalJet.cxx:418
 AliEmcalJet.cxx:419
 AliEmcalJet.cxx:420
 AliEmcalJet.cxx:421
 AliEmcalJet.cxx:422
 AliEmcalJet.cxx:423
 AliEmcalJet.cxx:424
 AliEmcalJet.cxx:425
 AliEmcalJet.cxx:426
 AliEmcalJet.cxx:427
 AliEmcalJet.cxx:428
 AliEmcalJet.cxx:429
 AliEmcalJet.cxx:430
 AliEmcalJet.cxx:431
 AliEmcalJet.cxx:432
 AliEmcalJet.cxx:433
 AliEmcalJet.cxx:434
 AliEmcalJet.cxx:435
 AliEmcalJet.cxx:436
 AliEmcalJet.cxx:437
 AliEmcalJet.cxx:438
 AliEmcalJet.cxx:439
 AliEmcalJet.cxx:440
 AliEmcalJet.cxx:441
 AliEmcalJet.cxx:442
 AliEmcalJet.cxx:443
 AliEmcalJet.cxx:444
 AliEmcalJet.cxx:445
 AliEmcalJet.cxx:446
 AliEmcalJet.cxx:447
 AliEmcalJet.cxx:448
 AliEmcalJet.cxx:449
 AliEmcalJet.cxx:450
 AliEmcalJet.cxx:451
 AliEmcalJet.cxx:452
 AliEmcalJet.cxx:453
 AliEmcalJet.cxx:454
 AliEmcalJet.cxx:455
 AliEmcalJet.cxx:456
 AliEmcalJet.cxx:457
 AliEmcalJet.cxx:458
 AliEmcalJet.cxx:459
 AliEmcalJet.cxx:460
 AliEmcalJet.cxx:461
 AliEmcalJet.cxx:462
 AliEmcalJet.cxx:463
 AliEmcalJet.cxx:464
 AliEmcalJet.cxx:465
 AliEmcalJet.cxx:466
 AliEmcalJet.cxx:467
 AliEmcalJet.cxx:468
 AliEmcalJet.cxx:469
 AliEmcalJet.cxx:470
 AliEmcalJet.cxx:471
 AliEmcalJet.cxx:472
 AliEmcalJet.cxx:473
 AliEmcalJet.cxx:474
 AliEmcalJet.cxx:475
 AliEmcalJet.cxx:476
 AliEmcalJet.cxx:477
 AliEmcalJet.cxx:478
 AliEmcalJet.cxx:479
 AliEmcalJet.cxx:480
 AliEmcalJet.cxx:481
 AliEmcalJet.cxx:482
 AliEmcalJet.cxx:483
 AliEmcalJet.cxx:484
 AliEmcalJet.cxx:485
 AliEmcalJet.cxx:486
 AliEmcalJet.cxx:487
 AliEmcalJet.cxx:488
 AliEmcalJet.cxx:489
 AliEmcalJet.cxx:490
 AliEmcalJet.cxx:491
 AliEmcalJet.cxx:492
 AliEmcalJet.cxx:493
 AliEmcalJet.cxx:494
 AliEmcalJet.cxx:495
 AliEmcalJet.cxx:496
 AliEmcalJet.cxx:497
 AliEmcalJet.cxx:498
 AliEmcalJet.cxx:499
 AliEmcalJet.cxx:500
 AliEmcalJet.cxx:501
 AliEmcalJet.cxx:502
 AliEmcalJet.cxx:503
 AliEmcalJet.cxx:504
 AliEmcalJet.cxx:505
 AliEmcalJet.cxx:506
 AliEmcalJet.cxx:507
 AliEmcalJet.cxx:508
 AliEmcalJet.cxx:509
 AliEmcalJet.cxx:510
 AliEmcalJet.cxx:511
 AliEmcalJet.cxx:512
 AliEmcalJet.cxx:513
 AliEmcalJet.cxx:514
 AliEmcalJet.cxx:515
 AliEmcalJet.cxx:516
 AliEmcalJet.cxx:517
 AliEmcalJet.cxx:518
 AliEmcalJet.cxx:519
 AliEmcalJet.cxx:520
 AliEmcalJet.cxx:521
 AliEmcalJet.cxx:522
 AliEmcalJet.cxx:523
 AliEmcalJet.cxx:524
 AliEmcalJet.cxx:525
 AliEmcalJet.cxx:526
 AliEmcalJet.cxx:527
 AliEmcalJet.cxx:528
 AliEmcalJet.cxx:529
 AliEmcalJet.cxx:530
 AliEmcalJet.cxx:531
 AliEmcalJet.cxx:532
 AliEmcalJet.cxx:533
 AliEmcalJet.cxx:534
 AliEmcalJet.cxx:535
 AliEmcalJet.cxx:536
 AliEmcalJet.cxx:537
 AliEmcalJet.cxx:538
 AliEmcalJet.cxx:539
 AliEmcalJet.cxx:540
 AliEmcalJet.cxx:541
 AliEmcalJet.cxx:542
 AliEmcalJet.cxx:543
 AliEmcalJet.cxx:544
 AliEmcalJet.cxx:545
 AliEmcalJet.cxx:546
 AliEmcalJet.cxx:547
 AliEmcalJet.cxx:548
 AliEmcalJet.cxx:549
 AliEmcalJet.cxx:550
 AliEmcalJet.cxx:551
 AliEmcalJet.cxx:552
 AliEmcalJet.cxx:553
 AliEmcalJet.cxx:554
 AliEmcalJet.cxx:555
 AliEmcalJet.cxx:556
 AliEmcalJet.cxx:557
 AliEmcalJet.cxx:558
 AliEmcalJet.cxx:559
 AliEmcalJet.cxx:560
 AliEmcalJet.cxx:561
 AliEmcalJet.cxx:562
 AliEmcalJet.cxx:563
 AliEmcalJet.cxx:564
 AliEmcalJet.cxx:565
 AliEmcalJet.cxx:566
 AliEmcalJet.cxx:567
 AliEmcalJet.cxx:568
 AliEmcalJet.cxx:569
 AliEmcalJet.cxx:570
 AliEmcalJet.cxx:571
 AliEmcalJet.cxx:572
 AliEmcalJet.cxx:573
 AliEmcalJet.cxx:574
 AliEmcalJet.cxx:575
 AliEmcalJet.cxx:576
 AliEmcalJet.cxx:577
 AliEmcalJet.cxx:578
 AliEmcalJet.cxx:579
 AliEmcalJet.cxx:580
 AliEmcalJet.cxx:581
 AliEmcalJet.cxx:582
 AliEmcalJet.cxx:583
 AliEmcalJet.cxx:584
 AliEmcalJet.cxx:585
 AliEmcalJet.cxx:586
 AliEmcalJet.cxx:587
 AliEmcalJet.cxx:588
 AliEmcalJet.cxx:589
 AliEmcalJet.cxx:590
 AliEmcalJet.cxx:591