ROOT logo
// ROOT
#include "TFile.h"
#include "TList.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TRandom.h"

// analysis framework
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliVEvent.h"
#include "AliVTrdTrack.h"

// MC stuff
#include "AliMCEvent.h"
#include "AliGenPythiaEventHeader.h"

// ESD stuff
#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDtrack.h"
#include "AliESDTrdTrack.h"
#include "AliESDTrdTracklet.h"
#include "AliESDTrdTrigger.h"

// AOD stuff
#include "AliAODEvent.h"
#include "AliAODJet.h"
#include "AliAODTrack.h"

// jet tasks
#include "AliAnalysisTaskJetServices.h"
#include "AliAnalysisHelperJetTasks.h"

#include "AliAnalysisTaskJetsTriggerTRD.h"

AliAnalysisTaskJetsTriggerTRD::AliAnalysisTaskJetsTriggerTRD(const char *name) :
  AliAnalysisTaskSE(name),
  fTriggerMask(0),
  fTrdTrg(),
  fOutputList(),
  fHist(),
  fShortTaskId("jets_trg_trd"),
  fNoTriggers(kTrgLast),
  fNoJetPtBins(80),
  fJetPtBinMax(400),
  fAvgXsection(0.),
  fAvgTrials(0.),
  fPtHard(0.),
  fNTrials(0),
  fGlobalEfficiencyGTU(.8),
  fGtuLabel(-1) // -3 for hw, -1821 for re-simulation
{
  // default ctor

  DefineOutput(1, TList::Class());
}

AliAnalysisTaskJetsTriggerTRD::~AliAnalysisTaskJetsTriggerTRD()
{
  // dtor

}

