ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//--------------------------------------------------
// Filling of CalTrkTrack objects in the MC reader task
//
// Author: magali.estienne@subatech.in2p3.fr
//         alexandre.shabetai@cern.ch
//-------------------------------------------------

// --- ROOT system ---
#include <TDatabasePDG.h>
#include <TRandom.h>
#include <TPDGCode.h>

// --- AliRoot system ---
#include "AliJetFillCalTrkTrackMC.h"
#include "AliAODMCParticle.h"
#include "AliJetKineReaderHeader.h"
#include "AliVEvent.h"
#include "AliMCEvent.h"

using std::cout;
using std::endl;
ClassImp(AliJetFillCalTrkTrackMC)

/////////////////////////////////////////////////////////////////////////

AliJetFillCalTrkTrackMC::AliJetFillCalTrkTrackMC(): 
  AliJetFillCalTrkEvent(),
  fHadCorr(0),
  fApplyMIPCorrection(kTRUE),
  fVEvt(0x0),
  fMCEvent(0x0)
{
  // constructor
}

//-----------------------------------------------------------------------
AliJetFillCalTrkTrackMC::AliJetFillCalTrkTrackMC(AliVEvent* evt): 
  AliJetFillCalTrkEvent(),
  fHadCorr(0),
  fApplyMIPCorrection(kTRUE),
  fVEvt(evt),
  fMCEvent(0x0)
{
  // constructor
}

//-----------------------------------------------------------------------
AliJetFillCalTrkTrackMC::AliJetFillCalTrkTrackMC(const AliJetFillCalTrkTrackMC &det): 
  AliJetFillCalTrkEvent(det),
  fHadCorr(det.fHadCorr),
  fApplyMIPCorrection(det.fApplyMIPCorrection),
  fVEvt(det.fVEvt),
  fMCEvent(det.fMCEvent)
{
  // Copy constructor
}

//-----------------------------------------------------------------------
AliJetFillCalTrkTrackMC& AliJetFillCalTrkTrackMC::operator=(const AliJetFillCalTrkTrackMC& other)
{
  // Assignment
  if (this != &other) { 
   fHadCorr = other.fHadCorr;
   fApplyMIPCorrection = other.fApplyMIPCorrection;
   fVEvt = other.fVEvt;
   fMCEvent = other.fMCEvent;
  }
 
  return (*this);

}

//-----------------------------------------------------------------------
AliJetFillCalTrkTrackMC::~AliJetFillCalTrkTrackMC()
{
  // destructor
}

