#include "AliFMDDebug.h"
#include "AliFMDGeometry.h"
#include "AliFMDParameters.h"
#include "AliFMDAltroMapping.h"
#include "AliFMDDigit.h"
#include "AliFMDSDigit.h"
#include "AliFMDReconstructor.h"
#include "AliFMDRecoParam.h"
#include "AliFMDRawReader.h"
#include "AliFMDRecPoint.h"
#include "AliESDEvent.h"
#include "AliESDVertex.h"
#include "AliESDTZERO.h"
#include <AliESDFMD.h>
#include <TMath.h>
#include <TH1.h>
#include <TH2.h>
#include <TFile.h>
#include <climits>
#include "AliFMDESDRevertexer.h"
class AliRawReader;
ClassImp(AliFMDReconstructor)
#if 0
;
#endif
AliFMDReconstructor::AliFMDReconstructor()
: AliReconstructor(),
fMult(0x0),
fNMult(0),
fTreeR(0x0),
fCurrentVertex(0),
fESDObj(0x0),
fNoiseFactor(0),
fAngleCorrect(kTRUE),
fVertexType(kNoVertex),
fESD(0x0),
fDiagnostics(kFALSE),
fDiagStep1(0),
fDiagStep2(0),
fDiagStep3(0),
fDiagStep4(0),
fDiagAll(0),
fBad(0),
fZombie(false)
{
SetNoiseFactor();
SetAngleCorrect();
if (AliDebugLevel() > 0) fDiagnostics = kTRUE;
for(Int_t det = 1; det<=3; det++) {
fZS[det-1] = kFALSE;
fZSFactor[det-1] = 0;
}
}
AliFMDReconstructor::~AliFMDReconstructor()
{
if (fMult) fMult->Delete();
if (fMult) delete fMult;
if (fESDObj) delete fESDObj;
}
void
AliFMDReconstructor::Init()
{
AliFMDGeometry* geom = AliFMDGeometry::Instance();
geom->Init();
geom->InitTransformations();
AliFMDParameters* param = AliFMDParameters::Instance();
if (param->Init(true) != 0) {
AliError("Failed to initialize parameters, making zombie");
fZombie = true;
}
else
fZombie = false;
fCurrentVertex = 0;
fESDObj = new AliESDFMD;
if (!fDiagnostics) return;
AliInfo("Making diagnostics histograms");
if (!fDiagStep1) {
fDiagStep1 = new TH2I("diagStep1", "Read ADC vs. Noise surpressed ADC",
1024, -.5, 1023.5, 1024, -.5, 1023.5);
fDiagStep1->SetDirectory(0);
fDiagStep1->GetXaxis()->SetTitle("ADC (read)");
fDiagStep1->GetYaxis()->SetTitle(Form("ADC (noise surpressed %4.f)",
fNoiseFactor));
}
if (!fDiagStep2) {
fDiagStep2 = new TH2F("diagStep2", "ADC vs Edep deduced",
1024, -.5, 1023.5, 100, 0, 2);
fDiagStep2->SetDirectory(0);
fDiagStep2->GetXaxis()->SetTitle("ADC (noise surpressed)");
fDiagStep2->GetYaxis()->SetTitle("#Delta E [GeV]");
}
if (!fDiagStep3) {
fDiagStep3 = new TH2F("diagStep3", "Edep vs Edep path corrected",
100, 0., 2., 100, 0., 2.);
fDiagStep3->SetDirectory(0);
fDiagStep3->GetXaxis()->SetTitle("#Delta E [GeV]");
fDiagStep3->GetYaxis()->SetTitle("#Delta E/#Delta x #times #delta x [GeV]");
}
if (!fDiagStep4) {
fDiagStep4 = new TH2F("diagStep4", "Edep vs Multiplicity deduced",
100, 0., 2., 100, -.1, 19.9);
fDiagStep4->SetDirectory(0);
fDiagStep4->GetXaxis()->SetTitle("#Delta E/#Delta x #times #delta x [GeV]");
fDiagStep4->GetYaxis()->SetTitle("Multiplicity");
fDiagAll = new TH2F("diagAll", "Read ADC vs Multiplicity deduced",
1024, -.5, 1023.5, 100, -.1, 19.9);
}
if (fDiagAll) {
fDiagAll->SetDirectory(0);
fDiagAll->GetXaxis()->SetTitle("ADC (read)");
fDiagAll->GetYaxis()->SetTitle("Multiplicity");
}
}
void
AliFMDReconstructor::ConvertDigits(AliRawReader* reader,
TTree* digitsTree) const
{
if (fZombie) {
AliWarning("I'm a zombie - cannot do anything");
return;
}
AliFMDDebug(1, ("Reading raw data into digits tree"));
if (!digitsTree) {
AliError("No digits tree passed");
return;
}
static TClonesArray* array = 0;
if (!array) array = new TClonesArray("AliFMDDigit");
digitsTree->Branch("FMD", &array);
array->Clear();
AliFMDRawReader rawRead(reader, digitsTree);
rawRead.ReadAdcs(array);
Int_t nWrite = digitsTree->Fill();
AliDebugF(1, "Got a grand total of %d digits, wrote %d bytes to tree",
array->GetEntriesFast(), nWrite);
AliFMDAltroMapping* map = AliFMDParameters::Instance()->GetAltroMap();
for (UShort_t i = 1; i <= 3; i++) {
fZS[i-1] = rawRead.IsZeroSuppressed(map->Detector2DDL(i));
fZSFactor[i-1] = rawRead.NoiseFactor(map->Detector2DDL(i));
AliDebugF(2, "Noise factor for FMD%hu: %d", i, fZSFactor[i-1]);
}
}
void
AliFMDReconstructor::GetVertex(AliESDEvent* esd) const
{
fVertexType = kNoVertex;
fCurrentVertex = 0;
if (!esd) return;
const AliESDVertex* vertex = esd->GetPrimaryVertex();
if (!vertex) vertex = esd->GetPrimaryVertexSPD();
if (!vertex) vertex = esd->GetPrimaryVertexTPC();
if (!vertex) vertex = esd->GetVertex();
if (vertex) {
AliFMDDebug(2, ("Got %s (%s) from ESD: %f",
vertex->GetName(), vertex->GetTitle(), vertex->GetZ()));
fCurrentVertex = vertex->GetZ();
fVertexType = kESDVertex;
return;
}
else if (esd->GetESDTZERO()) {
AliFMDDebug(2, ("Got primary vertex from T0: %f", esd->GetT0zVertex()));
fCurrentVertex = esd->GetT0zVertex();
fVertexType = kESDVertex;
return;
}
AliWarning("Didn't get any vertex from ESD or generator");
}
Int_t
AliFMDReconstructor::GetIdentifier() const
{
static Int_t idx = AliReconstruction::GetDetIndex(GetDetectorName());
return idx;
}
const AliFMDRecoParam*
AliFMDReconstructor::GetParameters() const
{
Int_t iDet = GetIdentifier();
const AliDetectorRecoParam* params = AliReconstructor::GetRecoParam(iDet);
if (!params || params->IsA() != AliFMDRecoParam::Class()) return 0;
return static_cast<const AliFMDRecoParam*>(params);
}
void
AliFMDReconstructor::UseRecoParam(Bool_t set) const
{
static Float_t savedNoiseFactor = fNoiseFactor;
static Bool_t savedAngleCorrect = fAngleCorrect;
if (set) {
const AliFMDRecoParam* params = GetParameters();
if (params) {
fNoiseFactor = params->NoiseFactor();
fAngleCorrect = params->AngleCorrect();
}
return;
}
fNoiseFactor = savedNoiseFactor;
fAngleCorrect = savedAngleCorrect;
}
void
AliFMDReconstructor::MarkDeadChannels(AliESDFMD* esd) const
{
AliFMDParameters* param = AliFMDParameters::Instance();
for (UShort_t d = 1; d <= 3; d++) {
UShort_t nR = (d == 1 ? 1 : 2);
for (UShort_t q = 0; q < nR; q++) {
Char_t r = (q == 0 ? 'I' : 'O');
UShort_t nS = (q == 0 ? 20 : 40);
UShort_t nT = (q == 0 ? 512 : 256);
for (UShort_t s = 0; s < nS; s++) {
for (UShort_t t = 0; t < nT; t++) {
if (fBad(d, r, s, t)) {
AliDebugF(5, "Marking FMD%d%c[%2d,%3d] as bad", d, r, s, t);
esd->SetMultiplicity(d, r, s, t, AliESDFMD::kInvalidMult);
}
if (param->IsDead(d, r, s, t)) {
AliDebugF(5, "Marking FMD%d%c[%2d,%3d] as dead", d, r, s, t);
esd->SetMultiplicity(d, r, s, t, AliESDFMD::kInvalidMult);
}
else if (esd->Multiplicity(d, r, s, t) == AliESDFMD::kInvalidMult) {
AliDebugF(20, "Setting null signal in FMD%d%c[%2d,%3d]",
d, r, s, t);
esd->SetMultiplicity(d, r, s, t, 0);
}
else {
AliDebugF(10, "Setting FMD%d%c[%2d,%3d]=%f",d,r,s,t,
esd->Multiplicity(d, r, s, t));
}
}
}
}
}
}
Bool_t
AliFMDReconstructor::PreReconstruct() const
{
AliFMDDebug(1, ("Before reoconstructing"));
if (fZombie) {
AliWarning("I'm a zombie - cannot do anything");
return false;
}
GetVertex(fESD);
fBad.Reset(false);
if (fESDObj) {
fESDObj->Clear();
for (UShort_t d=1; d<=3; d++) {
UShort_t nQ = (d == 1 ? 1 : 2);
for (UShort_t q=0; q<nQ; q++) {
UShort_t nStr = (q == 0 ? 512 : 256);
Char_t r = (q == 0 ? 'I' : 'O');
for (UShort_t t = 0; t < nStr; t++) {
Float_t eta, phi;
PhysicalCoordinates(d, r, 0, t, eta, phi);
fESDObj->SetEta(d, r, 0, t, eta);
}
}
}
}
return true;
}
void
AliFMDReconstructor::Reconstruct(AliFMDRawReader& rawReader) const
{
AliFMDDebug(1, ("Reconstructing from FMD raw reader"));
if (!PreReconstruct()) return;
UShort_t det, sec, str, fac;
Short_t adc, oldDet = -1;
Bool_t zs;
Char_t rng;
UseRecoParam(kTRUE);
while (rawReader.NextSignal(det, rng, sec, str, adc, zs, fac)) {
if (det != oldDet) {
fZS[det-1] = zs;
fZSFactor[det-1] = fac;
oldDet = det;
}
ProcessSignal(det, rng, sec, str, adc);
}
UseRecoParam(kFALSE);
}
void
AliFMDReconstructor::Reconstruct(AliRawReader* reader, TTree*) const
{
AliFMDDebug(1, ("Reconstructing from raw reader"));
if (fZombie) {
AliWarning("I'm a zombie - cannot do anything");
return;
}
AliFMDRawReader rawReader(reader, 0);
Reconstruct(rawReader);
}
void
AliFMDReconstructor::Digitize(AliRawReader* reader, TClonesArray* sdigits) const
{
if (fZombie) {
AliWarning("I'm a zombie - cannot do anything");
return;
}
AliFMDRawReader rawReader(reader, 0);
UShort_t det, sec, str, sam, rat, fac;
Short_t adc, oldDet = -1;
Bool_t zs;
Char_t rng;
UseRecoParam(kTRUE);
while (rawReader.NextSample(det, rng, sec, str, sam, rat, adc, zs, fac)) {
if (!rawReader.SelectSample(sam, rat)) continue;
if (det != oldDet) {
fZS[det-1] = zs;
fZSFactor[det-1] = fac;
oldDet = det;
}
DigitizeSignal(sdigits, det, rng, sec, str, sam, adc);
}
UseRecoParam(kFALSE);
}
void
AliFMDReconstructor::Reconstruct(TTree* digitsTree,
TTree* clusterTree) const
{
if (!PreReconstruct()) return;
if (!fMult) fMult = new TClonesArray("AliFMDRecPoint");
AliFMDDebug(1, ("Reconstructing from digits in a tree"));
static TClonesArray* digits = new TClonesArray("AliFMDDigit");
TBranch* digitBranch = digitsTree->GetBranch("FMD");
if (!digitBranch) {
Error("Exec", "No digit branch for the FMD found");
return;
}
digitBranch->SetAddress(&digits);
if (digits) digits->Clear();
if (fMult) fMult->Clear();
fNMult = 0;
fTreeR = clusterTree;
fTreeR->Branch("FMD", &fMult);
AliDebug(5, "Getting entry 0 from digit branch");
digitBranch->GetEntry(0);
AliDebugF(5, "Processing %d digits", digits->GetEntriesFast());
UseRecoParam(kTRUE);
ProcessDigits(digits);
UseRecoParam(kFALSE);
Int_t written = clusterTree->Fill();
AliFMDDebug(10, ("Filled %d bytes into cluster tree", written));
}
void
AliFMDReconstructor::ProcessDigits(TClonesArray* digits,
const AliFMDRawReader& rawRead) const
{
if (fZombie) {
AliWarning("I'm a zombie - cannot do anything");
return;
}
AliFMDAltroMapping* map = AliFMDParameters::Instance()->GetAltroMap();
for (size_t i = 1; i <= 3; i++) {
fZS[i-1] = rawRead.IsZeroSuppressed(map->Detector2DDL(i));
fZSFactor[i-1] = rawRead.NoiseFactor(map->Detector2DDL(i));
}
UseRecoParam(kTRUE);
ProcessDigits(digits);
UseRecoParam(kFALSE);
}
void
AliFMDReconstructor::ProcessDigits(TClonesArray* digits) const
{
Int_t nDigits = digits->GetEntries();
AliFMDDebug(2, ("Got %d digits", nDigits));
fESDObj->SetNoiseFactor(fNoiseFactor);
fESDObj->SetAngleCorrected(fAngleCorrect);
fBad.Reset(false);
for (Int_t i = 0; i < nDigits; i++) {
AliFMDDigit* digit = static_cast<AliFMDDigit*>(digits->At(i));
if (!digit) continue;
ProcessDigit(digit);
}
}
void
AliFMDReconstructor::ProcessDigit(AliFMDDigit* digit) const
{
UShort_t det = digit->Detector();
Char_t rng = digit->Ring();
UShort_t sec = digit->Sector();
UShort_t str = digit->Strip();
Short_t adc = digit->Counts();
ProcessSignal(det, rng, sec, str, adc);
}
void
AliFMDReconstructor::ProcessSignal(UShort_t det,
Char_t rng,
UShort_t sec,
UShort_t str,
Short_t adc) const
{
Int_t dbg = AliLog::GetDebugLevel("FMD","");
Bool_t dhr = dbg > 3 && dbg < 10;
if (dhr) printf("FMD%d%c[%2d,%3d] adc=%4d ", det, rng, sec, str, adc);
if (adc >= AliFMDRawReader::kBadSignal) {
AliFMDDebug(10, ("FMD%d%c[%2d,%3d] is marked bad", det, rng, sec, str));
if (dhr) Printf("bad");
fBad(det,rng,sec,str) = true;
return;
}
AliFMDParameters* param = AliFMDParameters::Instance();
if (param->IsDead(det, rng, sec, str)) {
AliFMDDebug(10, ("FMD%d%c[%2d,%3d] is dead", det, rng, sec, str));
if (dhr) Printf("dead");
fBad(det,rng,sec,str) = true;
return;
}
Float_t eta = fESDObj->Eta(det, rng, 0, str);
UShort_t counts = SubtractPedestal(det, rng, sec, str, adc);
if(counts == USHRT_MAX) {
if (dhr) Printf("invalid");
return;
}
if (dhr) printf("counts=%4d ", counts);
Double_t edep = Adc2Energy(det, rng, sec, str, eta, counts);
if(edep < 0) {
if (dhr) Printf("zero");
return;
}
if (dhr) printf("edep=%f ", edep);
Double_t mult = Energy2Multiplicity(det, rng, sec, str, edep);
if (mult < 0) {
if (dhr) Printf("not hit");
return;
}
if (dhr) Printf("mult=%f ", mult);
AliFMDDebug(10, ("FMD%d%c[%2d,%3d]: "
"ADC: %d, Counts: %d, Energy: %f, Mult: %f",
det, rng, sec, str, adc, counts, edep, mult));
if (fMult) {
Float_t phi;
PhysicalCoordinates(det, rng, sec, str, eta, phi);
AliFMDRecPoint* m =
new ((*fMult)[fNMult]) AliFMDRecPoint(det, rng, sec, str,
eta, phi, edep, mult);
(void)m;
fNMult++;
}
fESDObj->SetMultiplicity(det, rng, sec, str, mult);
if (fDiagAll) fDiagAll->Fill(adc, mult);
}
void
AliFMDReconstructor::DigitizeSignal(TClonesArray* sdigits,
UShort_t det,
Char_t rng,
UShort_t sec,
UShort_t str,
UShort_t ,
Short_t adc) const
{
AliFMDParameters* param = AliFMDParameters::Instance();
if (param->IsDead(det, rng, sec, str)) {
AliFMDDebug(10, ("FMD%d%c[%2d,%3d] is dead", det, rng, sec, str));
return;
}
UShort_t counts = SubtractPedestal(det, rng, sec, str, adc);
if(counts == USHRT_MAX || counts == 0) return;
Double_t edep = Adc2Energy(det, rng, sec, str, counts);
if(edep < 0) return;
Int_t n = sdigits->GetEntriesFast();
new ((*sdigits)[n])
AliFMDSDigit(det, rng, sec, str, edep, counts, counts, counts, counts);
}
UShort_t
AliFMDReconstructor::SubtractPedestal(UShort_t det,
Char_t rng,
UShort_t sec,
UShort_t str,
UShort_t adc,
Float_t noiseFactor,
Bool_t zsEnabled,
UShort_t zsNoiseFactor) const
{
AliFMDParameters* param = AliFMDParameters::Instance();
Float_t ped = (zsEnabled ? 0 :
param->GetPedestal(det, rng, sec, str));
Float_t noise = param->GetPedestalWidth(det, rng, sec, str);
if (ped < 0 || noise < 0) {
AliWarningClass(Form("Invalid pedestal (%f) or noise (%f) "
"for FMD%d%c[%02d,%03d]",
ped, noise, det, rng, sec, str));
return USHRT_MAX;
}
AliDebugClass(10, Form("Subtracting pedestal for FMD%d%c[%2d,%3d]=%4d "
"(%s w/factor %d, noise factor %f, "
"pedestal %8.2f+/-%8.2f)",
det, rng, sec, str, adc,
(zsEnabled ? "zs'ed" : "straight"),
zsNoiseFactor, noiseFactor, ped, noise));
Int_t counts = adc + Int_t(zsEnabled ? zsNoiseFactor * noise : - ped);
counts = TMath::Max(Int_t(counts), 0);
Float_t nf = zsNoiseFactor;
if (counts <= noise * nf) counts = 0;
if (counts > 0) AliDebugClass(15, "Got a hit strip");
UShort_t ret = counts < 0 ? 0 : counts;
return ret;
}
UShort_t
AliFMDReconstructor::SubtractPedestal(UShort_t det,
Char_t rng,
UShort_t sec,
UShort_t str,
Short_t adc) const
{
UShort_t counts = SubtractPedestal(det, rng, sec, str, adc,
fNoiseFactor, fZS[det-1],
fZSFactor[det-1]);
if (fDiagStep1) fDiagStep1->Fill(adc, counts);
return counts;
}
Float_t
AliFMDReconstructor::Adc2Energy(UShort_t det,
Char_t rng,
UShort_t sec,
UShort_t str,
UShort_t count) const
{
if (count <= 0) return 0;
AliFMDParameters* param = AliFMDParameters::Instance();
Float_t gain = param->GetPulseGain(det, rng, sec, str);
if (gain < 0) {
AliDebugF(10, "Invalid gain (%f) for FMD%d%c[%02d,%03d]",
gain, det, rng, sec, str);
return -1;
}
AliDebugF(10, "Converting counts %d to energy (factor=%f, DAC2MIP=%f)",
count, gain,param->GetDACPerMIP());
Double_t edep = ((count * param->GetEdepMip())
/ (gain * param->GetDACPerMIP()));
return edep;
}
Float_t
AliFMDReconstructor::Adc2Energy(UShort_t det,
Char_t rng,
UShort_t sec,
UShort_t str,
Float_t eta,
UShort_t count) const
{
Double_t edep = Adc2Energy(det, rng, sec, str, count);
if (fDiagStep2) fDiagStep2->Fill(count, edep);
if (fAngleCorrect) {
Double_t theta = 2 * TMath::ATan(TMath::Exp(-eta));
Double_t corr = TMath::Abs(TMath::Cos(theta));
Double_t cedep = corr * edep;
AliDebugF(10, "correcting for path %f * %f = %f (eta=%f, theta=%f)",
edep, corr, cedep, eta, theta);
if (fDiagStep3) fDiagStep3->Fill(edep, cedep);
edep = cedep;
}
return edep;
}
Float_t
AliFMDReconstructor::Energy2Multiplicity(UShort_t ,
Char_t ,
UShort_t ,
UShort_t ,
Float_t edep) const
{
AliFMDParameters* param = AliFMDParameters::Instance();
Double_t edepMIP = param->GetEdepMip();
Float_t mult = edep / edepMIP;
#if 0
if (edep > 0)
AliFMDDebug(15, ("Translating energy %f to multiplicity via "
"divider %f->%f", edep, edepMIP, mult));
#endif
if (fDiagStep4) fDiagStep4->Fill(edep, mult);
return mult;
}
void
AliFMDReconstructor::PhysicalCoordinates(UShort_t det,
Char_t rng,
UShort_t sec,
UShort_t str,
Float_t& eta,
Float_t& phi) const
{
AliFMDGeometry* geom = AliFMDGeometry::Instance();
Double_t x, y, z, r, theta, deta, dphi;
geom->Detector2XYZ(det, rng, sec, str, x, y, z);
z -= fCurrentVertex;
AliFMDGeometry::XYZ2REtaPhiTheta(x, y, z, r, deta, dphi, theta);
eta = deta;
phi = dphi;
}
namespace {
class ESDPrinter : public AliESDFMD::ForOne
{
public:
ESDPrinter() {}
Bool_t operator()(UShort_t d, Char_t r, UShort_t s, UShort_t t,
Float_t m, Float_t e)
{
if (m > 0 && m != AliESDFMD::kInvalidMult)
printf(" FMD%d%c[%2d,%3d] = %6.3f / %6.3f\n", d, r, s, t, m, e);
return kTRUE;
}
};
}
void
AliFMDReconstructor::FillESD(TTree* ,
TTree* ,
AliESDEvent* esd) const
{
AliFMDDebug(2, ("Calling FillESD with two trees and one ESD"));
if (fZombie) {
AliWarning("I'm a zombie - cannot do anything");
return;
}
MarkDeadChannels(fESDObj);
Double_t oldVz = fCurrentVertex;
GetVertex(esd);
if (fVertexType != kNoVertex) {
AliFMDDebug(2, ("Revertexing the ESD data to vz=%f (was %f)",
fCurrentVertex, oldVz));
AliFMDESDRevertexer revertexer;
revertexer.Revertex(fESDObj, fCurrentVertex);
}
if (AliDebugLevel() > 10) {
ESDPrinter p;
fESDObj->ForEach(p);
}
if (esd) {
AliFMDDebug(2, ("Writing FMD data to ESD tree"));
esd->SetFMDData(fESDObj);
}
if (!fDiagnostics || !esd) return;
static bool first = true;
Int_t evno = esd->GetEventNumberInFile();
AliFMDDebug(3, ("Writing diagnostics histograms to FMD.Diag.root/%03d",evno));
TFile f("FMD.Diag.root", (first ? "RECREATE" : "UPDATE"));
first = false;
f.cd();
TDirectory* d = f.mkdir(Form("%03d", evno),
Form("Diagnostics histograms for event # %d", evno));
d->cd();
if (fDiagStep1) fDiagStep1->Write();
if (fDiagStep2) fDiagStep2->Write();
if (fDiagStep3) fDiagStep3->Write();
if (fDiagStep4) fDiagStep4->Write();
if (fDiagAll) fDiagAll->Write();
d->Write();
f.Write();
f.Close();
if (fDiagStep1) fDiagStep1->Reset();
if (fDiagStep2) fDiagStep2->Reset();
if (fDiagStep3) fDiagStep3->Reset();
if (fDiagStep4) fDiagStep4->Reset();
if (fDiagAll) fDiagAll->Reset();
}
void
AliFMDReconstructor::FillESD(AliRawReader*, TTree* clusterTree,
AliESDEvent* esd) const
{
if (fZombie) {
AliWarning("I'm a zombie - cannot do anything");
return;
}
TTree* dummy = 0;
FillESD(dummy, clusterTree, esd);
}
AliFMDReconstructor.cxx:1 AliFMDReconstructor.cxx:2 AliFMDReconstructor.cxx:3 AliFMDReconstructor.cxx:4 AliFMDReconstructor.cxx:5 AliFMDReconstructor.cxx:6 AliFMDReconstructor.cxx:7 AliFMDReconstructor.cxx:8 AliFMDReconstructor.cxx:9 AliFMDReconstructor.cxx:10 AliFMDReconstructor.cxx:11 AliFMDReconstructor.cxx:12 AliFMDReconstructor.cxx:13 AliFMDReconstructor.cxx:14 AliFMDReconstructor.cxx:15 AliFMDReconstructor.cxx:16 AliFMDReconstructor.cxx:17 AliFMDReconstructor.cxx:18 AliFMDReconstructor.cxx:19 AliFMDReconstructor.cxx:20 AliFMDReconstructor.cxx:21 AliFMDReconstructor.cxx:22 AliFMDReconstructor.cxx:23 AliFMDReconstructor.cxx:24 AliFMDReconstructor.cxx:25 AliFMDReconstructor.cxx:26 AliFMDReconstructor.cxx:27 AliFMDReconstructor.cxx:28 AliFMDReconstructor.cxx:29 AliFMDReconstructor.cxx:30 AliFMDReconstructor.cxx:31 AliFMDReconstructor.cxx:32 AliFMDReconstructor.cxx:33 AliFMDReconstructor.cxx:34 AliFMDReconstructor.cxx:35 AliFMDReconstructor.cxx:36 AliFMDReconstructor.cxx:37 AliFMDReconstructor.cxx:38 AliFMDReconstructor.cxx:39 AliFMDReconstructor.cxx:40 AliFMDReconstructor.cxx:41 AliFMDReconstructor.cxx:42 AliFMDReconstructor.cxx:43 AliFMDReconstructor.cxx:44 AliFMDReconstructor.cxx:45 AliFMDReconstructor.cxx:46 AliFMDReconstructor.cxx:47 AliFMDReconstructor.cxx:48 AliFMDReconstructor.cxx:49 AliFMDReconstructor.cxx:50 AliFMDReconstructor.cxx:51 AliFMDReconstructor.cxx:52 AliFMDReconstructor.cxx:53 AliFMDReconstructor.cxx:54 AliFMDReconstructor.cxx:55 AliFMDReconstructor.cxx:56 AliFMDReconstructor.cxx:57 AliFMDReconstructor.cxx:58 AliFMDReconstructor.cxx:59 AliFMDReconstructor.cxx:60 AliFMDReconstructor.cxx:61 AliFMDReconstructor.cxx:62 AliFMDReconstructor.cxx:63 AliFMDReconstructor.cxx:64 AliFMDReconstructor.cxx:65 AliFMDReconstructor.cxx:66 AliFMDReconstructor.cxx:67 AliFMDReconstructor.cxx:68 AliFMDReconstructor.cxx:69 AliFMDReconstructor.cxx:70 AliFMDReconstructor.cxx:71 AliFMDReconstructor.cxx:72 AliFMDReconstructor.cxx:73 AliFMDReconstructor.cxx:74 AliFMDReconstructor.cxx:75 AliFMDReconstructor.cxx:76 AliFMDReconstructor.cxx:77 AliFMDReconstructor.cxx:78 AliFMDReconstructor.cxx:79 AliFMDReconstructor.cxx:80 AliFMDReconstructor.cxx:81 AliFMDReconstructor.cxx:82 AliFMDReconstructor.cxx:83 AliFMDReconstructor.cxx:84 AliFMDReconstructor.cxx:85 AliFMDReconstructor.cxx:86 AliFMDReconstructor.cxx:87 AliFMDReconstructor.cxx:88 AliFMDReconstructor.cxx:89 AliFMDReconstructor.cxx:90 AliFMDReconstructor.cxx:91 AliFMDReconstructor.cxx:92 AliFMDReconstructor.cxx:93 AliFMDReconstructor.cxx:94 AliFMDReconstructor.cxx:95 AliFMDReconstructor.cxx:96 AliFMDReconstructor.cxx:97 AliFMDReconstructor.cxx:98 AliFMDReconstructor.cxx:99 AliFMDReconstructor.cxx:100 AliFMDReconstructor.cxx:101 AliFMDReconstructor.cxx:102 AliFMDReconstructor.cxx:103 AliFMDReconstructor.cxx:104 AliFMDReconstructor.cxx:105 AliFMDReconstructor.cxx:106 AliFMDReconstructor.cxx:107 AliFMDReconstructor.cxx:108 AliFMDReconstructor.cxx:109 AliFMDReconstructor.cxx:110 AliFMDReconstructor.cxx:111 AliFMDReconstructor.cxx:112 AliFMDReconstructor.cxx:113 AliFMDReconstructor.cxx:114 AliFMDReconstructor.cxx:115 AliFMDReconstructor.cxx:116 AliFMDReconstructor.cxx:117 AliFMDReconstructor.cxx:118 AliFMDReconstructor.cxx:119 AliFMDReconstructor.cxx:120 AliFMDReconstructor.cxx:121 AliFMDReconstructor.cxx:122 AliFMDReconstructor.cxx:123 AliFMDReconstructor.cxx:124 AliFMDReconstructor.cxx:125 AliFMDReconstructor.cxx:126 AliFMDReconstructor.cxx:127 AliFMDReconstructor.cxx:128 AliFMDReconstructor.cxx:129 AliFMDReconstructor.cxx:130 AliFMDReconstructor.cxx:131 AliFMDReconstructor.cxx:132 AliFMDReconstructor.cxx:133 AliFMDReconstructor.cxx:134 AliFMDReconstructor.cxx:135 AliFMDReconstructor.cxx:136 AliFMDReconstructor.cxx:137 AliFMDReconstructor.cxx:138 AliFMDReconstructor.cxx:139 AliFMDReconstructor.cxx:140 AliFMDReconstructor.cxx:141 AliFMDReconstructor.cxx:142 AliFMDReconstructor.cxx:143 AliFMDReconstructor.cxx:144 AliFMDReconstructor.cxx:145 AliFMDReconstructor.cxx:146 AliFMDReconstructor.cxx:147 AliFMDReconstructor.cxx:148 AliFMDReconstructor.cxx:149 AliFMDReconstructor.cxx:150 AliFMDReconstructor.cxx:151 AliFMDReconstructor.cxx:152 AliFMDReconstructor.cxx:153 AliFMDReconstructor.cxx:154 AliFMDReconstructor.cxx:155 AliFMDReconstructor.cxx:156 AliFMDReconstructor.cxx:157 AliFMDReconstructor.cxx:158 AliFMDReconstructor.cxx:159 AliFMDReconstructor.cxx:160 AliFMDReconstructor.cxx:161 AliFMDReconstructor.cxx:162 AliFMDReconstructor.cxx:163 AliFMDReconstructor.cxx:164 AliFMDReconstructor.cxx:165 AliFMDReconstructor.cxx:166 AliFMDReconstructor.cxx:167 AliFMDReconstructor.cxx:168 AliFMDReconstructor.cxx:169 AliFMDReconstructor.cxx:170 AliFMDReconstructor.cxx:171 AliFMDReconstructor.cxx:172 AliFMDReconstructor.cxx:173 AliFMDReconstructor.cxx:174 AliFMDReconstructor.cxx:175 AliFMDReconstructor.cxx:176 AliFMDReconstructor.cxx:177 AliFMDReconstructor.cxx:178 AliFMDReconstructor.cxx:179 AliFMDReconstructor.cxx:180 AliFMDReconstructor.cxx:181 AliFMDReconstructor.cxx:182 AliFMDReconstructor.cxx:183 AliFMDReconstructor.cxx:184 AliFMDReconstructor.cxx:185 AliFMDReconstructor.cxx:186 AliFMDReconstructor.cxx:187 AliFMDReconstructor.cxx:188 AliFMDReconstructor.cxx:189 AliFMDReconstructor.cxx:190 AliFMDReconstructor.cxx:191 AliFMDReconstructor.cxx:192 AliFMDReconstructor.cxx:193 AliFMDReconstructor.cxx:194 AliFMDReconstructor.cxx:195 AliFMDReconstructor.cxx:196 AliFMDReconstructor.cxx:197 AliFMDReconstructor.cxx:198 AliFMDReconstructor.cxx:199 AliFMDReconstructor.cxx:200 AliFMDReconstructor.cxx:201 AliFMDReconstructor.cxx:202 AliFMDReconstructor.cxx:203 AliFMDReconstructor.cxx:204 AliFMDReconstructor.cxx:205 AliFMDReconstructor.cxx:206 AliFMDReconstructor.cxx:207 AliFMDReconstructor.cxx:208 AliFMDReconstructor.cxx:209 AliFMDReconstructor.cxx:210 AliFMDReconstructor.cxx:211 AliFMDReconstructor.cxx:212 AliFMDReconstructor.cxx:213 AliFMDReconstructor.cxx:214 AliFMDReconstructor.cxx:215 AliFMDReconstructor.cxx:216 AliFMDReconstructor.cxx:217 AliFMDReconstructor.cxx:218 AliFMDReconstructor.cxx:219 AliFMDReconstructor.cxx:220 AliFMDReconstructor.cxx:221 AliFMDReconstructor.cxx:222 AliFMDReconstructor.cxx:223 AliFMDReconstructor.cxx:224 AliFMDReconstructor.cxx:225 AliFMDReconstructor.cxx:226 AliFMDReconstructor.cxx:227 AliFMDReconstructor.cxx:228 AliFMDReconstructor.cxx:229 AliFMDReconstructor.cxx:230 AliFMDReconstructor.cxx:231 AliFMDReconstructor.cxx:232 AliFMDReconstructor.cxx:233 AliFMDReconstructor.cxx:234 AliFMDReconstructor.cxx:235 AliFMDReconstructor.cxx:236 AliFMDReconstructor.cxx:237 AliFMDReconstructor.cxx:238 AliFMDReconstructor.cxx:239 AliFMDReconstructor.cxx:240 AliFMDReconstructor.cxx:241 AliFMDReconstructor.cxx:242 AliFMDReconstructor.cxx:243 AliFMDReconstructor.cxx:244 AliFMDReconstructor.cxx:245 AliFMDReconstructor.cxx:246 AliFMDReconstructor.cxx:247 AliFMDReconstructor.cxx:248 AliFMDReconstructor.cxx:249 AliFMDReconstructor.cxx:250 AliFMDReconstructor.cxx:251 AliFMDReconstructor.cxx:252 AliFMDReconstructor.cxx:253 AliFMDReconstructor.cxx:254 AliFMDReconstructor.cxx:255 AliFMDReconstructor.cxx:256 AliFMDReconstructor.cxx:257 AliFMDReconstructor.cxx:258 AliFMDReconstructor.cxx:259 AliFMDReconstructor.cxx:260 AliFMDReconstructor.cxx:261 AliFMDReconstructor.cxx:262 AliFMDReconstructor.cxx:263 AliFMDReconstructor.cxx:264 AliFMDReconstructor.cxx:265 AliFMDReconstructor.cxx:266 AliFMDReconstructor.cxx:267 AliFMDReconstructor.cxx:268 AliFMDReconstructor.cxx:269 AliFMDReconstructor.cxx:270 AliFMDReconstructor.cxx:271 AliFMDReconstructor.cxx:272 AliFMDReconstructor.cxx:273 AliFMDReconstructor.cxx:274 AliFMDReconstructor.cxx:275 AliFMDReconstructor.cxx:276 AliFMDReconstructor.cxx:277 AliFMDReconstructor.cxx:278 AliFMDReconstructor.cxx:279 AliFMDReconstructor.cxx:280 AliFMDReconstructor.cxx:281 AliFMDReconstructor.cxx:282 AliFMDReconstructor.cxx:283 AliFMDReconstructor.cxx:284 AliFMDReconstructor.cxx:285 AliFMDReconstructor.cxx:286 AliFMDReconstructor.cxx:287 AliFMDReconstructor.cxx:288 AliFMDReconstructor.cxx:289 AliFMDReconstructor.cxx:290 AliFMDReconstructor.cxx:291 AliFMDReconstructor.cxx:292 AliFMDReconstructor.cxx:293 AliFMDReconstructor.cxx:294 AliFMDReconstructor.cxx:295 AliFMDReconstructor.cxx:296 AliFMDReconstructor.cxx:297 AliFMDReconstructor.cxx:298 AliFMDReconstructor.cxx:299 AliFMDReconstructor.cxx:300 AliFMDReconstructor.cxx:301 AliFMDReconstructor.cxx:302 AliFMDReconstructor.cxx:303 AliFMDReconstructor.cxx:304 AliFMDReconstructor.cxx:305 AliFMDReconstructor.cxx:306 AliFMDReconstructor.cxx:307 AliFMDReconstructor.cxx:308 AliFMDReconstructor.cxx:309 AliFMDReconstructor.cxx:310 AliFMDReconstructor.cxx:311 AliFMDReconstructor.cxx:312 AliFMDReconstructor.cxx:313 AliFMDReconstructor.cxx:314 AliFMDReconstructor.cxx:315 AliFMDReconstructor.cxx:316 AliFMDReconstructor.cxx:317 AliFMDReconstructor.cxx:318 AliFMDReconstructor.cxx:319 AliFMDReconstructor.cxx:320 AliFMDReconstructor.cxx:321 AliFMDReconstructor.cxx:322 AliFMDReconstructor.cxx:323 AliFMDReconstructor.cxx:324 AliFMDReconstructor.cxx:325 AliFMDReconstructor.cxx:326 AliFMDReconstructor.cxx:327 AliFMDReconstructor.cxx:328 AliFMDReconstructor.cxx:329 AliFMDReconstructor.cxx:330 AliFMDReconstructor.cxx:331 AliFMDReconstructor.cxx:332 AliFMDReconstructor.cxx:333 AliFMDReconstructor.cxx:334 AliFMDReconstructor.cxx:335 AliFMDReconstructor.cxx:336 AliFMDReconstructor.cxx:337 AliFMDReconstructor.cxx:338 AliFMDReconstructor.cxx:339 AliFMDReconstructor.cxx:340 AliFMDReconstructor.cxx:341 AliFMDReconstructor.cxx:342 AliFMDReconstructor.cxx:343 AliFMDReconstructor.cxx:344 AliFMDReconstructor.cxx:345 AliFMDReconstructor.cxx:346 AliFMDReconstructor.cxx:347 AliFMDReconstructor.cxx:348 AliFMDReconstructor.cxx:349 AliFMDReconstructor.cxx:350 AliFMDReconstructor.cxx:351 AliFMDReconstructor.cxx:352 AliFMDReconstructor.cxx:353 AliFMDReconstructor.cxx:354 AliFMDReconstructor.cxx:355 AliFMDReconstructor.cxx:356 AliFMDReconstructor.cxx:357 AliFMDReconstructor.cxx:358 AliFMDReconstructor.cxx:359 AliFMDReconstructor.cxx:360 AliFMDReconstructor.cxx:361 AliFMDReconstructor.cxx:362 AliFMDReconstructor.cxx:363 AliFMDReconstructor.cxx:364 AliFMDReconstructor.cxx:365 AliFMDReconstructor.cxx:366 AliFMDReconstructor.cxx:367 AliFMDReconstructor.cxx:368 AliFMDReconstructor.cxx:369 AliFMDReconstructor.cxx:370 AliFMDReconstructor.cxx:371 AliFMDReconstructor.cxx:372 AliFMDReconstructor.cxx:373 AliFMDReconstructor.cxx:374 AliFMDReconstructor.cxx:375 AliFMDReconstructor.cxx:376 AliFMDReconstructor.cxx:377 AliFMDReconstructor.cxx:378 AliFMDReconstructor.cxx:379 AliFMDReconstructor.cxx:380 AliFMDReconstructor.cxx:381 AliFMDReconstructor.cxx:382 AliFMDReconstructor.cxx:383 AliFMDReconstructor.cxx:384 AliFMDReconstructor.cxx:385 AliFMDReconstructor.cxx:386 AliFMDReconstructor.cxx:387 AliFMDReconstructor.cxx:388 AliFMDReconstructor.cxx:389 AliFMDReconstructor.cxx:390 AliFMDReconstructor.cxx:391 AliFMDReconstructor.cxx:392 AliFMDReconstructor.cxx:393 AliFMDReconstructor.cxx:394 AliFMDReconstructor.cxx:395 AliFMDReconstructor.cxx:396 AliFMDReconstructor.cxx:397 AliFMDReconstructor.cxx:398 AliFMDReconstructor.cxx:399 AliFMDReconstructor.cxx:400 AliFMDReconstructor.cxx:401 AliFMDReconstructor.cxx:402 AliFMDReconstructor.cxx:403 AliFMDReconstructor.cxx:404 AliFMDReconstructor.cxx:405 AliFMDReconstructor.cxx:406 AliFMDReconstructor.cxx:407 AliFMDReconstructor.cxx:408 AliFMDReconstructor.cxx:409 AliFMDReconstructor.cxx:410 AliFMDReconstructor.cxx:411 AliFMDReconstructor.cxx:412 AliFMDReconstructor.cxx:413 AliFMDReconstructor.cxx:414 AliFMDReconstructor.cxx:415 AliFMDReconstructor.cxx:416 AliFMDReconstructor.cxx:417 AliFMDReconstructor.cxx:418 AliFMDReconstructor.cxx:419 AliFMDReconstructor.cxx:420 AliFMDReconstructor.cxx:421 AliFMDReconstructor.cxx:422 AliFMDReconstructor.cxx:423 AliFMDReconstructor.cxx:424 AliFMDReconstructor.cxx:425 AliFMDReconstructor.cxx:426 AliFMDReconstructor.cxx:427 AliFMDReconstructor.cxx:428 AliFMDReconstructor.cxx:429 AliFMDReconstructor.cxx:430 AliFMDReconstructor.cxx:431 AliFMDReconstructor.cxx:432 AliFMDReconstructor.cxx:433 AliFMDReconstructor.cxx:434 AliFMDReconstructor.cxx:435 AliFMDReconstructor.cxx:436 AliFMDReconstructor.cxx:437 AliFMDReconstructor.cxx:438 AliFMDReconstructor.cxx:439 AliFMDReconstructor.cxx:440 AliFMDReconstructor.cxx:441 AliFMDReconstructor.cxx:442 AliFMDReconstructor.cxx:443 AliFMDReconstructor.cxx:444 AliFMDReconstructor.cxx:445 AliFMDReconstructor.cxx:446 AliFMDReconstructor.cxx:447 AliFMDReconstructor.cxx:448 AliFMDReconstructor.cxx:449 AliFMDReconstructor.cxx:450 AliFMDReconstructor.cxx:451 AliFMDReconstructor.cxx:452 AliFMDReconstructor.cxx:453 AliFMDReconstructor.cxx:454 AliFMDReconstructor.cxx:455 AliFMDReconstructor.cxx:456 AliFMDReconstructor.cxx:457 AliFMDReconstructor.cxx:458 AliFMDReconstructor.cxx:459 AliFMDReconstructor.cxx:460 AliFMDReconstructor.cxx:461 AliFMDReconstructor.cxx:462 AliFMDReconstructor.cxx:463 AliFMDReconstructor.cxx:464 AliFMDReconstructor.cxx:465 AliFMDReconstructor.cxx:466 AliFMDReconstructor.cxx:467 AliFMDReconstructor.cxx:468 AliFMDReconstructor.cxx:469 AliFMDReconstructor.cxx:470 AliFMDReconstructor.cxx:471 AliFMDReconstructor.cxx:472 AliFMDReconstructor.cxx:473 AliFMDReconstructor.cxx:474 AliFMDReconstructor.cxx:475 AliFMDReconstructor.cxx:476 AliFMDReconstructor.cxx:477 AliFMDReconstructor.cxx:478 AliFMDReconstructor.cxx:479 AliFMDReconstructor.cxx:480 AliFMDReconstructor.cxx:481 AliFMDReconstructor.cxx:482 AliFMDReconstructor.cxx:483 AliFMDReconstructor.cxx:484 AliFMDReconstructor.cxx:485 AliFMDReconstructor.cxx:486 AliFMDReconstructor.cxx:487 AliFMDReconstructor.cxx:488 AliFMDReconstructor.cxx:489 AliFMDReconstructor.cxx:490 AliFMDReconstructor.cxx:491 AliFMDReconstructor.cxx:492 AliFMDReconstructor.cxx:493 AliFMDReconstructor.cxx:494 AliFMDReconstructor.cxx:495 AliFMDReconstructor.cxx:496 AliFMDReconstructor.cxx:497 AliFMDReconstructor.cxx:498 AliFMDReconstructor.cxx:499 AliFMDReconstructor.cxx:500 AliFMDReconstructor.cxx:501 AliFMDReconstructor.cxx:502 AliFMDReconstructor.cxx:503 AliFMDReconstructor.cxx:504 AliFMDReconstructor.cxx:505 AliFMDReconstructor.cxx:506 AliFMDReconstructor.cxx:507 AliFMDReconstructor.cxx:508 AliFMDReconstructor.cxx:509 AliFMDReconstructor.cxx:510 AliFMDReconstructor.cxx:511 AliFMDReconstructor.cxx:512 AliFMDReconstructor.cxx:513 AliFMDReconstructor.cxx:514 AliFMDReconstructor.cxx:515 AliFMDReconstructor.cxx:516 AliFMDReconstructor.cxx:517 AliFMDReconstructor.cxx:518 AliFMDReconstructor.cxx:519 AliFMDReconstructor.cxx:520 AliFMDReconstructor.cxx:521 AliFMDReconstructor.cxx:522 AliFMDReconstructor.cxx:523 AliFMDReconstructor.cxx:524 AliFMDReconstructor.cxx:525 AliFMDReconstructor.cxx:526 AliFMDReconstructor.cxx:527 AliFMDReconstructor.cxx:528 AliFMDReconstructor.cxx:529 AliFMDReconstructor.cxx:530 AliFMDReconstructor.cxx:531 AliFMDReconstructor.cxx:532 AliFMDReconstructor.cxx:533 AliFMDReconstructor.cxx:534 AliFMDReconstructor.cxx:535 AliFMDReconstructor.cxx:536 AliFMDReconstructor.cxx:537 AliFMDReconstructor.cxx:538 AliFMDReconstructor.cxx:539 AliFMDReconstructor.cxx:540 AliFMDReconstructor.cxx:541 AliFMDReconstructor.cxx:542 AliFMDReconstructor.cxx:543 AliFMDReconstructor.cxx:544 AliFMDReconstructor.cxx:545 AliFMDReconstructor.cxx:546 AliFMDReconstructor.cxx:547 AliFMDReconstructor.cxx:548 AliFMDReconstructor.cxx:549 AliFMDReconstructor.cxx:550 AliFMDReconstructor.cxx:551 AliFMDReconstructor.cxx:552 AliFMDReconstructor.cxx:553 AliFMDReconstructor.cxx:554 AliFMDReconstructor.cxx:555 AliFMDReconstructor.cxx:556 AliFMDReconstructor.cxx:557 AliFMDReconstructor.cxx:558 AliFMDReconstructor.cxx:559 AliFMDReconstructor.cxx:560 AliFMDReconstructor.cxx:561 AliFMDReconstructor.cxx:562 AliFMDReconstructor.cxx:563 AliFMDReconstructor.cxx:564 AliFMDReconstructor.cxx:565 AliFMDReconstructor.cxx:566 AliFMDReconstructor.cxx:567 AliFMDReconstructor.cxx:568 AliFMDReconstructor.cxx:569 AliFMDReconstructor.cxx:570 AliFMDReconstructor.cxx:571 AliFMDReconstructor.cxx:572 AliFMDReconstructor.cxx:573 AliFMDReconstructor.cxx:574 AliFMDReconstructor.cxx:575 AliFMDReconstructor.cxx:576 AliFMDReconstructor.cxx:577 AliFMDReconstructor.cxx:578 AliFMDReconstructor.cxx:579 AliFMDReconstructor.cxx:580 AliFMDReconstructor.cxx:581 AliFMDReconstructor.cxx:582 AliFMDReconstructor.cxx:583 AliFMDReconstructor.cxx:584 AliFMDReconstructor.cxx:585 AliFMDReconstructor.cxx:586 AliFMDReconstructor.cxx:587 AliFMDReconstructor.cxx:588 AliFMDReconstructor.cxx:589 AliFMDReconstructor.cxx:590 AliFMDReconstructor.cxx:591 AliFMDReconstructor.cxx:592 AliFMDReconstructor.cxx:593 AliFMDReconstructor.cxx:594 AliFMDReconstructor.cxx:595 AliFMDReconstructor.cxx:596 AliFMDReconstructor.cxx:597 AliFMDReconstructor.cxx:598 AliFMDReconstructor.cxx:599 AliFMDReconstructor.cxx:600 AliFMDReconstructor.cxx:601 AliFMDReconstructor.cxx:602 AliFMDReconstructor.cxx:603 AliFMDReconstructor.cxx:604 AliFMDReconstructor.cxx:605 AliFMDReconstructor.cxx:606 AliFMDReconstructor.cxx:607 AliFMDReconstructor.cxx:608 AliFMDReconstructor.cxx:609 AliFMDReconstructor.cxx:610 AliFMDReconstructor.cxx:611 AliFMDReconstructor.cxx:612 AliFMDReconstructor.cxx:613 AliFMDReconstructor.cxx:614 AliFMDReconstructor.cxx:615 AliFMDReconstructor.cxx:616 AliFMDReconstructor.cxx:617 AliFMDReconstructor.cxx:618 AliFMDReconstructor.cxx:619 AliFMDReconstructor.cxx:620 AliFMDReconstructor.cxx:621 AliFMDReconstructor.cxx:622 AliFMDReconstructor.cxx:623 AliFMDReconstructor.cxx:624 AliFMDReconstructor.cxx:625 AliFMDReconstructor.cxx:626 AliFMDReconstructor.cxx:627 AliFMDReconstructor.cxx:628 AliFMDReconstructor.cxx:629 AliFMDReconstructor.cxx:630 AliFMDReconstructor.cxx:631 AliFMDReconstructor.cxx:632 AliFMDReconstructor.cxx:633 AliFMDReconstructor.cxx:634 AliFMDReconstructor.cxx:635 AliFMDReconstructor.cxx:636 AliFMDReconstructor.cxx:637 AliFMDReconstructor.cxx:638 AliFMDReconstructor.cxx:639 AliFMDReconstructor.cxx:640 AliFMDReconstructor.cxx:641 AliFMDReconstructor.cxx:642 AliFMDReconstructor.cxx:643 AliFMDReconstructor.cxx:644 AliFMDReconstructor.cxx:645 AliFMDReconstructor.cxx:646 AliFMDReconstructor.cxx:647 AliFMDReconstructor.cxx:648 AliFMDReconstructor.cxx:649 AliFMDReconstructor.cxx:650 AliFMDReconstructor.cxx:651 AliFMDReconstructor.cxx:652 AliFMDReconstructor.cxx:653 AliFMDReconstructor.cxx:654 AliFMDReconstructor.cxx:655 AliFMDReconstructor.cxx:656 AliFMDReconstructor.cxx:657 AliFMDReconstructor.cxx:658 AliFMDReconstructor.cxx:659 AliFMDReconstructor.cxx:660 AliFMDReconstructor.cxx:661 AliFMDReconstructor.cxx:662 AliFMDReconstructor.cxx:663 AliFMDReconstructor.cxx:664 AliFMDReconstructor.cxx:665 AliFMDReconstructor.cxx:666 AliFMDReconstructor.cxx:667 AliFMDReconstructor.cxx:668 AliFMDReconstructor.cxx:669 AliFMDReconstructor.cxx:670 AliFMDReconstructor.cxx:671 AliFMDReconstructor.cxx:672 AliFMDReconstructor.cxx:673 AliFMDReconstructor.cxx:674 AliFMDReconstructor.cxx:675 AliFMDReconstructor.cxx:676 AliFMDReconstructor.cxx:677 AliFMDReconstructor.cxx:678 AliFMDReconstructor.cxx:679 AliFMDReconstructor.cxx:680 AliFMDReconstructor.cxx:681 AliFMDReconstructor.cxx:682 AliFMDReconstructor.cxx:683 AliFMDReconstructor.cxx:684 AliFMDReconstructor.cxx:685 AliFMDReconstructor.cxx:686 AliFMDReconstructor.cxx:687 AliFMDReconstructor.cxx:688 AliFMDReconstructor.cxx:689 AliFMDReconstructor.cxx:690 AliFMDReconstructor.cxx:691 AliFMDReconstructor.cxx:692 AliFMDReconstructor.cxx:693 AliFMDReconstructor.cxx:694 AliFMDReconstructor.cxx:695 AliFMDReconstructor.cxx:696 AliFMDReconstructor.cxx:697 AliFMDReconstructor.cxx:698 AliFMDReconstructor.cxx:699 AliFMDReconstructor.cxx:700 AliFMDReconstructor.cxx:701 AliFMDReconstructor.cxx:702 AliFMDReconstructor.cxx:703 AliFMDReconstructor.cxx:704 AliFMDReconstructor.cxx:705 AliFMDReconstructor.cxx:706 AliFMDReconstructor.cxx:707 AliFMDReconstructor.cxx:708 AliFMDReconstructor.cxx:709 AliFMDReconstructor.cxx:710 AliFMDReconstructor.cxx:711 AliFMDReconstructor.cxx:712 AliFMDReconstructor.cxx:713 AliFMDReconstructor.cxx:714 AliFMDReconstructor.cxx:715 AliFMDReconstructor.cxx:716 AliFMDReconstructor.cxx:717 AliFMDReconstructor.cxx:718 AliFMDReconstructor.cxx:719 AliFMDReconstructor.cxx:720 AliFMDReconstructor.cxx:721 AliFMDReconstructor.cxx:722 AliFMDReconstructor.cxx:723 AliFMDReconstructor.cxx:724 AliFMDReconstructor.cxx:725 AliFMDReconstructor.cxx:726 AliFMDReconstructor.cxx:727 AliFMDReconstructor.cxx:728 AliFMDReconstructor.cxx:729 AliFMDReconstructor.cxx:730 AliFMDReconstructor.cxx:731 AliFMDReconstructor.cxx:732 AliFMDReconstructor.cxx:733 AliFMDReconstructor.cxx:734 AliFMDReconstructor.cxx:735 AliFMDReconstructor.cxx:736 AliFMDReconstructor.cxx:737 AliFMDReconstructor.cxx:738 AliFMDReconstructor.cxx:739 AliFMDReconstructor.cxx:740 AliFMDReconstructor.cxx:741 AliFMDReconstructor.cxx:742 AliFMDReconstructor.cxx:743 AliFMDReconstructor.cxx:744 AliFMDReconstructor.cxx:745 AliFMDReconstructor.cxx:746 AliFMDReconstructor.cxx:747 AliFMDReconstructor.cxx:748 AliFMDReconstructor.cxx:749 AliFMDReconstructor.cxx:750 AliFMDReconstructor.cxx:751 AliFMDReconstructor.cxx:752 AliFMDReconstructor.cxx:753 AliFMDReconstructor.cxx:754 AliFMDReconstructor.cxx:755 AliFMDReconstructor.cxx:756 AliFMDReconstructor.cxx:757 AliFMDReconstructor.cxx:758 AliFMDReconstructor.cxx:759 AliFMDReconstructor.cxx:760 AliFMDReconstructor.cxx:761 AliFMDReconstructor.cxx:762 AliFMDReconstructor.cxx:763 AliFMDReconstructor.cxx:764 AliFMDReconstructor.cxx:765 AliFMDReconstructor.cxx:766 AliFMDReconstructor.cxx:767 AliFMDReconstructor.cxx:768 AliFMDReconstructor.cxx:769 AliFMDReconstructor.cxx:770 AliFMDReconstructor.cxx:771 AliFMDReconstructor.cxx:772 AliFMDReconstructor.cxx:773 AliFMDReconstructor.cxx:774 AliFMDReconstructor.cxx:775 AliFMDReconstructor.cxx:776 AliFMDReconstructor.cxx:777 AliFMDReconstructor.cxx:778 AliFMDReconstructor.cxx:779 AliFMDReconstructor.cxx:780 AliFMDReconstructor.cxx:781 AliFMDReconstructor.cxx:782 AliFMDReconstructor.cxx:783 AliFMDReconstructor.cxx:784 AliFMDReconstructor.cxx:785 AliFMDReconstructor.cxx:786 AliFMDReconstructor.cxx:787 AliFMDReconstructor.cxx:788 AliFMDReconstructor.cxx:789 AliFMDReconstructor.cxx:790 AliFMDReconstructor.cxx:791 AliFMDReconstructor.cxx:792 AliFMDReconstructor.cxx:793 AliFMDReconstructor.cxx:794 AliFMDReconstructor.cxx:795 AliFMDReconstructor.cxx:796 AliFMDReconstructor.cxx:797 AliFMDReconstructor.cxx:798 AliFMDReconstructor.cxx:799 AliFMDReconstructor.cxx:800 AliFMDReconstructor.cxx:801 AliFMDReconstructor.cxx:802 AliFMDReconstructor.cxx:803 AliFMDReconstructor.cxx:804 AliFMDReconstructor.cxx:805 AliFMDReconstructor.cxx:806 AliFMDReconstructor.cxx:807 AliFMDReconstructor.cxx:808 AliFMDReconstructor.cxx:809 AliFMDReconstructor.cxx:810 AliFMDReconstructor.cxx:811 AliFMDReconstructor.cxx:812 AliFMDReconstructor.cxx:813 AliFMDReconstructor.cxx:814 AliFMDReconstructor.cxx:815 AliFMDReconstructor.cxx:816 AliFMDReconstructor.cxx:817 AliFMDReconstructor.cxx:818 AliFMDReconstructor.cxx:819 AliFMDReconstructor.cxx:820 AliFMDReconstructor.cxx:821 AliFMDReconstructor.cxx:822 AliFMDReconstructor.cxx:823 AliFMDReconstructor.cxx:824 AliFMDReconstructor.cxx:825 AliFMDReconstructor.cxx:826 AliFMDReconstructor.cxx:827 AliFMDReconstructor.cxx:828 AliFMDReconstructor.cxx:829 AliFMDReconstructor.cxx:830 AliFMDReconstructor.cxx:831 AliFMDReconstructor.cxx:832 AliFMDReconstructor.cxx:833 AliFMDReconstructor.cxx:834 AliFMDReconstructor.cxx:835 AliFMDReconstructor.cxx:836 AliFMDReconstructor.cxx:837 AliFMDReconstructor.cxx:838 AliFMDReconstructor.cxx:839 AliFMDReconstructor.cxx:840 AliFMDReconstructor.cxx:841 AliFMDReconstructor.cxx:842 AliFMDReconstructor.cxx:843 AliFMDReconstructor.cxx:844 AliFMDReconstructor.cxx:845 AliFMDReconstructor.cxx:846 AliFMDReconstructor.cxx:847 AliFMDReconstructor.cxx:848 AliFMDReconstructor.cxx:849 AliFMDReconstructor.cxx:850 AliFMDReconstructor.cxx:851 AliFMDReconstructor.cxx:852 AliFMDReconstructor.cxx:853 AliFMDReconstructor.cxx:854 AliFMDReconstructor.cxx:855 AliFMDReconstructor.cxx:856 AliFMDReconstructor.cxx:857 AliFMDReconstructor.cxx:858 AliFMDReconstructor.cxx:859 AliFMDReconstructor.cxx:860 AliFMDReconstructor.cxx:861 AliFMDReconstructor.cxx:862 AliFMDReconstructor.cxx:863 AliFMDReconstructor.cxx:864 AliFMDReconstructor.cxx:865 AliFMDReconstructor.cxx:866 AliFMDReconstructor.cxx:867 AliFMDReconstructor.cxx:868 AliFMDReconstructor.cxx:869 AliFMDReconstructor.cxx:870 AliFMDReconstructor.cxx:871 AliFMDReconstructor.cxx:872 AliFMDReconstructor.cxx:873 AliFMDReconstructor.cxx:874 AliFMDReconstructor.cxx:875 AliFMDReconstructor.cxx:876 AliFMDReconstructor.cxx:877 AliFMDReconstructor.cxx:878 AliFMDReconstructor.cxx:879 AliFMDReconstructor.cxx:880 AliFMDReconstructor.cxx:881 AliFMDReconstructor.cxx:882 AliFMDReconstructor.cxx:883 AliFMDReconstructor.cxx:884 AliFMDReconstructor.cxx:885 AliFMDReconstructor.cxx:886 AliFMDReconstructor.cxx:887 AliFMDReconstructor.cxx:888 AliFMDReconstructor.cxx:889 AliFMDReconstructor.cxx:890 AliFMDReconstructor.cxx:891 AliFMDReconstructor.cxx:892 AliFMDReconstructor.cxx:893 AliFMDReconstructor.cxx:894 AliFMDReconstructor.cxx:895 AliFMDReconstructor.cxx:896 AliFMDReconstructor.cxx:897 AliFMDReconstructor.cxx:898 AliFMDReconstructor.cxx:899 AliFMDReconstructor.cxx:900 AliFMDReconstructor.cxx:901 AliFMDReconstructor.cxx:902 AliFMDReconstructor.cxx:903 AliFMDReconstructor.cxx:904 AliFMDReconstructor.cxx:905 AliFMDReconstructor.cxx:906 AliFMDReconstructor.cxx:907 AliFMDReconstructor.cxx:908 AliFMDReconstructor.cxx:909 AliFMDReconstructor.cxx:910 AliFMDReconstructor.cxx:911 AliFMDReconstructor.cxx:912 AliFMDReconstructor.cxx:913 AliFMDReconstructor.cxx:914 AliFMDReconstructor.cxx:915 AliFMDReconstructor.cxx:916 AliFMDReconstructor.cxx:917 AliFMDReconstructor.cxx:918 AliFMDReconstructor.cxx:919 AliFMDReconstructor.cxx:920 AliFMDReconstructor.cxx:921 AliFMDReconstructor.cxx:922 AliFMDReconstructor.cxx:923 AliFMDReconstructor.cxx:924 AliFMDReconstructor.cxx:925 AliFMDReconstructor.cxx:926 AliFMDReconstructor.cxx:927 AliFMDReconstructor.cxx:928 AliFMDReconstructor.cxx:929 AliFMDReconstructor.cxx:930 AliFMDReconstructor.cxx:931 AliFMDReconstructor.cxx:932 AliFMDReconstructor.cxx:933 AliFMDReconstructor.cxx:934 AliFMDReconstructor.cxx:935 AliFMDReconstructor.cxx:936 AliFMDReconstructor.cxx:937 AliFMDReconstructor.cxx:938 AliFMDReconstructor.cxx:939 AliFMDReconstructor.cxx:940 AliFMDReconstructor.cxx:941 AliFMDReconstructor.cxx:942 AliFMDReconstructor.cxx:943 AliFMDReconstructor.cxx:944 AliFMDReconstructor.cxx:945 AliFMDReconstructor.cxx:946 AliFMDReconstructor.cxx:947 AliFMDReconstructor.cxx:948 AliFMDReconstructor.cxx:949 AliFMDReconstructor.cxx:950 AliFMDReconstructor.cxx:951 AliFMDReconstructor.cxx:952 AliFMDReconstructor.cxx:953 AliFMDReconstructor.cxx:954 AliFMDReconstructor.cxx:955 AliFMDReconstructor.cxx:956 AliFMDReconstructor.cxx:957 AliFMDReconstructor.cxx:958 AliFMDReconstructor.cxx:959 AliFMDReconstructor.cxx:960 AliFMDReconstructor.cxx:961 AliFMDReconstructor.cxx:962 AliFMDReconstructor.cxx:963 AliFMDReconstructor.cxx:964 AliFMDReconstructor.cxx:965 AliFMDReconstructor.cxx:966 AliFMDReconstructor.cxx:967 AliFMDReconstructor.cxx:968 AliFMDReconstructor.cxx:969 AliFMDReconstructor.cxx:970 AliFMDReconstructor.cxx:971 AliFMDReconstructor.cxx:972 AliFMDReconstructor.cxx:973 AliFMDReconstructor.cxx:974 AliFMDReconstructor.cxx:975 AliFMDReconstructor.cxx:976 AliFMDReconstructor.cxx:977 AliFMDReconstructor.cxx:978 AliFMDReconstructor.cxx:979 AliFMDReconstructor.cxx:980 AliFMDReconstructor.cxx:981 AliFMDReconstructor.cxx:982 AliFMDReconstructor.cxx:983 AliFMDReconstructor.cxx:984 AliFMDReconstructor.cxx:985 AliFMDReconstructor.cxx:986 AliFMDReconstructor.cxx:987 AliFMDReconstructor.cxx:988 AliFMDReconstructor.cxx:989 AliFMDReconstructor.cxx:990 AliFMDReconstructor.cxx:991 AliFMDReconstructor.cxx:992 AliFMDReconstructor.cxx:993 AliFMDReconstructor.cxx:994 AliFMDReconstructor.cxx:995 AliFMDReconstructor.cxx:996 AliFMDReconstructor.cxx:997 AliFMDReconstructor.cxx:998 AliFMDReconstructor.cxx:999 AliFMDReconstructor.cxx:1000 AliFMDReconstructor.cxx:1001 AliFMDReconstructor.cxx:1002 AliFMDReconstructor.cxx:1003 AliFMDReconstructor.cxx:1004 AliFMDReconstructor.cxx:1005 AliFMDReconstructor.cxx:1006 AliFMDReconstructor.cxx:1007 AliFMDReconstructor.cxx:1008 AliFMDReconstructor.cxx:1009 AliFMDReconstructor.cxx:1010 AliFMDReconstructor.cxx:1011 AliFMDReconstructor.cxx:1012 AliFMDReconstructor.cxx:1013 AliFMDReconstructor.cxx:1014 AliFMDReconstructor.cxx:1015 AliFMDReconstructor.cxx:1016 AliFMDReconstructor.cxx:1017 AliFMDReconstructor.cxx:1018 AliFMDReconstructor.cxx:1019 AliFMDReconstructor.cxx:1020 AliFMDReconstructor.cxx:1021 AliFMDReconstructor.cxx:1022 AliFMDReconstructor.cxx:1023 AliFMDReconstructor.cxx:1024 AliFMDReconstructor.cxx:1025 AliFMDReconstructor.cxx:1026 AliFMDReconstructor.cxx:1027 AliFMDReconstructor.cxx:1028 AliFMDReconstructor.cxx:1029 AliFMDReconstructor.cxx:1030 AliFMDReconstructor.cxx:1031 AliFMDReconstructor.cxx:1032 AliFMDReconstructor.cxx:1033 AliFMDReconstructor.cxx:1034 AliFMDReconstructor.cxx:1035 AliFMDReconstructor.cxx:1036 AliFMDReconstructor.cxx:1037 AliFMDReconstructor.cxx:1038 AliFMDReconstructor.cxx:1039 AliFMDReconstructor.cxx:1040 AliFMDReconstructor.cxx:1041 AliFMDReconstructor.cxx:1042 AliFMDReconstructor.cxx:1043 AliFMDReconstructor.cxx:1044 AliFMDReconstructor.cxx:1045 AliFMDReconstructor.cxx:1046 AliFMDReconstructor.cxx:1047 AliFMDReconstructor.cxx:1048 AliFMDReconstructor.cxx:1049 AliFMDReconstructor.cxx:1050 AliFMDReconstructor.cxx:1051 AliFMDReconstructor.cxx:1052 AliFMDReconstructor.cxx:1053 AliFMDReconstructor.cxx:1054 AliFMDReconstructor.cxx:1055 AliFMDReconstructor.cxx:1056 AliFMDReconstructor.cxx:1057 AliFMDReconstructor.cxx:1058 AliFMDReconstructor.cxx:1059 AliFMDReconstructor.cxx:1060 AliFMDReconstructor.cxx:1061 AliFMDReconstructor.cxx:1062 AliFMDReconstructor.cxx:1063 AliFMDReconstructor.cxx:1064 AliFMDReconstructor.cxx:1065 AliFMDReconstructor.cxx:1066 AliFMDReconstructor.cxx:1067 AliFMDReconstructor.cxx:1068 AliFMDReconstructor.cxx:1069 AliFMDReconstructor.cxx:1070 AliFMDReconstructor.cxx:1071 AliFMDReconstructor.cxx:1072 AliFMDReconstructor.cxx:1073 AliFMDReconstructor.cxx:1074 AliFMDReconstructor.cxx:1075 AliFMDReconstructor.cxx:1076 AliFMDReconstructor.cxx:1077 AliFMDReconstructor.cxx:1078 AliFMDReconstructor.cxx:1079 AliFMDReconstructor.cxx:1080 AliFMDReconstructor.cxx:1081 AliFMDReconstructor.cxx:1082 AliFMDReconstructor.cxx:1083 AliFMDReconstructor.cxx:1084 AliFMDReconstructor.cxx:1085 AliFMDReconstructor.cxx:1086 AliFMDReconstructor.cxx:1087 AliFMDReconstructor.cxx:1088 AliFMDReconstructor.cxx:1089 AliFMDReconstructor.cxx:1090 AliFMDReconstructor.cxx:1091 AliFMDReconstructor.cxx:1092 AliFMDReconstructor.cxx:1093 AliFMDReconstructor.cxx:1094 AliFMDReconstructor.cxx:1095 AliFMDReconstructor.cxx:1096 AliFMDReconstructor.cxx:1097 AliFMDReconstructor.cxx:1098 AliFMDReconstructor.cxx:1099 AliFMDReconstructor.cxx:1100 AliFMDReconstructor.cxx:1101 AliFMDReconstructor.cxx:1102 AliFMDReconstructor.cxx:1103 AliFMDReconstructor.cxx:1104 AliFMDReconstructor.cxx:1105 AliFMDReconstructor.cxx:1106 AliFMDReconstructor.cxx:1107 AliFMDReconstructor.cxx:1108 AliFMDReconstructor.cxx:1109 AliFMDReconstructor.cxx:1110 AliFMDReconstructor.cxx:1111 AliFMDReconstructor.cxx:1112 AliFMDReconstructor.cxx:1113 AliFMDReconstructor.cxx:1114 AliFMDReconstructor.cxx:1115 AliFMDReconstructor.cxx:1116 AliFMDReconstructor.cxx:1117 AliFMDReconstructor.cxx:1118 AliFMDReconstructor.cxx:1119 AliFMDReconstructor.cxx:1120 AliFMDReconstructor.cxx:1121 AliFMDReconstructor.cxx:1122 AliFMDReconstructor.cxx:1123 AliFMDReconstructor.cxx:1124