void AliAnalysisTaskJetsTriggerTRD::UserCreateOutputObjects()
{
  // create user output objects

  // setup list
  OpenFile(1);
  fOutputList = new TList();
  fOutputList->SetOwner();

  // setup histograms
  TH1 *histStat = AddHistogram(ID(kHistStat), "event statistics;;counts",
                               kStatLast-1, .5, kStatLast-.5);
  histStat->GetXaxis()->SetBinLabel(ID(kStatSeen));
  histStat->GetXaxis()->SetBinLabel(ID(kStatTrg));
  histStat->GetXaxis()->SetBinLabel(ID(kStatUsed));
  histStat->GetXaxis()->SetBinLabel(ID(kStatEvCuts));

  if (HasMC()) {
    fNoTriggers = kTrgMCLast;
    AddHistogram(ID(kHistXsection), "xsection stats",
		 1, 0., 1.);
    AddHistogram(ID(kHistPtHard), "pt hard;#hat{p}_{T} (GeV/c);counts",
		 fNoJetPtBins, 0., fJetPtBinMax);
    AddHistogram(ID(kHistJetPtMC), "leading jet spectrum (MC, |#eta| < 0.5);p_{T}^{jet} (GeV/c);counts",
		 fNoJetPtBins, 0., fJetPtBinMax);
  }

  AddHistogram(ID(kHistJetEtaAvg), "average eta",
	       100, -1., 1.);

  AddHistogram(ID(kHistNoJets), "number of jets;N^{jet};counts",
               400, -.5, 399.5);

  AddHistogram(ID(kHistTrackGTU), "GTU track p_{T};p_{T} (GeV/c);counts",
               100, 0., 25.);

  AddHistogram(ID(kHistTrackEffGTU), "found GTU tracks;p_{T} (GeV/c);#eta;#varphi",
               100, 0., 25.,
               100, -1., 1.,
               100, 0., 2.*TMath::Pi());
  AddHistogram(ID(kHistTrackEffMC), "wanted GTU tracks;p_{T} (GeV/c);#eta;#varphi",
               100, 0., 25.,
               100, -1., 1.,
               100, 0., 2.*TMath::Pi());

  AddHistogram(ID(kHistNPtMin),
	       "rejection;p_{T}^{min};N_{trk};trigger",
  	       100, 0., 10.,
	       20, 0., 20.,
	       fNoTriggers - 1, .5, fNoTriggers - .5);

  // leading jet
  AddHistogram(ID(kHistLeadJetPt),
	       "leading jet spectrum (|#eta| < 0.5);p_{T}^{jet,ch} (GeV/c);counts",
  	       fNoJetPtBins, 0., fJetPtBinMax,
	       fNoTriggers - 1, .5, fNoTriggers - .5);
  AddHistogram(ID(kHistLeadJetPtEta),
	       "leading jet #eta (|#eta| < 0.5);p_{T}^{jet,ch} (GeV/c);trigger;#eta",
  	       fNoJetPtBins, 0., fJetPtBinMax,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
	       40, -.5, .5);
  AddHistogram(ID(kHistLeadJetPtPhi),
	       "leading jet #phi (|#eta| < 0.5);p_{T}^{jet,ch} (GeV/c);trigger;#varphi",
  	       fNoJetPtBins, 0., fJetPtBinMax,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
	       40, 0., 2. * TMath::Pi());
  AddHistogram(ID(kHistLeadJetEtaPhi),
	       "leading jet #eta - #varphi (|#eta| < 0.5);#eta;trigger;#varphi",
  	       40, -.5, .5,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
	       40, 0., 2. * TMath::Pi());

  AddHistogram(ID(kHistLeadJetPtTrackPt),
	       "leading jet pt vs track pt;p_{T} (GeV/c);trigger;p_{T}^{jet,ch} (GeV/c)",
	       100., 0., 20.,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
  	       fNoJetPtBins, 0., fJetPtBinMax);
  AddHistogram(ID(kHistLeadJetPtZ),
	       "leading jet pt vs z;z;trigger;p_{T}^{jet,ch} (GeV/c)",
	       100., 0., 1.,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
  	       fNoJetPtBins, 0., fJetPtBinMax);
  AddHistogram(ID(kHistLeadJetPtXi),
	       "leading jet pt vs #xi;#xi;trigger;p_{T}^{jet,ch} (GeV/c)",
	       100., 0., 10.,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
  	       fNoJetPtBins, 0., fJetPtBinMax);

  // inclusive jets
  AddHistogram(ID(kHistJetPt),
	       "jet spectrum (|#eta| < 0.5);p_{T}^{jet,ch} (GeV/c);trigger",
  	       fNoJetPtBins, 0., fJetPtBinMax,
	       fNoTriggers - 1, .5, fNoTriggers - .5);
  AddHistogram(ID(kHistJetPtEta),
	       "jet #eta (|#eta| < 0.5);p_{T}^{jet,ch} (GeV/c);trigger;#eta",
  	       fNoJetPtBins, 0., fJetPtBinMax,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
	       40, -.5, .5);
  AddHistogram(ID(kHistJetPtPhi),
	       "jet #phi (|#eta| < 0.5);p_{T}^{jet,ch} (GeV/c);trigger;#varphi",
  	       fNoJetPtBins, 0., fJetPtBinMax,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
	       40, 0., 2. * TMath::Pi());
  AddHistogram(ID(kHistJetEtaPhi),
	       "jet #eta - #varphi (|#eta| < 0.5);#eta;trigger;#varphi",
  	       40, -.5, .5,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
	       40, 0., 2. * TMath::Pi());

  AddHistogram(ID(kHistJetPtITS),
	       "jet spectrum (|#eta| < 0.5);p_{T}^{jet,ch} (GeV/c);trigger",
  	       fNoJetPtBins, 0., fJetPtBinMax,
	       fNoTriggers - 1, .5, fNoTriggers - .5);
  AddHistogram(ID(kHistJetPt3x3),
	       "jet spectrum (|#eta| < 0.5);p_{T}^{jet,ch} (GeV/c);trigger",
  	       fNoJetPtBins, 0., fJetPtBinMax,
	       fNoTriggers - 1, .5, fNoTriggers - .5);

  AddHistogram(ID(kHistJetPtTrackPt),
	       "jet pt vs track pt;p_{T} (GeV/c);trigger;p_{T}^{jet,ch} (GeV/c)",
	       100., 0., 20.,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
  	       fNoJetPtBins, 0., fJetPtBinMax);
  AddHistogram(ID(kHistJetPtZ),
	       "jet pt vs z;z;trigger;p_{T}^{jet,ch} (GeV/c)",
	       100., 0., 1.,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
  	       fNoJetPtBins, 0., fJetPtBinMax);
  AddHistogram(ID(kHistJetPtXi),
	       "jet pt vs #xi;#xi;trigger;p_{T}^{jet,ch} (GeV/c)",
	       100., 0., 10.,
	       fNoTriggers - 1, .5, fNoTriggers - .5,
  	       fNoJetPtBins, 0., fJetPtBinMax);

  for (Int_t iHist = kHistLeadJetPt; iHist <= kHistJetPtXi; ++iHist) {
    TH1 *h = GetHistogram(Hist_t (iHist));
    h->GetYaxis()->SetBinLabel(ID(kTrgMinBias));
    h->GetYaxis()->SetBinLabel(ID(kTrgInt7));
    h->GetYaxis()->SetBinLabel(ID(kTrgInt8));
    h->GetYaxis()->SetBinLabel(ID(kTrgEMC7));
    h->GetYaxis()->SetBinLabel(ID(kTrgEMC8));
    h->GetYaxis()->SetBinLabel(ID(kTrgPbPb));
    h->GetYaxis()->SetBinLabel(ID(kTrgCentral));
    h->GetYaxis()->SetBinLabel(ID(kTrgSemiCentral));
    h->GetYaxis()->SetBinLabel(ID(kTrgInt7WUHJT));
    h->GetYaxis()->SetBinLabel(ID(kTrgInt8WUHJT));
    h->GetYaxis()->SetBinLabel(ID(kTrgEMC7WUHJT));
    h->GetYaxis()->SetBinLabel(ID(kTrgEMC8WUHJT));
    h->GetYaxis()->SetBinLabel(ID(kTrgEMCEJE));
    h->GetYaxis()->SetBinLabel(ID(kTrgEMCEGA));
    h->GetYaxis()->SetBinLabel(ID(kTrgInt7_WU));
    h->GetYaxis()->SetBinLabel(ID(kTrgInt7_WUHJT));
    h->GetYaxis()->SetBinLabel(ID(kTrgEMCEJE_WU));
    h->GetYaxis()->SetBinLabel(ID(kTrgEMCEJE_WUHJT));
    if (HasMC()) {
      h->GetYaxis()->SetBinLabel(ID(kTrgMC3x3Vtx));
      h->GetYaxis()->SetBinLabel(ID(kTrgMC3x3TRD));
      h->GetYaxis()->SetBinLabel(ID(kTrgMC3x3TRDeff));
      h->GetYaxis()->SetBinLabel(ID(kTrgMC3x3TRDeffmap));
    }
  }

  AddHistogram(ID(kHistJetPtNoTracks3),
	       "number of tracks above 3 GeV;p_{T}^{jet,ch};no. of tracks",
               fNoJetPtBins, 0., fJetPtBinMax,
               40, -.5, 39.5);

  PostData(1, fOutputList);
}