//-----------------------------------------------------------------------
void AliJetFillCalTrkTrackMC::Exec(Option_t const * /*option*/)
{
  // Main method.
  // Fill AliJetFillCalTrkTrackMC the with the charged particle information

  fDebug = fReaderHeader->GetDebug();
  fOpt = fReaderHeader->GetDetector();
  TString datatype = fReaderHeader->GetDataType();
  datatype.ToUpper();

  Int_t type=0;

  if      (datatype.Contains("AODMC2B")) { type=kTrackAODMCChargedAcceptance; }
  else if (datatype.Contains("AODMC2"))  { type=kTrackAODMCCharged; }
  else if (datatype.Contains("AODMC"))   { type=kTrackAODMCAll; }
 
  else if (!datatype.Contains("AOD") && datatype.Contains("MC2")) {type=kTrackKineCharged;} 
  else if (!datatype.Contains("AOD") && datatype.Contains("MC"))  {type=kTrackKineAll;}
  
  else { cout<< "Unknown Data type !" << endl; }

  // temporary storage of signal and pt cut flag
  Bool_t sflag = 0;
  Bool_t cflag = 0;

  // get cuts set by user
  Float_t ptMin  = fReaderHeader->GetPtCut();
  Float_t etaMin = fReaderHeader->GetFiducialEtaMin();
  Float_t etaMax = fReaderHeader->GetFiducialEtaMax();
  Float_t phiMin = fReaderHeader->GetFiducialPhiMin();
  Float_t phiMax = fReaderHeader->GetFiducialPhiMax();

  if(fDebug>2) Printf("%s:%d Selecting tracks with %d",(char*)__FILE__,__LINE__,type);

  Int_t goodTrackStd = 0;
  Int_t goodTrackNonStd = 0;

  if (type == kTrackKineAll || type == kTrackKineCharged){

    FillKine();
  } // Kine

  else if (type == kTrackAODMCCharged || type == kTrackAODMCAll || type == kTrackAODMCChargedAcceptance) {
    if(!fVEvt) return; 
    TClonesArray *mcArray = dynamic_cast<TClonesArray*>(fVEvt->FindListObject(AliAODMCParticle::StdBranchName()));
    if(!mcArray) {
      Printf("%s:%d No MC particle branch found",(char*)__FILE__,__LINE__);
      return; 
    }
    for(int it = 0;it < mcArray->GetEntriesFast();++it){
      cflag=sflag=0;
      AliAODMCParticle *part = (AliAODMCParticle*)(mcArray->At(it));
      if(!part->IsPhysicalPrimary())continue;
      Int_t   pdg     = TMath::Abs(part->GetPdgCode());
      // exclude neutrinos anyway
      if((pdg == 12 || pdg == 14 || pdg == 16)) continue;
      cflag = ( part->Pt()>ptMin ) ? 1 : 0;
      sflag = ( TMath::Abs(part->GetLabel()) < 10000 ) ? 1 : 0;
      if(type == kTrackAODMCAll){
        fCalTrkEvent->AddCalTrkTrack(part,cflag,sflag);
        goodTrackStd++;
      }
      else if (type == kTrackAODMCCharged || type == kTrackAODMCChargedAcceptance ){
        if(part->Charge()==0)continue;
        if(kTrackAODMCCharged){
          fCalTrkEvent->AddCalTrkTrack(part,cflag,sflag);
          goodTrackStd++;
        }
        else {
          if((part->Eta()>etaMax) || (part->Eta()<etaMin)) continue;
          Float_t phi = ( (part->Phi()) < 0) ? (part->Phi()) + 2. * TMath::Pi() : (part->Phi());
          if((phi>phiMax) || (phi<phiMin)) continue;
          fCalTrkEvent->AddCalTrkTrack(part,cflag,sflag);
          goodTrackStd++;
        }
      }
    }
   if(fDebug>0) printf("Number of good tracks selected: %5d \n", goodTrackStd+goodTrackNonStd); 
  } // AODMCparticle

}

