#include "AliFMDMCTrackELoss.h"
#include "AliESDFMD.h"
#include "AliTrackReference.h"
#include <TMath.h>
#include "AliFMDStripIndex.h"
#include "AliFMDEncodedEdx.h"
#include "AliLog.h"
#include "AliMCParticle.h"
#include <TH2D.h>
#include <TH1D.h>
#include <TList.h>
#include <TROOT.h>
#include <TTree.h>
#include <TLorentzVector.h>
#include <TParticle.h>
#include <TClonesArray.h>
#include <iostream>
void
AliFMDMCTrackELoss::State::Clear(Bool_t alsoCount)
{
angle = 0;
oldDetector = 0;
oldRing = '\0';
oldSector = 1024;
oldStrip = 1024;
startStrip = 1024;
nRefs = 0;
nStrips = 0;
longest = 0x0;
de = 0;
dx = 0;
if (alsoCount) count = 0;
}
AliFMDMCTrackELoss::State&
AliFMDMCTrackELoss::State::operator=(const State& o)
{
if (&o == this) return *this;
angle = o.angle;
oldDetector = o.oldDetector;
oldRing = o.oldRing;
oldSector = o.oldSector;
oldStrip = o.oldStrip;
startStrip = o.startStrip;
nRefs = o.nRefs;
nStrips = o.nStrips;
count = o.count;
longest = o.longest;
de = o.de;
dx = o.dx;
return *this;
}
AliFMDMCTrackELoss::Hit::Hit()
: fGamma(0), fBeta(0), fEta(0), fDe(0), fDx(0), fDetId(0), fPdg(0),
fPrimary(true), fDetector(0), fRing('\0'),
fSector(0xFFFF), fStrip(0xFFFF)
{}
void
AliFMDMCTrackELoss::Hit::Decode() const
{
if (fDetector > 0) return;
AliFMDStripIndex::Unpack(fDetId, fDetector, fRing, fSector, fStrip);
}
UInt_t
AliFMDMCTrackELoss::Hit::AbsPdg() const
{
return TMath::Abs(fPdg);
}
AliFMDMCTrackELoss::AliFMDMCTrackELoss()
: AliBaseMCTrackDensity(),
fState(),
fEvent(),
fMaxConsequtiveStrips(3),
fUseTree(false),
fHits(0),
fTree(0),
fNr(0),
fNt(0),
fNc(0),
fNcr(0),
fBetaGammadEdx(0),
fBetaGammaEta(0),
fDEdxEta(0),
fPrimaries(0),
fSecondaries(0),
fAll(0),
fEta(0)
{
}
AliFMDMCTrackELoss::AliFMDMCTrackELoss(const char*)
: AliBaseMCTrackDensity("fmdMCTrackELoss"),
fState(),
fEvent(),
fMaxConsequtiveStrips(3),
fUseTree(false),
fHits(0),
fTree(0),
fNr(0),
fNt(0),
fNc(0),
fNcr(0),
fBetaGammadEdx(0),
fBetaGammaEta(0),
fDEdxEta(0),
fPrimaries(0),
fSecondaries(0),
fAll(0),
fEta(0)
{
SetTitle("mcTrackELoss");
fHits = new TClonesArray("AliFMDMCTrackELoss::Hit");
}
#if 0
AliFMDMCTrackELoss::AliFMDMCTrackELoss(const AliFMDMCTrackELoss& o)
: AliBaseMCTrackDensity(o),
fState(o.fState),
fMaxConsequtiveStrips(o.fMaxConsequtiveStrips),
fNr(o.fNr),
fNt(o.fNt),
fNc(o.fNc),
fNcr(o.fNcr),
fOutput(o.fOutput)
{
}
AliFMDMCTrackELoss&
AliFMDMCTrackELoss::operator=(const AliFMDMCTrackELoss& o)
{
if (&o == this) return *this;
AliBaseMCTrackDensity::operator=(o);
fMaxConsequtiveStrips = o.fMaxConsequtiveStrips;
fUseTree = o.fUseTree;
fNr = o.fNr;
fNt = o.fNt;
fNc = o.fNc;
fNcr = o.fNcr;
fState = o.fState;
if (o.fTree)
fTree = static_cast<TTree*>(o.fTree->Clone());
return *this;
}
#endif
void
AliFMDMCTrackELoss::CreateOutputObjects(TList* l)
{
AliBaseMCTrackDensity::CreateOutputObjects(l);
TList* ll = static_cast<TList*>(l->FindObject(GetTitle()));
if (!ll) ll = l;
fNr = new TH1D("clusterRefs", "# track references per cluster",
21, -.5, 20.5);
fNr->SetXTitle("# of track references/cluster");
fNr->SetFillColor(kRed+1);
fNr->SetFillStyle(3001);
fNr->SetDirectory(0);
ll->Add(fNr);
fNt = new TH1D("clusterSize", "cluster length in strips", 21, -.5, 20.5);
fNt->SetXTitle("Cluster size [strips]");
fNt->SetFillColor(kBlue+1);
fNt->SetFillStyle(3001);
fNt->SetDirectory(0);
ll->Add(fNt);
fNc = new TH1D("nClusters", "# clusters per track", 21, -.5, 20.5);
fNc->SetXTitle("# clusters");
fNc->SetFillColor(kGreen+1);
fNc->SetFillStyle(3001);
fNc->SetDirectory(0);
ll->Add(fNc);
fNcr = new TH2D("clusterVsRefs", "# clusters vs. # refs",
21, -.5, 20.5, 21, -.5, 20.5);
fNcr->SetXTitle("# References");
fNcr->SetYTitle("# Clusters");
fNcr->SetOption("COLZ");
fNcr->SetDirectory(0);
ll->Add(fNcr);
TArrayD edepArray;
TArrayD bgArray(601);
AliFMDEncodedEdx::GetdEAxis().FillBinArray(edepArray);
AliForwardUtil::MakeLogScale(600, -2, 5, bgArray);
for (Int_t i = 0; i < edepArray.GetSize(); i++)
edepArray[i] *= 10;
fBetaGammadEdx = new TH2D("betaGammadEdx", "Energy loss",
bgArray.GetSize()-1, bgArray.GetArray(),
edepArray.GetSize()-1, edepArray.GetArray());
fBetaGammadEdx->SetDirectory(0);
fBetaGammadEdx->SetXTitle("#it{#beta#gamma}");
fBetaGammadEdx->SetYTitle("d#it{#Delta}/d#it{x}");
fBetaGammadEdx->Sumw2();
ll->Add(fBetaGammadEdx);
fBetaGammaEta = new TH2D("betaGammaEta", "#beta#gamma",
200, -4, 6, bgArray.GetSize()-1, bgArray.GetArray());
fBetaGammaEta->SetXTitle("#eta");
fBetaGammaEta->SetYTitle("#it{#beta#gamma}");
fBetaGammaEta->Sumw2();
ll->Add(fBetaGammaEta);
fDEdxEta = new TH2D("dEdxEta", "d#it{#Delta}/d#it{x}",
200, -4, 6, edepArray.GetSize()-1, edepArray.GetArray());
fDEdxEta->SetXTitle("#eta");
fDEdxEta->SetYTitle("d#it{#Delta}/d#it{x}");
fDEdxEta->Sumw2();
ll->Add(fDEdxEta);
if (!fUseTree) return;
fTree = new TTree("tree", "Tree of hits");
fTree->Branch("event", &fEvent, "ipZ/D:cent");
fTree->Branch("hits", &fHits);
}
void
AliFMDMCTrackELoss::Clear(Option_t*)
{
fPrimaries.Reset(0);
fSecondaries.Reset(0);
fAll.Reset(0);
fEta.Reset(AliESDFMD::kInvalidEta);
fHits->Clear();
}
Int_t
AliFMDMCTrackELoss::GetDetectorId() const
{
return AliTrackReference::kFMD;
}
void
AliFMDMCTrackELoss::BeginTrackRefs()
{
fState.Clear(true);
}
void
AliFMDMCTrackELoss::EndTrackRefs(Int_t nRefs)
{
fNc->Fill(fState.count);
fNcr->Fill(nRefs, fState.count);
fState.Clear(true);
}
AliTrackReference*
AliFMDMCTrackELoss::ProcessRef(AliMCParticle* particle,
const AliMCParticle* mother,
AliTrackReference* ref)
{
UShort_t d, s, t;
Char_t r;
AliFMDStripIndex::Unpack(ref->UserId(), d, r, s, t);
Double_t edep, length, dEdep, dLength;
AliFMDEncodedEdx::Decode((ref->UserId() >> 19), edep, length, dEdep, dLength);
UShort_t nT = TMath::Abs(t - fState.startStrip) + 1;
Bool_t used = false;
if (fState.oldDetector > 0 &&
fState.oldRing != '\0' &&
fState.oldSector != 1024) {
if (d != fState.oldDetector ||
r != fState.oldRing ||
s != fState.oldSector) {
if (fDebug) Info("Process", "New because new sector");
used = true;
}
else if (nT > fMaxConsequtiveStrips) {
if (fDebug) Info("Process", "New because too long: %d (%d,%d,%d)",
fState.nStrips, t, fState.oldStrip, fState.startStrip);
used = true;
}
}
if (used) {
if (fDebug)
Info("Process", "I=%p L=%p D=%d (was %d), R=%c (was %c), "
"S=%2d (was %2d) t=%3d (was %3d) nT=%3d/%4d",
ref, fState.longest,
d, fState.oldDetector,
r, fState.oldRing,
s, fState.oldSector,
t, fState.oldStrip,
fState.nStrips, fMaxConsequtiveStrips);
StoreParticle(particle, mother, fState.longest);
fState.Clear(false);
}
if (fState.startStrip == 1024) fState.startStrip = t;
fState.nStrips = TMath::Abs(t - fState.startStrip) + 1;
fState.nRefs++;
fState.oldDetector = d;
fState.oldRing = r;
fState.oldSector = s;
fState.oldStrip = t;
fState.de += edep;
fState.dx += length;
if (fDebug) {
if (t == fState.startStrip)
Info("Process", "New cluster starting at FMD%d%c[%2d,%3d]",
d, r, s, t);
else
Info("Process", "Adding to cluster starting at FMD%d%c[%2d,%3d], "
"length=%3d (now in %3d, previous %3d)",
d, r, s, fState.startStrip, fState.nStrips, t, fState.oldStrip);
}
Double_t ang = GetTrackRefTheta(ref);
if (ang > fState.angle) {
fState.longest = ref;
fState.angle = ang;
}
return fState.longest;
}
Double_t
AliFMDMCTrackELoss::StoreParticle(AliMCParticle* particle,
const AliMCParticle* mother,
AliTrackReference* ref) const
{
Double_t w =
AliBaseMCTrackDensity::StoreParticle(particle, mother, ref);
if (w <= 0) return w;
UShort_t d, s, t;
Char_t r;
AliFMDStripIndex::Unpack(ref->UserId(), d, r, s, t);
Double_t de = fState.de;
Double_t dx = fState.dx;
Bool_t prim = particle == mother;
fAll(d,r,s,t) += de;
if (prim) fPrimaries(d,r,s,t) += de;
else fSecondaries(d,r,s,t) += de;
fNr->Fill(fState.nRefs);
fNt->Fill(fState.nStrips);
fState.count++;
if (de <= 0 || dx <= 0) return w;
TLorentzVector v;
particle->Particle()->Momentum(v);
if (v.E() <= 0) return w;
if (v.Beta() < 0 || v.Beta() > 1) return w;
Double_t eta = fEta(d,r,s,t);
Double_t beta = v.Beta();
Double_t gamma = v.Gamma();
Double_t dEdx = de/dx;
fBetaGammadEdx->Fill(beta*gamma, dEdx);
fBetaGammaEta->Fill(eta, beta*gamma);
fDEdxEta->Fill(eta, dEdx);
Int_t nHits = fHits->GetEntries();
Hit* hit = new((*fHits)[nHits]) Hit;
hit->fPrimary = prim;
hit->fEta = eta;
hit->fDe = de;
hit->fDx = dx;
hit->fDetId = ref->UserId() & AliFMDStripIndex::kIdMask;
hit->fBeta = beta;
hit->fGamma = gamma;
hit->fPdg = particle->PdgCode();
return w;
}
Bool_t
AliFMDMCTrackELoss::Calculate(const AliESDFMD& input,
const AliMCEvent& event,
Double_t vz,
Double_t cent)
{
Clear();
fEvent.fCent = cent;
fEvent.fIpZ = vz;
for (UShort_t ed = 1; ed <= 3; ed++) {
UShort_t nq = (ed == 1 ? 1 : 2);
for (UShort_t eq = 0; eq < nq; eq++) {
Char_t er = (eq == 0 ? 'I' : 'O');
UShort_t ns = (eq == 0 ? 20 : 40);
UShort_t nt = (eq == 0 ? 512 : 256);
for (UShort_t es = 0; es < ns; es++)
for (UShort_t et = 0; et < nt; et++)
fEta(ed, er, es, et) = input.Eta(ed, er, es, et);
}
}
Bool_t ret = ProcessTracks(event, vz, 0);
if (fTree) fTree->Fill();
return ret;
}
#define PFV(N,VALUE) \
do { \
AliForwardUtil::PrintName(N); \
std::cout << (VALUE) << std::endl; } while(false)
void
AliFMDMCTrackELoss::Print(Option_t* option) const
{
AliBaseMCTrackDensity::Print(option);
gROOT->IncreaseDirLevel();
PFV("Max cluster size", fMaxConsequtiveStrips);
gROOT->DecreaseDirLevel();
}
AliFMDMCTrackELoss.cxx:10 AliFMDMCTrackELoss.cxx:11 AliFMDMCTrackELoss.cxx:12 AliFMDMCTrackELoss.cxx:13 AliFMDMCTrackELoss.cxx:14 AliFMDMCTrackELoss.cxx:15 AliFMDMCTrackELoss.cxx:16 AliFMDMCTrackELoss.cxx:17 AliFMDMCTrackELoss.cxx:18 AliFMDMCTrackELoss.cxx:19 AliFMDMCTrackELoss.cxx:20 AliFMDMCTrackELoss.cxx:21 AliFMDMCTrackELoss.cxx:22 AliFMDMCTrackELoss.cxx:23 AliFMDMCTrackELoss.cxx:24 AliFMDMCTrackELoss.cxx:25 AliFMDMCTrackELoss.cxx:26 AliFMDMCTrackELoss.cxx:27 AliFMDMCTrackELoss.cxx:28 AliFMDMCTrackELoss.cxx:29 AliFMDMCTrackELoss.cxx:30 AliFMDMCTrackELoss.cxx:31 AliFMDMCTrackELoss.cxx:32 AliFMDMCTrackELoss.cxx:33 AliFMDMCTrackELoss.cxx:34 AliFMDMCTrackELoss.cxx:35 AliFMDMCTrackELoss.cxx:36 AliFMDMCTrackELoss.cxx:37 AliFMDMCTrackELoss.cxx:38 AliFMDMCTrackELoss.cxx:39 AliFMDMCTrackELoss.cxx:40 AliFMDMCTrackELoss.cxx:41 AliFMDMCTrackELoss.cxx:42 AliFMDMCTrackELoss.cxx:43 AliFMDMCTrackELoss.cxx:44 AliFMDMCTrackELoss.cxx:45 AliFMDMCTrackELoss.cxx:46 AliFMDMCTrackELoss.cxx:47 AliFMDMCTrackELoss.cxx:48 AliFMDMCTrackELoss.cxx:49 AliFMDMCTrackELoss.cxx:50 AliFMDMCTrackELoss.cxx:51 AliFMDMCTrackELoss.cxx:52 AliFMDMCTrackELoss.cxx:53 AliFMDMCTrackELoss.cxx:54 AliFMDMCTrackELoss.cxx:55 AliFMDMCTrackELoss.cxx:56 AliFMDMCTrackELoss.cxx:57 AliFMDMCTrackELoss.cxx:58 AliFMDMCTrackELoss.cxx:59 AliFMDMCTrackELoss.cxx:60 AliFMDMCTrackELoss.cxx:61 AliFMDMCTrackELoss.cxx:62 AliFMDMCTrackELoss.cxx:63 AliFMDMCTrackELoss.cxx:64 AliFMDMCTrackELoss.cxx:65 AliFMDMCTrackELoss.cxx:66 AliFMDMCTrackELoss.cxx:67 AliFMDMCTrackELoss.cxx:68 AliFMDMCTrackELoss.cxx:69 AliFMDMCTrackELoss.cxx:70 AliFMDMCTrackELoss.cxx:71 AliFMDMCTrackELoss.cxx:72 AliFMDMCTrackELoss.cxx:73 AliFMDMCTrackELoss.cxx:74 AliFMDMCTrackELoss.cxx:75 AliFMDMCTrackELoss.cxx:76 AliFMDMCTrackELoss.cxx:77 AliFMDMCTrackELoss.cxx:78 AliFMDMCTrackELoss.cxx:79 AliFMDMCTrackELoss.cxx:80 AliFMDMCTrackELoss.cxx:81 AliFMDMCTrackELoss.cxx:82 AliFMDMCTrackELoss.cxx:83 AliFMDMCTrackELoss.cxx:84 AliFMDMCTrackELoss.cxx:85 AliFMDMCTrackELoss.cxx:86 AliFMDMCTrackELoss.cxx:87 AliFMDMCTrackELoss.cxx:88 AliFMDMCTrackELoss.cxx:89 AliFMDMCTrackELoss.cxx:90 AliFMDMCTrackELoss.cxx:91 AliFMDMCTrackELoss.cxx:92 AliFMDMCTrackELoss.cxx:93 AliFMDMCTrackELoss.cxx:94 AliFMDMCTrackELoss.cxx:95 AliFMDMCTrackELoss.cxx:96 AliFMDMCTrackELoss.cxx:97 AliFMDMCTrackELoss.cxx:98 AliFMDMCTrackELoss.cxx:99 AliFMDMCTrackELoss.cxx:100 AliFMDMCTrackELoss.cxx:101 AliFMDMCTrackELoss.cxx:102 AliFMDMCTrackELoss.cxx:103 AliFMDMCTrackELoss.cxx:104 AliFMDMCTrackELoss.cxx:105 AliFMDMCTrackELoss.cxx:106 AliFMDMCTrackELoss.cxx:107 AliFMDMCTrackELoss.cxx:108 AliFMDMCTrackELoss.cxx:109 AliFMDMCTrackELoss.cxx:110 AliFMDMCTrackELoss.cxx:111 AliFMDMCTrackELoss.cxx:112 AliFMDMCTrackELoss.cxx:113 AliFMDMCTrackELoss.cxx:114 AliFMDMCTrackELoss.cxx:115 AliFMDMCTrackELoss.cxx:116 AliFMDMCTrackELoss.cxx:117 AliFMDMCTrackELoss.cxx:118 AliFMDMCTrackELoss.cxx:119 AliFMDMCTrackELoss.cxx:120 AliFMDMCTrackELoss.cxx:121 AliFMDMCTrackELoss.cxx:122 AliFMDMCTrackELoss.cxx:123 AliFMDMCTrackELoss.cxx:124 AliFMDMCTrackELoss.cxx:125 AliFMDMCTrackELoss.cxx:126 AliFMDMCTrackELoss.cxx:127 AliFMDMCTrackELoss.cxx:128 AliFMDMCTrackELoss.cxx:129 AliFMDMCTrackELoss.cxx:130 AliFMDMCTrackELoss.cxx:131 AliFMDMCTrackELoss.cxx:132 AliFMDMCTrackELoss.cxx:133 AliFMDMCTrackELoss.cxx:134 AliFMDMCTrackELoss.cxx:135 AliFMDMCTrackELoss.cxx:136 AliFMDMCTrackELoss.cxx:137 AliFMDMCTrackELoss.cxx:138 AliFMDMCTrackELoss.cxx:139 AliFMDMCTrackELoss.cxx:140 AliFMDMCTrackELoss.cxx:141 AliFMDMCTrackELoss.cxx:142 AliFMDMCTrackELoss.cxx:143 AliFMDMCTrackELoss.cxx:144 AliFMDMCTrackELoss.cxx:145 AliFMDMCTrackELoss.cxx:146 AliFMDMCTrackELoss.cxx:147 AliFMDMCTrackELoss.cxx:148 AliFMDMCTrackELoss.cxx:149 AliFMDMCTrackELoss.cxx:150 AliFMDMCTrackELoss.cxx:151 AliFMDMCTrackELoss.cxx:152 AliFMDMCTrackELoss.cxx:153 AliFMDMCTrackELoss.cxx:154 AliFMDMCTrackELoss.cxx:155 AliFMDMCTrackELoss.cxx:156 AliFMDMCTrackELoss.cxx:157 AliFMDMCTrackELoss.cxx:158 AliFMDMCTrackELoss.cxx:159 AliFMDMCTrackELoss.cxx:160 AliFMDMCTrackELoss.cxx:161 AliFMDMCTrackELoss.cxx:162 AliFMDMCTrackELoss.cxx:163 AliFMDMCTrackELoss.cxx:164 AliFMDMCTrackELoss.cxx:165 AliFMDMCTrackELoss.cxx:166 AliFMDMCTrackELoss.cxx:167 AliFMDMCTrackELoss.cxx:168 AliFMDMCTrackELoss.cxx:169 AliFMDMCTrackELoss.cxx:170 AliFMDMCTrackELoss.cxx:171 AliFMDMCTrackELoss.cxx:172 AliFMDMCTrackELoss.cxx:173 AliFMDMCTrackELoss.cxx:174 AliFMDMCTrackELoss.cxx:175 AliFMDMCTrackELoss.cxx:176 AliFMDMCTrackELoss.cxx:177 AliFMDMCTrackELoss.cxx:178 AliFMDMCTrackELoss.cxx:179 AliFMDMCTrackELoss.cxx:180 AliFMDMCTrackELoss.cxx:181 AliFMDMCTrackELoss.cxx:182 AliFMDMCTrackELoss.cxx:183 AliFMDMCTrackELoss.cxx:184 AliFMDMCTrackELoss.cxx:185 AliFMDMCTrackELoss.cxx:186 AliFMDMCTrackELoss.cxx:187 AliFMDMCTrackELoss.cxx:188 AliFMDMCTrackELoss.cxx:189 AliFMDMCTrackELoss.cxx:190 AliFMDMCTrackELoss.cxx:191 AliFMDMCTrackELoss.cxx:192 AliFMDMCTrackELoss.cxx:193 AliFMDMCTrackELoss.cxx:194 AliFMDMCTrackELoss.cxx:195 AliFMDMCTrackELoss.cxx:196 AliFMDMCTrackELoss.cxx:197 AliFMDMCTrackELoss.cxx:198 AliFMDMCTrackELoss.cxx:199 AliFMDMCTrackELoss.cxx:200 AliFMDMCTrackELoss.cxx:201 AliFMDMCTrackELoss.cxx:202 AliFMDMCTrackELoss.cxx:203 AliFMDMCTrackELoss.cxx:204 AliFMDMCTrackELoss.cxx:205 AliFMDMCTrackELoss.cxx:206 AliFMDMCTrackELoss.cxx:207 AliFMDMCTrackELoss.cxx:208 AliFMDMCTrackELoss.cxx:209 AliFMDMCTrackELoss.cxx:210 AliFMDMCTrackELoss.cxx:211 AliFMDMCTrackELoss.cxx:212 AliFMDMCTrackELoss.cxx:213 AliFMDMCTrackELoss.cxx:214 AliFMDMCTrackELoss.cxx:215 AliFMDMCTrackELoss.cxx:216 AliFMDMCTrackELoss.cxx:217 AliFMDMCTrackELoss.cxx:218 AliFMDMCTrackELoss.cxx:219 AliFMDMCTrackELoss.cxx:220 AliFMDMCTrackELoss.cxx:221 AliFMDMCTrackELoss.cxx:222 AliFMDMCTrackELoss.cxx:223 AliFMDMCTrackELoss.cxx:224 AliFMDMCTrackELoss.cxx:225 AliFMDMCTrackELoss.cxx:226 AliFMDMCTrackELoss.cxx:227 AliFMDMCTrackELoss.cxx:228 AliFMDMCTrackELoss.cxx:229 AliFMDMCTrackELoss.cxx:230 AliFMDMCTrackELoss.cxx:231 AliFMDMCTrackELoss.cxx:232 AliFMDMCTrackELoss.cxx:233 AliFMDMCTrackELoss.cxx:234 AliFMDMCTrackELoss.cxx:235 AliFMDMCTrackELoss.cxx:236 AliFMDMCTrackELoss.cxx:237 AliFMDMCTrackELoss.cxx:238 AliFMDMCTrackELoss.cxx:239 AliFMDMCTrackELoss.cxx:240 AliFMDMCTrackELoss.cxx:241 AliFMDMCTrackELoss.cxx:242 AliFMDMCTrackELoss.cxx:243 AliFMDMCTrackELoss.cxx:244 AliFMDMCTrackELoss.cxx:245 AliFMDMCTrackELoss.cxx:246 AliFMDMCTrackELoss.cxx:247 AliFMDMCTrackELoss.cxx:248 AliFMDMCTrackELoss.cxx:249 AliFMDMCTrackELoss.cxx:250 AliFMDMCTrackELoss.cxx:251 AliFMDMCTrackELoss.cxx:252 AliFMDMCTrackELoss.cxx:253 AliFMDMCTrackELoss.cxx:254 AliFMDMCTrackELoss.cxx:255 AliFMDMCTrackELoss.cxx:256 AliFMDMCTrackELoss.cxx:257 AliFMDMCTrackELoss.cxx:258 AliFMDMCTrackELoss.cxx:259 AliFMDMCTrackELoss.cxx:260 AliFMDMCTrackELoss.cxx:261 AliFMDMCTrackELoss.cxx:262 AliFMDMCTrackELoss.cxx:263 AliFMDMCTrackELoss.cxx:264 AliFMDMCTrackELoss.cxx:265 AliFMDMCTrackELoss.cxx:266 AliFMDMCTrackELoss.cxx:267 AliFMDMCTrackELoss.cxx:268 AliFMDMCTrackELoss.cxx:269 AliFMDMCTrackELoss.cxx:270 AliFMDMCTrackELoss.cxx:271 AliFMDMCTrackELoss.cxx:272 AliFMDMCTrackELoss.cxx:273 AliFMDMCTrackELoss.cxx:274 AliFMDMCTrackELoss.cxx:275 AliFMDMCTrackELoss.cxx:276 AliFMDMCTrackELoss.cxx:277 AliFMDMCTrackELoss.cxx:278 AliFMDMCTrackELoss.cxx:279 AliFMDMCTrackELoss.cxx:280 AliFMDMCTrackELoss.cxx:281 AliFMDMCTrackELoss.cxx:282 AliFMDMCTrackELoss.cxx:283 AliFMDMCTrackELoss.cxx:284 AliFMDMCTrackELoss.cxx:285 AliFMDMCTrackELoss.cxx:286 AliFMDMCTrackELoss.cxx:287 AliFMDMCTrackELoss.cxx:288 AliFMDMCTrackELoss.cxx:289 AliFMDMCTrackELoss.cxx:290 AliFMDMCTrackELoss.cxx:291 AliFMDMCTrackELoss.cxx:292 AliFMDMCTrackELoss.cxx:293 AliFMDMCTrackELoss.cxx:294 AliFMDMCTrackELoss.cxx:295 AliFMDMCTrackELoss.cxx:296 AliFMDMCTrackELoss.cxx:297 AliFMDMCTrackELoss.cxx:298 AliFMDMCTrackELoss.cxx:299 AliFMDMCTrackELoss.cxx:300 AliFMDMCTrackELoss.cxx:301 AliFMDMCTrackELoss.cxx:302 AliFMDMCTrackELoss.cxx:303 AliFMDMCTrackELoss.cxx:304 AliFMDMCTrackELoss.cxx:305 AliFMDMCTrackELoss.cxx:306 AliFMDMCTrackELoss.cxx:307 AliFMDMCTrackELoss.cxx:308 AliFMDMCTrackELoss.cxx:309 AliFMDMCTrackELoss.cxx:310 AliFMDMCTrackELoss.cxx:311 AliFMDMCTrackELoss.cxx:312 AliFMDMCTrackELoss.cxx:313 AliFMDMCTrackELoss.cxx:314 AliFMDMCTrackELoss.cxx:315 AliFMDMCTrackELoss.cxx:316 AliFMDMCTrackELoss.cxx:317 AliFMDMCTrackELoss.cxx:318 AliFMDMCTrackELoss.cxx:319 AliFMDMCTrackELoss.cxx:320 AliFMDMCTrackELoss.cxx:321 AliFMDMCTrackELoss.cxx:322 AliFMDMCTrackELoss.cxx:323 AliFMDMCTrackELoss.cxx:324 AliFMDMCTrackELoss.cxx:325 AliFMDMCTrackELoss.cxx:326 AliFMDMCTrackELoss.cxx:327 AliFMDMCTrackELoss.cxx:328 AliFMDMCTrackELoss.cxx:329 AliFMDMCTrackELoss.cxx:330 AliFMDMCTrackELoss.cxx:331 AliFMDMCTrackELoss.cxx:332 AliFMDMCTrackELoss.cxx:333 AliFMDMCTrackELoss.cxx:334 AliFMDMCTrackELoss.cxx:335 AliFMDMCTrackELoss.cxx:336 AliFMDMCTrackELoss.cxx:337 AliFMDMCTrackELoss.cxx:338 AliFMDMCTrackELoss.cxx:339 AliFMDMCTrackELoss.cxx:340 AliFMDMCTrackELoss.cxx:341 AliFMDMCTrackELoss.cxx:342 AliFMDMCTrackELoss.cxx:343 AliFMDMCTrackELoss.cxx:344 AliFMDMCTrackELoss.cxx:345 AliFMDMCTrackELoss.cxx:346 AliFMDMCTrackELoss.cxx:347 AliFMDMCTrackELoss.cxx:348 AliFMDMCTrackELoss.cxx:349 AliFMDMCTrackELoss.cxx:350 AliFMDMCTrackELoss.cxx:351 AliFMDMCTrackELoss.cxx:352 AliFMDMCTrackELoss.cxx:353 AliFMDMCTrackELoss.cxx:354 AliFMDMCTrackELoss.cxx:355 AliFMDMCTrackELoss.cxx:356 AliFMDMCTrackELoss.cxx:357 AliFMDMCTrackELoss.cxx:358 AliFMDMCTrackELoss.cxx:359 AliFMDMCTrackELoss.cxx:360 AliFMDMCTrackELoss.cxx:361 AliFMDMCTrackELoss.cxx:362 AliFMDMCTrackELoss.cxx:363 AliFMDMCTrackELoss.cxx:364 AliFMDMCTrackELoss.cxx:365 AliFMDMCTrackELoss.cxx:366 AliFMDMCTrackELoss.cxx:367 AliFMDMCTrackELoss.cxx:368 AliFMDMCTrackELoss.cxx:369 AliFMDMCTrackELoss.cxx:370 AliFMDMCTrackELoss.cxx:371 AliFMDMCTrackELoss.cxx:372 AliFMDMCTrackELoss.cxx:373 AliFMDMCTrackELoss.cxx:374 AliFMDMCTrackELoss.cxx:375 AliFMDMCTrackELoss.cxx:376 AliFMDMCTrackELoss.cxx:377 AliFMDMCTrackELoss.cxx:378 AliFMDMCTrackELoss.cxx:379 AliFMDMCTrackELoss.cxx:380 AliFMDMCTrackELoss.cxx:381 AliFMDMCTrackELoss.cxx:382 AliFMDMCTrackELoss.cxx:383 AliFMDMCTrackELoss.cxx:384 AliFMDMCTrackELoss.cxx:385 AliFMDMCTrackELoss.cxx:386 AliFMDMCTrackELoss.cxx:387 AliFMDMCTrackELoss.cxx:388 AliFMDMCTrackELoss.cxx:389 AliFMDMCTrackELoss.cxx:390 AliFMDMCTrackELoss.cxx:391 AliFMDMCTrackELoss.cxx:392 AliFMDMCTrackELoss.cxx:393 AliFMDMCTrackELoss.cxx:394 AliFMDMCTrackELoss.cxx:395 AliFMDMCTrackELoss.cxx:396 AliFMDMCTrackELoss.cxx:397 AliFMDMCTrackELoss.cxx:398 AliFMDMCTrackELoss.cxx:399 AliFMDMCTrackELoss.cxx:400 AliFMDMCTrackELoss.cxx:401 AliFMDMCTrackELoss.cxx:402 AliFMDMCTrackELoss.cxx:403 AliFMDMCTrackELoss.cxx:404 AliFMDMCTrackELoss.cxx:405 AliFMDMCTrackELoss.cxx:406 AliFMDMCTrackELoss.cxx:407 AliFMDMCTrackELoss.cxx:408 AliFMDMCTrackELoss.cxx:409 AliFMDMCTrackELoss.cxx:410 AliFMDMCTrackELoss.cxx:411 AliFMDMCTrackELoss.cxx:412 AliFMDMCTrackELoss.cxx:413 AliFMDMCTrackELoss.cxx:414 AliFMDMCTrackELoss.cxx:415 AliFMDMCTrackELoss.cxx:416 AliFMDMCTrackELoss.cxx:417 AliFMDMCTrackELoss.cxx:418 AliFMDMCTrackELoss.cxx:419 AliFMDMCTrackELoss.cxx:420 AliFMDMCTrackELoss.cxx:421 AliFMDMCTrackELoss.cxx:422 AliFMDMCTrackELoss.cxx:423 AliFMDMCTrackELoss.cxx:424 AliFMDMCTrackELoss.cxx:425 AliFMDMCTrackELoss.cxx:426 AliFMDMCTrackELoss.cxx:427 AliFMDMCTrackELoss.cxx:428 AliFMDMCTrackELoss.cxx:429 AliFMDMCTrackELoss.cxx:430 AliFMDMCTrackELoss.cxx:431 AliFMDMCTrackELoss.cxx:432 AliFMDMCTrackELoss.cxx:433 AliFMDMCTrackELoss.cxx:434 AliFMDMCTrackELoss.cxx:435 AliFMDMCTrackELoss.cxx:436 AliFMDMCTrackELoss.cxx:437 AliFMDMCTrackELoss.cxx:438 AliFMDMCTrackELoss.cxx:439 AliFMDMCTrackELoss.cxx:440 AliFMDMCTrackELoss.cxx:441 AliFMDMCTrackELoss.cxx:442 AliFMDMCTrackELoss.cxx:443 AliFMDMCTrackELoss.cxx:444 AliFMDMCTrackELoss.cxx:445 AliFMDMCTrackELoss.cxx:446 AliFMDMCTrackELoss.cxx:447 AliFMDMCTrackELoss.cxx:448 AliFMDMCTrackELoss.cxx:449 AliFMDMCTrackELoss.cxx:450 AliFMDMCTrackELoss.cxx:451 AliFMDMCTrackELoss.cxx:452 AliFMDMCTrackELoss.cxx:453 AliFMDMCTrackELoss.cxx:454 AliFMDMCTrackELoss.cxx:455 AliFMDMCTrackELoss.cxx:456 AliFMDMCTrackELoss.cxx:457 AliFMDMCTrackELoss.cxx:458 AliFMDMCTrackELoss.cxx:459 AliFMDMCTrackELoss.cxx:460 AliFMDMCTrackELoss.cxx:461 AliFMDMCTrackELoss.cxx:462 AliFMDMCTrackELoss.cxx:463 AliFMDMCTrackELoss.cxx:464 AliFMDMCTrackELoss.cxx:465 AliFMDMCTrackELoss.cxx:466 AliFMDMCTrackELoss.cxx:467 AliFMDMCTrackELoss.cxx:468 AliFMDMCTrackELoss.cxx:469 AliFMDMCTrackELoss.cxx:470 AliFMDMCTrackELoss.cxx:471 AliFMDMCTrackELoss.cxx:472 AliFMDMCTrackELoss.cxx:473 AliFMDMCTrackELoss.cxx:474 AliFMDMCTrackELoss.cxx:475 AliFMDMCTrackELoss.cxx:476 AliFMDMCTrackELoss.cxx:477 AliFMDMCTrackELoss.cxx:478 AliFMDMCTrackELoss.cxx:479 AliFMDMCTrackELoss.cxx:480 AliFMDMCTrackELoss.cxx:481 AliFMDMCTrackELoss.cxx:482 AliFMDMCTrackELoss.cxx:483 AliFMDMCTrackELoss.cxx:484 AliFMDMCTrackELoss.cxx:485 AliFMDMCTrackELoss.cxx:486 AliFMDMCTrackELoss.cxx:487