Bool_t AliAnalysisTaskJetsTriggerTRD::Notify()
{
  // actions to be taken upon notification about input file change

  // ??? check ???
  // we should only count the cross section we see in the analysis,
  // i.e. fXsection / nTrials

  if (HasMC()) {
    fAvgXsection = 0.;
    Float_t xSection = 0.;
    Float_t nTrials = 0.;
    Float_t nEntries = 0.;

    TTree *tree = AliAnalysisManager::GetAnalysisManager()->GetTree();

    if (tree) {
      TFile *curfile = tree->GetCurrentFile();
      if (!curfile) {
	AliError("No current file");
	return kFALSE;
      }

      if (!AliAnalysisHelperJetTasks::PythiaInfoFromFile(curfile->GetName(), xSection, nTrials)) {
	AliError("retrieval of cross section failed");
      }

      nEntries = (Float_t) tree->GetTree()->GetEntries();
      if (nEntries > 0.) {
	fAvgTrials = nTrials / nEntries;
	if (nTrials > 0.)
	  fAvgXsection = xSection / (nTrials / nEntries);
      }
    }
    printf("n_trials = %f\n", nTrials);
  }

  return AliAnalysisTaskSE::Notify();
}

void AliAnalysisTaskJetsTriggerTRD::UserExec(Option_t * /* option */)
{
  // actual work

  // setup pointers to input data (null if unavailable)
  // mcEvent:  MC input
  // esdEvent: ESD input
  // outEvent: AOD output
  // aodEvent: AOD input if available, otherwise AOD output
  AliMCEvent  *mcEvent   = this->MCEvent();
  AliESDEvent *esdEvent  = dynamic_cast<AliESDEvent*>(this->InputEvent()); // could also be AOD input
  AliAODEvent* outEvent  = this->AODEvent();
  AliAODEvent *aodEvent  = outEvent;
  if (dynamic_cast<AliAODEvent*>(this->InputEvent()))
    aodEvent = (AliAODEvent*) (this->InputEvent());

  if ((fDebug > 0) && esdEvent)
    printf("event: %s-%06i\n", CurrentFileName(), esdEvent->GetEventNumberInFile());

  Int_t nTracksMC  = mcEvent ? mcEvent->GetNumberOfTracks() : 0; // no. of MC tracks
  // Int_t nTracks    = InputEvent()->GetNumberOfTracks(); // no. of global tracks
  Int_t nTracksTRD = InputEvent()->GetNumberOfTrdTracks(); // no. of GTU tracks

  TList partMC;
  TList partEsd;
  TList partGtu;

  Float_t leadingJetPtMC = 0.; // leading jet energy from MC information
  Float_t leadingJetPtRec = 0.; // leading jet energy from AOD information

  // record number of sampled events and detect trigger contributions
  FillH1(kHistStat, kStatSeen);
  if (!DetectTriggers()) {
    AliError("Failed to detect the triggers");
    return;
  }

  // only continue for events from interesting triggers
  if (fTriggerMask == 0)
    return;
  FillH1(kHistStat, kStatTrg);

  // no further technical requirements for the event at the moment
  FillH1(kHistStat, kStatUsed);
  if (HasMC()) {
    if (fAvgXsection == 0.) {
      AliError("zero cross section");
      return;
    }
    FillH1(kHistXsection, .5, fAvgXsection);
  }

  // apply event cuts
  const AliVVertex *vtx = InputEvent()->GetPrimaryVertex();
  if (!vtx ||
      (vtx->GetNContributors() < 3.) ||
      (vtx->GetZ() > 10.))
    return;
  FillH1(kHistStat, kStatEvCuts);

  // extract MC information
  if (mcEvent) {
    // check for PYTHIA event header
    AliGenPythiaEventHeader *pythiaHeader =
      dynamic_cast<AliGenPythiaEventHeader*> (mcEvent->GenEventHeader());
    if (!pythiaHeader) {
      AliWarning("MC event without PYTHIA event header!\n");
    }
    else {
      fPtHard  = pythiaHeader->GetPtHard();
      Int_t nTrials = pythiaHeader->Trials();
      fNTrials += nTrials;

      FillH1(kHistPtHard, fPtHard);

      // loop over jets from PYTHIA
      Float_t eta1 = -10.;
      Float_t eta2 = -10.;
      for (Int_t iJet = 0; iJet < pythiaHeader->NTriggerJets(); iJet++) {
        Float_t p[4];
        pythiaHeader->TriggerJet(iJet, p);
	TLorentzVector pJet(p);
        Float_t pt  = pJet.Pt();
	// only consider jets with |eta| < 0.5
	Float_t eta = pJet.Eta();
	if (TMath::Abs(eta) > 0.5)
	  continue;
        if (pt > leadingJetPtMC)
          leadingJetPtMC = pt;

	// for eta averge determination consider only jets above 60 GeV
	if (pt < 60.)
	  continue;
	if (eta1 < -1.)
	  eta1 = eta;
	else if (eta2 < -1.)
	  eta2 = eta;
      }
      // fill histogram for leading jet pt spectrum
      FillH1(kHistJetPtMC, leadingJetPtMC);
      // fill histogram for eta average
      if ((eta1 > -1.) && (eta2 > -1.))
	FillH1(kHistJetEtaAvg, (eta1 + eta2)/2.);
    }

    for (Int_t iTrack = 0; iTrack < nTracksMC; ++iTrack) {
      AliVParticle *part = mcEvent->GetTrack(iTrack);
      if (AcceptTrackMC(iTrack)) {
	FillH3(kHistTrackEffMC, part->Pt(), part->Eta(), part->Phi());
      }
    }
  }

  // loop over GTU tracks
  for (Int_t iTrack = 0; iTrack < nTracksTRD; ++iTrack) {
    AliVTrdTrack *trk = InputEvent()->GetTrdTrack(iTrack);
    // printf("trk %p has pt %5.2f and label %i\n",
    // 	   trk, trk->Pt(), trk->GetLabel());
    if ((fGtuLabel != -1) && (trk->GetLabel() != fGtuLabel))
      continue;
    FillH1(kHistTrackGTU, TMath::Abs(trk->Pt()));
    partGtu.Add(trk);
  }
  partGtu.Sort(kSortAscending);

  Int_t nTracksPerStack[90] = { 0 };
  Int_t nTracksPerStackMax = 0;

  TIter nextPartGtu(&partGtu);
  while (AliVTrdTrack *trdTrack = (AliVTrdTrack*) nextPartGtu()) {
    // count no. of tracks in stack,
    // check whether this number was reached before,
    // if not store pt^min(n),
    // i.e. pt of current track because of sorting

    Int_t sec    = trdTrack->GetSector();
    Int_t stack  = trdTrack->GetStack();

    if ((sec > -1) && (sec < 18) &&
        (stack > -1) && (stack < 5)) {
      ++nTracksPerStack[5*sec + stack];
      if (nTracksPerStack[5*sec + stack] > nTracksPerStackMax) {
        ++nTracksPerStackMax;

	for (Int_t iTrigger = 1; iTrigger < fNoTriggers; ++iTrigger)
	  if (IsTrigger(Trigger_t (iTrigger)))
	      FillH3(kHistNPtMin,
		     TMath::Abs(trdTrack->Pt()), nTracksPerStackMax, iTrigger);
      }
      if (HasMC()) {
	Int_t label = trdTrack->GetLabel();
	if (label > -1) {
	  if (AcceptTrackMC(label)) {
	    AliVParticle *part = MCEvent()->GetTrack(label);
	    FillH3(kHistTrackEffGTU, part->Pt(), part->Eta(), part->Phi());
	  }
	}
	else {
	  AliWarning(Form("GTU track at %p with no label", trdTrack));
	  const Int_t nLayers = 6;
	  for (Int_t iLayer = 0; iLayer < nLayers; ++iLayer) {
	    AliVTrdTracklet *trkl = trdTrack->GetTracklet(iLayer);
	    if (trkl)
	      AliWarning(Form("tracklet in layer %i has label %i\n",
			      iLayer, trkl->GetLabel()));
	  }
	}
      }
    }
    else {
      AliError(Form("Invalid sector or stack: %i %i",
                    sec, stack));
    }
    
  }

  // loop over jets from AOD event
  if (aodEvent) {
    TClonesArray *jetArray =
      dynamic_cast<TClonesArray*> (aodEvent->FindListObject(fJetBranchName));
    if (jetArray) {
      Int_t nJets = jetArray->GetEntriesFast();
      FillH1(kHistNoJets, nJets);

      AliAODJet *leadJet = 0x0;
      // AliAODJet *subleadJet = 0x0;

      for (Int_t iJet = 0; iJet < nJets; ++iJet) {
        AliAODJet *jet = (AliAODJet*) (*jetArray)[iJet];
        if (TMath::Abs(jet->Eta()) < 0.5) {
	  // check contributing tracks
	  Int_t nJetTracks = jet->GetRefTracks()->GetEntriesFast();
	  Int_t nJetTracks3 = 0;
	  AliAODTrack *leadingTrack = 0x0;
	  for (Int_t iTrack=0; iTrack < nJetTracks; ++iTrack) {
	    AliAODTrack *track = (AliAODTrack*) jet->GetRefTracks()->At(iTrack);

	    // count constituents above 3 GeV/c
	    if (track->Pt() > 3.)
	      ++nJetTracks3;

	    // find the leading track
	    if (!leadingTrack ||
		(track->Pt() > leadingTrack->Pt()))
	      leadingTrack = track;
	  }

          // find leading jet
          if (TMath::Abs(jet->Pt()) > leadingJetPtRec) {
            leadingJetPtRec = TMath::Abs(jet->Pt());
            // subleadJet = leadJet;
            leadJet = jet;
          }

	  // jet pt spectrum and
	  // fragmentation function
	  for (Int_t iTrigger = 1; iTrigger < fNoTriggers; ++iTrigger)
	    if (IsTrigger(Trigger_t (iTrigger))) {
	      Float_t jetPt = jet->Pt();

	      FillH1(kHistJetPt, jetPt, iTrigger);

	      FillH3(kHistJetPtEta, jet->Pt(), iTrigger, jet->Eta());
	      FillH3(kHistJetPtPhi, jet->Pt(), iTrigger, jet->Phi());
	      if (jet->Pt() > 50.)
		FillH3(kHistJetEtaPhi, jet->Eta(), iTrigger, jet->Phi());

	      Int_t nTracks = jet->GetRefTracks()->GetEntriesFast();
	      for (Int_t iTrack = 0; iTrack < nTracks; ++iTrack) {
		AliVParticle *track = dynamic_cast<AliVParticle*>(jet->GetRefTracks()->At(iTrack));
		if (track) {
		  Float_t trackPt = track->Pt();
		  Float_t z = trackPt / jetPt;
		  Float_t xi = - TMath::Log(z);
		  FillH3(kHistJetPtTrackPt, trackPt, iTrigger, jet->Pt());
		  FillH3(kHistJetPtZ, z, iTrigger, jet->Pt());
		  FillH3(kHistJetPtXi, xi, iTrigger, jet->Pt());
		}
	      }
	    }

	  // integrated over all triggers
          FillH2(kHistJetPtNoTracks3, jet->Pt(), nJetTracks3);

          // limit to jets with leading track having an ITS contribution
          // with a hit in any SPD layer
          if (leadingTrack &&
              (leadingTrack->GetFlags() & AliVTrack::kITSrefit) &&
              (leadingTrack->HasPointOnITSLayer(0) || leadingTrack->HasPointOnITSLayer(1)))
	    for (Int_t iTrigger = 1; iTrigger < fNoTriggers; ++iTrigger)
	      if (IsTrigger(Trigger_t (iTrigger)))
		FillH1(kHistJetPtITS, jet->Pt(), iTrigger);

          // limit to jets having 3 tracks above 3 GeV/c
          if (nJetTracks3 > 2)
	    for (Int_t iTrigger = 1; iTrigger < fNoTriggers; ++iTrigger)
	      if (IsTrigger(Trigger_t (iTrigger)))
		FillH1(kHistJetPt3x3, jet->Pt(), iTrigger);
        }
      }

      // fill leading jet information
      for (Int_t iTrigger = 1; iTrigger < fNoTriggers; ++iTrigger)
	if (IsTrigger(Trigger_t (iTrigger))) {
	  FillH2(kHistLeadJetPt, leadJet ? leadJet->Pt() : 0., iTrigger);
	  if (leadJet) {
	    Float_t leadJetPt = leadJet->Pt();

	    FillH3(kHistLeadJetPtEta, leadJet->Pt(), iTrigger, leadJet->Eta());
	    FillH3(kHistLeadJetPtPhi, leadJet->Pt(), iTrigger, leadJet->Phi());
	    if (leadJet->Pt() > 50.)
	      FillH3(kHistLeadJetEtaPhi, leadJet->Eta(), iTrigger, leadJet->Phi());

	    Int_t nTracks = leadJet->GetRefTracks()->GetEntriesFast();
	    for (Int_t iTrack = 0; iTrack < nTracks; ++iTrack) {
	      AliVParticle *track = dynamic_cast<AliVParticle*>(leadJet->GetRefTracks()->At(iTrack));
	      if (track) {
		Float_t trackPt = track->Pt();
		Float_t z = trackPt / leadJetPt;
		Float_t xi = - TMath::Log(z);
		FillH3(kHistLeadJetPtTrackPt, trackPt, iTrigger, leadJet->Pt());
		FillH3(kHistLeadJetPtZ, z, iTrigger, leadJet->Pt());
		FillH3(kHistLeadJetPtXi, xi, iTrigger, leadJet->Pt());
	      }
	    }
	  }
	}
    }
    else {
      printf("no jet array found as branch %s\n", fJetBranchName);
      aodEvent->Print();
    }
  } else {
    printf("no AOD event found\n");
  }

  PostData(1, fOutputList);
}