//-----------------------------------------------------------------------
Bool_t AliJetFillCalTrkTrackMC::FillKine()
{
  // Fill event
  Int_t goodTrack = 0;
  
  // Get the stack
  if(!fMCEvent) {cout<<"could not get MCEvent!"<<endl; return kFALSE;}
  
  Int_t nt = fMCEvent->GetNumberOfTracks();
  
  // Get cuts set by user and header
  Double_t ptMin = ((AliJetKineReaderHeader*) fReaderHeader)->GetPtCut();
  Float_t etaMin = fReaderHeader->GetFiducialEtaMin();
  Float_t etaMax = fReaderHeader->GetFiducialEtaMax();
  
  TLorentzVector p4;
  // Loop over particles
  for (Int_t it = 0; it < nt; it++) {
    if(!fMCEvent->IsPhysicalPrimary(it)) continue;
    AliVParticle* part = fMCEvent->GetTrack(it);
    Int_t   pdg    = TMath::Abs(part->PdgCode());
    Float_t pt     = part->Pt();
    
    if( (pdg == 12 || pdg == 14 || pdg == 16)) continue;
    
    Float_t p      = part->P();
    Float_t p0     = p;
    Float_t eta    = part->Eta();
    Float_t phi    = part->Phi();
    Float_t charge = part->Charge();
    
    if (((AliJetKineReaderHeader*)fReaderHeader)->ChargedOnly()) {
      if (charge == 0) continue;
    } // End charged only
    
    // Fast simulation of EMCAL if requested
    if (((AliJetKineReaderHeader*)fReaderHeader)->FastSimEMCAL()) {
      // Charged particles only
      if (charge != 0){
	// Simulate efficiency
	if (!Efficiency(p0, eta, phi)) continue;
	// Simulate resolution
	p = SmearMomentum(4, p0);
      } // end "if" charged particles
      // Neutral particles (exclude K0L, n, nbar)
      if (pdg == kNeutron || pdg == kK0Long) continue;
    } // End fast EMCAL
    
    // Fast simulation of TPC if requested
    if (((AliJetKineReaderHeader*)fReaderHeader)->FastSimTPC()) {
      // Charged particles only
      if (charge == 0)               continue;
      // Simulate efficiency
      if (!Efficiency(p0, eta, phi)) continue;
      // Simulate resolution
      p = SmearMomentum(4, p0);
    } // End fast TPC

    // Fill momentum array
    Float_t r  = p/p0;
    Float_t px = r * part->Px();
    Float_t py = r * part->Py();
    Float_t pz = r * part->Pz();
    Float_t m =  part->M();
    
    Float_t e  = TMath::Sqrt(px * px + py * py + pz * pz + m * m);
    p4 = TLorentzVector(px, py, pz, e);
    if ((p4.Eta()>etaMax) || (p4.Eta()<etaMin)) continue;

    // Flag used to store the r factor
    Float_t ptReso = r;
    Bool_t cflag = kFALSE, sflag = kTRUE;
    if (pt > ptMin) cflag = kTRUE; // track surviving pt cut

    fCalTrkEvent->AddCalTrkTrackKine(part,cflag,sflag,ptReso);

    goodTrack++;

  } // track loop

  if(fDebug>0) printf(" Number of good tracks %d \n", goodTrack);

  return kTRUE;

}

//-----------------------------------------------------------------------
Float_t AliJetFillCalTrkTrackMC::SmearMomentum(Int_t ind, Float_t p)
{
  //  The relative momentum error, i.e.
  //  (delta p)/p = sqrt (a**2 + (b*p)**2) * 10**-2,
  //  where typically a = 0.75 and b = 0.16 - 0.24 depending on multiplicity
  //  (the lower value is for dn/d(eta) about 2000, and the higher one for 8000)
  //
  //  If we include information from TRD, b will be a factor 2/3 smaller.
  //
  //  ind = 1: high multiplicity
  //  ind = 2: low  multiplicity
  //  ind = 3: high multiplicity + TRD
  //  ind = 4: low  multiplicity + TRD

  Float_t pSmeared;
  Float_t a = 0.75;
  Float_t b = 0.12;

  if (ind == 1) b = 0.12;
  if (ind == 2) b = 0.08;
  if (ind == 3) b = 0.12;
  if (ind == 4) b = 0.08;

  Float_t sigma =  p * TMath::Sqrt(a * a + b * b * p * p)*0.01;
  pSmeared = p + gRandom->Gaus(0., sigma);
  return pSmeared;

}

