#include <iostream>
#include <TClonesArray.h>
#include <TFile.h>
#include <TH1F.h>
#include <TH1I.h>
#include <TH2I.h>
#include <TGeoManager.h>
#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliGeomManager.h"
#include "AliFMDQADataMakerRec.h"
#include "AliFMDDigit.h"
#include "AliFMDRecPoint.h"
#include "AliQAChecker.h"
#include "AliESDFMD.h"
#include "AliFMDParameters.h"
#include "AliFMDRawReader.h"
#include "AliFMDReconstructor.h"
#include "AliRawReader.h"
#include "AliFMDAltroMapping.h"
#include "AliFMDDebug.h"
namespace {
Int_t colors[3] = {kRed,kGreen,kBlue};
}
ClassImp(AliFMDQADataMakerRec)
#if 0
;
#endif
AliFMDQADataMakerRec::AliFMDQADataMakerRec()
: AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kFMD),
"FMD Quality Assurance Data Maker"),
fRecPointsArray("AliFMDRecPoint", 1000),
fReconstructor(0),
fUseReconstructor(true)
{
}
AliFMDQADataMakerRec::AliFMDQADataMakerRec(const AliFMDQADataMakerRec& qadm)
: AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kFMD),
"FMD Quality Assurance Data Maker"),
fRecPointsArray(qadm.fRecPointsArray),
fReconstructor(qadm.fReconstructor),
fUseReconstructor(qadm.fUseReconstructor)
{
}
AliFMDQADataMakerRec&
AliFMDQADataMakerRec::operator = (const AliFMDQADataMakerRec& qadm )
{
if (&qadm == this) return *this;
fRecPointsArray = qadm.fRecPointsArray;
fReconstructor = qadm.fReconstructor;
fUseReconstructor = qadm.fUseReconstructor;
return *this;
}
AliFMDQADataMakerRec::~AliFMDQADataMakerRec()
{
}
void
AliFMDQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task,
TObjArray ** list)
{
ResetEventTrigClasses();
AliLog::Message(5,"FMD: end of detector cycle",
"AliFMDQADataMakerRec","AliFMDQADataMakerRec",
"AliFMDQADataMakerRec::EndOfDetectorCycle",
"AliFMDQADataMakerRec.cxx",95);
AliQAChecker::Instance()->Run(AliQAv1::kFMD, task, list);
}
TH1* AliFMDQADataMakerRec::MakeADCHist(UShort_t d, Char_t r, Short_t b)
{
TString name("adc");
TString title("ADC counts");
Int_t color = kRed+1;
if (d > 0) {
name.Append(Form("FMD%d%c", d, r));
title.Append(Form(" in FMD%d%c", d, r));
color = colors[d-1]+3+(r == 'I' || r == 'i' ? 0 : 1);
if (b >= 0) {
name.Append(Form("_0x%02x", b));
title.Append(Form("[0x%02x]", b));
}
}
TH1* hist = new TH1F(name, title,1024,0,1024);
hist->SetXTitle("Amplitude [ADC counts]");
hist->SetYTitle("Events [log]");
hist->SetFillStyle(3001);
hist->SetFillColor(color);
hist->SetLineColor(color);
hist->SetMarkerColor(color);
hist->GetXaxis()->SetNdivisions(408,false);
hist->SetDirectory(0);
return hist;
}
TH1* AliFMDQADataMakerRec::MakeELossHist(UShort_t d, Char_t r, Short_t b)
{
TString name("eloss");
TString title("Energy loss");
Int_t color = kBlue+1;
if (d > 0) {
name.Append(Form("FMD%d%c", d, r));
title.Append(Form(" in FMD%d%c", d, r));
color = colors[d-1]+3+(r == 'I' || r == 'i' ? 0 : 1);
if (b >= 0) {
name.Append(Form("_0x%02x", b));
title.Append(Form("[0x%02x]", b));
}
}
TH1* hist = new TH1F(name, title,600,0, 15);
hist->SetXTitle("#Delta/#Delta_{mip}");
hist->SetYTitle("Events [log]");
hist->SetFillStyle(3001);
hist->SetFillColor(color);
hist->SetLineColor(color);
hist->SetMarkerColor(color);
hist->Sumw2();
hist->SetDirectory(0);
return hist;
}
void AliFMDQADataMakerRec::InitESDs()
{
Info("InitESDs", "Initializing ESDs");
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1* hist = MakeELossHist();
Add2ESDsList(hist, 0, !expert, image);
ClonePerTrigClass(AliQAv1::kESDS);
}
void AliFMDQADataMakerRec::InitDigits()
{
Info("InitDigits", "Initializing Digits");
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1* hist = MakeADCHist();
Add2DigitsList(hist, 0, !expert, image);
ClonePerTrigClass(AliQAv1::kDIGITS);
}
void AliFMDQADataMakerRec::InitRecPoints()
{
Info("InitRecPoints", "Initializing RecPoints");
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1* hist = MakeELossHist();
Add2RecPointsList(hist,0, !expert, image);
ClonePerTrigClass(AliQAv1::kRECPOINTS);
}
void AliFMDQADataMakerRec::InitRaws()
{
Info("InitRaws", "Initializing Raws");
const Bool_t expert = kTRUE ;
const Bool_t saveCorr = kTRUE ;
const Bool_t image = kTRUE ;
TH2I* hErrors = new TH2I("readoutErrors", "Read out errors", 3, .5, 3.5,
160, -.5, 159.5);
hErrors->GetXaxis()->SetBinLabel(1, "FMD1");
hErrors->GetXaxis()->SetBinLabel(2, "FMD2");
hErrors->GetXaxis()->SetBinLabel(3, "FMD3");
hErrors->SetYTitle("# errors [log]");
hErrors->SetZTitle("Events [log]");
hErrors->SetDirectory(0);
Add2RawsList(hErrors, 1, !expert, image, !saveCorr);
if (fUseReconstructor && !fReconstructor) {
if (!gGeoManager) {
Info("InitRaws", "Loading the geometry");
AliGeomManager::LoadGeometry();
}
fReconstructor = new AliFMDReconstructor();
fReconstructor->SetDiagnose(false);
fReconstructor->Init();
}
TH2* status = new TH2D("status", "Fit status per cycle",
5, .5, 5.5, 4, -.5, 3.5);
status->SetDirectory(0);
status->SetZTitle("N_{cycles} [LOG]");
status->GetXaxis()->SetBinLabel(1, "FMD1i");
status->GetXaxis()->SetBinLabel(2, "FMD2i");
status->GetXaxis()->SetBinLabel(3, "FMD2o");
status->GetXaxis()->SetBinLabel(4, "FMD3i");
status->GetXaxis()->SetBinLabel(5, "FMD3o");
status->GetYaxis()->SetBinLabel(1, "OK");
status->GetYaxis()->SetBinLabel(2, "Problem");
status->GetYaxis()->SetBinLabel(3, "Bad");
status->GetYaxis()->SetBinLabel(4, "What the ...?");
status->GetXaxis()->SetLabelSize(0.16);
status->GetYaxis()->SetLabelSize(0.16);
status->SetStats(0);
Add2RawsList(status, GetHalfringIndex(4, 'i', 0, 0),
!expert, image, !saveCorr);
TH1* hist;
Int_t idx = 0;
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 == 1 ? 'O' : 'I');
hist = (fUseReconstructor ?
MakeELossHist(d, r, -1) :
MakeADCHist(d, r, -1));
Int_t index1 = GetHalfringIndex(d, r, 0, 1);
idx = TMath::Max(index1, idx);
Add2RawsList(hist, index1, !expert, image, !saveCorr);
if (fUseReconstructor) continue;
for(UShort_t b = 0; b <= 1; b++) {
UShort_t board = (q == 1 ? 0 : 1) + b*16;
hist = MakeADCHist(d, r, board);
Int_t index2 = GetHalfringIndex(d, r, board/16,0);
idx = TMath::Max(index2, idx);
Add2RawsList(hist, index2, expert, !image, !saveCorr);
}
}
}
ClonePerTrigClass(AliQAv1::kRAWS);
}
#if 0
struct FillESDHist : public AliESDFMD::ForOne
{
FillESDHist(AliFMDQADataMakerRec* m) : fM(m) {}
FillESDHist(const FillESDHist& o) : fM(o.fM) {}
FillESDHist& operator=(const FillESDHist& o) { fM = o.fM; return *this; }
Bool_t operator()(UShort_t, Char_t, UShort_t, UShort_t, Float_t m, Float_t)
{
if(m == AliESDFMD::kInvalidMult) return true;
fM->FillESDsData(0,m);
return true;
}
AliFMDQADataMakerRec* fM;
};
#endif
void AliFMDQADataMakerRec::MakeESDs(AliESDEvent * esd)
{
if(!esd) {
AliError("FMD ESD object not found!!") ;
return;
}
AliFMDDebug(2, ("Will loop over ESD data and fill histogram"));
AliESDFMD* fmd = esd->GetFMDData();
if (!fmd) return;
#if 0
FillESDHist f(this);
fmd->ForEach(f);
#else
for(UShort_t det=1;det<=3;det++) {
UShort_t nrng = (det == 1 ? 1 : 2);
for (UShort_t ir = 0; ir < nrng; ir++) {
Char_t ring = (ir == 0 ? 'I' : 'O');
UShort_t nsec = (ir == 0 ? 20 : 40);
UShort_t nstr = (ir == 0 ? 512 : 256);
for(UShort_t sec =0; sec < nsec; sec++) {
for(UShort_t strip = 0; strip < nstr; strip++) {
Float_t mult = fmd->Multiplicity(det,ring,sec,strip);
if(mult == AliESDFMD::kInvalidMult) continue;
FillESDsData(0,mult);
}
}
}
}
#endif
IncEvCountCycleESDs();
IncEvCountTotalESDs();
}
void AliFMDQADataMakerRec::MakeDigits()
{
if(!fDigitsArray) {
AliError("FMD Digit object not found!!") ;
return;
}
for(Int_t i=0;i<fDigitsArray->GetEntriesFast();i++) {
AliFMDDigit* digit = static_cast<AliFMDDigit*>(fDigitsArray->At(i));
FillDigitsData(0,digit->Counts());
}
}
void AliFMDQADataMakerRec::MakeDigits(TTree * digitTree)
{
if (fDigitsArray)
fDigitsArray->Clear();
else
fDigitsArray = new TClonesArray("AliFMDDigit", 1000);
TBranch* branch = digitTree->GetBranch("FMD");
if (!branch) {
AliWarning("FMD branch in Digit Tree not found") ;
return;
}
branch->SetAddress(&fDigitsArray);
branch->GetEntry(0);
MakeDigits();
IncEvCountCycleDigits();
IncEvCountTotalDigits();
}
void AliFMDQADataMakerRec::MakeRaws(AliRawReader* rawReader)
{
AliFMDRawReader fmdReader(rawReader,0);
if (fDigitsArray) fDigitsArray->Clear();
else fDigitsArray = new TClonesArray("AliFMDDigit", 1000);
TClonesArray* digitsAddress = fDigitsArray;
rawReader->Reset();
digitsAddress->Clear();
fmdReader.ReadAdcs(digitsAddress);
FillRawsData(1,1, fmdReader.GetNErrors(0));
FillRawsData(1,2, fmdReader.GetNErrors(1));
FillRawsData(1,3, fmdReader.GetNErrors(2));
if (fUseReconstructor) {
AliESDFMD* fmd = fReconstructor->GetESDObject();
fmd->Clear();
fReconstructor->ProcessDigits(digitsAddress, fmdReader);
if (!fmd) AliFatal("No ESD object from reconstructor");
for(UShort_t det=1;det<=3;det++) {
UShort_t nrng = (det == 1 ? 1 : 2);
for (UShort_t ir = 0; ir < nrng; ir++) {
Char_t ring = (ir == 0 ? 'I' : 'O');
UShort_t nsec = (ir == 0 ? 20 : 40);
UShort_t nstr = (ir == 0 ? 512 : 256);
for(UShort_t sec =0; sec < nsec; sec++) {
for(UShort_t strip = 0; strip < nstr; strip++) {
Float_t mult = fmd->Multiplicity(det,ring,sec,strip);
if(mult == AliESDFMD::kInvalidMult) continue;
Int_t index1 = GetHalfringIndex(det, ring, 0, 1);
FillRawsData(index1,mult);
}
}
}
}
}
else {
for(Int_t i=0;i<digitsAddress->GetEntriesFast();i++) {
AliFMDDigit* digit = static_cast<AliFMDDigit*>(digitsAddress->At(i));
UShort_t det = digit->Detector();
Char_t ring = digit->Ring();
UShort_t sec = digit->Sector();
AliFMDParameters* pars = AliFMDParameters::Instance();
Short_t board = pars->GetAltroMap()->Sector2Board(ring, sec);
Int_t index1 = GetHalfringIndex(det, ring, 0, 1);
FillRawsData(index1,digit->Counts());
Int_t index2 = GetHalfringIndex(det, ring, board/16,0);
FillRawsData(index2,digit->Counts());
}
}
IncEvCountCycleRaws();
IncEvCountTotalRaws();
}
void AliFMDQADataMakerRec::MakeRecPoints(TTree* clustersTree)
{
AliFMDParameters* pars = AliFMDParameters::Instance();
fRecPointsArray.Clear();
TBranch *fmdbranch = clustersTree->GetBranch("FMD");
if (!fmdbranch) {
AliError("can't get the branch with the FMD recpoints !");
return;
}
TClonesArray* RecPointsAddress = &fRecPointsArray;
fmdbranch->SetAddress(&RecPointsAddress);
fmdbranch->GetEntry(0);
TIter next(RecPointsAddress) ;
AliFMDRecPoint * rp ;
while ((rp = static_cast<AliFMDRecPoint*>(next()))) {
FillRecPointsData(0,rp->Edep()/pars->GetEdepMip());
}
IncEvCountCycleRecPoints();
IncEvCountTotalRecPoints();
}
void AliFMDQADataMakerRec::StartOfDetectorCycle()
{
if (fUseReconstructor && fReconstructor) fReconstructor->Init();
if (fRawsQAList) {
for (Int_t index = 0 ; index < AliRecoParam::kNSpecies ; index++) {
if (!fRawsQAList[index]) continue;
AliRecoParam::EventSpecie_t specie = AliRecoParam::ConvertIndex(index);
if (specie == AliRecoParam::kCalib || specie == AliRecoParam::kCosmic)
continue;
TIter nextObject(fRawsQAList[index]);
TObject* object = 0;
while ((object = nextObject())) {
if (!object->InheritsFrom(TH1::Class())) continue;
TH1* hist = static_cast<TH1*>(object);
if (!hist->TestBit(kResetBit)) continue;
AliInfoF("Resetting histogram %s", hist->GetName());
hist->Reset("M");
hist->SetBit(kResetBit, false);
}
}
}
}
Int_t AliFMDQADataMakerRec::GetHalfringIndex(UShort_t det,
Char_t ring,
UShort_t board,
UShort_t monitor)
{
UShort_t iring = (ring == 'I' || ring == 'i' ? 1 : 0);
Int_t index = ((((det-1) & 0x3) << 3) |
((iring & 0x1) << 2) |
((board & 0x1) << 1) |
((monitor & 0x1) << 0));
#if 0
AliInfo(Form("d=%d, r=%c, b=%d, m=%d -> (%d<<3)|(%d<<2)|(%d<<1)|(%d<<0)=%2d",
det, ring, board, monitor, (det-1) & 0x3, iring & 0x1,
board & 0x1, monitor & 0x1, index));
#endif
return index-2;
}
void AliFMDQADataMakerRec::GetHalfringFromIndex(Int_t idx,
UShort_t& det,
Char_t& ring,
UShort_t& board,
UShort_t& monitor)
{
det = ((idx >> 3) & 0x3) + 1;
ring = ((idx >> 2) & 0x1) == 1 ? 'I' : 'O';
board = ((idx >> 1) & 0x1);
monitor = ((idx >> 0) & 0x1);
}
AliFMDQADataMakerRec.cxx:1 AliFMDQADataMakerRec.cxx:2 AliFMDQADataMakerRec.cxx:3 AliFMDQADataMakerRec.cxx:4 AliFMDQADataMakerRec.cxx:5 AliFMDQADataMakerRec.cxx:6 AliFMDQADataMakerRec.cxx:7 AliFMDQADataMakerRec.cxx:8 AliFMDQADataMakerRec.cxx:9 AliFMDQADataMakerRec.cxx:10 AliFMDQADataMakerRec.cxx:11 AliFMDQADataMakerRec.cxx:12 AliFMDQADataMakerRec.cxx:13 AliFMDQADataMakerRec.cxx:14 AliFMDQADataMakerRec.cxx:15 AliFMDQADataMakerRec.cxx:16 AliFMDQADataMakerRec.cxx:17 AliFMDQADataMakerRec.cxx:18 AliFMDQADataMakerRec.cxx:19 AliFMDQADataMakerRec.cxx:20 AliFMDQADataMakerRec.cxx:21 AliFMDQADataMakerRec.cxx:22 AliFMDQADataMakerRec.cxx:23 AliFMDQADataMakerRec.cxx:24 AliFMDQADataMakerRec.cxx:25 AliFMDQADataMakerRec.cxx:26 AliFMDQADataMakerRec.cxx:27 AliFMDQADataMakerRec.cxx:28 AliFMDQADataMakerRec.cxx:29 AliFMDQADataMakerRec.cxx:30 AliFMDQADataMakerRec.cxx:31 AliFMDQADataMakerRec.cxx:32 AliFMDQADataMakerRec.cxx:33 AliFMDQADataMakerRec.cxx:34 AliFMDQADataMakerRec.cxx:35 AliFMDQADataMakerRec.cxx:36 AliFMDQADataMakerRec.cxx:37 AliFMDQADataMakerRec.cxx:38 AliFMDQADataMakerRec.cxx:39 AliFMDQADataMakerRec.cxx:40 AliFMDQADataMakerRec.cxx:41 AliFMDQADataMakerRec.cxx:42 AliFMDQADataMakerRec.cxx:43 AliFMDQADataMakerRec.cxx:44 AliFMDQADataMakerRec.cxx:45 AliFMDQADataMakerRec.cxx:46 AliFMDQADataMakerRec.cxx:47 AliFMDQADataMakerRec.cxx:48 AliFMDQADataMakerRec.cxx:49 AliFMDQADataMakerRec.cxx:50 AliFMDQADataMakerRec.cxx:51 AliFMDQADataMakerRec.cxx:52 AliFMDQADataMakerRec.cxx:53 AliFMDQADataMakerRec.cxx:54 AliFMDQADataMakerRec.cxx:55 AliFMDQADataMakerRec.cxx:56 AliFMDQADataMakerRec.cxx:57 AliFMDQADataMakerRec.cxx:58 AliFMDQADataMakerRec.cxx:59 AliFMDQADataMakerRec.cxx:60 AliFMDQADataMakerRec.cxx:61 AliFMDQADataMakerRec.cxx:62 AliFMDQADataMakerRec.cxx:63 AliFMDQADataMakerRec.cxx:64 AliFMDQADataMakerRec.cxx:65 AliFMDQADataMakerRec.cxx:66 AliFMDQADataMakerRec.cxx:67 AliFMDQADataMakerRec.cxx:68 AliFMDQADataMakerRec.cxx:69 AliFMDQADataMakerRec.cxx:70 AliFMDQADataMakerRec.cxx:71 AliFMDQADataMakerRec.cxx:72 AliFMDQADataMakerRec.cxx:73 AliFMDQADataMakerRec.cxx:74 AliFMDQADataMakerRec.cxx:75 AliFMDQADataMakerRec.cxx:76 AliFMDQADataMakerRec.cxx:77 AliFMDQADataMakerRec.cxx:78 AliFMDQADataMakerRec.cxx:79 AliFMDQADataMakerRec.cxx:80 AliFMDQADataMakerRec.cxx:81 AliFMDQADataMakerRec.cxx:82 AliFMDQADataMakerRec.cxx:83 AliFMDQADataMakerRec.cxx:84 AliFMDQADataMakerRec.cxx:85 AliFMDQADataMakerRec.cxx:86 AliFMDQADataMakerRec.cxx:87 AliFMDQADataMakerRec.cxx:88 AliFMDQADataMakerRec.cxx:89 AliFMDQADataMakerRec.cxx:90 AliFMDQADataMakerRec.cxx:91 AliFMDQADataMakerRec.cxx:92 AliFMDQADataMakerRec.cxx:93 AliFMDQADataMakerRec.cxx:94 AliFMDQADataMakerRec.cxx:95 AliFMDQADataMakerRec.cxx:96 AliFMDQADataMakerRec.cxx:97 AliFMDQADataMakerRec.cxx:98 AliFMDQADataMakerRec.cxx:99 AliFMDQADataMakerRec.cxx:100 AliFMDQADataMakerRec.cxx:101 AliFMDQADataMakerRec.cxx:102 AliFMDQADataMakerRec.cxx:103 AliFMDQADataMakerRec.cxx:104 AliFMDQADataMakerRec.cxx:105 AliFMDQADataMakerRec.cxx:106 AliFMDQADataMakerRec.cxx:107 AliFMDQADataMakerRec.cxx:108 AliFMDQADataMakerRec.cxx:109 AliFMDQADataMakerRec.cxx:110 AliFMDQADataMakerRec.cxx:111 AliFMDQADataMakerRec.cxx:112 AliFMDQADataMakerRec.cxx:113 AliFMDQADataMakerRec.cxx:114 AliFMDQADataMakerRec.cxx:115 AliFMDQADataMakerRec.cxx:116 AliFMDQADataMakerRec.cxx:117 AliFMDQADataMakerRec.cxx:118 AliFMDQADataMakerRec.cxx:119 AliFMDQADataMakerRec.cxx:120 AliFMDQADataMakerRec.cxx:121 AliFMDQADataMakerRec.cxx:122 AliFMDQADataMakerRec.cxx:123 AliFMDQADataMakerRec.cxx:124 AliFMDQADataMakerRec.cxx:125 AliFMDQADataMakerRec.cxx:126 AliFMDQADataMakerRec.cxx:127 AliFMDQADataMakerRec.cxx:128 AliFMDQADataMakerRec.cxx:129 AliFMDQADataMakerRec.cxx:130 AliFMDQADataMakerRec.cxx:131 AliFMDQADataMakerRec.cxx:132 AliFMDQADataMakerRec.cxx:133 AliFMDQADataMakerRec.cxx:134 AliFMDQADataMakerRec.cxx:135 AliFMDQADataMakerRec.cxx:136 AliFMDQADataMakerRec.cxx:137 AliFMDQADataMakerRec.cxx:138 AliFMDQADataMakerRec.cxx:139 AliFMDQADataMakerRec.cxx:140 AliFMDQADataMakerRec.cxx:141 AliFMDQADataMakerRec.cxx:142 AliFMDQADataMakerRec.cxx:143 AliFMDQADataMakerRec.cxx:144 AliFMDQADataMakerRec.cxx:145 AliFMDQADataMakerRec.cxx:146 AliFMDQADataMakerRec.cxx:147 AliFMDQADataMakerRec.cxx:148 AliFMDQADataMakerRec.cxx:149 AliFMDQADataMakerRec.cxx:150 AliFMDQADataMakerRec.cxx:151 AliFMDQADataMakerRec.cxx:152 AliFMDQADataMakerRec.cxx:153 AliFMDQADataMakerRec.cxx:154 AliFMDQADataMakerRec.cxx:155 AliFMDQADataMakerRec.cxx:156 AliFMDQADataMakerRec.cxx:157 AliFMDQADataMakerRec.cxx:158 AliFMDQADataMakerRec.cxx:159 AliFMDQADataMakerRec.cxx:160 AliFMDQADataMakerRec.cxx:161 AliFMDQADataMakerRec.cxx:162 AliFMDQADataMakerRec.cxx:163 AliFMDQADataMakerRec.cxx:164 AliFMDQADataMakerRec.cxx:165 AliFMDQADataMakerRec.cxx:166 AliFMDQADataMakerRec.cxx:167 AliFMDQADataMakerRec.cxx:168 AliFMDQADataMakerRec.cxx:169 AliFMDQADataMakerRec.cxx:170 AliFMDQADataMakerRec.cxx:171 AliFMDQADataMakerRec.cxx:172 AliFMDQADataMakerRec.cxx:173 AliFMDQADataMakerRec.cxx:174 AliFMDQADataMakerRec.cxx:175 AliFMDQADataMakerRec.cxx:176 AliFMDQADataMakerRec.cxx:177 AliFMDQADataMakerRec.cxx:178 AliFMDQADataMakerRec.cxx:179 AliFMDQADataMakerRec.cxx:180 AliFMDQADataMakerRec.cxx:181 AliFMDQADataMakerRec.cxx:182 AliFMDQADataMakerRec.cxx:183 AliFMDQADataMakerRec.cxx:184 AliFMDQADataMakerRec.cxx:185 AliFMDQADataMakerRec.cxx:186 AliFMDQADataMakerRec.cxx:187 AliFMDQADataMakerRec.cxx:188 AliFMDQADataMakerRec.cxx:189 AliFMDQADataMakerRec.cxx:190 AliFMDQADataMakerRec.cxx:191 AliFMDQADataMakerRec.cxx:192 AliFMDQADataMakerRec.cxx:193 AliFMDQADataMakerRec.cxx:194 AliFMDQADataMakerRec.cxx:195 AliFMDQADataMakerRec.cxx:196 AliFMDQADataMakerRec.cxx:197 AliFMDQADataMakerRec.cxx:198 AliFMDQADataMakerRec.cxx:199 AliFMDQADataMakerRec.cxx:200 AliFMDQADataMakerRec.cxx:201 AliFMDQADataMakerRec.cxx:202 AliFMDQADataMakerRec.cxx:203 AliFMDQADataMakerRec.cxx:204 AliFMDQADataMakerRec.cxx:205 AliFMDQADataMakerRec.cxx:206 AliFMDQADataMakerRec.cxx:207 AliFMDQADataMakerRec.cxx:208 AliFMDQADataMakerRec.cxx:209 AliFMDQADataMakerRec.cxx:210 AliFMDQADataMakerRec.cxx:211 AliFMDQADataMakerRec.cxx:212 AliFMDQADataMakerRec.cxx:213 AliFMDQADataMakerRec.cxx:214 AliFMDQADataMakerRec.cxx:215 AliFMDQADataMakerRec.cxx:216 AliFMDQADataMakerRec.cxx:217 AliFMDQADataMakerRec.cxx:218 AliFMDQADataMakerRec.cxx:219 AliFMDQADataMakerRec.cxx:220 AliFMDQADataMakerRec.cxx:221 AliFMDQADataMakerRec.cxx:222 AliFMDQADataMakerRec.cxx:223 AliFMDQADataMakerRec.cxx:224 AliFMDQADataMakerRec.cxx:225 AliFMDQADataMakerRec.cxx:226 AliFMDQADataMakerRec.cxx:227 AliFMDQADataMakerRec.cxx:228 AliFMDQADataMakerRec.cxx:229 AliFMDQADataMakerRec.cxx:230 AliFMDQADataMakerRec.cxx:231 AliFMDQADataMakerRec.cxx:232 AliFMDQADataMakerRec.cxx:233 AliFMDQADataMakerRec.cxx:234 AliFMDQADataMakerRec.cxx:235 AliFMDQADataMakerRec.cxx:236 AliFMDQADataMakerRec.cxx:237 AliFMDQADataMakerRec.cxx:238 AliFMDQADataMakerRec.cxx:239 AliFMDQADataMakerRec.cxx:240 AliFMDQADataMakerRec.cxx:241 AliFMDQADataMakerRec.cxx:242 AliFMDQADataMakerRec.cxx:243 AliFMDQADataMakerRec.cxx:244 AliFMDQADataMakerRec.cxx:245 AliFMDQADataMakerRec.cxx:246 AliFMDQADataMakerRec.cxx:247 AliFMDQADataMakerRec.cxx:248 AliFMDQADataMakerRec.cxx:249 AliFMDQADataMakerRec.cxx:250 AliFMDQADataMakerRec.cxx:251 AliFMDQADataMakerRec.cxx:252 AliFMDQADataMakerRec.cxx:253 AliFMDQADataMakerRec.cxx:254 AliFMDQADataMakerRec.cxx:255 AliFMDQADataMakerRec.cxx:256 AliFMDQADataMakerRec.cxx:257 AliFMDQADataMakerRec.cxx:258 AliFMDQADataMakerRec.cxx:259 AliFMDQADataMakerRec.cxx:260 AliFMDQADataMakerRec.cxx:261 AliFMDQADataMakerRec.cxx:262 AliFMDQADataMakerRec.cxx:263 AliFMDQADataMakerRec.cxx:264 AliFMDQADataMakerRec.cxx:265 AliFMDQADataMakerRec.cxx:266 AliFMDQADataMakerRec.cxx:267 AliFMDQADataMakerRec.cxx:268 AliFMDQADataMakerRec.cxx:269 AliFMDQADataMakerRec.cxx:270 AliFMDQADataMakerRec.cxx:271 AliFMDQADataMakerRec.cxx:272 AliFMDQADataMakerRec.cxx:273 AliFMDQADataMakerRec.cxx:274 AliFMDQADataMakerRec.cxx:275 AliFMDQADataMakerRec.cxx:276 AliFMDQADataMakerRec.cxx:277 AliFMDQADataMakerRec.cxx:278 AliFMDQADataMakerRec.cxx:279 AliFMDQADataMakerRec.cxx:280 AliFMDQADataMakerRec.cxx:281 AliFMDQADataMakerRec.cxx:282 AliFMDQADataMakerRec.cxx:283 AliFMDQADataMakerRec.cxx:284 AliFMDQADataMakerRec.cxx:285 AliFMDQADataMakerRec.cxx:286 AliFMDQADataMakerRec.cxx:287 AliFMDQADataMakerRec.cxx:288 AliFMDQADataMakerRec.cxx:289 AliFMDQADataMakerRec.cxx:290 AliFMDQADataMakerRec.cxx:291 AliFMDQADataMakerRec.cxx:292 AliFMDQADataMakerRec.cxx:293 AliFMDQADataMakerRec.cxx:294 AliFMDQADataMakerRec.cxx:295 AliFMDQADataMakerRec.cxx:296 AliFMDQADataMakerRec.cxx:297 AliFMDQADataMakerRec.cxx:298 AliFMDQADataMakerRec.cxx:299 AliFMDQADataMakerRec.cxx:300 AliFMDQADataMakerRec.cxx:301 AliFMDQADataMakerRec.cxx:302 AliFMDQADataMakerRec.cxx:303 AliFMDQADataMakerRec.cxx:304 AliFMDQADataMakerRec.cxx:305 AliFMDQADataMakerRec.cxx:306 AliFMDQADataMakerRec.cxx:307 AliFMDQADataMakerRec.cxx:308 AliFMDQADataMakerRec.cxx:309 AliFMDQADataMakerRec.cxx:310 AliFMDQADataMakerRec.cxx:311 AliFMDQADataMakerRec.cxx:312 AliFMDQADataMakerRec.cxx:313 AliFMDQADataMakerRec.cxx:314 AliFMDQADataMakerRec.cxx:315 AliFMDQADataMakerRec.cxx:316 AliFMDQADataMakerRec.cxx:317 AliFMDQADataMakerRec.cxx:318 AliFMDQADataMakerRec.cxx:319 AliFMDQADataMakerRec.cxx:320 AliFMDQADataMakerRec.cxx:321 AliFMDQADataMakerRec.cxx:322 AliFMDQADataMakerRec.cxx:323 AliFMDQADataMakerRec.cxx:324 AliFMDQADataMakerRec.cxx:325 AliFMDQADataMakerRec.cxx:326 AliFMDQADataMakerRec.cxx:327 AliFMDQADataMakerRec.cxx:328 AliFMDQADataMakerRec.cxx:329 AliFMDQADataMakerRec.cxx:330 AliFMDQADataMakerRec.cxx:331 AliFMDQADataMakerRec.cxx:332 AliFMDQADataMakerRec.cxx:333 AliFMDQADataMakerRec.cxx:334 AliFMDQADataMakerRec.cxx:335 AliFMDQADataMakerRec.cxx:336 AliFMDQADataMakerRec.cxx:337 AliFMDQADataMakerRec.cxx:338 AliFMDQADataMakerRec.cxx:339 AliFMDQADataMakerRec.cxx:340 AliFMDQADataMakerRec.cxx:341 AliFMDQADataMakerRec.cxx:342 AliFMDQADataMakerRec.cxx:343 AliFMDQADataMakerRec.cxx:344 AliFMDQADataMakerRec.cxx:345 AliFMDQADataMakerRec.cxx:346 AliFMDQADataMakerRec.cxx:347 AliFMDQADataMakerRec.cxx:348 AliFMDQADataMakerRec.cxx:349 AliFMDQADataMakerRec.cxx:350 AliFMDQADataMakerRec.cxx:351 AliFMDQADataMakerRec.cxx:352 AliFMDQADataMakerRec.cxx:353 AliFMDQADataMakerRec.cxx:354 AliFMDQADataMakerRec.cxx:355 AliFMDQADataMakerRec.cxx:356 AliFMDQADataMakerRec.cxx:357 AliFMDQADataMakerRec.cxx:358 AliFMDQADataMakerRec.cxx:359 AliFMDQADataMakerRec.cxx:360 AliFMDQADataMakerRec.cxx:361 AliFMDQADataMakerRec.cxx:362 AliFMDQADataMakerRec.cxx:363 AliFMDQADataMakerRec.cxx:364 AliFMDQADataMakerRec.cxx:365 AliFMDQADataMakerRec.cxx:366 AliFMDQADataMakerRec.cxx:367 AliFMDQADataMakerRec.cxx:368 AliFMDQADataMakerRec.cxx:369 AliFMDQADataMakerRec.cxx:370 AliFMDQADataMakerRec.cxx:371 AliFMDQADataMakerRec.cxx:372 AliFMDQADataMakerRec.cxx:373 AliFMDQADataMakerRec.cxx:374 AliFMDQADataMakerRec.cxx:375 AliFMDQADataMakerRec.cxx:376 AliFMDQADataMakerRec.cxx:377 AliFMDQADataMakerRec.cxx:378 AliFMDQADataMakerRec.cxx:379 AliFMDQADataMakerRec.cxx:380 AliFMDQADataMakerRec.cxx:381 AliFMDQADataMakerRec.cxx:382 AliFMDQADataMakerRec.cxx:383 AliFMDQADataMakerRec.cxx:384 AliFMDQADataMakerRec.cxx:385 AliFMDQADataMakerRec.cxx:386 AliFMDQADataMakerRec.cxx:387 AliFMDQADataMakerRec.cxx:388 AliFMDQADataMakerRec.cxx:389 AliFMDQADataMakerRec.cxx:390 AliFMDQADataMakerRec.cxx:391 AliFMDQADataMakerRec.cxx:392 AliFMDQADataMakerRec.cxx:393 AliFMDQADataMakerRec.cxx:394 AliFMDQADataMakerRec.cxx:395 AliFMDQADataMakerRec.cxx:396 AliFMDQADataMakerRec.cxx:397 AliFMDQADataMakerRec.cxx:398 AliFMDQADataMakerRec.cxx:399 AliFMDQADataMakerRec.cxx:400 AliFMDQADataMakerRec.cxx:401 AliFMDQADataMakerRec.cxx:402 AliFMDQADataMakerRec.cxx:403 AliFMDQADataMakerRec.cxx:404 AliFMDQADataMakerRec.cxx:405 AliFMDQADataMakerRec.cxx:406 AliFMDQADataMakerRec.cxx:407 AliFMDQADataMakerRec.cxx:408 AliFMDQADataMakerRec.cxx:409 AliFMDQADataMakerRec.cxx:410 AliFMDQADataMakerRec.cxx:411 AliFMDQADataMakerRec.cxx:412 AliFMDQADataMakerRec.cxx:413 AliFMDQADataMakerRec.cxx:414 AliFMDQADataMakerRec.cxx:415 AliFMDQADataMakerRec.cxx:416 AliFMDQADataMakerRec.cxx:417 AliFMDQADataMakerRec.cxx:418 AliFMDQADataMakerRec.cxx:419 AliFMDQADataMakerRec.cxx:420 AliFMDQADataMakerRec.cxx:421 AliFMDQADataMakerRec.cxx:422 AliFMDQADataMakerRec.cxx:423 AliFMDQADataMakerRec.cxx:424 AliFMDQADataMakerRec.cxx:425 AliFMDQADataMakerRec.cxx:426 AliFMDQADataMakerRec.cxx:427 AliFMDQADataMakerRec.cxx:428 AliFMDQADataMakerRec.cxx:429 AliFMDQADataMakerRec.cxx:430 AliFMDQADataMakerRec.cxx:431 AliFMDQADataMakerRec.cxx:432 AliFMDQADataMakerRec.cxx:433 AliFMDQADataMakerRec.cxx:434 AliFMDQADataMakerRec.cxx:435 AliFMDQADataMakerRec.cxx:436 AliFMDQADataMakerRec.cxx:437 AliFMDQADataMakerRec.cxx:438 AliFMDQADataMakerRec.cxx:439 AliFMDQADataMakerRec.cxx:440 AliFMDQADataMakerRec.cxx:441 AliFMDQADataMakerRec.cxx:442 AliFMDQADataMakerRec.cxx:443 AliFMDQADataMakerRec.cxx:444 AliFMDQADataMakerRec.cxx:445 AliFMDQADataMakerRec.cxx:446 AliFMDQADataMakerRec.cxx:447 AliFMDQADataMakerRec.cxx:448 AliFMDQADataMakerRec.cxx:449 AliFMDQADataMakerRec.cxx:450 AliFMDQADataMakerRec.cxx:451 AliFMDQADataMakerRec.cxx:452 AliFMDQADataMakerRec.cxx:453 AliFMDQADataMakerRec.cxx:454 AliFMDQADataMakerRec.cxx:455 AliFMDQADataMakerRec.cxx:456 AliFMDQADataMakerRec.cxx:457 AliFMDQADataMakerRec.cxx:458 AliFMDQADataMakerRec.cxx:459 AliFMDQADataMakerRec.cxx:460 AliFMDQADataMakerRec.cxx:461 AliFMDQADataMakerRec.cxx:462 AliFMDQADataMakerRec.cxx:463 AliFMDQADataMakerRec.cxx:464 AliFMDQADataMakerRec.cxx:465 AliFMDQADataMakerRec.cxx:466 AliFMDQADataMakerRec.cxx:467 AliFMDQADataMakerRec.cxx:468 AliFMDQADataMakerRec.cxx:469 AliFMDQADataMakerRec.cxx:470 AliFMDQADataMakerRec.cxx:471 AliFMDQADataMakerRec.cxx:472 AliFMDQADataMakerRec.cxx:473 AliFMDQADataMakerRec.cxx:474 AliFMDQADataMakerRec.cxx:475 AliFMDQADataMakerRec.cxx:476 AliFMDQADataMakerRec.cxx:477 AliFMDQADataMakerRec.cxx:478 AliFMDQADataMakerRec.cxx:479 AliFMDQADataMakerRec.cxx:480 AliFMDQADataMakerRec.cxx:481 AliFMDQADataMakerRec.cxx:482 AliFMDQADataMakerRec.cxx:483 AliFMDQADataMakerRec.cxx:484 AliFMDQADataMakerRec.cxx:485 AliFMDQADataMakerRec.cxx:486 AliFMDQADataMakerRec.cxx:487 AliFMDQADataMakerRec.cxx:488 AliFMDQADataMakerRec.cxx:489 AliFMDQADataMakerRec.cxx:490 AliFMDQADataMakerRec.cxx:491 AliFMDQADataMakerRec.cxx:492 AliFMDQADataMakerRec.cxx:493 AliFMDQADataMakerRec.cxx:494 AliFMDQADataMakerRec.cxx:495 AliFMDQADataMakerRec.cxx:496 AliFMDQADataMakerRec.cxx:497 AliFMDQADataMakerRec.cxx:498 AliFMDQADataMakerRec.cxx:499 AliFMDQADataMakerRec.cxx:500 AliFMDQADataMakerRec.cxx:501 AliFMDQADataMakerRec.cxx:502 AliFMDQADataMakerRec.cxx:503 AliFMDQADataMakerRec.cxx:504 AliFMDQADataMakerRec.cxx:505 AliFMDQADataMakerRec.cxx:506 AliFMDQADataMakerRec.cxx:507 AliFMDQADataMakerRec.cxx:508 AliFMDQADataMakerRec.cxx:509 AliFMDQADataMakerRec.cxx:510 AliFMDQADataMakerRec.cxx:511 AliFMDQADataMakerRec.cxx:512 AliFMDQADataMakerRec.cxx:513 AliFMDQADataMakerRec.cxx:514 AliFMDQADataMakerRec.cxx:515 AliFMDQADataMakerRec.cxx:516 AliFMDQADataMakerRec.cxx:517 AliFMDQADataMakerRec.cxx:518 AliFMDQADataMakerRec.cxx:519 AliFMDQADataMakerRec.cxx:520 AliFMDQADataMakerRec.cxx:521 AliFMDQADataMakerRec.cxx:522 AliFMDQADataMakerRec.cxx:523 AliFMDQADataMakerRec.cxx:524 AliFMDQADataMakerRec.cxx:525 AliFMDQADataMakerRec.cxx:526 AliFMDQADataMakerRec.cxx:527 AliFMDQADataMakerRec.cxx:528 AliFMDQADataMakerRec.cxx:529 AliFMDQADataMakerRec.cxx:530 AliFMDQADataMakerRec.cxx:531 AliFMDQADataMakerRec.cxx:532 AliFMDQADataMakerRec.cxx:533 AliFMDQADataMakerRec.cxx:534 AliFMDQADataMakerRec.cxx:535 AliFMDQADataMakerRec.cxx:536 AliFMDQADataMakerRec.cxx:537 AliFMDQADataMakerRec.cxx:538 AliFMDQADataMakerRec.cxx:539 AliFMDQADataMakerRec.cxx:540 AliFMDQADataMakerRec.cxx:541 AliFMDQADataMakerRec.cxx:542 AliFMDQADataMakerRec.cxx:543 AliFMDQADataMakerRec.cxx:544 AliFMDQADataMakerRec.cxx:545 AliFMDQADataMakerRec.cxx:546 AliFMDQADataMakerRec.cxx:547 AliFMDQADataMakerRec.cxx:548 AliFMDQADataMakerRec.cxx:549 AliFMDQADataMakerRec.cxx:550 AliFMDQADataMakerRec.cxx:551 AliFMDQADataMakerRec.cxx:552 AliFMDQADataMakerRec.cxx:553 AliFMDQADataMakerRec.cxx:554 AliFMDQADataMakerRec.cxx:555 AliFMDQADataMakerRec.cxx:556 AliFMDQADataMakerRec.cxx:557 AliFMDQADataMakerRec.cxx:558 AliFMDQADataMakerRec.cxx:559 AliFMDQADataMakerRec.cxx:560 AliFMDQADataMakerRec.cxx:561 AliFMDQADataMakerRec.cxx:562 AliFMDQADataMakerRec.cxx:563 AliFMDQADataMakerRec.cxx:564 AliFMDQADataMakerRec.cxx:565 AliFMDQADataMakerRec.cxx:566 AliFMDQADataMakerRec.cxx:567 AliFMDQADataMakerRec.cxx:568 AliFMDQADataMakerRec.cxx:569 AliFMDQADataMakerRec.cxx:570 AliFMDQADataMakerRec.cxx:571 AliFMDQADataMakerRec.cxx:572 AliFMDQADataMakerRec.cxx:573 AliFMDQADataMakerRec.cxx:574 AliFMDQADataMakerRec.cxx:575 AliFMDQADataMakerRec.cxx:576 AliFMDQADataMakerRec.cxx:577 AliFMDQADataMakerRec.cxx:578 AliFMDQADataMakerRec.cxx:579 AliFMDQADataMakerRec.cxx:580 AliFMDQADataMakerRec.cxx:581 AliFMDQADataMakerRec.cxx:582 AliFMDQADataMakerRec.cxx:583 AliFMDQADataMakerRec.cxx:584 AliFMDQADataMakerRec.cxx:585 AliFMDQADataMakerRec.cxx:586 AliFMDQADataMakerRec.cxx:587 AliFMDQADataMakerRec.cxx:588 AliFMDQADataMakerRec.cxx:589 AliFMDQADataMakerRec.cxx:590 AliFMDQADataMakerRec.cxx:591 AliFMDQADataMakerRec.cxx:592 AliFMDQADataMakerRec.cxx:593 AliFMDQADataMakerRec.cxx:594 AliFMDQADataMakerRec.cxx:595 AliFMDQADataMakerRec.cxx:596 AliFMDQADataMakerRec.cxx:597 AliFMDQADataMakerRec.cxx:598 AliFMDQADataMakerRec.cxx:599 AliFMDQADataMakerRec.cxx:600