void AliAnalysisTaskJetsTriggerTRD::Terminate(const Option_t * /* option */)
{
  // actions at task termination

  printf("total trials: %d\n", fNTrials);
}

Bool_t AliAnalysisTaskJetsTriggerTRD::DetectTriggers()
{
  fTriggerMask = 0;

  AliInputEventHandler *inputHandler =
    (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();

  AliVEvent::EOfflineTriggerTypes physSel = (AliVEvent::EOfflineTriggerTypes) inputHandler->IsEventSelected();
  TString trgClasses = InputEvent()->GetFiredTriggerClasses();

  fTrdTrg.CalcTriggers(InputEvent());

  UInt_t inputMaskL1 = 0;
  if (AliESDEvent *esdEvent = dynamic_cast<AliESDEvent*> (InputEvent()))
    inputMaskL1 = esdEvent->GetHeader()->GetL1TriggerInputs();
  else if (AliAODEvent *aodEvent = dynamic_cast<AliAODEvent*> (InputEvent()))
    inputMaskL1 = aodEvent->GetHeader()->GetL1TriggerInputs();

  if (fDebug > 2)
    printf("trg: %8s %8s %8s %8s %8s %8s %8s (%s)\n",
           (physSel & AliVEvent::kAnyINT)  ? "kAnyINT"  : " ",
           (physSel & AliVEvent::kCINT5)   ? "kCINT5" : " ",
           (physSel & AliVEvent::kINT7)    ? "kINT7" : " ",
           (physSel & AliVEvent::kINT8)    ? "kINT8" : " ",
           (physSel & AliVEvent::kMB)      ? "kMB"   : " ",
           (physSel & AliVEvent::kEMC7)    ? "kEMC7" : " ",
           (physSel & AliVEvent::kTRD)     ? "kTRD" : " ",
           trgClasses.Data()
           );

  if (fDebug > 2)
    printf("trg: %8s %8s %8s %8s (%s)\n",
	   fTrdTrg.IsFired(AliTRDTriggerAnalysis::kHJT) ? "HJT"  : " ",
	   fTrdTrg.IsFired(AliTRDTriggerAnalysis::kHSE) ? "HSE"  : " ",
	   fTrdTrg.IsFired(AliTRDTriggerAnalysis::kHQU) ? "HQU"  : " ",
	   fTrdTrg.IsFired(AliTRDTriggerAnalysis::kHEE) ? "HEE"  : " ",
	   trgClasses.Data()
	   );

  // physics selection
  if ((physSel & (AliVEvent::kMB)))
    MarkTrigger(kTrgMinBias);

  if ((physSel & (AliVEvent::kAnyINT | AliVEvent::kCentral | AliVEvent::kSemiCentral)))
    MarkTrigger(kTrgPbPb);

  if ((physSel & (AliVEvent::kINT7))) {
    MarkTrigger(kTrgInt7);
    if (trgClasses.Contains("WU")) {
      MarkTrigger(kTrgInt7_WU);
      if (inputMaskL1 & (1 << 9))
	MarkTrigger(kTrgInt7_WUHJT);
    }
  }

  if ((physSel & (AliVEvent::kINT8)))
    MarkTrigger(kTrgInt8);

  if ((physSel & (AliVEvent::kEMC7)) &&
      trgClasses.Contains("CEMC7"))
    MarkTrigger(kTrgEMC7);

  if ((physSel & (AliVEvent::kEMC8)) &&
      trgClasses.Contains("CEMC8"))
    MarkTrigger(kTrgEMC8);

  if ((physSel & (AliVEvent::kEMCEJE))) {
    MarkTrigger(kTrgEMCEJE);
    if (trgClasses.Contains("WU")) {
      MarkTrigger(kTrgEMCEJE_WU);
      if (inputMaskL1 & (1 << 9))
	MarkTrigger(kTrgEMCEJE_WUHJT);
    }
  }

  if ((physSel & (AliVEvent::kEMCEGA)))
    MarkTrigger(kTrgEMCEGA);

  // for the TRD-triggered events we use the classes
  if (trgClasses.Contains("CINT7WUHJT-"))
    MarkTrigger(kTrgInt7WUHJT);

  if (trgClasses.Contains("CINT8WUHJT-"))
    MarkTrigger(kTrgInt8WUHJT);

  if (trgClasses.Contains("CEMC7WUHJT-"))
    MarkTrigger(kTrgEMC7WUHJT);

  if (trgClasses.Contains("CEMC8WUHJT-"))
    MarkTrigger(kTrgEMC8WUHJT);

  if (HasMC())
    DetectMCTriggers();

  return kTRUE;
}

Bool_t AliAnalysisTaskJetsTriggerTRD::DetectMCTriggers()
{
  AliMCEvent  *mcEvent   = MCEvent();

  Int_t nTracksMC  = mcEvent ? mcEvent->GetNumberOfTracks() : 0; // no. of MC tracks
  TList partMC; // list of particles

  // fill tracks passing cuts to list
  for (Int_t iTrackMC = 0; iTrackMC < nTracksMC; ++iTrackMC) {
    AliVParticle *part = mcEvent->GetTrack(iTrackMC);

    // only consider primaries
    if (!mcEvent->IsPhysicalPrimary(iTrackMC))
      continue;

    // only consider charged particles
    if (part->Charge() == 0)
      continue;

    // only look at particles in eta-acceptance of the central barrel
    if (TMath::Abs(part->Eta()) >= 0.9)
      continue;

    partMC.Add(part);
  }

  // sort, starting from highest pt
  partMC.Sort(kSortAscending);

  Int_t nTracksInStack[4][90] = { { 0 } };

  // iterate over accepted tracks
  TIter nextMcPart(&partMC);
  while (AliVParticle *part = (AliMCParticle*) (nextMcPart())) {
    Float_t pt  = part->Pt();
    Float_t eta = part->Eta();
    Float_t phi = part->Phi();

    Int_t phiBin = (Int_t) (phi / (2 / 18. *TMath::Pi()));
    // ??? use actual geometry
    Int_t etaBin = (Int_t) ((eta + .9) / (1.8 / 5.));

    Int_t pdgCode = ((AliMCParticle*) part)->Particle()->GetPdgCode();
    if (fDebug > 2)
      printf("pt = %f, eta = %f, phi = %f, phiBin = %d, etaBin = %d, pdgCode = %d\n",
	     pt, eta, phi, phiBin, etaBin, pdgCode);

    // increment number of tracks in stack
    Int_t bin = phiBin * 5 + etaBin;
    ++nTracksInStack[0][bin];

    // if minimum number reached and
    // the track has pt above threshold
    // trigger fired
    if ((nTracksInStack[0][bin] >= 3) &&
	(pt >= 3.)) 
      MarkTrigger(kTrgMC3x3Vtx);

    // only propagate particles that do not decay before ???

    // propagate to TRD
    // why not use track references?
    Float_t rTrack = pt / .15;
    Float_t rTrd   = 3.;
    Float_t phiTrd = phi + TMath::ASin(rTrd / 2 / rTrack);
    if (phiTrd < 0)
      phiTrd += 2*TMath::Pi();
    else if (phiTrd > 2*TMath::Pi())
      phiTrd -= 2*TMath::Pi();
    Float_t etaTrd = eta;

    Int_t secTrd   = (Int_t) (phiTrd / (2.*TMath::Pi()/18.));
    Int_t stackTrd = (Int_t) ((etaTrd+0.9) / (1.8/5.));
    Int_t binTrd   = secTrd * 5 + stackTrd;

    // increment number of tracks in stack
    ++nTracksInStack[1][binTrd];
    if (gRandom->Uniform() < fGlobalEfficiencyGTU)
      ++nTracksInStack[2][binTrd];
    if (gRandom->Uniform() < GetEfficiencyTRD(pt, eta, phi))
      ++nTracksInStack[3][binTrd];

    // if minimum number reached and
    // the track has pt above threshold
    // trigger fired
    if (pt >= 3.) {
      if (nTracksInStack[1][binTrd] >= 3)
	MarkTrigger(kTrgMC3x3TRD);
      if (nTracksInStack[2][binTrd] >= 3)
	MarkTrigger(kTrgMC3x3TRDeff);
      if (nTracksInStack[3][binTrd] >= 3)
	MarkTrigger(kTrgMC3x3TRDeffmap);
    }
  }

  return kTRUE;
}

Bool_t AliAnalysisTaskJetsTriggerTRD::AcceptTrackMC(Int_t track) const
{
  // only consider primaries
  if (!MCEvent()->IsPhysicalPrimary(track))
    return kFALSE;

  const AliVParticle *part = MCEvent()->GetTrack(track);

  // only consider charged particles
  if (part->Charge() == 0)
    return kFALSE;

  // only look at particles in eta-acceptance of the central barrel
  if (TMath::Abs(part->Eta()) >= 0.9)
    return kFALSE;

  return kTRUE;
}


// ----- histogram management -----
TH1* AliAnalysisTaskJetsTriggerTRD::AddHistogram(Hist_t hist, const char *hid, TString title,
						 Int_t xbins, Float_t xmin, Float_t xmax,
						 Int_t binType)
{
  TString hName;
  hName.Form("%s_%s", fShortTaskId, hid);
  hName.ToLower();
  TH1 *h = 0x0;
  if (binType == 0)
    h = new TH1I(hName.Data(), title,
                 xbins, xmin, xmax);
  else
    h = new TH1F(hName.Data(), title,
                 xbins, xmin, xmax);
  GetHistogram(hist) = h;
  fOutputList->Add(h);
  return h;
}

TH2* AliAnalysisTaskJetsTriggerTRD::AddHistogram(Hist_t hist, const char *hid, TString title,
						 Int_t xbins, Float_t xmin, Float_t xmax,
						 Int_t ybins, Float_t ymin, Float_t ymax,
						 Int_t binType)
{
  TString hName;
  hName.Form("%s_%s", fShortTaskId, hid);
  hName.ToLower();
  TH1 *h = 0x0;
  if (binType == 0)
    h = GetHistogram(hist) = new TH2I(hName.Data(), title,
                                     xbins, xmin, xmax,
                                     ybins, ymin, ymax);
  else
    h = GetHistogram(hist) = new TH2F(hName.Data(), title,
                                     xbins, xmin, xmax,
                                     ybins, ymin, ymax);
  fOutputList->Add(h);
  return (TH2*) h;
}

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