//-----------------------------------------------------------------------
Bool_t AliJetFillCalTrkTrackMC::Efficiency(Float_t p, Float_t /*eta*/, Float_t phi)
{
  // Fast simulation of geometrical acceptance and tracking efficiency
  
  //  Tracking
  Float_t eff = 0.99;
  if (p < 0.5) eff -= (0.5-p)*0.2/0.3;
  // Geometry
  if (p > 0.5) {
    phi *= 180. / TMath::Pi();
    // Sector number 0 - 17
    Int_t isec  = Int_t(phi / 20.);
    // Sector centre
    Float_t phi0 = isec * 20. + 10.;
    Float_t phir = TMath::Abs(phi-phi0);
    // 2 deg of dead space
    if (phir > 9.) eff = 0.;
  }
  
  if (gRandom->Rndm() > eff) {
    return kFALSE;
  } else {
    return kTRUE;
  }
  
}


 AliJetFillCalTrkTrackMC.cxx:1
 AliJetFillCalTrkTrackMC.cxx:2
 AliJetFillCalTrkTrackMC.cxx:3
 AliJetFillCalTrkTrackMC.cxx:4
 AliJetFillCalTrkTrackMC.cxx:5
 AliJetFillCalTrkTrackMC.cxx:6
 AliJetFillCalTrkTrackMC.cxx:7
 AliJetFillCalTrkTrackMC.cxx:8
 AliJetFillCalTrkTrackMC.cxx:9
 AliJetFillCalTrkTrackMC.cxx:10
 AliJetFillCalTrkTrackMC.cxx:11
 AliJetFillCalTrkTrackMC.cxx:12
 AliJetFillCalTrkTrackMC.cxx:13
 AliJetFillCalTrkTrackMC.cxx:14
 AliJetFillCalTrkTrackMC.cxx:15
 AliJetFillCalTrkTrackMC.cxx:16
 AliJetFillCalTrkTrackMC.cxx:17
 AliJetFillCalTrkTrackMC.cxx:18
 AliJetFillCalTrkTrackMC.cxx:19
 AliJetFillCalTrkTrackMC.cxx:20
 AliJetFillCalTrkTrackMC.cxx:21
 AliJetFillCalTrkTrackMC.cxx:22
 AliJetFillCalTrkTrackMC.cxx:23
 AliJetFillCalTrkTrackMC.cxx:24
 AliJetFillCalTrkTrackMC.cxx:25
 AliJetFillCalTrkTrackMC.cxx:26
 AliJetFillCalTrkTrackMC.cxx:27
 AliJetFillCalTrkTrackMC.cxx:28
 AliJetFillCalTrkTrackMC.cxx:29
 AliJetFillCalTrkTrackMC.cxx:30
 AliJetFillCalTrkTrackMC.cxx:31
 AliJetFillCalTrkTrackMC.cxx:32
 AliJetFillCalTrkTrackMC.cxx:33
 AliJetFillCalTrkTrackMC.cxx:34
 AliJetFillCalTrkTrackMC.cxx:35
 AliJetFillCalTrkTrackMC.cxx:36
 AliJetFillCalTrkTrackMC.cxx:37
 AliJetFillCalTrkTrackMC.cxx:38
 AliJetFillCalTrkTrackMC.cxx:39
 AliJetFillCalTrkTrackMC.cxx:40
 AliJetFillCalTrkTrackMC.cxx:41
 AliJetFillCalTrkTrackMC.cxx:42
 AliJetFillCalTrkTrackMC.cxx:43
 AliJetFillCalTrkTrackMC.cxx:44
 AliJetFillCalTrkTrackMC.cxx:45
 AliJetFillCalTrkTrackMC.cxx:46
 AliJetFillCalTrkTrackMC.cxx:47
 AliJetFillCalTrkTrackMC.cxx:48
 AliJetFillCalTrkTrackMC.cxx:49
 AliJetFillCalTrkTrackMC.cxx:50
 AliJetFillCalTrkTrackMC.cxx:51
 AliJetFillCalTrkTrackMC.cxx:52
 AliJetFillCalTrkTrackMC.cxx:53
 AliJetFillCalTrkTrackMC.cxx:54
 AliJetFillCalTrkTrackMC.cxx:55
 AliJetFillCalTrkTrackMC.cxx:56
 AliJetFillCalTrkTrackMC.cxx:57
 AliJetFillCalTrkTrackMC.cxx:58
 AliJetFillCalTrkTrackMC.cxx:59
 AliJetFillCalTrkTrackMC.cxx:60
 AliJetFillCalTrkTrackMC.cxx:61
 AliJetFillCalTrkTrackMC.cxx:62
 AliJetFillCalTrkTrackMC.cxx:63
 AliJetFillCalTrkTrackMC.cxx:64
 AliJetFillCalTrkTrackMC.cxx:65
 AliJetFillCalTrkTrackMC.cxx:66
 AliJetFillCalTrkTrackMC.cxx:67
 AliJetFillCalTrkTrackMC.cxx:68
 AliJetFillCalTrkTrackMC.cxx:69
 AliJetFillCalTrkTrackMC.cxx:70
 AliJetFillCalTrkTrackMC.cxx:71
 AliJetFillCalTrkTrackMC.cxx:72
 AliJetFillCalTrkTrackMC.cxx:73
 AliJetFillCalTrkTrackMC.cxx:74
 AliJetFillCalTrkTrackMC.cxx:75
 AliJetFillCalTrkTrackMC.cxx:76
 AliJetFillCalTrkTrackMC.cxx:77
 AliJetFillCalTrkTrackMC.cxx:78
 AliJetFillCalTrkTrackMC.cxx:79
 AliJetFillCalTrkTrackMC.cxx:80
 AliJetFillCalTrkTrackMC.cxx:81
 AliJetFillCalTrkTrackMC.cxx:82
 AliJetFillCalTrkTrackMC.cxx:83
 AliJetFillCalTrkTrackMC.cxx:84
 AliJetFillCalTrkTrackMC.cxx:85
 AliJetFillCalTrkTrackMC.cxx:86
 AliJetFillCalTrkTrackMC.cxx:87
 AliJetFillCalTrkTrackMC.cxx:88
 AliJetFillCalTrkTrackMC.cxx:89
 AliJetFillCalTrkTrackMC.cxx:90
 AliJetFillCalTrkTrackMC.cxx:91
 AliJetFillCalTrkTrackMC.cxx:92
 AliJetFillCalTrkTrackMC.cxx:93
 AliJetFillCalTrkTrackMC.cxx:94
 AliJetFillCalTrkTrackMC.cxx:95
 AliJetFillCalTrkTrackMC.cxx:96
 AliJetFillCalTrkTrackMC.cxx:97
 AliJetFillCalTrkTrackMC.cxx:98
 AliJetFillCalTrkTrackMC.cxx:99
 AliJetFillCalTrkTrackMC.cxx:100
 AliJetFillCalTrkTrackMC.cxx:101
 AliJetFillCalTrkTrackMC.cxx:102
 AliJetFillCalTrkTrackMC.cxx:103
 AliJetFillCalTrkTrackMC.cxx:104
 AliJetFillCalTrkTrackMC.cxx:105
 AliJetFillCalTrkTrackMC.cxx:106
 AliJetFillCalTrkTrackMC.cxx:107
 AliJetFillCalTrkTrackMC.cxx:108
 AliJetFillCalTrkTrackMC.cxx:109
 AliJetFillCalTrkTrackMC.cxx:110
 AliJetFillCalTrkTrackMC.cxx:111
 AliJetFillCalTrkTrackMC.cxx:112
 AliJetFillCalTrkTrackMC.cxx:113
 AliJetFillCalTrkTrackMC.cxx:114
 AliJetFillCalTrkTrackMC.cxx:115
 AliJetFillCalTrkTrackMC.cxx:116
 AliJetFillCalTrkTrackMC.cxx:117
 AliJetFillCalTrkTrackMC.cxx:118
 AliJetFillCalTrkTrackMC.cxx:119
 AliJetFillCalTrkTrackMC.cxx:120
 AliJetFillCalTrkTrackMC.cxx:121
 AliJetFillCalTrkTrackMC.cxx:122
 AliJetFillCalTrkTrackMC.cxx:123
 AliJetFillCalTrkTrackMC.cxx:124
 AliJetFillCalTrkTrackMC.cxx:125
 AliJetFillCalTrkTrackMC.cxx:126
 AliJetFillCalTrkTrackMC.cxx:127
 AliJetFillCalTrkTrackMC.cxx:128
 AliJetFillCalTrkTrackMC.cxx:129
 AliJetFillCalTrkTrackMC.cxx:130
 AliJetFillCalTrkTrackMC.cxx:131
 AliJetFillCalTrkTrackMC.cxx:132
 AliJetFillCalTrkTrackMC.cxx:133
 AliJetFillCalTrkTrackMC.cxx:134
 AliJetFillCalTrkTrackMC.cxx:135
 AliJetFillCalTrkTrackMC.cxx:136
 AliJetFillCalTrkTrackMC.cxx:137
 AliJetFillCalTrkTrackMC.cxx:138
 AliJetFillCalTrkTrackMC.cxx:139
 AliJetFillCalTrkTrackMC.cxx:140
 AliJetFillCalTrkTrackMC.cxx:141
 AliJetFillCalTrkTrackMC.cxx:142
 AliJetFillCalTrkTrackMC.cxx:143
 AliJetFillCalTrkTrackMC.cxx:144
 AliJetFillCalTrkTrackMC.cxx:145
 AliJetFillCalTrkTrackMC.cxx:146
 AliJetFillCalTrkTrackMC.cxx:147
 AliJetFillCalTrkTrackMC.cxx:148
 AliJetFillCalTrkTrackMC.cxx:149
 AliJetFillCalTrkTrackMC.cxx:150
 AliJetFillCalTrkTrackMC.cxx:151
 AliJetFillCalTrkTrackMC.cxx:152
 AliJetFillCalTrkTrackMC.cxx:153
 AliJetFillCalTrkTrackMC.cxx:154
 AliJetFillCalTrkTrackMC.cxx:155
 AliJetFillCalTrkTrackMC.cxx:156
 AliJetFillCalTrkTrackMC.cxx:157
 AliJetFillCalTrkTrackMC.cxx:158
 AliJetFillCalTrkTrackMC.cxx:159
 AliJetFillCalTrkTrackMC.cxx:160
 AliJetFillCalTrkTrackMC.cxx:161
 AliJetFillCalTrkTrackMC.cxx:162
 AliJetFillCalTrkTrackMC.cxx:163
 AliJetFillCalTrkTrackMC.cxx:164
 AliJetFillCalTrkTrackMC.cxx:165
 AliJetFillCalTrkTrackMC.cxx:166
 AliJetFillCalTrkTrackMC.cxx:167
 AliJetFillCalTrkTrackMC.cxx:168
 AliJetFillCalTrkTrackMC.cxx:169
 AliJetFillCalTrkTrackMC.cxx:170
 AliJetFillCalTrkTrackMC.cxx:171
 AliJetFillCalTrkTrackMC.cxx:172
 AliJetFillCalTrkTrackMC.cxx:173
 AliJetFillCalTrkTrackMC.cxx:174
 AliJetFillCalTrkTrackMC.cxx:175
 AliJetFillCalTrkTrackMC.cxx:176
 AliJetFillCalTrkTrackMC.cxx:177
 AliJetFillCalTrkTrackMC.cxx:178
 AliJetFillCalTrkTrackMC.cxx:179
 AliJetFillCalTrkTrackMC.cxx:180
 AliJetFillCalTrkTrackMC.cxx:181
 AliJetFillCalTrkTrackMC.cxx:182
 AliJetFillCalTrkTrackMC.cxx:183
 AliJetFillCalTrkTrackMC.cxx:184
 AliJetFillCalTrkTrackMC.cxx:185
 AliJetFillCalTrkTrackMC.cxx:186
 AliJetFillCalTrkTrackMC.cxx:187
 AliJetFillCalTrkTrackMC.cxx:188
 AliJetFillCalTrkTrackMC.cxx:189
 AliJetFillCalTrkTrackMC.cxx:190
 AliJetFillCalTrkTrackMC.cxx:191
 AliJetFillCalTrkTrackMC.cxx:192
 AliJetFillCalTrkTrackMC.cxx:193
 AliJetFillCalTrkTrackMC.cxx:194
 AliJetFillCalTrkTrackMC.cxx:195
 AliJetFillCalTrkTrackMC.cxx:196
 AliJetFillCalTrkTrackMC.cxx:197
 AliJetFillCalTrkTrackMC.cxx:198
 AliJetFillCalTrkTrackMC.cxx:199
 AliJetFillCalTrkTrackMC.cxx:200
 AliJetFillCalTrkTrackMC.cxx:201
 AliJetFillCalTrkTrackMC.cxx:202
 AliJetFillCalTrkTrackMC.cxx:203
 AliJetFillCalTrkTrackMC.cxx:204
 AliJetFillCalTrkTrackMC.cxx:205
 AliJetFillCalTrkTrackMC.cxx:206
 AliJetFillCalTrkTrackMC.cxx:207
 AliJetFillCalTrkTrackMC.cxx:208
 AliJetFillCalTrkTrackMC.cxx:209
 AliJetFillCalTrkTrackMC.cxx:210
 AliJetFillCalTrkTrackMC.cxx:211
 AliJetFillCalTrkTrackMC.cxx:212
 AliJetFillCalTrkTrackMC.cxx:213
 AliJetFillCalTrkTrackMC.cxx:214
 AliJetFillCalTrkTrackMC.cxx:215
 AliJetFillCalTrkTrackMC.cxx:216
 AliJetFillCalTrkTrackMC.cxx:217
 AliJetFillCalTrkTrackMC.cxx:218
 AliJetFillCalTrkTrackMC.cxx:219
 AliJetFillCalTrkTrackMC.cxx:220
 AliJetFillCalTrkTrackMC.cxx:221
 AliJetFillCalTrkTrackMC.cxx:222
 AliJetFillCalTrkTrackMC.cxx:223
 AliJetFillCalTrkTrackMC.cxx:224
 AliJetFillCalTrkTrackMC.cxx:225
 AliJetFillCalTrkTrackMC.cxx:226
 AliJetFillCalTrkTrackMC.cxx:227
 AliJetFillCalTrkTrackMC.cxx:228
 AliJetFillCalTrkTrackMC.cxx:229
 AliJetFillCalTrkTrackMC.cxx:230
 AliJetFillCalTrkTrackMC.cxx:231
 AliJetFillCalTrkTrackMC.cxx:232
 AliJetFillCalTrkTrackMC.cxx:233
 AliJetFillCalTrkTrackMC.cxx:234
 AliJetFillCalTrkTrackMC.cxx:235
 AliJetFillCalTrkTrackMC.cxx:236
 AliJetFillCalTrkTrackMC.cxx:237
 AliJetFillCalTrkTrackMC.cxx:238
 AliJetFillCalTrkTrackMC.cxx:239
 AliJetFillCalTrkTrackMC.cxx:240
 AliJetFillCalTrkTrackMC.cxx:241
 AliJetFillCalTrkTrackMC.cxx:242
 AliJetFillCalTrkTrackMC.cxx:243
 AliJetFillCalTrkTrackMC.cxx:244
 AliJetFillCalTrkTrackMC.cxx:245
 AliJetFillCalTrkTrackMC.cxx:246
 AliJetFillCalTrkTrackMC.cxx:247
 AliJetFillCalTrkTrackMC.cxx:248
 AliJetFillCalTrkTrackMC.cxx:249
 AliJetFillCalTrkTrackMC.cxx:250
 AliJetFillCalTrkTrackMC.cxx:251
 AliJetFillCalTrkTrackMC.cxx:252
 AliJetFillCalTrkTrackMC.cxx:253
 AliJetFillCalTrkTrackMC.cxx:254
 AliJetFillCalTrkTrackMC.cxx:255
 AliJetFillCalTrkTrackMC.cxx:256
 AliJetFillCalTrkTrackMC.cxx:257
 AliJetFillCalTrkTrackMC.cxx:258
 AliJetFillCalTrkTrackMC.cxx:259
 AliJetFillCalTrkTrackMC.cxx:260
 AliJetFillCalTrkTrackMC.cxx:261
 AliJetFillCalTrkTrackMC.cxx:262
 AliJetFillCalTrkTrackMC.cxx:263
 AliJetFillCalTrkTrackMC.cxx:264
 AliJetFillCalTrkTrackMC.cxx:265
 AliJetFillCalTrkTrackMC.cxx:266
 AliJetFillCalTrkTrackMC.cxx:267
 AliJetFillCalTrkTrackMC.cxx:268
 AliJetFillCalTrkTrackMC.cxx:269
 AliJetFillCalTrkTrackMC.cxx:270
 AliJetFillCalTrkTrackMC.cxx:271
 AliJetFillCalTrkTrackMC.cxx:272
 AliJetFillCalTrkTrackMC.cxx:273
 AliJetFillCalTrkTrackMC.cxx:274
 AliJetFillCalTrkTrackMC.cxx:275
 AliJetFillCalTrkTrackMC.cxx:276
 AliJetFillCalTrkTrackMC.cxx:277
 AliJetFillCalTrkTrackMC.cxx:278
 AliJetFillCalTrkTrackMC.cxx:279
 AliJetFillCalTrkTrackMC.cxx:280
 AliJetFillCalTrkTrackMC.cxx:281
 AliJetFillCalTrkTrackMC.cxx:282
 AliJetFillCalTrkTrackMC.cxx:283
 AliJetFillCalTrkTrackMC.cxx:284
 AliJetFillCalTrkTrackMC.cxx:285
 AliJetFillCalTrkTrackMC.cxx:286
 AliJetFillCalTrkTrackMC.cxx:287
 AliJetFillCalTrkTrackMC.cxx:288
 AliJetFillCalTrkTrackMC.cxx:289
 AliJetFillCalTrkTrackMC.cxx:290
 AliJetFillCalTrkTrackMC.cxx:291
 AliJetFillCalTrkTrackMC.cxx:292
 AliJetFillCalTrkTrackMC.cxx:293
 AliJetFillCalTrkTrackMC.cxx:294
 AliJetFillCalTrkTrackMC.cxx:295
 AliJetFillCalTrkTrackMC.cxx:296
 AliJetFillCalTrkTrackMC.cxx:297
 AliJetFillCalTrkTrackMC.cxx:298
 AliJetFillCalTrkTrackMC.cxx:299
 AliJetFillCalTrkTrackMC.cxx:300
 AliJetFillCalTrkTrackMC.cxx:301
 AliJetFillCalTrkTrackMC.cxx:302
 AliJetFillCalTrkTrackMC.cxx:303
 AliJetFillCalTrkTrackMC.cxx:304
 AliJetFillCalTrkTrackMC.cxx:305
 AliJetFillCalTrkTrackMC.cxx:306
 AliJetFillCalTrkTrackMC.cxx:307
 AliJetFillCalTrkTrackMC.cxx:308
 AliJetFillCalTrkTrackMC.cxx:309
 AliJetFillCalTrkTrackMC.cxx:310
 AliJetFillCalTrkTrackMC.cxx:311
 AliJetFillCalTrkTrackMC.cxx:312
 AliJetFillCalTrkTrackMC.cxx:313
 AliJetFillCalTrkTrackMC.cxx:314
 AliJetFillCalTrkTrackMC.cxx:315
 AliJetFillCalTrkTrackMC.cxx:316
 AliJetFillCalTrkTrackMC.cxx:317
 AliJetFillCalTrkTrackMC.cxx:318
 AliJetFillCalTrkTrackMC.cxx:319
 AliJetFillCalTrkTrackMC.cxx:320
 AliJetFillCalTrkTrackMC.cxx:321
 AliJetFillCalTrkTrackMC.cxx:322
 AliJetFillCalTrkTrackMC.cxx:323
 AliJetFillCalTrkTrackMC.cxx:324