#include <iostream>
#include <fstream>
#include <TString.h>
#include <TRandom.h>
#include <TLegend.h>
#include <TLine.h>
#include <TCanvas.h>
#include <TROOT.h>
#include <TStyle.h>
#include <TH1.h>
#include <TH1F.h>
#include <TMath.h>
#include <TVectorD.h>
#include <THashTable.h>
#include <TObjString.h>
#include <TTimeStamp.h>
#include <TObjString.h>
#include <TTreeStream.h>
#include <TFile.h>
#include <TKey.h>
#include <TGraph.h>
#include <TDirectory.h>
#include <TFriendElement.h>
#include <TGrid.h>
#include <TGeoManager.h>
#include "AliTRDCalDet.h"
#include "AliTRDCalPad.h"
#include "AliTRDCalROC.h"
#include "AliTRDCalChamberStatus.h"
#include "AliTRDCalSingleChamberStatus.h"
#include "AliTRDCalPadStatus.h"
#include "AliTRDCalDCSv2.h"
#include "AliTRDCalDCSFEEv2.h"
#include "AliTRDcalibDB.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
#include "AliGRPObject.h"
#include "AliTRDalignment.h"
#include "AliTRDgeometry.h"
#include "AliTRDpadPlane.h"
#include "AliTRDCalibViewer.h"
using namespace std;
ClassImp(AliTRDCalibViewer)
AliTRDCalibViewer::AliTRDCalibViewer()
:AliBaseCalibViewer()
{
}
AliTRDCalibViewer::AliTRDCalibViewer(const AliTRDCalibViewer &c)
:AliBaseCalibViewer(c)
{
}
AliTRDCalibViewer::AliTRDCalibViewer(TTree* tree)
:AliBaseCalibViewer(tree)
{
}
AliTRDCalibViewer::AliTRDCalibViewer(const char* fileName, const char* treeName)
:AliBaseCalibViewer(fileName, treeName)
{
}
AliTRDCalibViewer& AliTRDCalibViewer::operator=(const AliTRDCalibViewer& param)
{
if (this == ¶m) {
return *this;
}
fTree = param.fTree;
fTreeMustBeDeleted = param.fTreeMustBeDeleted;
fListOfObjectsToBeDeleted = param.fListOfObjectsToBeDeleted;
fAbbreviation = param.fAbbreviation;
fAppendString = param.fAppendString;
return(*this);
}
AliTRDCalibViewer::~AliTRDCalibViewer()
{
}
const char* AliTRDCalibViewer::AddAbbreviations(char* c, Bool_t printDrawCommand){
TString str(c);
TString removeString = "!#";
TString replaceString = "";
TString searchString = "";
TString normString = "";
TObjArray *listOfVariables = GetListOfVariables();
listOfVariables->Add(new TObjString("SuperModule"));
listOfVariables->Add(new TObjString("Layer"));
listOfVariables->Add(new TObjString("Stack"));
listOfVariables->Add(new TObjString("Channel"));
listOfVariables->Add(new TObjString("Row"));
listOfVariables->Add(new TObjString("Column"));
listOfVariables->Add(new TObjString("Chamber"));
listOfVariables->Add(new TObjString("PadSuperRow"));
listOfVariables->Add(new TObjString("PadSuperColumn"));
listOfVariables->Add(new TObjString("MCMSuperRow"));
listOfVariables->Add(new TObjString("MCMSuperColumn"));
listOfVariables->Add(new TObjString("ROB"));
listOfVariables->Add(new TObjString("MCM"));
TObjArray *listOfNormalizationVariables = GetListOfNormalizationVariables();
Int_t nVariables = listOfVariables->GetEntriesFast();
Int_t nNorm = listOfNormalizationVariables->GetEntriesFast();
Int_t *varLengths = new Int_t[nVariables];
for (Int_t i = 0; i < nVariables; i++) {
varLengths[i] = ((TObjString*)listOfVariables->At(i))->String().Length();
}
Int_t *normLengths = new Int_t[nNorm];
for (Int_t i = 0; i < nNorm; i++) {
normLengths[i] = ((TObjString*)listOfNormalizationVariables->At(i))->String().Length();
}
Int_t *varSort = new Int_t[nVariables+1];
TMath::Sort(nVariables, varLengths, varSort, kTRUE);
Int_t *normSort = new Int_t[nNorm+1];
TMath::Sort(nNorm, normLengths, normSort, kTRUE);
for (Int_t ivar = 0; ivar < nVariables; ivar++) {
searchString = ((TObjString*)listOfVariables->At(varSort[ivar]))->String();
replaceString = "";
for (Int_t i = 0; i < searchString.Length(); i++) {
replaceString.Append(searchString[i]);
if (i == 0) replaceString.Append(removeString);
}
for (Int_t inorm = 0; inorm < nNorm; inorm++) {
normString = ((TObjString*)listOfNormalizationVariables->At(normSort[inorm]))->String();
str.ReplaceAll(searchString + normString, replaceString + normString);
}
str.ReplaceAll(searchString + fAbbreviation, replaceString + fAbbreviation);
str.ReplaceAll(searchString + fAppendString, replaceString + fAppendString);
str.ReplaceAll(searchString, replaceString + fAbbreviation);
}
str.ReplaceAll(removeString, "");
if (printDrawCommand) std::cout << "The string looks now like: " << str.Data() << std::endl;
delete [] varSort;
delete [] normSort;
return str.Data();
}
TObjArray* AliTRDCalibViewer::GetListOfVariables(Bool_t printList) {
TObjArray* arr = new TObjArray();
TObjString* str = 0;
if (!fTree) {
return 0;
}
Int_t nentries = fTree->GetListOfBranches()->GetEntries();
for (Int_t i = 0; i < nentries; i++) {
str = new TObjString(fTree->GetListOfBranches()->At(i)->GetName());
str->String().ReplaceAll("_Mean", "");
str->String().ReplaceAll("_RMS", "");
str->String().ReplaceAll("_Median", "");
str->String().ReplaceAll(".", "");
str->String().ReplaceAll("_Run", "");
str->String().ReplaceAll("_SuperModule", "");
str->String().ReplaceAll("_Chamber", "");
if (!arr->FindObject(str) &&
!(str->String() == "run" ||
str->String() == "SuperModule" || str->String() == "Layer" || str->String() == "Stack" ||
str->String() == "Chamber" ||
str->String() == "Channel" || str->String() == "Row" || str->String() == "Column" ||
str->String() == "PadSuperRow" || str->String() == "PadSuperColumn" || str->String() == "MCMSuperRow"
|| str->String() == "MCMSuperColumn" || str->String() == "MCM" || str->String() == "ROB")) {
arr->Add(str);
}
}
if (fTree->GetListOfFriends()) {
for (Int_t ifriend = 0; ifriend < fTree->GetListOfFriends()->GetEntries(); ifriend++){
if (TString(fTree->GetListOfFriends()->At(ifriend)->ClassName()) != "TFriendElement") continue;
TFriendElement *friendElement = (TFriendElement*)fTree->GetListOfFriends()->At(ifriend);
if (friendElement->GetTree() == 0) continue;
for (Int_t i = 0; i < friendElement->GetTree()->GetListOfBranches()->GetEntries(); i++) {
str = new TObjString(friendElement->GetTree()->GetListOfBranches()->At(i)->GetName());
str->String().ReplaceAll("_Mean", "");
str->String().ReplaceAll("_RMS", "");
str->String().ReplaceAll("_Median", "");
str->String().ReplaceAll(".", "");
str->String().ReplaceAll("_Run", "");
str->String().ReplaceAll("_SuperModule", "");
str->String().ReplaceAll("_Chamber", "");
if (!(str->String() == "run" ||
str->String() == "SuperModule" || str->String() == "Layer" || str->String() == "Stack" ||
str->String() == "Chamber" ||
str->String() == "Channel" || str->String() == "Row" || str->String() == "Column" ||
str->String() == "PadSuperRow" || str->String() == "PadSuperColumn" || str->String() == "MCMSuperRow"
|| str->String() == "MCMSuperColumn" || str->String() == "MCM" || str->String() == "ROB")){
str->String().Insert(0, ".");
str->String().Insert(0, friendElement->GetName());
if (!arr->FindObject(str)) {
arr->Add(str);
}
}
}
}
}
arr->Sort();
if (printList) {
TIterator* iter = arr->MakeIterator();
iter->Reset();
TObjString* currentStr = 0;
while ( (currentStr = (TObjString*)(iter->Next())) ) {
std::cout << currentStr->GetString().Data() << std::endl;
}
delete iter;
}
return arr;
}
TObjArray* AliTRDCalibViewer::GetListOfNormalizationVariables(Bool_t printList) const{
TObjArray* arr = new TObjArray();
arr->Add(new TObjString("_Mean_Run"));
arr->Add(new TObjString("_Mean_SuperModule"));
arr->Add(new TObjString("_Mean_Chamber"));
arr->Add(new TObjString("_Median_Run"));
arr->Add(new TObjString("_Median_SuperModule"));
arr->Add(new TObjString("_Median_Chamber"));
if (printList) {
TIterator* iter = arr->MakeIterator();
iter->Reset();
TObjString* currentStr = 0;
while ((currentStr = (TObjString*)(iter->Next()))) {
std::cout << currentStr->GetString().Data() << std::endl;
}
delete iter;
}
return arr;
}
void AliTRDCalibViewer::GetLayerSectorStack(TString trdString, Int_t& layerNo, Int_t& sectorNo, Int_t& stackNo) const {
TString cName = trdString.Data();
Char_t cLayer[2];
Char_t cSector[3];
Char_t cStack[2];
cLayer[0] = cName[5];
cLayer[1] = 0;
cSector[0] = cName[12];
cSector[1] = cName[13];
cSector[2] = 0;
cStack[0] = cName[19];
cStack[1] = 0;
layerNo = atoi(cLayer);
sectorNo = atoi(cSector);
stackNo = atoi(cStack);
return;
}
Int_t AliTRDCalibViewer::EasyDraw(const char* drawCommand, const char* sector, const char* cuts, const char* drawOptions, Bool_t writeDrawCommand) const {
TString drawStr(drawCommand);
TString sectorStr(sector);
Int_t layerNo = -1;
Int_t sectorNo = -1;
Int_t stackNo = -1;
GetLayerSectorStack(sectorStr, layerNo, sectorNo, stackNo);
if(layerNo==-1) {
Warning("EasyDraw", "The sector string must always contain the Layer number!");
return -1;
}
if(layerNo<0 || layerNo>5) {
Warning("EasyDraw", "The Layer number must be in the range [0,5] !");
return -1;
}
if(sectorNo!=-1 && (sectorNo<0 || sectorNo>17)) {
Warning("EasyDraw", "The SuperModule number must be in the range [0,17] !");
return -1;
}
if(stackNo!=-1 && (stackNo<0 || stackNo>4)) {
Warning("EasyDraw", "The Stack number must be in the range [0,4] !");
return -1;
}
TString cutStr("");
Bool_t dangerousToDraw = drawStr.Contains(":") || drawStr.Contains(">>");
if (dangerousToDraw) {
Warning("EasyDraw", "The draw string must not contain ':' or '>>'. Using only first variable for drawing!");
drawStr.Resize(drawStr.First(":"));
}
TString drawOptionsStr("");
TRandom rnd(0);
Int_t rndNumber = rnd.Integer(10000);
if (drawOptions && strcmp(drawOptions, "") != 0)
drawOptionsStr += drawOptions;
else
drawOptionsStr += "profcolz";
const Int_t gkNRows[ 5] = {16, 16, 12, 16, 16};
if(drawStr.Contains("Status") || drawStr.Contains("Gain") || drawStr.Contains("Noise") ||
drawStr.Contains("Vdrift") || drawStr.Contains("T0") ||
drawStr.Contains("gain") || drawStr.Contains("chiSquare")) {
if(sectorNo==-1 && stackNo==-1) {
drawStr += Form(":PadSuperColumn%s:PadSuperRow%s>>prof", fAppendString.Data(), fAppendString.Data());
drawStr += rndNumber;
drawStr += "(76,-0.5,75.5,2592,-0.5,2591.5)";
cutStr += Form("Layer==%d", layerNo);
}
else if(sectorNo!=-1 && stackNo==-1) {
drawStr += Form(":Column%s:PadSuperRow%s>>prof", fAppendString.Data(), fAppendString.Data());
drawStr += rndNumber;
drawStr += "(76,-0.5,75.5,144,-0.5,143.5)";
cutStr += Form("Layer==%d && SuperModule==%d", layerNo, sectorNo);
}
else if(sectorNo==-1 && stackNo!=-1) {
drawStr += Form(":PadSuperColumn%s:Row%s>>prof", fAppendString.Data(), fAppendString.Data());
drawStr += rndNumber;
drawStr += Form("(%d,-0.5,%d-0.5,2592,-0.5,2591.5)", gkNRows[stackNo], gkNRows[stackNo]);
cutStr += Form("Layer==%d && Stack==%d", layerNo, stackNo);
}
else {
drawStr += Form(":Column%s:Row%s>>prof", fAppendString.Data(), fAppendString.Data());
drawStr += rndNumber;
drawStr += Form("(%d,-0.5,%d-0.5,144,-0.5,143.5)", gkNRows[stackNo], gkNRows[stackNo]);
cutStr += Form("Layer==%d && SuperModule==%d && Stack==%d", layerNo, sectorNo, stackNo);
}
}
else if(drawStr.Contains("SORandEOR") ||
drawStr.Contains("gsmSOR") || drawStr.Contains("gsmDelta") ||
drawStr.Contains("nimSOR") || drawStr.Contains("nimDelta") ||
drawStr.Contains("nevSOR") || drawStr.Contains("nevDelta") ||
drawStr.Contains("nptSOR") || drawStr.Contains("nptDelta")) {
if(sectorNo==-1 && stackNo==-1) {
drawStr += Form(":MCMSuperColumn%s:MCMSuperRow%s>>prof", fAppendString.Data(), fAppendString.Data());
drawStr += rndNumber;
drawStr += "(76,-0.5,75.5,144,-0.5,143.5)";
cutStr += Form("Layer==%d", layerNo);
}
else if(sectorNo!=-1 && stackNo==-1) {
drawStr += Form(":MCMSuperColumn%s:MCMSuperRow%s>>prof", fAppendString.Data(), fAppendString.Data());
drawStr += rndNumber;
drawStr += "(76,-0.5,75.5,144,-0.5,143.5)";
cutStr += Form("Layer==%d && SuperModule==%d", layerNo, sectorNo);
}
else if(sectorNo==-1 && stackNo!=-1) {
drawStr += Form(":MCMSuperColumn%s:MCMSuperRow%s>>prof", fAppendString.Data(), fAppendString.Data());
drawStr += rndNumber;
drawStr += "(76,-0.5,75.5,144,-0.5,143.5)";
cutStr += Form("Layer==%d && Stack==%d", layerNo, stackNo);
}
else {
drawStr += Form(":ROB%s:MCM%s>>prof", fAppendString.Data(), fAppendString.Data());
drawStr += rndNumber;
drawStr += Form("(16,-0.5,15.5,%d,-0.5,%d-0.5)", gkNRows[stackNo]/2, gkNRows[stackNo]/2);
cutStr += Form("Layer==%d && SuperModule==%d && Stack==%d", layerNo, sectorNo, stackNo);
}
}
else if(drawStr.Contains("Align")) {
if(sectorNo==-1 && stackNo==-1) {
drawStr += ":SuperModule:Stack>>prof";
drawStr += rndNumber;
drawStr += "(5,-0.5,4.5,18,-0.5,17.5)";
cutStr += Form("Layer==%d", layerNo);
}
else if(sectorNo!=-1 && stackNo==-1) {
drawStr += ":SuperModule:Stack>>prof";
drawStr += rndNumber;
drawStr += Form("(5,-0.5,4.5,1,%f,%f)", sectorNo-0.5, sectorNo+0.5);
cutStr += Form("Layer==%d && SuperModule==%d", layerNo, sectorNo);
}
else if(sectorNo==-1 && stackNo!=-1) {
drawStr += ":SuperModule:Stack>>prof";
drawStr += rndNumber;
drawStr += Form("(1,%f,%f,18,-0.5,17.5)", stackNo-0.5, stackNo+0.5);
cutStr += Form("Layer==%d && Stack==%d", layerNo, stackNo);
}
else {
drawStr += ":SuperModule:Stack>>prof";
drawStr += rndNumber;
drawStr += Form("(1,%f,%f,1,%f,%f)", stackNo-0.5, stackNo+0.5, sectorNo-0.5, sectorNo+0.5);
cutStr += Form("Layer==%d && SuperModule==%d && Stack==%d", layerNo, sectorNo, stackNo);
}
}
if (cuts && cuts[0] != 0) {
if (cutStr.Length() != 0) cutStr += "&& ";
cutStr += "(";
cutStr += cuts;
cutStr += ")";
}
drawStr.ReplaceAll(fAbbreviation, fAppendString);
cutStr.ReplaceAll(fAbbreviation, fAppendString);
if (writeDrawCommand) std::cout << "fTree->Draw(\"" << drawStr << "\", \"" << cutStr << "\", \"" << drawOptionsStr << "\");" << std::endl;
Int_t returnValue = fTree->Draw(drawStr.Data(), cutStr.Data(), drawOptionsStr.Data());
TString profName("prof");
profName += rndNumber;
TObject *obj = gDirectory->Get(profName.Data());
TH1 *histObj = (TH1*)obj;
if(drawStr.Contains("Status") || drawStr.Contains("Gain") || drawStr.Contains("Noise") ||
drawStr.Contains("Vdrift") || drawStr.Contains("T0") ||
drawStr.Contains("gain") || drawStr.Contains("chiSquare")) {
histObj->GetXaxis()->SetTitle("Row");
histObj->GetYaxis()->SetTitle("Column");
}
else if(drawStr.Contains("SORandEOR") ||
drawStr.Contains("gsmSOR") || drawStr.Contains("gsmDelta") ||
drawStr.Contains("nimSOR") || drawStr.Contains("nimDelta") ||
drawStr.Contains("nevSOR") || drawStr.Contains("nevDelta") ||
drawStr.Contains("nptSOR") || drawStr.Contains("nptDelta")) {
histObj->GetXaxis()->SetTitle("MCM Row");
histObj->GetYaxis()->SetTitle("MCM Column");
}
else if(drawStr.Contains("Align")) {
histObj->GetXaxis()->SetTitle("Stack");
histObj->GetYaxis()->SetTitle("Sector");
}
if (obj && obj->InheritsFrom("TH1")) FormatHistoLabels((TH1*)obj);
return returnValue;
}
Int_t AliTRDCalibViewer::EasyDraw1D(const char* drawCommand, const char* sector, const char* cuts, const char* drawOptions, Bool_t writeDrawCommand) const {
TString drawStr(drawCommand);
TString sectorStr(sector);
Int_t layerNo = -1;
Int_t sectorNo = -1;
Int_t stackNo = -1;
GetLayerSectorStack(sectorStr, layerNo, sectorNo, stackNo);
if(layerNo==-1) {
Warning("EasyDraw", "The sector string must always contain the Layer number!");
return -1;
}
if(layerNo<0 || layerNo>5) {
Warning("EasyDraw", "The Layer number must be in the range [0,5] !");
return -1;
}
if(sectorNo!=-1 && (sectorNo<0 || sectorNo>17)) {
Warning("EasyDraw", "The Sector number must be in the range [0,17] !");
return -1;
}
if(stackNo!=-1 && (stackNo<0 || stackNo>4)) {
Warning("EasyDraw", "The Stack number must be in the range [0,4] !");
return -1;
}
TString drawOptionsStr(drawOptions);
TString cutStr("");
if(sectorNo==-1 && stackNo==-1)
cutStr += Form("Layer==%d", layerNo);
else if(sectorNo!=-1 && stackNo==-1)
cutStr += Form("Layer==%d && SuperModule==%d", layerNo, sectorNo);
else if(sectorNo==-1 && stackNo!=-1)
cutStr += Form("Layer==%d && Stack==%d", layerNo, stackNo);
else
cutStr += Form("Layer==%d && SuperModule==%d && Stack==%d", layerNo, sectorNo, stackNo);
if(cuts && cuts[0] != 0) {
if (cutStr.Length() != 0) cutStr += "&& ";
cutStr += "(";
cutStr += cuts;
cutStr += ")";
}
drawStr.ReplaceAll(fAbbreviation, fAppendString);
cutStr.ReplaceAll(fAbbreviation, fAppendString);
if (writeDrawCommand) std::cout << "fTree->Draw(\"" << drawStr << "\", \"" << cutStr << "\", \"" << drawOptionsStr << "\");" << std::endl;
Int_t returnValue = fTree->Draw(drawStr.Data(), cutStr.Data(), drawOptionsStr.Data());
if (returnValue == -1) return -1;
TObject *obj = (gPad) ? gPad->GetPrimitive("htemp") : 0;
if (!obj) obj = (TH1F*)gDirectory->Get("htemp");
if (!obj) obj = gPad->GetPrimitive("tempHist");
if (!obj) obj = (TH1F*)gDirectory->Get("tempHist");
if (!obj) obj = gPad->GetPrimitive("Graph");
if (!obj) obj = (TH1F*)gDirectory->Get("Graph");
if (obj && obj->InheritsFrom("TH1")) FormatHistoLabels((TH1*)obj);
return returnValue;
}
Int_t AliTRDCalibViewer::EasyDraw(const char* drawCommand, Int_t chamber, const char* cuts, const char* drawOptions, Bool_t writeDrawCommand) const {
if(chamber >= 0 && chamber < 540) {
Int_t superModuleNo = chamber/30;
Int_t stackNo = (chamber%30)/6;
Int_t layerNo = (chamber%30)%6;
char sectorChr[22];
snprintf(sectorChr,22, "Layer%iSector%iStack%i", layerNo, superModuleNo, stackNo);
return EasyDraw(drawCommand, sectorChr, cuts, drawOptions, writeDrawCommand);
}
Error("EasyDraw","The TRD contains only chamber from 0 to 539");
return -1;
}
Int_t AliTRDCalibViewer::EasyDraw1D(const char* drawCommand, Int_t chamber, const char* cuts, const char* drawOptions, Bool_t writeDrawCommand) const {
if (chamber >= 0 && chamber < 539) {
Int_t superModuleNo = chamber/30;
Int_t stackNo = (chamber%30)/6;
Int_t layerNo = (chamber%30)%6;
char sectorChr[22];
snprintf(sectorChr,22, "Layer%iSector%iStack%i", layerNo, superModuleNo, stackNo);
return EasyDraw1D(drawCommand, sectorChr, cuts, drawOptions, writeDrawCommand);
}
Error("EasyDraw1D","The TRD contains only chambers from 0 to 539");
return -1;
}
Bool_t AliTRDCalibViewer::DumpOCDBtoTreeDetails(const Char_t* runListFilename,
const Char_t* outFilename,
Int_t firstRun, Int_t lastRun,
const Char_t* storage,
Int_t version,
Int_t subVersion,
Bool_t getCalibs,
Bool_t getDCS,
Bool_t getAlign) {
if(runListFilename[0]!='\0' && firstRun==-1 && lastRun==-1) {
cout << "AliTRDCalibViewer::DumpOCDBtoTreeDetails(): You must provide at least a run range or an ascii filename with run numbers"
<< endl;
return kFALSE;
}
TString storageString = storage;
if(storageString.Contains("alien://")) {
TGrid::Connect("alien://");
}
AliCDBManager *manager = AliCDBManager::Instance();
if(storage[0]!='\0') {
manager->SetDefaultStorage(storage);
}
else {
if(!manager->IsDefaultStorageSet()) {
cout << "AliTRDCalibViewer::DumpOCDBtoTreeDetails(): Default OCDB storage not set!!" << endl;
return kFALSE;
}
}
manager->SetRun(1);
ifstream in;
if(runListFilename[0]!='\0')
in.open(runListFilename);
if(outFilename[0]=='\0') outFilename = "trdDetails.root";
TString calibFilename = outFilename;
TTreeSRedirector *treeStreamer = new TTreeSRedirector(calibFilename.Data());
Int_t currRun;
if(runListFilename[0]=='\0' && firstRun!=-1 && lastRun!=-1)
currRun = firstRun;
TVectorD runs;
while(1) {
if(runListFilename[0]!='\0') {
if(!(in>>currRun)) continue;
if(currRun < (firstRun==-1 ? 0 : firstRun) ||
currRun > (lastRun==-1 ? 999999999 : lastRun))
continue;
}
else {
if(currRun>lastRun) break;
}
cout << "run = " << currRun << endl;
manager->SetRun(currRun);
AliCDBEntry *entry = manager->Get("GRP/GRP/Data");
AliGRPObject* grpObject = 0;
if(entry) {
entry->SetOwner(kFALSE);
grpObject = dynamic_cast<AliGRPObject*>(entry->GetObject());
}
else {
currRun++;
}
if(!grpObject)
cout << "No GRP info available for this run " << endl;
TObjString runType("");
if(grpObject) {
TTimeStamp start(grpObject->GetTimeStart());
TTimeStamp end(grpObject->GetTimeEnd());
cout << "Start time: " << start.GetDate()/10000 << "/"
<< (start.GetDate()/100)-(start.GetDate()/10000)*100 << "/"
<< start.GetDate()%100 << " "
<< start.GetTime()/10000 << ":"
<< (start.GetTime()/100)-(start.GetTime()/10000)*100 << ":"
<< start.GetTime()%100 << endl;
cout << "End time: " << end.GetDate()/10000 << "/"
<< (end.GetDate()/100)-(end.GetDate()/10000)*100 << "/"
<< end.GetDate()%100 << " "
<< end.GetTime()/10000 << ":"
<< (end.GetTime()/100)-(end.GetTime()/10000)*100 << ":"
<< end.GetTime()%100 << endl;
cout << "Run type = " << grpObject->GetRunType().Data() << endl;
runType = grpObject->GetRunType().Data();
}
AliTRDCalDet *chamberGainFactor = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/ChamberGainFactor", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
chamberGainFactor = (AliTRDCalDet*)entry->GetObject();
}
}
AliTRDCalPad *padGainFactor = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/LocalGainFactor", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
padGainFactor = (AliTRDCalPad*)entry->GetObject();
}
}
Double_t runMeanGain, runRMSGain;
TVectorD chamberMeanGain(AliTRDcalibDB::kNdet);
TVectorD chamberRMSGain(AliTRDcalibDB::kNdet);
TVectorD smMeanGain(AliTRDcalibDB::kNsector);
TVectorD smRMSGain(AliTRDcalibDB::kNsector);
for(Int_t iNdet=0; iNdet<AliTRDcalibDB::kNdet; iNdet++) {chamberMeanGain[iNdet] = 0.0; chamberRMSGain[iNdet] = 0.0;}
for(Int_t iSm=0; iSm<AliTRDcalibDB::kNsector; iSm++) {smMeanGain[iSm] = 0.0; smRMSGain[iSm] = 0.0;}
TString parName("Gain");
if(getCalibs)
ProcessTRDCalibArray(chamberGainFactor, padGainFactor,
parName,
runMeanGain, runRMSGain,
chamberMeanGain, chamberRMSGain,
smMeanGain, smRMSGain);
AliTRDCalDet *chamberNoise = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/DetNoise", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
chamberNoise = (AliTRDCalDet*)entry->GetObject();
}
}
AliTRDCalPad *padNoise = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/PadNoise", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
padNoise = (AliTRDCalPad*)entry->GetObject();
}
}
Double_t runMeanNoise, runRMSNoise;
TVectorD chamberMeanNoise(AliTRDcalibDB::kNdet);
TVectorD chamberRMSNoise(AliTRDcalibDB::kNdet);
TVectorD smMeanNoise(AliTRDcalibDB::kNsector);
TVectorD smRMSNoise(AliTRDcalibDB::kNsector);
for(Int_t iNdet=0; iNdet<AliTRDcalibDB::kNdet; iNdet++) {chamberMeanNoise[iNdet] = 0.0; chamberRMSNoise[iNdet] = 0.0;}
for(Int_t iSm=0; iSm<AliTRDcalibDB::kNsector; iSm++) {smMeanNoise[iSm] = 0.0; smRMSNoise[iSm] = 0.0;}
parName = "Noise";
if(getCalibs)
ProcessTRDCalibArray(chamberNoise, padNoise,
parName,
runMeanNoise, runRMSNoise,
chamberMeanNoise, chamberRMSNoise,
smMeanNoise, smRMSNoise);
AliTRDCalDet *chamberVdrift = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/ChamberVdrift", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
chamberVdrift = (AliTRDCalDet*)entry->GetObject();
}
}
AliTRDCalPad *padVdrift = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/LocalVdrift", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
padVdrift = (AliTRDCalPad*)entry->GetObject();
}
}
Double_t runMeanVdrift, runRMSVdrift;
TVectorD chamberMeanVdrift(AliTRDcalibDB::kNdet);
TVectorD chamberRMSVdrift(AliTRDcalibDB::kNdet);
TVectorD smMeanVdrift(AliTRDcalibDB::kNsector);
TVectorD smRMSVdrift(AliTRDcalibDB::kNsector);
for(Int_t iNdet=0; iNdet<AliTRDcalibDB::kNdet; iNdet++) {chamberMeanVdrift[iNdet] = 0.0; chamberRMSVdrift[iNdet] = 0.0;}
for(Int_t iSm=0; iSm<AliTRDcalibDB::kNsector; iSm++) {smMeanVdrift[iSm] = 0.0; smRMSVdrift[iSm] = 0.0;}
parName = "Vdrift";
if(getCalibs)
ProcessTRDCalibArray(chamberVdrift, padVdrift,
parName,
runMeanVdrift, runRMSVdrift,
chamberMeanVdrift, chamberRMSVdrift,
smMeanVdrift, smRMSVdrift);
AliTRDCalDet *chamberT0 = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/ChamberT0", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
chamberT0 = (AliTRDCalDet*)entry->GetObject();
}
}
AliTRDCalPad *padT0 = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/LocalT0", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
padT0 = (AliTRDCalPad*)entry->GetObject();
}
}
Double_t runMeanT0, runRMST0;
TVectorD chamberMeanT0(AliTRDcalibDB::kNdet);
TVectorD chamberRMST0(AliTRDcalibDB::kNdet);
TVectorD smMeanT0(AliTRDcalibDB::kNsector);
TVectorD smRMST0(AliTRDcalibDB::kNsector);
for(Int_t iNdet=0; iNdet<AliTRDcalibDB::kNdet; iNdet++) {chamberMeanT0[iNdet] = 0.0; chamberRMST0[iNdet] = 0.0;}
for(Int_t iSm=0; iSm<AliTRDcalibDB::kNsector; iSm++) {smMeanT0[iSm] = 0.0; smRMST0[iSm] = 0.0;}
parName = "T0";
if(getCalibs)
ProcessTRDCalibArray(chamberT0, padT0,
parName,
runMeanT0, runRMST0,
chamberMeanT0, chamberRMST0,
smMeanT0, smRMST0);
AliTRDCalChamberStatus* chamberStatus = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/ChamberStatus", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
chamberStatus = (AliTRDCalChamberStatus*)entry->GetObject();
}
}
AliTRDCalPadStatus *padStatus = 0;
if(getCalibs) {
entry = manager->Get("TRD/Calib/PadStatus", currRun, version, subVersion);
if(entry) {
entry->SetOwner(kFALSE);
padStatus = (AliTRDCalPadStatus*)entry->GetObject();
}
}
TObjArray *dcsArray = 0;
if(getDCS) {
entry = manager->Get("TRD/Calib/DCS");
if(entry) {
entry->SetOwner(kTRUE);
dcsArray = (TObjArray*)entry->GetObject();
}
}
AliTRDCalDCSv2 *dcsSOR = 0;
AliTRDCalDCSv2 *dcsEOR = 0;
if(getDCS && dcsArray) {
dcsSOR = (AliTRDCalDCSv2*)dcsArray->At(0);
dcsEOR = (AliTRDCalDCSv2*)dcsArray->At(1);
}
TGeoManager *geoMan = 0x0;
if(getAlign) {
entry=manager->Get("GRP/Geometry/Data");
if(entry)
geoMan=(TGeoManager*)entry->GetObject();
else
cout << "Cannot get an entry for the geometry storage" << endl;
}
AliTRDalignment *alignMan=0;
if(getAlign && geoMan) {
entry=manager->Get("TRD/Align/Data", currRun, version, subVersion);
if(entry) {
alignMan = new AliTRDalignment();
cout << "storage for alignment = " << manager->GetDefaultStorage()->GetURI().Data() << endl;
alignMan->ReadDB(manager->GetDefaultStorage()->GetURI().Data(), "TRD/Align/Data", currRun, version, subVersion);
}
else {
cout << "Cannot get an entry for the alignment info" << endl;
}
}
Int_t kSuperModuleStatus[18] = {1, 1, 0, 0, 0, 0,
0, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 1};
Int_t kNRows[ 5] = {16, 16, 12, 16, 16};
Int_t kNCols = 144;
Int_t kROB[5] = {8, 8, 6, 8, 8};
Int_t kMCM = 16;
for(Short_t iLayer=0; iLayer<AliTRDgeometry::kNlayer; iLayer++) {
for(Short_t iSector=0; iSector<AliTRDgeometry::kNsector; iSector++) {
if(kSuperModuleStatus[iSector]==0)
continue;
Double_t alignSMPars[6];
for(Int_t ipar=0; ipar<6; ipar++) alignSMPars[ipar]=0.0;
if(getAlign && alignMan)
alignMan->GetSm(iSector, alignSMPars);
for(Short_t iStack=0; iStack<AliTRDgeometry::kNstack; iStack++) {
Short_t chamberNo = AliTRDgeometry::GetDetector(iLayer, iStack, iSector);
AliTRDCalROC *gainROC = 0;
if(padGainFactor) gainROC = padGainFactor->GetCalROC(chamberNo);
AliTRDCalROC *noiseROC = 0;
if(padNoise) noiseROC = padNoise->GetCalROC(chamberNo);
AliTRDCalROC *vdriftROC = 0;
if(padVdrift) vdriftROC = padVdrift->GetCalROC(chamberNo);
AliTRDCalROC *t0ROC = 0;
if(t0ROC) t0ROC = padT0->GetCalROC(chamberNo);
AliTRDCalSingleChamberStatus *statusROC = 0;
if(padStatus) statusROC = padStatus->GetCalROC(chamberNo);
TVectorD channelVector(kNRows[iStack]*kNCols);
TVectorD rowVector(kNRows[iStack]*kNCols);
TVectorD colVector(kNRows[iStack]*kNCols);
TVectorD statusVector(kNRows[iStack]*kNCols);
TVectorD gainVector(kNRows[iStack]*kNCols);
TVectorD noiseVector(kNRows[iStack]*kNCols);
TVectorD vdriftVector(kNRows[iStack]*kNCols);
TVectorD t0Vector(kNRows[iStack]*kNCols);
TVectorD padSuperRowVector(kNRows[iStack]*kNCols);
TVectorD padSuperColumnVector(kNRows[iStack]*kNCols);
for(Int_t ipar=0; ipar<kNRows[iStack]*kNCols; ipar++) {
channelVector[ipar] = 0; rowVector[ipar] = 0; colVector[ipar] = 0;
statusVector[ipar] = 0; gainVector[ipar] = 0; noiseVector[ipar] = 0;
vdriftVector[ipar] = 0; t0Vector[ipar] = 0; padSuperRowVector[ipar] = 0;
padSuperColumnVector[ipar] = 0;
}
Int_t index = 0;
if(getCalibs) {
for(Short_t iRow=0; iRow<kNRows[iStack]; iRow++) {
for(Short_t iCol=0; iCol<kNCols; iCol++) {
Short_t padSuperRow = iRow;
for(Int_t i=0; i<iStack; i++) padSuperRow = padSuperRow + kNRows[i];
padSuperRowVector[index] = padSuperRow;
Short_t padSuperColumn = iCol;
for(Int_t i=0; i<iSector; i++) padSuperColumn = padSuperColumn + kNCols;
padSuperColumnVector[index] = padSuperColumn;
Short_t channelNo = -1;
Float_t gain = -99.;
if(gainROC && chamberGainFactor) {
channelNo = gainROC->GetChannel(iCol, iRow);
gain = chamberGainFactor->GetValue(chamberNo) * gainROC->GetValue(iCol, iRow);
}
Float_t noise = -99.;
if(noiseROC && chamberNoise)
noise = chamberNoise->GetValue(chamberNo) * noiseROC->GetValue(iCol, iRow);
Float_t vdrift = -99.;
if(vdriftROC && chamberVdrift)
vdrift = chamberVdrift->GetValue(chamberNo) * vdriftROC->GetValue(iCol, iRow);
Float_t t0 = -99.;
if(t0ROC && chamberT0)
t0 = chamberT0->GetValue(chamberNo) + t0ROC->GetValue(iCol, iRow);
Int_t status = -99;
if(statusROC)
status = statusROC->GetStatus(iCol, iRow);
channelVector[index] = channelNo;
rowVector[index] = iRow;
colVector[index] = iCol;
statusVector[index] = status;
gainVector[index] = gain;
noiseVector[index] = noise;
vdriftVector[index] = vdrift;
t0Vector[index] = t0;
index++;
}
}
}
AliTRDCalDCSFEEv2 *dcsfeeSOR = 0;
AliTRDCalDCSFEEv2 *dcsfeeEOR = 0;
if(getDCS) {
if(dcsSOR) dcsfeeSOR = dcsSOR->GetCalDCSFEEObj(chamberNo);
if(dcsEOR) dcsfeeEOR = dcsEOR->GetCalDCSFEEObj(chamberNo);
}
Bool_t sorAndEor = kFALSE;
if(getDCS && dcsfeeSOR && dcsfeeEOR) sorAndEor = kTRUE;
if(getDCS && !dcsfeeSOR && dcsfeeEOR) dcsfeeSOR = dcsfeeEOR;
TVectorD robVector(kROB[iStack]*kMCM);
TVectorD mcmVector(kROB[iStack]*kMCM);
TVectorD sorandeorVector(kROB[iStack]*kMCM);
TVectorD gsmSorVector(kROB[iStack]*kMCM);
TVectorD gsmDeltaVector(kROB[iStack]*kMCM);
TVectorD nimSorVector(kROB[iStack]*kMCM);
TVectorD nimDeltaVector(kROB[iStack]*kMCM);
TVectorD nevSorVector(kROB[iStack]*kMCM);
TVectorD nevDeltaVector(kROB[iStack]*kMCM);
TVectorD nptSorVector(kROB[iStack]*kMCM);
TVectorD nptDeltaVector(kROB[iStack]*kMCM);
TVectorD mcmSuperRowVector(kROB[iStack]*kMCM);
TVectorD mcmSuperColumnVector(kROB[iStack]*kMCM);
for(Int_t ipar=0; ipar<kROB[iStack]*kMCM; ipar++) {
robVector[ipar] = 0; mcmVector[ipar] = 0; sorandeorVector[ipar] = 0;
gsmSorVector[ipar] = 0; gsmDeltaVector[ipar] = 0; nimSorVector[ipar] = 0;
nimDeltaVector[ipar] = 0; nevSorVector[ipar] = 0; nevDeltaVector[ipar] = 0;
nptSorVector[ipar] = 0; nptDeltaVector[ipar] = 0; mcmSuperRowVector[ipar] = 0;
mcmSuperColumnVector[ipar] = 0;
}
Int_t robsRowDirection = kNRows[iStack]/4;
Int_t index1 = 0;
if(getDCS && (dcsfeeSOR || dcsfeeEOR) && dcsfeeSOR->GetStatusBit()==0) {
for(Int_t iROB=0; iROB<kROB[iStack]; iROB++) {
for(Int_t iMCM=0; iMCM<kMCM; iMCM++) {
Short_t superRowMCM = iMCM%4;
superRowMCM += 4*(iROB%robsRowDirection);
for(Int_t kk=0; kk<iStack; kk++) superRowMCM += kNRows[kk];
Short_t superColumnMCM = iMCM/4;
superColumnMCM += 4*(iROB/robsRowDirection);
superColumnMCM += iSector*8;
mcmSuperRowVector[index1] = superRowMCM;
mcmSuperColumnVector[index1] = superColumnMCM;
Int_t gsm = dcsfeeSOR->GetMCMGlobalState(iROB, iMCM);
Int_t nim = dcsfeeSOR->GetMCMStateNI(iROB, iMCM);
Int_t nev = dcsfeeSOR->GetMCMEventCnt(iROB, iMCM);
Int_t npt = dcsfeeSOR->GetMCMPtCnt(iROB, iMCM);
Int_t dgsm = -100000;
Int_t dnim = -100000;
Int_t dnev = -100000;
Int_t dnpt = -100000;
if(sorAndEor) {
dgsm = gsm - dcsfeeEOR->GetMCMGlobalState(iROB, iMCM);
dnim = nim - dcsfeeEOR->GetMCMStateNI(iROB, iMCM);
dnev = nev - dcsfeeEOR->GetMCMEventCnt(iROB, iMCM);
dnpt = npt - dcsfeeEOR->GetMCMPtCnt(iROB, iMCM);
if(gsm==-1 && dgsm==0) dgsm = -100000;
if(nim==-1 && dnim==0) dnim = -100000;
if(nev==-1 && dnev==0) dnev = -100000;
if(npt==-1 && dnpt==0) dnpt = -100000;
}
robVector[index1] = iROB;
mcmVector[index1] = iMCM;
sorandeorVector[index1] = sorAndEor;
gsmSorVector[index1] = gsm;
gsmDeltaVector[index1] = dgsm;
nimSorVector[index1] = nim;
nimDeltaVector[index1] = dnim;
nevSorVector[index1] = nev;
nevDeltaVector[index1] = dnev;
nptSorVector[index1] = npt;
nptDeltaVector[index1] = dnpt;
index1++;
}
}
}
Double_t alignChamberPars[6];
for(Int_t ipar=0; ipar<6; ipar++) alignChamberPars[ipar]=0;
if(getAlign && alignMan)
alignMan->GetCh(chamberNo, alignChamberPars);
(*treeStreamer)<< "TRDcalibDetails"
<< "run=" << currRun
<< "SuperModule=" << iSector
<< "Stack=" << iStack
<< "Layer=" << iLayer
<< "Chamber=" << chamberNo;
if(getAlign)
(*treeStreamer)<< "TRDcalibDetails"
<< "Align_SM_ShiftRphi=" << alignSMPars[0]
<< "Align_SM_ShiftZ=" << alignSMPars[1]
<< "Align_SM_ShiftR=" << alignSMPars[2]
<< "Align_SM_RotRphi=" << alignSMPars[3]
<< "Align_SM_RotZ=" << alignSMPars[4]
<< "Align_SM_RotR=" << alignSMPars[5]
<< "Align_Ch_ShiftRphi=" << alignChamberPars[0]
<< "Align_Ch_ShiftZ=" << alignChamberPars[1]
<< "Align_Ch_ShiftR=" << alignChamberPars[2]
<< "Align_Ch_RotRphi=" << alignChamberPars[3]
<< "Align_Ch_RotZ=" << alignChamberPars[4]
<< "Align_Ch_RotR=" << alignChamberPars[5];
if(getCalibs)
(*treeStreamer)<< "TRDcalibDetails"
<< "Gain_Mean_Run=" << runMeanGain
<< "Gain_RMS_Run=" << runRMSGain
<< "Gain_Mean_SuperModule=" << smMeanGain[iSector]
<< "Gain_RMS_SuperModule=" << smRMSGain[iSector]
<< "Gain_Mean_Chamber=" << chamberMeanGain[chamberNo]
<< "Gain_RMS_Chamber=" << chamberRMSGain[chamberNo]
<< "Noise_Mean_Run=" << runMeanNoise
<< "Noise_RMS_Run=" << runRMSNoise
<< "Noise_Mean_SuperModule=" << smMeanNoise[iSector]
<< "Noise_RMS_SuperModule=" << smRMSNoise[iSector]
<< "Noise_Mean_Chamber=" << chamberMeanNoise[chamberNo]
<< "Noise_RMS_Chamber=" << chamberRMSNoise[chamberNo]
<< "Vdrift_Mean_Run=" << runMeanVdrift
<< "Vdrift_RMS_Run=" << runRMSVdrift
<< "Vdrift_Mean_SuperModule=" << smMeanVdrift[iSector]
<< "Vdrift_RMS_SuperModule=" << smRMSVdrift[iSector]
<< "Vdrift_Mean_Chamber=" << chamberMeanVdrift[chamberNo]
<< "Vdrift_RMS_Chamber=" << chamberRMSVdrift[chamberNo]
<< "T0_Mean_Run=" << runMeanT0
<< "T0_RMS_Run=" << runRMST0
<< "T0_Mean_SuperModule=" << smMeanT0[iSector]
<< "T0_RMS_SuperModule=" << smRMST0[iSector]
<< "T0_Mean_Chamber=" << chamberMeanT0[chamberNo]
<< "T0_RMS_Chamber=" << chamberRMST0[chamberNo]
<< "Channel.=" << &channelVector
<< "Row.=" << &rowVector
<< "Column.=" << &colVector
<< "PadSuperRow.=" << &padSuperRowVector
<< "PadSuperColumn.=" << &padSuperColumnVector
<< "Status.=" << &statusVector
<< "Gain.=" << &gainVector
<< "Noise.=" << &noiseVector
<< "Vdrift.=" << &vdriftVector
<< "T0.=" << &t0Vector;
if(getDCS)
(*treeStreamer)<< "TRDcalibDetails"
<< "ROB.=" << &robVector
<< "MCM.=" << &mcmVector
<< "MCMSuperRow.=" << &mcmSuperRowVector
<< "MCMSuperColumn.=" << &mcmSuperColumnVector
<< "SORandEOR.=" << &sorandeorVector
<< "gsmSOR.=" << &gsmSorVector
<< "gsmDelta.=" << &gsmDeltaVector
<< "nimSOR.=" << &nimSorVector
<< "nimDelta.=" << &nimDeltaVector
<< "nevSOR.=" << &nevSorVector
<< "nevDelta.=" << &nevDeltaVector
<< "nptSOR.=" << &nptSorVector
<< "nptDelta.=" << &nptDeltaVector;
(*treeStreamer)<< "TRDcalibDetails"
<< "\n";
}
}
}
runs.ResizeTo(runs.GetNoElements()+1);
runs[runs.GetNoElements()-1] = currRun;
if(chamberGainFactor) delete chamberGainFactor;
if(padGainFactor) delete padGainFactor;
if(chamberNoise) delete chamberNoise;
if(padNoise) delete padNoise;
if(chamberVdrift) delete chamberVdrift;
if(padVdrift) delete padVdrift;
if(chamberT0) delete chamberT0;
if(padT0) delete padT0;
if(chamberStatus) delete chamberStatus;
if(padStatus) delete padStatus;
if(runListFilename[0]=='\0' && firstRun!=-1 && lastRun!=-1) {
currRun++;
if(currRun>lastRun) break;
}
if(runListFilename[0]!='\0' && in.eof())
break;
}
treeStreamer->GetFile()->cd();
runs.Write("runs");
delete treeStreamer;
return kTRUE;
}
void AliTRDCalibViewer::DumpCalibToTree(const Char_t* inFilename, const Char_t* outFilename)
{
TTreeSRedirector *treeStreamer = new TTreeSRedirector(outFilename);
TFile f(inFilename);
TList *l=(TList*)f.GetListOfKeys();
TObjArray arrCalPads;
TObjArray arrSMmean;
TObjArray arrSMrms;
arrCalPads.SetOwner();
arrSMmean.SetOwner();
arrSMrms.SetOwner();
TIter next(l);
TKey *k=0x0;
while ( (k=(TKey*)next()) ){
AliTRDCalPad *pad=dynamic_cast<AliTRDCalPad*>(k->ReadObj());
if (!pad) continue;
arrCalPads.Add(pad);
TVectorD *smMean=new TVectorD(AliTRDcalibDB::kNsector);
TVectorD *smRMS=new TVectorD(AliTRDcalibDB::kNsector);
arrSMmean.Add(smMean);
arrSMrms.Add(smRMS);
ProcessTRDCalibArray(pad, *smMean, *smRMS);
}
Int_t kSuperModuleStatus[18] = {1, 1, 0, 0, 0, 0,
0, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 1};
AliTRDgeometry trdGeom;
Int_t kNRows[5] = {16, 16, 12, 16, 16};
for(Short_t iLayer=0; iLayer<AliTRDgeometry::kNlayer; iLayer++) {
for(Short_t iSM=0; iSM<AliTRDgeometry::kNsector; iSM++) {
if(kSuperModuleStatus[iSM]==0)
continue;
for(Short_t iStack=0; iStack<AliTRDgeometry::kNstack; iStack++) {
AliTRDpadPlane &plane=*trdGeom.GetPadPlane(iLayer, iStack);
Short_t chamberNo = AliTRDgeometry::GetDetector(iLayer, iStack, iSM);
const Int_t nrows=plane.GetNrows();
const Int_t ncols=plane.GetNcols();
const Int_t nchannels=nrows*ncols;
TVectorD channelVector(nchannels);
TVectorD rowVector(nchannels);
TVectorD colVector(nchannels);
TVectorD gxVector(nchannels);
TVectorD gyVector(nchannels);
TVectorD gzVector(nchannels);
TVectorD padSuperRowVector(nchannels);
TVectorD padSuperColumnVector(nchannels);
Int_t index = 0;
for(Short_t iRow=0; iRow<nrows; iRow++) {
for(Short_t iCol=0; iCol<ncols; iCol++) {
Short_t padSuperRow = iRow;
for(Int_t i=0; i<iStack; i++) padSuperRow = padSuperRow + kNRows[i];
padSuperRowVector.GetMatrixArray()[index] = padSuperRow;
Short_t padSuperColumn = iCol;
for(Int_t i=0; i<iSM; i++) padSuperColumn = padSuperColumn + ncols;
padSuperColumnVector.GetMatrixArray()[index] = padSuperColumn;
rowVector.GetMatrixArray()[index] = iRow;
colVector.GetMatrixArray()[index] = iCol;
index++;
}
}
(*treeStreamer)<< "TRDcalibDetails"
<< "SuperModule=" << iSM
<< "Stack=" << iStack
<< "Layer=" << iLayer
<< "Chamber=" << chamberNo
<< "Channel.=" << &channelVector
<< "Row.=" << &rowVector
<< "Column.=" << &colVector
<< "PadSuperRow.=" << &padSuperRowVector
<< "PadSuperColumn.=" << &padSuperColumnVector;
TObjArray arrTrash;
arrTrash.SetOwner();
Int_t ncalib=arrCalPads.GetEntriesFast();
for (Int_t iCalib=0; iCalib<ncalib; ++iCalib){
AliTRDCalPad *pad=(AliTRDCalPad*)arrCalPads.UncheckedAt(iCalib);
AliTRDCalROC *calROC=pad->GetCalROC(chamberNo);
TVectorD &smMean=*((TVectorD*)arrSMmean.UncheckedAt(iCalib));
TVectorD &smRMS=*((TVectorD*)arrSMrms.UncheckedAt(iCalib));
TString calibName=pad->GetName();
TVectorD *valueVector=new TVectorD(nchannels);
arrTrash.Add(valueVector);
Double_t rocMean=0;
Double_t rocRMS=0;
Double_t rocMedian=0;
if (calROC){
Int_t index2 = 0;
for(Short_t iRow=0; iRow<nrows; iRow++) {
for(Short_t iCol=0; iCol<ncols; iCol++) {
valueVector->GetMatrixArray()[index2] = calROC->GetValue(iCol,iRow);
index2++;
}
}
rocMean = calROC->GetMean();
rocRMS = calROC->GetRMS();
rocMedian = calROC->GetMedian();
if ( !(rocMean<1e30) ) rocMean=0;
if ( !(rocRMS<1e30) ) rocRMS=0;
}
(*treeStreamer)<< "TRDcalibDetails"
<< (Char_t*)((calibName+"_Mean_SuperModule=").Data()) << smMean[iSM]
<< (Char_t*)((calibName+"_RMS_SuperModule=").Data()) << smRMS[iSM]
<< (Char_t*)((calibName+"_Mean_Chamber=").Data()) << rocMean
<< (Char_t*)((calibName+"_RMS_Chamber=").Data()) << rocRMS
<< (Char_t*)((calibName+"_Median_Chamber=").Data()) << rocMedian
<< (Char_t*)((calibName+".=").Data()) << valueVector;
}
(*treeStreamer)<< "TRDcalibDetails"
<< "\n";
arrTrash.Delete();
}
}
}
delete treeStreamer;
}
void AliTRDCalibViewer::ProcessTRDCalibArray(AliTRDCalDet* chamberCalib, AliTRDCalPad *padCalib,
TString parName,
Double_t &runValue, Double_t &runRMS,
TVectorD &chamberValues, TVectorD &chamberValuesRMS,
TVectorD &superModuleValues, TVectorD &superModuleValuesRMS) {
if(!chamberCalib) return;
if(!padCalib) return;
Int_t kSuperModuleStatus[18] = {1, 1, 0, 0, 0, 0,
0, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 1};
TH1F *runWiseHisto = new TH1F("runHisto", "runHisto", 200, -10.0, 10.0);
TH1F *superModuleWiseHisto = new TH1F("smHisto", "smHisto", 200, -10.0, 10.0);
TH1F *chamberWiseHisto = new TH1F("chamberHisto", "chamberHisto", 200, -10.0, 10.0);
Bool_t multiplicative = kTRUE;
if(!parName.CompareTo("T0")) multiplicative = kFALSE;
runWiseHisto->Reset();
for(Int_t iSM = 0; iSM<AliTRDcalibDB::kNsector; iSM++) {
superModuleWiseHisto->Reset();
if(!kSuperModuleStatus[iSM]) continue;
for(Int_t iChamber=iSM*AliTRDcalibDB::kNstack*AliTRDcalibDB::kNlayer;
iChamber < (iSM+1)*AliTRDcalibDB::kNstack*AliTRDcalibDB::kNlayer;
iChamber++) {
Float_t chamberValue = chamberCalib->GetValue(iChamber);
AliTRDCalROC *chamberROC = padCalib->GetCalROC(iChamber);
if(!chamberROC)
continue;
chamberWiseHisto->Reset();
for(Int_t iChannel = 0; iChannel < chamberROC->GetNchannels(); iChannel++){
Float_t padValue;
if(multiplicative)
padValue = chamberValue * chamberROC->GetValue(iChannel);
else
padValue = chamberValue + chamberROC->GetValue(iChannel);
chamberWiseHisto->Fill(padValue);
if(parName.Contains("Noise") &&
TMath::Abs(padValue-1.2)<0.00001) continue;
superModuleWiseHisto->Fill(padValue);
runWiseHisto->Fill(padValue);
}
chamberValues[iChamber] = chamberWiseHisto->GetMean();
chamberValuesRMS[iChamber] = chamberWiseHisto->GetRMS();
}
superModuleValues[iSM] = superModuleWiseHisto->GetMean();
superModuleValuesRMS[iSM] = superModuleWiseHisto->GetRMS();
}
runValue = runWiseHisto->GetMean();
runRMS = runWiseHisto->GetRMS();
if(parName.Contains("Noise") || parName.Contains("Gain"))
return;
runWiseHisto->Reset();
for(Int_t iSM = 0; iSM<AliTRDcalibDB::kNsector; iSM++) {
superModuleWiseHisto->Reset();
if(!kSuperModuleStatus[iSM]) continue;
for(Int_t iChamber=iSM*AliTRDcalibDB::kNstack*AliTRDcalibDB::kNlayer;
iChamber < (iSM+1)*AliTRDcalibDB::kNstack*AliTRDcalibDB::kNlayer;
iChamber++) {
Float_t chamberValue = chamberCalib->GetValue(iChamber);
AliTRDCalROC *chamberROC = padCalib->GetCalROC(iChamber);
if(!chamberROC)
continue;
for(Int_t iChannel = 0; iChannel < chamberROC->GetNchannels(); iChannel++){
Float_t padValue;
if(multiplicative)
padValue = chamberValue * chamberROC->GetValue(iChannel);
else
padValue = chamberValue + chamberROC->GetValue(iChannel);
if((parName.Contains("Vdrift") || parName.Contains("T0")) &&
TMath::Abs(padValue-superModuleValues[iSM])<0.00001) continue;
superModuleWiseHisto->Fill(padValue);
runWiseHisto->Fill(padValue);
}
}
superModuleValues[iSM] = superModuleWiseHisto->GetMean();
superModuleValuesRMS[iSM] = superModuleWiseHisto->GetRMS();
}
runValue = runWiseHisto->GetMean();
runRMS = runWiseHisto->GetRMS();
delete chamberWiseHisto;
delete superModuleWiseHisto;
delete runWiseHisto;
return;
}
void AliTRDCalibViewer::ProcessTRDCalibArray(AliTRDCalPad *padCalib,
TVectorD &superModuleValues, TVectorD &superModuleValuesRMS)
{
if(!padCalib) return;
Int_t kSuperModuleStatus[18] = {1, 1, 0, 0, 0, 0,
0, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 1};
for(Int_t iSM = 0; iSM<AliTRDcalibDB::kNsector; iSM++) {
Double_t mean=0;
Double_t rms=0;
Double_t count=0;
if(!kSuperModuleStatus[iSM]) continue;
const Int_t nchambers=AliTRDcalibDB::kNstack*AliTRDcalibDB::kNlayer;
for(Int_t iChamber=iSM*nchambers; iChamber < (iSM+1)*nchambers; iChamber++) {
AliTRDCalROC *chamberROC = padCalib->GetCalROC(iChamber);
if(!chamberROC)
continue;
for(Int_t iChannel = 0; iChannel < chamberROC->GetNchannels(); iChannel++){
mean+=chamberROC->GetValue(iChannel);
rms+=chamberROC->GetValue(iChannel)*chamberROC->GetValue(iChannel);
++count;
}
}
if (count>0){
mean/=count;
rms/=count;
rms=TMath::Sqrt(TMath::Abs(mean*mean-rms));
}
superModuleValues[iSM] = mean;
superModuleValuesRMS[iSM] = rms;
}
}
AliTRDCalibViewer.cxx:100 AliTRDCalibViewer.cxx:101 AliTRDCalibViewer.cxx:102 AliTRDCalibViewer.cxx:103 AliTRDCalibViewer.cxx:104 AliTRDCalibViewer.cxx:105 AliTRDCalibViewer.cxx:106 AliTRDCalibViewer.cxx:107 AliTRDCalibViewer.cxx:108 AliTRDCalibViewer.cxx:109 AliTRDCalibViewer.cxx:110 AliTRDCalibViewer.cxx:111 AliTRDCalibViewer.cxx:112 AliTRDCalibViewer.cxx:113 AliTRDCalibViewer.cxx:114 AliTRDCalibViewer.cxx:115 AliTRDCalibViewer.cxx:116 AliTRDCalibViewer.cxx:117 AliTRDCalibViewer.cxx:118 AliTRDCalibViewer.cxx:119 AliTRDCalibViewer.cxx:120 AliTRDCalibViewer.cxx:121 AliTRDCalibViewer.cxx:122 AliTRDCalibViewer.cxx:123 AliTRDCalibViewer.cxx:124 AliTRDCalibViewer.cxx:125 AliTRDCalibViewer.cxx:126 AliTRDCalibViewer.cxx:127 AliTRDCalibViewer.cxx:128 AliTRDCalibViewer.cxx:129 AliTRDCalibViewer.cxx:130 AliTRDCalibViewer.cxx:131 AliTRDCalibViewer.cxx:132 AliTRDCalibViewer.cxx:133 AliTRDCalibViewer.cxx:134 AliTRDCalibViewer.cxx:135 AliTRDCalibViewer.cxx:136 AliTRDCalibViewer.cxx:137 AliTRDCalibViewer.cxx:138 AliTRDCalibViewer.cxx:139 AliTRDCalibViewer.cxx:140 AliTRDCalibViewer.cxx:141 AliTRDCalibViewer.cxx:142 AliTRDCalibViewer.cxx:143 AliTRDCalibViewer.cxx:144 AliTRDCalibViewer.cxx:145 AliTRDCalibViewer.cxx:146 AliTRDCalibViewer.cxx:147 AliTRDCalibViewer.cxx:148 AliTRDCalibViewer.cxx:149 AliTRDCalibViewer.cxx:150 AliTRDCalibViewer.cxx:151 AliTRDCalibViewer.cxx:152 AliTRDCalibViewer.cxx:153 AliTRDCalibViewer.cxx:154 AliTRDCalibViewer.cxx:155 AliTRDCalibViewer.cxx:156 AliTRDCalibViewer.cxx:157 AliTRDCalibViewer.cxx:158 AliTRDCalibViewer.cxx:159 AliTRDCalibViewer.cxx:160 AliTRDCalibViewer.cxx:161 AliTRDCalibViewer.cxx:162 AliTRDCalibViewer.cxx:163 AliTRDCalibViewer.cxx:164 AliTRDCalibViewer.cxx:165 AliTRDCalibViewer.cxx:166 AliTRDCalibViewer.cxx:167 AliTRDCalibViewer.cxx:168 AliTRDCalibViewer.cxx:169 AliTRDCalibViewer.cxx:170 AliTRDCalibViewer.cxx:171 AliTRDCalibViewer.cxx:172 AliTRDCalibViewer.cxx:173 AliTRDCalibViewer.cxx:174 AliTRDCalibViewer.cxx:175 AliTRDCalibViewer.cxx:176 AliTRDCalibViewer.cxx:177 AliTRDCalibViewer.cxx:178 AliTRDCalibViewer.cxx:179 AliTRDCalibViewer.cxx:180 AliTRDCalibViewer.cxx:181 AliTRDCalibViewer.cxx:182 AliTRDCalibViewer.cxx:183 AliTRDCalibViewer.cxx:184 AliTRDCalibViewer.cxx:185 AliTRDCalibViewer.cxx:186 AliTRDCalibViewer.cxx:187 AliTRDCalibViewer.cxx:188 AliTRDCalibViewer.cxx:189 AliTRDCalibViewer.cxx:190 AliTRDCalibViewer.cxx:191 AliTRDCalibViewer.cxx:192 AliTRDCalibViewer.cxx:193 AliTRDCalibViewer.cxx:194 AliTRDCalibViewer.cxx:195 AliTRDCalibViewer.cxx:196 AliTRDCalibViewer.cxx:197 AliTRDCalibViewer.cxx:198 AliTRDCalibViewer.cxx:199 AliTRDCalibViewer.cxx:200 AliTRDCalibViewer.cxx:201 AliTRDCalibViewer.cxx:202 AliTRDCalibViewer.cxx:203 AliTRDCalibViewer.cxx:204 AliTRDCalibViewer.cxx:205 AliTRDCalibViewer.cxx:206 AliTRDCalibViewer.cxx:207 AliTRDCalibViewer.cxx:208 AliTRDCalibViewer.cxx:209 AliTRDCalibViewer.cxx:210 AliTRDCalibViewer.cxx:211 AliTRDCalibViewer.cxx:212 AliTRDCalibViewer.cxx:213 AliTRDCalibViewer.cxx:214 AliTRDCalibViewer.cxx:215 AliTRDCalibViewer.cxx:216 AliTRDCalibViewer.cxx:217 AliTRDCalibViewer.cxx:218 AliTRDCalibViewer.cxx:219 AliTRDCalibViewer.cxx:220 AliTRDCalibViewer.cxx:221 AliTRDCalibViewer.cxx:222 AliTRDCalibViewer.cxx:223 AliTRDCalibViewer.cxx:224 AliTRDCalibViewer.cxx:225 AliTRDCalibViewer.cxx:226 AliTRDCalibViewer.cxx:227 AliTRDCalibViewer.cxx:228 AliTRDCalibViewer.cxx:229 AliTRDCalibViewer.cxx:230 AliTRDCalibViewer.cxx:231 AliTRDCalibViewer.cxx:232 AliTRDCalibViewer.cxx:233 AliTRDCalibViewer.cxx:234 AliTRDCalibViewer.cxx:235 AliTRDCalibViewer.cxx:236 AliTRDCalibViewer.cxx:237 AliTRDCalibViewer.cxx:238 AliTRDCalibViewer.cxx:239 AliTRDCalibViewer.cxx:240 AliTRDCalibViewer.cxx:241 AliTRDCalibViewer.cxx:242 AliTRDCalibViewer.cxx:243 AliTRDCalibViewer.cxx:244 AliTRDCalibViewer.cxx:245 AliTRDCalibViewer.cxx:246 AliTRDCalibViewer.cxx:247 AliTRDCalibViewer.cxx:248 AliTRDCalibViewer.cxx:249 AliTRDCalibViewer.cxx:250 AliTRDCalibViewer.cxx:251 AliTRDCalibViewer.cxx:252 AliTRDCalibViewer.cxx:253 AliTRDCalibViewer.cxx:254 AliTRDCalibViewer.cxx:255 AliTRDCalibViewer.cxx:256 AliTRDCalibViewer.cxx:257 AliTRDCalibViewer.cxx:258 AliTRDCalibViewer.cxx:259 AliTRDCalibViewer.cxx:260 AliTRDCalibViewer.cxx:261 AliTRDCalibViewer.cxx:262 AliTRDCalibViewer.cxx:263 AliTRDCalibViewer.cxx:264 AliTRDCalibViewer.cxx:265 AliTRDCalibViewer.cxx:266 AliTRDCalibViewer.cxx:267 AliTRDCalibViewer.cxx:268 AliTRDCalibViewer.cxx:269 AliTRDCalibViewer.cxx:270 AliTRDCalibViewer.cxx:271 AliTRDCalibViewer.cxx:272 AliTRDCalibViewer.cxx:273 AliTRDCalibViewer.cxx:274 AliTRDCalibViewer.cxx:275 AliTRDCalibViewer.cxx:276 AliTRDCalibViewer.cxx:277 AliTRDCalibViewer.cxx:278 AliTRDCalibViewer.cxx:279 AliTRDCalibViewer.cxx:280 AliTRDCalibViewer.cxx:281 AliTRDCalibViewer.cxx:282 AliTRDCalibViewer.cxx:283 AliTRDCalibViewer.cxx:284 AliTRDCalibViewer.cxx:285 AliTRDCalibViewer.cxx:286 AliTRDCalibViewer.cxx:287 AliTRDCalibViewer.cxx:288 AliTRDCalibViewer.cxx:289 AliTRDCalibViewer.cxx:290 AliTRDCalibViewer.cxx:291 AliTRDCalibViewer.cxx:292 AliTRDCalibViewer.cxx:293 AliTRDCalibViewer.cxx:294 AliTRDCalibViewer.cxx:295 AliTRDCalibViewer.cxx:296 AliTRDCalibViewer.cxx:297 AliTRDCalibViewer.cxx:298 AliTRDCalibViewer.cxx:299 AliTRDCalibViewer.cxx:300 AliTRDCalibViewer.cxx:301 AliTRDCalibViewer.cxx:302 AliTRDCalibViewer.cxx:303 AliTRDCalibViewer.cxx:304 AliTRDCalibViewer.cxx:305 AliTRDCalibViewer.cxx:306 AliTRDCalibViewer.cxx:307 AliTRDCalibViewer.cxx:308 AliTRDCalibViewer.cxx:309 AliTRDCalibViewer.cxx:310 AliTRDCalibViewer.cxx:311 AliTRDCalibViewer.cxx:312 AliTRDCalibViewer.cxx:313 AliTRDCalibViewer.cxx:314 AliTRDCalibViewer.cxx:315 AliTRDCalibViewer.cxx:316 AliTRDCalibViewer.cxx:317 AliTRDCalibViewer.cxx:318 AliTRDCalibViewer.cxx:319 AliTRDCalibViewer.cxx:320 AliTRDCalibViewer.cxx:321 AliTRDCalibViewer.cxx:322 AliTRDCalibViewer.cxx:323 AliTRDCalibViewer.cxx:324 AliTRDCalibViewer.cxx:325 AliTRDCalibViewer.cxx:326 AliTRDCalibViewer.cxx:327 AliTRDCalibViewer.cxx:328 AliTRDCalibViewer.cxx:329 AliTRDCalibViewer.cxx:330 AliTRDCalibViewer.cxx:331 AliTRDCalibViewer.cxx:332 AliTRDCalibViewer.cxx:333 AliTRDCalibViewer.cxx:334 AliTRDCalibViewer.cxx:335 AliTRDCalibViewer.cxx:336 AliTRDCalibViewer.cxx:337 AliTRDCalibViewer.cxx:338 AliTRDCalibViewer.cxx:339 AliTRDCalibViewer.cxx:340 AliTRDCalibViewer.cxx:341 AliTRDCalibViewer.cxx:342 AliTRDCalibViewer.cxx:343 AliTRDCalibViewer.cxx:344 AliTRDCalibViewer.cxx:345 AliTRDCalibViewer.cxx:346 AliTRDCalibViewer.cxx:347 AliTRDCalibViewer.cxx:348 AliTRDCalibViewer.cxx:349 AliTRDCalibViewer.cxx:350 AliTRDCalibViewer.cxx:351 AliTRDCalibViewer.cxx:352 AliTRDCalibViewer.cxx:353 AliTRDCalibViewer.cxx:354 AliTRDCalibViewer.cxx:355 AliTRDCalibViewer.cxx:356 AliTRDCalibViewer.cxx:357 AliTRDCalibViewer.cxx:358 AliTRDCalibViewer.cxx:359 AliTRDCalibViewer.cxx:360 AliTRDCalibViewer.cxx:361 AliTRDCalibViewer.cxx:362 AliTRDCalibViewer.cxx:363 AliTRDCalibViewer.cxx:364 AliTRDCalibViewer.cxx:365 AliTRDCalibViewer.cxx:366 AliTRDCalibViewer.cxx:367 AliTRDCalibViewer.cxx:368 AliTRDCalibViewer.cxx:369 AliTRDCalibViewer.cxx:370 AliTRDCalibViewer.cxx:371 AliTRDCalibViewer.cxx:372 AliTRDCalibViewer.cxx:373 AliTRDCalibViewer.cxx:374 AliTRDCalibViewer.cxx:375 AliTRDCalibViewer.cxx:376 AliTRDCalibViewer.cxx:377 AliTRDCalibViewer.cxx:378 AliTRDCalibViewer.cxx:379 AliTRDCalibViewer.cxx:380 AliTRDCalibViewer.cxx:381 AliTRDCalibViewer.cxx:382 AliTRDCalibViewer.cxx:383 AliTRDCalibViewer.cxx:384 AliTRDCalibViewer.cxx:385 AliTRDCalibViewer.cxx:386 AliTRDCalibViewer.cxx:387 AliTRDCalibViewer.cxx:388 AliTRDCalibViewer.cxx:389 AliTRDCalibViewer.cxx:390 AliTRDCalibViewer.cxx:391 AliTRDCalibViewer.cxx:392 AliTRDCalibViewer.cxx:393 AliTRDCalibViewer.cxx:394 AliTRDCalibViewer.cxx:395 AliTRDCalibViewer.cxx:396 AliTRDCalibViewer.cxx:397 AliTRDCalibViewer.cxx:398 AliTRDCalibViewer.cxx:399 AliTRDCalibViewer.cxx:400 AliTRDCalibViewer.cxx:401 AliTRDCalibViewer.cxx:402 AliTRDCalibViewer.cxx:403 AliTRDCalibViewer.cxx:404 AliTRDCalibViewer.cxx:405 AliTRDCalibViewer.cxx:406 AliTRDCalibViewer.cxx:407 AliTRDCalibViewer.cxx:408 AliTRDCalibViewer.cxx:409 AliTRDCalibViewer.cxx:410 AliTRDCalibViewer.cxx:411 AliTRDCalibViewer.cxx:412 AliTRDCalibViewer.cxx:413 AliTRDCalibViewer.cxx:414 AliTRDCalibViewer.cxx:415 AliTRDCalibViewer.cxx:416 AliTRDCalibViewer.cxx:417 AliTRDCalibViewer.cxx:418 AliTRDCalibViewer.cxx:419 AliTRDCalibViewer.cxx:420 AliTRDCalibViewer.cxx:421 AliTRDCalibViewer.cxx:422 AliTRDCalibViewer.cxx:423 AliTRDCalibViewer.cxx:424 AliTRDCalibViewer.cxx:425 AliTRDCalibViewer.cxx:426 AliTRDCalibViewer.cxx:427 AliTRDCalibViewer.cxx:428 AliTRDCalibViewer.cxx:429 AliTRDCalibViewer.cxx:430 AliTRDCalibViewer.cxx:431 AliTRDCalibViewer.cxx:432 AliTRDCalibViewer.cxx:433 AliTRDCalibViewer.cxx:434 AliTRDCalibViewer.cxx:435 AliTRDCalibViewer.cxx:436 AliTRDCalibViewer.cxx:437 AliTRDCalibViewer.cxx:438 AliTRDCalibViewer.cxx:439 AliTRDCalibViewer.cxx:440 AliTRDCalibViewer.cxx:441 AliTRDCalibViewer.cxx:442 AliTRDCalibViewer.cxx:443 AliTRDCalibViewer.cxx:444 AliTRDCalibViewer.cxx:445 AliTRDCalibViewer.cxx:446 AliTRDCalibViewer.cxx:447 AliTRDCalibViewer.cxx:448 AliTRDCalibViewer.cxx:449 AliTRDCalibViewer.cxx:450 AliTRDCalibViewer.cxx:451 AliTRDCalibViewer.cxx:452 AliTRDCalibViewer.cxx:453 AliTRDCalibViewer.cxx:454 AliTRDCalibViewer.cxx:455 AliTRDCalibViewer.cxx:456 AliTRDCalibViewer.cxx:457 AliTRDCalibViewer.cxx:458 AliTRDCalibViewer.cxx:459 AliTRDCalibViewer.cxx:460 AliTRDCalibViewer.cxx:461 AliTRDCalibViewer.cxx:462 AliTRDCalibViewer.cxx:463 AliTRDCalibViewer.cxx:464 AliTRDCalibViewer.cxx:465 AliTRDCalibViewer.cxx:466 AliTRDCalibViewer.cxx:467 AliTRDCalibViewer.cxx:468 AliTRDCalibViewer.cxx:469 AliTRDCalibViewer.cxx:470 AliTRDCalibViewer.cxx:471 AliTRDCalibViewer.cxx:472 AliTRDCalibViewer.cxx:473 AliTRDCalibViewer.cxx:474 AliTRDCalibViewer.cxx:475 AliTRDCalibViewer.cxx:476 AliTRDCalibViewer.cxx:477 AliTRDCalibViewer.cxx:478 AliTRDCalibViewer.cxx:479 AliTRDCalibViewer.cxx:480 AliTRDCalibViewer.cxx:481 AliTRDCalibViewer.cxx:482 AliTRDCalibViewer.cxx:483 AliTRDCalibViewer.cxx:484 AliTRDCalibViewer.cxx:485 AliTRDCalibViewer.cxx:486 AliTRDCalibViewer.cxx:487 AliTRDCalibViewer.cxx:488 AliTRDCalibViewer.cxx:489 AliTRDCalibViewer.cxx:490 AliTRDCalibViewer.cxx:491 AliTRDCalibViewer.cxx:492 AliTRDCalibViewer.cxx:493 AliTRDCalibViewer.cxx:494 AliTRDCalibViewer.cxx:495 AliTRDCalibViewer.cxx:496 AliTRDCalibViewer.cxx:497 AliTRDCalibViewer.cxx:498 AliTRDCalibViewer.cxx:499 AliTRDCalibViewer.cxx:500 AliTRDCalibViewer.cxx:501 AliTRDCalibViewer.cxx:502 AliTRDCalibViewer.cxx:503 AliTRDCalibViewer.cxx:504 AliTRDCalibViewer.cxx:505 AliTRDCalibViewer.cxx:506 AliTRDCalibViewer.cxx:507 AliTRDCalibViewer.cxx:508 AliTRDCalibViewer.cxx:509 AliTRDCalibViewer.cxx:510 AliTRDCalibViewer.cxx:511 AliTRDCalibViewer.cxx:512 AliTRDCalibViewer.cxx:513 AliTRDCalibViewer.cxx:514 AliTRDCalibViewer.cxx:515 AliTRDCalibViewer.cxx:516 AliTRDCalibViewer.cxx:517 AliTRDCalibViewer.cxx:518 AliTRDCalibViewer.cxx:519 AliTRDCalibViewer.cxx:520 AliTRDCalibViewer.cxx:521 AliTRDCalibViewer.cxx:522 AliTRDCalibViewer.cxx:523 AliTRDCalibViewer.cxx:524 AliTRDCalibViewer.cxx:525 AliTRDCalibViewer.cxx:526 AliTRDCalibViewer.cxx:527 AliTRDCalibViewer.cxx:528 AliTRDCalibViewer.cxx:529 AliTRDCalibViewer.cxx:530 AliTRDCalibViewer.cxx:531 AliTRDCalibViewer.cxx:532 AliTRDCalibViewer.cxx:533 AliTRDCalibViewer.cxx:534 AliTRDCalibViewer.cxx:535 AliTRDCalibViewer.cxx:536 AliTRDCalibViewer.cxx:537 AliTRDCalibViewer.cxx:538 AliTRDCalibViewer.cxx:539 AliTRDCalibViewer.cxx:540 AliTRDCalibViewer.cxx:541 AliTRDCalibViewer.cxx:542 AliTRDCalibViewer.cxx:543 AliTRDCalibViewer.cxx:544 AliTRDCalibViewer.cxx:545 AliTRDCalibViewer.cxx:546 AliTRDCalibViewer.cxx:547 AliTRDCalibViewer.cxx:548 AliTRDCalibViewer.cxx:549 AliTRDCalibViewer.cxx:550 AliTRDCalibViewer.cxx:551 AliTRDCalibViewer.cxx:552 AliTRDCalibViewer.cxx:553 AliTRDCalibViewer.cxx:554 AliTRDCalibViewer.cxx:555 AliTRDCalibViewer.cxx:556 AliTRDCalibViewer.cxx:557 AliTRDCalibViewer.cxx:558 AliTRDCalibViewer.cxx:559 AliTRDCalibViewer.cxx:560 AliTRDCalibViewer.cxx:561 AliTRDCalibViewer.cxx:562 AliTRDCalibViewer.cxx:563 AliTRDCalibViewer.cxx:564 AliTRDCalibViewer.cxx:565 AliTRDCalibViewer.cxx:566 AliTRDCalibViewer.cxx:567 AliTRDCalibViewer.cxx:568 AliTRDCalibViewer.cxx:569 AliTRDCalibViewer.cxx:570 AliTRDCalibViewer.cxx:571 AliTRDCalibViewer.cxx:572 AliTRDCalibViewer.cxx:573 AliTRDCalibViewer.cxx:574 AliTRDCalibViewer.cxx:575 AliTRDCalibViewer.cxx:576 AliTRDCalibViewer.cxx:577 AliTRDCalibViewer.cxx:578 AliTRDCalibViewer.cxx:579 AliTRDCalibViewer.cxx:580 AliTRDCalibViewer.cxx:581 AliTRDCalibViewer.cxx:582 AliTRDCalibViewer.cxx:583 AliTRDCalibViewer.cxx:584 AliTRDCalibViewer.cxx:585 AliTRDCalibViewer.cxx:586 AliTRDCalibViewer.cxx:587 AliTRDCalibViewer.cxx:588 AliTRDCalibViewer.cxx:589 AliTRDCalibViewer.cxx:590 AliTRDCalibViewer.cxx:591 AliTRDCalibViewer.cxx:592 AliTRDCalibViewer.cxx:593 AliTRDCalibViewer.cxx:594 AliTRDCalibViewer.cxx:595 AliTRDCalibViewer.cxx:596 AliTRDCalibViewer.cxx:597 AliTRDCalibViewer.cxx:598 AliTRDCalibViewer.cxx:599 AliTRDCalibViewer.cxx:600 AliTRDCalibViewer.cxx:601 AliTRDCalibViewer.cxx:602 AliTRDCalibViewer.cxx:603 AliTRDCalibViewer.cxx:604 AliTRDCalibViewer.cxx:605 AliTRDCalibViewer.cxx:606 AliTRDCalibViewer.cxx:607 AliTRDCalibViewer.cxx:608 AliTRDCalibViewer.cxx:609 AliTRDCalibViewer.cxx:610 AliTRDCalibViewer.cxx:611 AliTRDCalibViewer.cxx:612 AliTRDCalibViewer.cxx:613 AliTRDCalibViewer.cxx:614 AliTRDCalibViewer.cxx:615 AliTRDCalibViewer.cxx:616 AliTRDCalibViewer.cxx:617 AliTRDCalibViewer.cxx:618 AliTRDCalibViewer.cxx:619 AliTRDCalibViewer.cxx:620 AliTRDCalibViewer.cxx:621 AliTRDCalibViewer.cxx:622 AliTRDCalibViewer.cxx:623 AliTRDCalibViewer.cxx:624 AliTRDCalibViewer.cxx:625 AliTRDCalibViewer.cxx:626 AliTRDCalibViewer.cxx:627 AliTRDCalibViewer.cxx:628 AliTRDCalibViewer.cxx:629 AliTRDCalibViewer.cxx:630 AliTRDCalibViewer.cxx:631 AliTRDCalibViewer.cxx:632 AliTRDCalibViewer.cxx:633 AliTRDCalibViewer.cxx:634 AliTRDCalibViewer.cxx:635 AliTRDCalibViewer.cxx:636 AliTRDCalibViewer.cxx:637 AliTRDCalibViewer.cxx:638 AliTRDCalibViewer.cxx:639 AliTRDCalibViewer.cxx:640 AliTRDCalibViewer.cxx:641 AliTRDCalibViewer.cxx:642 AliTRDCalibViewer.cxx:643 AliTRDCalibViewer.cxx:644 AliTRDCalibViewer.cxx:645 AliTRDCalibViewer.cxx:646 AliTRDCalibViewer.cxx:647 AliTRDCalibViewer.cxx:648 AliTRDCalibViewer.cxx:649 AliTRDCalibViewer.cxx:650 AliTRDCalibViewer.cxx:651 AliTRDCalibViewer.cxx:652 AliTRDCalibViewer.cxx:653 AliTRDCalibViewer.cxx:654 AliTRDCalibViewer.cxx:655 AliTRDCalibViewer.cxx:656 AliTRDCalibViewer.cxx:657 AliTRDCalibViewer.cxx:658 AliTRDCalibViewer.cxx:659 AliTRDCalibViewer.cxx:660 AliTRDCalibViewer.cxx:661 AliTRDCalibViewer.cxx:662 AliTRDCalibViewer.cxx:663 AliTRDCalibViewer.cxx:664 AliTRDCalibViewer.cxx:665 AliTRDCalibViewer.cxx:666 AliTRDCalibViewer.cxx:667 AliTRDCalibViewer.cxx:668 AliTRDCalibViewer.cxx:669 AliTRDCalibViewer.cxx:670 AliTRDCalibViewer.cxx:671 AliTRDCalibViewer.cxx:672 AliTRDCalibViewer.cxx:673 AliTRDCalibViewer.cxx:674 AliTRDCalibViewer.cxx:675 AliTRDCalibViewer.cxx:676 AliTRDCalibViewer.cxx:677 AliTRDCalibViewer.cxx:678 AliTRDCalibViewer.cxx:679 AliTRDCalibViewer.cxx:680 AliTRDCalibViewer.cxx:681 AliTRDCalibViewer.cxx:682 AliTRDCalibViewer.cxx:683 AliTRDCalibViewer.cxx:684 AliTRDCalibViewer.cxx:685 AliTRDCalibViewer.cxx:686 AliTRDCalibViewer.cxx:687 AliTRDCalibViewer.cxx:688 AliTRDCalibViewer.cxx:689 AliTRDCalibViewer.cxx:690 AliTRDCalibViewer.cxx:691 AliTRDCalibViewer.cxx:692 AliTRDCalibViewer.cxx:693 AliTRDCalibViewer.cxx:694 AliTRDCalibViewer.cxx:695 AliTRDCalibViewer.cxx:696 AliTRDCalibViewer.cxx:697 AliTRDCalibViewer.cxx:698 AliTRDCalibViewer.cxx:699 AliTRDCalibViewer.cxx:700 AliTRDCalibViewer.cxx:701 AliTRDCalibViewer.cxx:702 AliTRDCalibViewer.cxx:703 AliTRDCalibViewer.cxx:704 AliTRDCalibViewer.cxx:705 AliTRDCalibViewer.cxx:706 AliTRDCalibViewer.cxx:707 AliTRDCalibViewer.cxx:708 AliTRDCalibViewer.cxx:709 AliTRDCalibViewer.cxx:710 AliTRDCalibViewer.cxx:711 AliTRDCalibViewer.cxx:712 AliTRDCalibViewer.cxx:713 AliTRDCalibViewer.cxx:714 AliTRDCalibViewer.cxx:715 AliTRDCalibViewer.cxx:716 AliTRDCalibViewer.cxx:717 AliTRDCalibViewer.cxx:718 AliTRDCalibViewer.cxx:719 AliTRDCalibViewer.cxx:720 AliTRDCalibViewer.cxx:721 AliTRDCalibViewer.cxx:722 AliTRDCalibViewer.cxx:723 AliTRDCalibViewer.cxx:724 AliTRDCalibViewer.cxx:725 AliTRDCalibViewer.cxx:726 AliTRDCalibViewer.cxx:727 AliTRDCalibViewer.cxx:728 AliTRDCalibViewer.cxx:729 AliTRDCalibViewer.cxx:730 AliTRDCalibViewer.cxx:731 AliTRDCalibViewer.cxx:732 AliTRDCalibViewer.cxx:733 AliTRDCalibViewer.cxx:734 AliTRDCalibViewer.cxx:735 AliTRDCalibViewer.cxx:736 AliTRDCalibViewer.cxx:737 AliTRDCalibViewer.cxx:738 AliTRDCalibViewer.cxx:739 AliTRDCalibViewer.cxx:740 AliTRDCalibViewer.cxx:741 AliTRDCalibViewer.cxx:742 AliTRDCalibViewer.cxx:743 AliTRDCalibViewer.cxx:744 AliTRDCalibViewer.cxx:745 AliTRDCalibViewer.cxx:746 AliTRDCalibViewer.cxx:747 AliTRDCalibViewer.cxx:748 AliTRDCalibViewer.cxx:749 AliTRDCalibViewer.cxx:750 AliTRDCalibViewer.cxx:751 AliTRDCalibViewer.cxx:752 AliTRDCalibViewer.cxx:753 AliTRDCalibViewer.cxx:754 AliTRDCalibViewer.cxx:755 AliTRDCalibViewer.cxx:756 AliTRDCalibViewer.cxx:757 AliTRDCalibViewer.cxx:758 AliTRDCalibViewer.cxx:759 AliTRDCalibViewer.cxx:760 AliTRDCalibViewer.cxx:761 AliTRDCalibViewer.cxx:762 AliTRDCalibViewer.cxx:763 AliTRDCalibViewer.cxx:764 AliTRDCalibViewer.cxx:765 AliTRDCalibViewer.cxx:766 AliTRDCalibViewer.cxx:767 AliTRDCalibViewer.cxx:768 AliTRDCalibViewer.cxx:769 AliTRDCalibViewer.cxx:770 AliTRDCalibViewer.cxx:771 AliTRDCalibViewer.cxx:772 AliTRDCalibViewer.cxx:773 AliTRDCalibViewer.cxx:774 AliTRDCalibViewer.cxx:775 AliTRDCalibViewer.cxx:776 AliTRDCalibViewer.cxx:777 AliTRDCalibViewer.cxx:778 AliTRDCalibViewer.cxx:779 AliTRDCalibViewer.cxx:780 AliTRDCalibViewer.cxx:781 AliTRDCalibViewer.cxx:782 AliTRDCalibViewer.cxx:783 AliTRDCalibViewer.cxx:784 AliTRDCalibViewer.cxx:785 AliTRDCalibViewer.cxx:786 AliTRDCalibViewer.cxx:787 AliTRDCalibViewer.cxx:788 AliTRDCalibViewer.cxx:789 AliTRDCalibViewer.cxx:790 AliTRDCalibViewer.cxx:791 AliTRDCalibViewer.cxx:792 AliTRDCalibViewer.cxx:793 AliTRDCalibViewer.cxx:794 AliTRDCalibViewer.cxx:795 AliTRDCalibViewer.cxx:796 AliTRDCalibViewer.cxx:797 AliTRDCalibViewer.cxx:798 AliTRDCalibViewer.cxx:799 AliTRDCalibViewer.cxx:800 AliTRDCalibViewer.cxx:801 AliTRDCalibViewer.cxx:802 AliTRDCalibViewer.cxx:803 AliTRDCalibViewer.cxx:804 AliTRDCalibViewer.cxx:805 AliTRDCalibViewer.cxx:806 AliTRDCalibViewer.cxx:807 AliTRDCalibViewer.cxx:808 AliTRDCalibViewer.cxx:809 AliTRDCalibViewer.cxx:810 AliTRDCalibViewer.cxx:811 AliTRDCalibViewer.cxx:812 AliTRDCalibViewer.cxx:813 AliTRDCalibViewer.cxx:814 AliTRDCalibViewer.cxx:815 AliTRDCalibViewer.cxx:816 AliTRDCalibViewer.cxx:817 AliTRDCalibViewer.cxx:818 AliTRDCalibViewer.cxx:819 AliTRDCalibViewer.cxx:820 AliTRDCalibViewer.cxx:821 AliTRDCalibViewer.cxx:822 AliTRDCalibViewer.cxx:823 AliTRDCalibViewer.cxx:824 AliTRDCalibViewer.cxx:825 AliTRDCalibViewer.cxx:826 AliTRDCalibViewer.cxx:827 AliTRDCalibViewer.cxx:828 AliTRDCalibViewer.cxx:829 AliTRDCalibViewer.cxx:830 AliTRDCalibViewer.cxx:831 AliTRDCalibViewer.cxx:832 AliTRDCalibViewer.cxx:833 AliTRDCalibViewer.cxx:834 AliTRDCalibViewer.cxx:835 AliTRDCalibViewer.cxx:836 AliTRDCalibViewer.cxx:837 AliTRDCalibViewer.cxx:838 AliTRDCalibViewer.cxx:839 AliTRDCalibViewer.cxx:840 AliTRDCalibViewer.cxx:841 AliTRDCalibViewer.cxx:842 AliTRDCalibViewer.cxx:843 AliTRDCalibViewer.cxx:844 AliTRDCalibViewer.cxx:845 AliTRDCalibViewer.cxx:846 AliTRDCalibViewer.cxx:847 AliTRDCalibViewer.cxx:848 AliTRDCalibViewer.cxx:849 AliTRDCalibViewer.cxx:850 AliTRDCalibViewer.cxx:851 AliTRDCalibViewer.cxx:852 AliTRDCalibViewer.cxx:853 AliTRDCalibViewer.cxx:854 AliTRDCalibViewer.cxx:855 AliTRDCalibViewer.cxx:856 AliTRDCalibViewer.cxx:857 AliTRDCalibViewer.cxx:858 AliTRDCalibViewer.cxx:859 AliTRDCalibViewer.cxx:860 AliTRDCalibViewer.cxx:861 AliTRDCalibViewer.cxx:862 AliTRDCalibViewer.cxx:863 AliTRDCalibViewer.cxx:864 AliTRDCalibViewer.cxx:865 AliTRDCalibViewer.cxx:866 AliTRDCalibViewer.cxx:867 AliTRDCalibViewer.cxx:868 AliTRDCalibViewer.cxx:869 AliTRDCalibViewer.cxx:870 AliTRDCalibViewer.cxx:871 AliTRDCalibViewer.cxx:872 AliTRDCalibViewer.cxx:873 AliTRDCalibViewer.cxx:874 AliTRDCalibViewer.cxx:875 AliTRDCalibViewer.cxx:876 AliTRDCalibViewer.cxx:877 AliTRDCalibViewer.cxx:878 AliTRDCalibViewer.cxx:879 AliTRDCalibViewer.cxx:880 AliTRDCalibViewer.cxx:881 AliTRDCalibViewer.cxx:882 AliTRDCalibViewer.cxx:883 AliTRDCalibViewer.cxx:884 AliTRDCalibViewer.cxx:885 AliTRDCalibViewer.cxx:886 AliTRDCalibViewer.cxx:887 AliTRDCalibViewer.cxx:888 AliTRDCalibViewer.cxx:889 AliTRDCalibViewer.cxx:890 AliTRDCalibViewer.cxx:891 AliTRDCalibViewer.cxx:892 AliTRDCalibViewer.cxx:893 AliTRDCalibViewer.cxx:894 AliTRDCalibViewer.cxx:895 AliTRDCalibViewer.cxx:896 AliTRDCalibViewer.cxx:897 AliTRDCalibViewer.cxx:898 AliTRDCalibViewer.cxx:899 AliTRDCalibViewer.cxx:900 AliTRDCalibViewer.cxx:901 AliTRDCalibViewer.cxx:902 AliTRDCalibViewer.cxx:903 AliTRDCalibViewer.cxx:904 AliTRDCalibViewer.cxx:905 AliTRDCalibViewer.cxx:906 AliTRDCalibViewer.cxx:907 AliTRDCalibViewer.cxx:908 AliTRDCalibViewer.cxx:909 AliTRDCalibViewer.cxx:910 AliTRDCalibViewer.cxx:911 AliTRDCalibViewer.cxx:912 AliTRDCalibViewer.cxx:913 AliTRDCalibViewer.cxx:914 AliTRDCalibViewer.cxx:915 AliTRDCalibViewer.cxx:916 AliTRDCalibViewer.cxx:917 AliTRDCalibViewer.cxx:918 AliTRDCalibViewer.cxx:919 AliTRDCalibViewer.cxx:920 AliTRDCalibViewer.cxx:921 AliTRDCalibViewer.cxx:922 AliTRDCalibViewer.cxx:923 AliTRDCalibViewer.cxx:924 AliTRDCalibViewer.cxx:925 AliTRDCalibViewer.cxx:926 AliTRDCalibViewer.cxx:927 AliTRDCalibViewer.cxx:928 AliTRDCalibViewer.cxx:929 AliTRDCalibViewer.cxx:930 AliTRDCalibViewer.cxx:931 AliTRDCalibViewer.cxx:932 AliTRDCalibViewer.cxx:933 AliTRDCalibViewer.cxx:934 AliTRDCalibViewer.cxx:935 AliTRDCalibViewer.cxx:936 AliTRDCalibViewer.cxx:937 AliTRDCalibViewer.cxx:938 AliTRDCalibViewer.cxx:939 AliTRDCalibViewer.cxx:940 AliTRDCalibViewer.cxx:941 AliTRDCalibViewer.cxx:942 AliTRDCalibViewer.cxx:943 AliTRDCalibViewer.cxx:944 AliTRDCalibViewer.cxx:945 AliTRDCalibViewer.cxx:946 AliTRDCalibViewer.cxx:947 AliTRDCalibViewer.cxx:948 AliTRDCalibViewer.cxx:949 AliTRDCalibViewer.cxx:950 AliTRDCalibViewer.cxx:951 AliTRDCalibViewer.cxx:952 AliTRDCalibViewer.cxx:953 AliTRDCalibViewer.cxx:954 AliTRDCalibViewer.cxx:955 AliTRDCalibViewer.cxx:956 AliTRDCalibViewer.cxx:957 AliTRDCalibViewer.cxx:958 AliTRDCalibViewer.cxx:959 AliTRDCalibViewer.cxx:960 AliTRDCalibViewer.cxx:961 AliTRDCalibViewer.cxx:962 AliTRDCalibViewer.cxx:963 AliTRDCalibViewer.cxx:964 AliTRDCalibViewer.cxx:965 AliTRDCalibViewer.cxx:966 AliTRDCalibViewer.cxx:967 AliTRDCalibViewer.cxx:968 AliTRDCalibViewer.cxx:969 AliTRDCalibViewer.cxx:970 AliTRDCalibViewer.cxx:971 AliTRDCalibViewer.cxx:972 AliTRDCalibViewer.cxx:973 AliTRDCalibViewer.cxx:974 AliTRDCalibViewer.cxx:975 AliTRDCalibViewer.cxx:976 AliTRDCalibViewer.cxx:977 AliTRDCalibViewer.cxx:978 AliTRDCalibViewer.cxx:979 AliTRDCalibViewer.cxx:980 AliTRDCalibViewer.cxx:981 AliTRDCalibViewer.cxx:982 AliTRDCalibViewer.cxx:983 AliTRDCalibViewer.cxx:984 AliTRDCalibViewer.cxx:985 AliTRDCalibViewer.cxx:986 AliTRDCalibViewer.cxx:987 AliTRDCalibViewer.cxx:988 AliTRDCalibViewer.cxx:989 AliTRDCalibViewer.cxx:990 AliTRDCalibViewer.cxx:991 AliTRDCalibViewer.cxx:992 AliTRDCalibViewer.cxx:993 AliTRDCalibViewer.cxx:994 AliTRDCalibViewer.cxx:995 AliTRDCalibViewer.cxx:996 AliTRDCalibViewer.cxx:997 AliTRDCalibViewer.cxx:998 AliTRDCalibViewer.cxx:999 AliTRDCalibViewer.cxx:1000 AliTRDCalibViewer.cxx:1001 AliTRDCalibViewer.cxx:1002 AliTRDCalibViewer.cxx:1003 AliTRDCalibViewer.cxx:1004 AliTRDCalibViewer.cxx:1005 AliTRDCalibViewer.cxx:1006 AliTRDCalibViewer.cxx:1007 AliTRDCalibViewer.cxx:1008 AliTRDCalibViewer.cxx:1009 AliTRDCalibViewer.cxx:1010 AliTRDCalibViewer.cxx:1011 AliTRDCalibViewer.cxx:1012 AliTRDCalibViewer.cxx:1013 AliTRDCalibViewer.cxx:1014 AliTRDCalibViewer.cxx:1015 AliTRDCalibViewer.cxx:1016 AliTRDCalibViewer.cxx:1017 AliTRDCalibViewer.cxx:1018 AliTRDCalibViewer.cxx:1019 AliTRDCalibViewer.cxx:1020 AliTRDCalibViewer.cxx:1021 AliTRDCalibViewer.cxx:1022 AliTRDCalibViewer.cxx:1023 AliTRDCalibViewer.cxx:1024 AliTRDCalibViewer.cxx:1025 AliTRDCalibViewer.cxx:1026 AliTRDCalibViewer.cxx:1027 AliTRDCalibViewer.cxx:1028 AliTRDCalibViewer.cxx:1029 AliTRDCalibViewer.cxx:1030 AliTRDCalibViewer.cxx:1031 AliTRDCalibViewer.cxx:1032 AliTRDCalibViewer.cxx:1033 AliTRDCalibViewer.cxx:1034 AliTRDCalibViewer.cxx:1035 AliTRDCalibViewer.cxx:1036 AliTRDCalibViewer.cxx:1037 AliTRDCalibViewer.cxx:1038 AliTRDCalibViewer.cxx:1039 AliTRDCalibViewer.cxx:1040 AliTRDCalibViewer.cxx:1041 AliTRDCalibViewer.cxx:1042 AliTRDCalibViewer.cxx:1043 AliTRDCalibViewer.cxx:1044 AliTRDCalibViewer.cxx:1045 AliTRDCalibViewer.cxx:1046 AliTRDCalibViewer.cxx:1047 AliTRDCalibViewer.cxx:1048 AliTRDCalibViewer.cxx:1049 AliTRDCalibViewer.cxx:1050 AliTRDCalibViewer.cxx:1051 AliTRDCalibViewer.cxx:1052 AliTRDCalibViewer.cxx:1053 AliTRDCalibViewer.cxx:1054 AliTRDCalibViewer.cxx:1055 AliTRDCalibViewer.cxx:1056 AliTRDCalibViewer.cxx:1057 AliTRDCalibViewer.cxx:1058 AliTRDCalibViewer.cxx:1059 AliTRDCalibViewer.cxx:1060 AliTRDCalibViewer.cxx:1061 AliTRDCalibViewer.cxx:1062 AliTRDCalibViewer.cxx:1063 AliTRDCalibViewer.cxx:1064 AliTRDCalibViewer.cxx:1065 AliTRDCalibViewer.cxx:1066 AliTRDCalibViewer.cxx:1067 AliTRDCalibViewer.cxx:1068 AliTRDCalibViewer.cxx:1069 AliTRDCalibViewer.cxx:1070 AliTRDCalibViewer.cxx:1071 AliTRDCalibViewer.cxx:1072 AliTRDCalibViewer.cxx:1073 AliTRDCalibViewer.cxx:1074 AliTRDCalibViewer.cxx:1075 AliTRDCalibViewer.cxx:1076 AliTRDCalibViewer.cxx:1077 AliTRDCalibViewer.cxx:1078 AliTRDCalibViewer.cxx:1079 AliTRDCalibViewer.cxx:1080 AliTRDCalibViewer.cxx:1081 AliTRDCalibViewer.cxx:1082 AliTRDCalibViewer.cxx:1083 AliTRDCalibViewer.cxx:1084 AliTRDCalibViewer.cxx:1085 AliTRDCalibViewer.cxx:1086 AliTRDCalibViewer.cxx:1087 AliTRDCalibViewer.cxx:1088 AliTRDCalibViewer.cxx:1089 AliTRDCalibViewer.cxx:1090 AliTRDCalibViewer.cxx:1091 AliTRDCalibViewer.cxx:1092 AliTRDCalibViewer.cxx:1093 AliTRDCalibViewer.cxx:1094 AliTRDCalibViewer.cxx:1095 AliTRDCalibViewer.cxx:1096 AliTRDCalibViewer.cxx:1097 AliTRDCalibViewer.cxx:1098 AliTRDCalibViewer.cxx:1099 AliTRDCalibViewer.cxx:1100 AliTRDCalibViewer.cxx:1101 AliTRDCalibViewer.cxx:1102 AliTRDCalibViewer.cxx:1103 AliTRDCalibViewer.cxx:1104 AliTRDCalibViewer.cxx:1105 AliTRDCalibViewer.cxx:1106 AliTRDCalibViewer.cxx:1107 AliTRDCalibViewer.cxx:1108 AliTRDCalibViewer.cxx:1109 AliTRDCalibViewer.cxx:1110 AliTRDCalibViewer.cxx:1111 AliTRDCalibViewer.cxx:1112 AliTRDCalibViewer.cxx:1113 AliTRDCalibViewer.cxx:1114 AliTRDCalibViewer.cxx:1115 AliTRDCalibViewer.cxx:1116 AliTRDCalibViewer.cxx:1117 AliTRDCalibViewer.cxx:1118 AliTRDCalibViewer.cxx:1119 AliTRDCalibViewer.cxx:1120 AliTRDCalibViewer.cxx:1121 AliTRDCalibViewer.cxx:1122 AliTRDCalibViewer.cxx:1123 AliTRDCalibViewer.cxx:1124 AliTRDCalibViewer.cxx:1125 AliTRDCalibViewer.cxx:1126 AliTRDCalibViewer.cxx:1127 AliTRDCalibViewer.cxx:1128 AliTRDCalibViewer.cxx:1129 AliTRDCalibViewer.cxx:1130 AliTRDCalibViewer.cxx:1131 AliTRDCalibViewer.cxx:1132 AliTRDCalibViewer.cxx:1133 AliTRDCalibViewer.cxx:1134 AliTRDCalibViewer.cxx:1135 AliTRDCalibViewer.cxx:1136 AliTRDCalibViewer.cxx:1137 AliTRDCalibViewer.cxx:1138 AliTRDCalibViewer.cxx:1139 AliTRDCalibViewer.cxx:1140 AliTRDCalibViewer.cxx:1141 AliTRDCalibViewer.cxx:1142 AliTRDCalibViewer.cxx:1143 AliTRDCalibViewer.cxx:1144 AliTRDCalibViewer.cxx:1145 AliTRDCalibViewer.cxx:1146 AliTRDCalibViewer.cxx:1147 AliTRDCalibViewer.cxx:1148 AliTRDCalibViewer.cxx:1149 AliTRDCalibViewer.cxx:1150 AliTRDCalibViewer.cxx:1151 AliTRDCalibViewer.cxx:1152 AliTRDCalibViewer.cxx:1153 AliTRDCalibViewer.cxx:1154 AliTRDCalibViewer.cxx:1155 AliTRDCalibViewer.cxx:1156 AliTRDCalibViewer.cxx:1157 AliTRDCalibViewer.cxx:1158 AliTRDCalibViewer.cxx:1159 AliTRDCalibViewer.cxx:1160 AliTRDCalibViewer.cxx:1161 AliTRDCalibViewer.cxx:1162 AliTRDCalibViewer.cxx:1163 AliTRDCalibViewer.cxx:1164 AliTRDCalibViewer.cxx:1165 AliTRDCalibViewer.cxx:1166 AliTRDCalibViewer.cxx:1167 AliTRDCalibViewer.cxx:1168 AliTRDCalibViewer.cxx:1169 AliTRDCalibViewer.cxx:1170 AliTRDCalibViewer.cxx:1171 AliTRDCalibViewer.cxx:1172 AliTRDCalibViewer.cxx:1173 AliTRDCalibViewer.cxx:1174 AliTRDCalibViewer.cxx:1175 AliTRDCalibViewer.cxx:1176 AliTRDCalibViewer.cxx:1177 AliTRDCalibViewer.cxx:1178 AliTRDCalibViewer.cxx:1179 AliTRDCalibViewer.cxx:1180 AliTRDCalibViewer.cxx:1181 AliTRDCalibViewer.cxx:1182 AliTRDCalibViewer.cxx:1183 AliTRDCalibViewer.cxx:1184 AliTRDCalibViewer.cxx:1185 AliTRDCalibViewer.cxx:1186 AliTRDCalibViewer.cxx:1187 AliTRDCalibViewer.cxx:1188 AliTRDCalibViewer.cxx:1189 AliTRDCalibViewer.cxx:1190 AliTRDCalibViewer.cxx:1191 AliTRDCalibViewer.cxx:1192 AliTRDCalibViewer.cxx:1193 AliTRDCalibViewer.cxx:1194 AliTRDCalibViewer.cxx:1195 AliTRDCalibViewer.cxx:1196 AliTRDCalibViewer.cxx:1197 AliTRDCalibViewer.cxx:1198 AliTRDCalibViewer.cxx:1199 AliTRDCalibViewer.cxx:1200 AliTRDCalibViewer.cxx:1201 AliTRDCalibViewer.cxx:1202 AliTRDCalibViewer.cxx:1203 AliTRDCalibViewer.cxx:1204 AliTRDCalibViewer.cxx:1205 AliTRDCalibViewer.cxx:1206 AliTRDCalibViewer.cxx:1207 AliTRDCalibViewer.cxx:1208 AliTRDCalibViewer.cxx:1209 AliTRDCalibViewer.cxx:1210 AliTRDCalibViewer.cxx:1211 AliTRDCalibViewer.cxx:1212 AliTRDCalibViewer.cxx:1213 AliTRDCalibViewer.cxx:1214 AliTRDCalibViewer.cxx:1215 AliTRDCalibViewer.cxx:1216 AliTRDCalibViewer.cxx:1217 AliTRDCalibViewer.cxx:1218 AliTRDCalibViewer.cxx:1219 AliTRDCalibViewer.cxx:1220 AliTRDCalibViewer.cxx:1221 AliTRDCalibViewer.cxx:1222 AliTRDCalibViewer.cxx:1223 AliTRDCalibViewer.cxx:1224 AliTRDCalibViewer.cxx:1225 AliTRDCalibViewer.cxx:1226 AliTRDCalibViewer.cxx:1227 AliTRDCalibViewer.cxx:1228 AliTRDCalibViewer.cxx:1229 AliTRDCalibViewer.cxx:1230 AliTRDCalibViewer.cxx:1231 AliTRDCalibViewer.cxx:1232 AliTRDCalibViewer.cxx:1233 AliTRDCalibViewer.cxx:1234 AliTRDCalibViewer.cxx:1235 AliTRDCalibViewer.cxx:1236 AliTRDCalibViewer.cxx:1237 AliTRDCalibViewer.cxx:1238 AliTRDCalibViewer.cxx:1239 AliTRDCalibViewer.cxx:1240 AliTRDCalibViewer.cxx:1241 AliTRDCalibViewer.cxx:1242 AliTRDCalibViewer.cxx:1243 AliTRDCalibViewer.cxx:1244 AliTRDCalibViewer.cxx:1245 AliTRDCalibViewer.cxx:1246 AliTRDCalibViewer.cxx:1247 AliTRDCalibViewer.cxx:1248 AliTRDCalibViewer.cxx:1249 AliTRDCalibViewer.cxx:1250 AliTRDCalibViewer.cxx:1251 AliTRDCalibViewer.cxx:1252 AliTRDCalibViewer.cxx:1253 AliTRDCalibViewer.cxx:1254 AliTRDCalibViewer.cxx:1255 AliTRDCalibViewer.cxx:1256 AliTRDCalibViewer.cxx:1257 AliTRDCalibViewer.cxx:1258 AliTRDCalibViewer.cxx:1259 AliTRDCalibViewer.cxx:1260 AliTRDCalibViewer.cxx:1261 AliTRDCalibViewer.cxx:1262 AliTRDCalibViewer.cxx:1263 AliTRDCalibViewer.cxx:1264 AliTRDCalibViewer.cxx:1265 AliTRDCalibViewer.cxx:1266 AliTRDCalibViewer.cxx:1267 AliTRDCalibViewer.cxx:1268 AliTRDCalibViewer.cxx:1269 AliTRDCalibViewer.cxx:1270 AliTRDCalibViewer.cxx:1271 AliTRDCalibViewer.cxx:1272 AliTRDCalibViewer.cxx:1273 AliTRDCalibViewer.cxx:1274 AliTRDCalibViewer.cxx:1275 AliTRDCalibViewer.cxx:1276 AliTRDCalibViewer.cxx:1277 AliTRDCalibViewer.cxx:1278 AliTRDCalibViewer.cxx:1279 AliTRDCalibViewer.cxx:1280 AliTRDCalibViewer.cxx:1281 AliTRDCalibViewer.cxx:1282 AliTRDCalibViewer.cxx:1283 AliTRDCalibViewer.cxx:1284 AliTRDCalibViewer.cxx:1285 AliTRDCalibViewer.cxx:1286 AliTRDCalibViewer.cxx:1287 AliTRDCalibViewer.cxx:1288 AliTRDCalibViewer.cxx:1289 AliTRDCalibViewer.cxx:1290 AliTRDCalibViewer.cxx:1291 AliTRDCalibViewer.cxx:1292 AliTRDCalibViewer.cxx:1293 AliTRDCalibViewer.cxx:1294 AliTRDCalibViewer.cxx:1295 AliTRDCalibViewer.cxx:1296 AliTRDCalibViewer.cxx:1297 AliTRDCalibViewer.cxx:1298 AliTRDCalibViewer.cxx:1299 AliTRDCalibViewer.cxx:1300 AliTRDCalibViewer.cxx:1301 AliTRDCalibViewer.cxx:1302 AliTRDCalibViewer.cxx:1303 AliTRDCalibViewer.cxx:1304 AliTRDCalibViewer.cxx:1305 AliTRDCalibViewer.cxx:1306 AliTRDCalibViewer.cxx:1307 AliTRDCalibViewer.cxx:1308 AliTRDCalibViewer.cxx:1309 AliTRDCalibViewer.cxx:1310 AliTRDCalibViewer.cxx:1311 AliTRDCalibViewer.cxx:1312 AliTRDCalibViewer.cxx:1313 AliTRDCalibViewer.cxx:1314 AliTRDCalibViewer.cxx:1315 AliTRDCalibViewer.cxx:1316 AliTRDCalibViewer.cxx:1317 AliTRDCalibViewer.cxx:1318 AliTRDCalibViewer.cxx:1319 AliTRDCalibViewer.cxx:1320 AliTRDCalibViewer.cxx:1321 AliTRDCalibViewer.cxx:1322 AliTRDCalibViewer.cxx:1323 AliTRDCalibViewer.cxx:1324 AliTRDCalibViewer.cxx:1325 AliTRDCalibViewer.cxx:1326 AliTRDCalibViewer.cxx:1327 AliTRDCalibViewer.cxx:1328 AliTRDCalibViewer.cxx:1329 AliTRDCalibViewer.cxx:1330 AliTRDCalibViewer.cxx:1331 AliTRDCalibViewer.cxx:1332 AliTRDCalibViewer.cxx:1333 AliTRDCalibViewer.cxx:1334 AliTRDCalibViewer.cxx:1335 AliTRDCalibViewer.cxx:1336 AliTRDCalibViewer.cxx:1337 AliTRDCalibViewer.cxx:1338 AliTRDCalibViewer.cxx:1339 AliTRDCalibViewer.cxx:1340 AliTRDCalibViewer.cxx:1341 AliTRDCalibViewer.cxx:1342 AliTRDCalibViewer.cxx:1343 AliTRDCalibViewer.cxx:1344 AliTRDCalibViewer.cxx:1345 AliTRDCalibViewer.cxx:1346 AliTRDCalibViewer.cxx:1347 AliTRDCalibViewer.cxx:1348 AliTRDCalibViewer.cxx:1349 AliTRDCalibViewer.cxx:1350 AliTRDCalibViewer.cxx:1351 AliTRDCalibViewer.cxx:1352 AliTRDCalibViewer.cxx:1353 AliTRDCalibViewer.cxx:1354 AliTRDCalibViewer.cxx:1355 AliTRDCalibViewer.cxx:1356 AliTRDCalibViewer.cxx:1357 AliTRDCalibViewer.cxx:1358 AliTRDCalibViewer.cxx:1359 AliTRDCalibViewer.cxx:1360 AliTRDCalibViewer.cxx:1361 AliTRDCalibViewer.cxx:1362 AliTRDCalibViewer.cxx:1363 AliTRDCalibViewer.cxx:1364 AliTRDCalibViewer.cxx:1365 AliTRDCalibViewer.cxx:1366 AliTRDCalibViewer.cxx:1367 AliTRDCalibViewer.cxx:1368 AliTRDCalibViewer.cxx:1369 AliTRDCalibViewer.cxx:1370 AliTRDCalibViewer.cxx:1371 AliTRDCalibViewer.cxx:1372 AliTRDCalibViewer.cxx:1373 AliTRDCalibViewer.cxx:1374 AliTRDCalibViewer.cxx:1375 AliTRDCalibViewer.cxx:1376 AliTRDCalibViewer.cxx:1377 AliTRDCalibViewer.cxx:1378 AliTRDCalibViewer.cxx:1379 AliTRDCalibViewer.cxx:1380 AliTRDCalibViewer.cxx:1381 AliTRDCalibViewer.cxx:1382 AliTRDCalibViewer.cxx:1383 AliTRDCalibViewer.cxx:1384 AliTRDCalibViewer.cxx:1385 AliTRDCalibViewer.cxx:1386 AliTRDCalibViewer.cxx:1387 AliTRDCalibViewer.cxx:1388 AliTRDCalibViewer.cxx:1389 AliTRDCalibViewer.cxx:1390 AliTRDCalibViewer.cxx:1391 AliTRDCalibViewer.cxx:1392 AliTRDCalibViewer.cxx:1393 AliTRDCalibViewer.cxx:1394 AliTRDCalibViewer.cxx:1395 AliTRDCalibViewer.cxx:1396 AliTRDCalibViewer.cxx:1397 AliTRDCalibViewer.cxx:1398 AliTRDCalibViewer.cxx:1399 AliTRDCalibViewer.cxx:1400 AliTRDCalibViewer.cxx:1401 AliTRDCalibViewer.cxx:1402 AliTRDCalibViewer.cxx:1403 AliTRDCalibViewer.cxx:1404 AliTRDCalibViewer.cxx:1405 AliTRDCalibViewer.cxx:1406 AliTRDCalibViewer.cxx:1407 AliTRDCalibViewer.cxx:1408 AliTRDCalibViewer.cxx:1409 AliTRDCalibViewer.cxx:1410 AliTRDCalibViewer.cxx:1411 AliTRDCalibViewer.cxx:1412 AliTRDCalibViewer.cxx:1413 AliTRDCalibViewer.cxx:1414 AliTRDCalibViewer.cxx:1415 AliTRDCalibViewer.cxx:1416 AliTRDCalibViewer.cxx:1417 AliTRDCalibViewer.cxx:1418 AliTRDCalibViewer.cxx:1419 AliTRDCalibViewer.cxx:1420 AliTRDCalibViewer.cxx:1421 AliTRDCalibViewer.cxx:1422 AliTRDCalibViewer.cxx:1423 AliTRDCalibViewer.cxx:1424 AliTRDCalibViewer.cxx:1425 AliTRDCalibViewer.cxx:1426 AliTRDCalibViewer.cxx:1427 AliTRDCalibViewer.cxx:1428 AliTRDCalibViewer.cxx:1429 AliTRDCalibViewer.cxx:1430 AliTRDCalibViewer.cxx:1431 AliTRDCalibViewer.cxx:1432 AliTRDCalibViewer.cxx:1433 AliTRDCalibViewer.cxx:1434 AliTRDCalibViewer.cxx:1435 AliTRDCalibViewer.cxx:1436 AliTRDCalibViewer.cxx:1437 AliTRDCalibViewer.cxx:1438 AliTRDCalibViewer.cxx:1439 AliTRDCalibViewer.cxx:1440 AliTRDCalibViewer.cxx:1441 AliTRDCalibViewer.cxx:1442 AliTRDCalibViewer.cxx:1443 AliTRDCalibViewer.cxx:1444 AliTRDCalibViewer.cxx:1445 AliTRDCalibViewer.cxx:1446 AliTRDCalibViewer.cxx:1447 AliTRDCalibViewer.cxx:1448 AliTRDCalibViewer.cxx:1449 AliTRDCalibViewer.cxx:1450 AliTRDCalibViewer.cxx:1451 AliTRDCalibViewer.cxx:1452 AliTRDCalibViewer.cxx:1453 AliTRDCalibViewer.cxx:1454 AliTRDCalibViewer.cxx:1455 AliTRDCalibViewer.cxx:1456 AliTRDCalibViewer.cxx:1457 AliTRDCalibViewer.cxx:1458 AliTRDCalibViewer.cxx:1459 AliTRDCalibViewer.cxx:1460 AliTRDCalibViewer.cxx:1461 AliTRDCalibViewer.cxx:1462 AliTRDCalibViewer.cxx:1463 AliTRDCalibViewer.cxx:1464 AliTRDCalibViewer.cxx:1465 AliTRDCalibViewer.cxx:1466 AliTRDCalibViewer.cxx:1467 AliTRDCalibViewer.cxx:1468 AliTRDCalibViewer.cxx:1469 AliTRDCalibViewer.cxx:1470 AliTRDCalibViewer.cxx:1471 AliTRDCalibViewer.cxx:1472 AliTRDCalibViewer.cxx:1473 AliTRDCalibViewer.cxx:1474 AliTRDCalibViewer.cxx:1475 AliTRDCalibViewer.cxx:1476 AliTRDCalibViewer.cxx:1477 AliTRDCalibViewer.cxx:1478 AliTRDCalibViewer.cxx:1479 AliTRDCalibViewer.cxx:1480 AliTRDCalibViewer.cxx:1481 AliTRDCalibViewer.cxx:1482 AliTRDCalibViewer.cxx:1483 AliTRDCalibViewer.cxx:1484 AliTRDCalibViewer.cxx:1485 AliTRDCalibViewer.cxx:1486 AliTRDCalibViewer.cxx:1487 AliTRDCalibViewer.cxx:1488 AliTRDCalibViewer.cxx:1489 AliTRDCalibViewer.cxx:1490 AliTRDCalibViewer.cxx:1491 AliTRDCalibViewer.cxx:1492 AliTRDCalibViewer.cxx:1493 AliTRDCalibViewer.cxx:1494 AliTRDCalibViewer.cxx:1495 AliTRDCalibViewer.cxx:1496 AliTRDCalibViewer.cxx:1497 AliTRDCalibViewer.cxx:1498 AliTRDCalibViewer.cxx:1499 AliTRDCalibViewer.cxx:1500 AliTRDCalibViewer.cxx:1501 AliTRDCalibViewer.cxx:1502 AliTRDCalibViewer.cxx:1503 AliTRDCalibViewer.cxx:1504 AliTRDCalibViewer.cxx:1505 AliTRDCalibViewer.cxx:1506 AliTRDCalibViewer.cxx:1507 AliTRDCalibViewer.cxx:1508 AliTRDCalibViewer.cxx:1509 AliTRDCalibViewer.cxx:1510 AliTRDCalibViewer.cxx:1511 AliTRDCalibViewer.cxx:1512 AliTRDCalibViewer.cxx:1513 AliTRDCalibViewer.cxx:1514 AliTRDCalibViewer.cxx:1515 AliTRDCalibViewer.cxx:1516 AliTRDCalibViewer.cxx:1517 AliTRDCalibViewer.cxx:1518 AliTRDCalibViewer.cxx:1519 AliTRDCalibViewer.cxx:1520 AliTRDCalibViewer.cxx:1521 AliTRDCalibViewer.cxx:1522 AliTRDCalibViewer.cxx:1523 AliTRDCalibViewer.cxx:1524 AliTRDCalibViewer.cxx:1525 AliTRDCalibViewer.cxx:1526 AliTRDCalibViewer.cxx:1527 AliTRDCalibViewer.cxx:1528 AliTRDCalibViewer.cxx:1529 AliTRDCalibViewer.cxx:1530 AliTRDCalibViewer.cxx:1531 AliTRDCalibViewer.cxx:1532 AliTRDCalibViewer.cxx:1533 AliTRDCalibViewer.cxx:1534 AliTRDCalibViewer.cxx:1535 AliTRDCalibViewer.cxx:1536 AliTRDCalibViewer.cxx:1537 AliTRDCalibViewer.cxx:1538 AliTRDCalibViewer.cxx:1539 AliTRDCalibViewer.cxx:1540 AliTRDCalibViewer.cxx:1541 AliTRDCalibViewer.cxx:1542 AliTRDCalibViewer.cxx:1543 AliTRDCalibViewer.cxx:1544 AliTRDCalibViewer.cxx:1545 AliTRDCalibViewer.cxx:1546 AliTRDCalibViewer.cxx:1547 AliTRDCalibViewer.cxx:1548 AliTRDCalibViewer.cxx:1549 AliTRDCalibViewer.cxx:1550 AliTRDCalibViewer.cxx:1551 AliTRDCalibViewer.cxx:1552 AliTRDCalibViewer.cxx:1553 AliTRDCalibViewer.cxx:1554 AliTRDCalibViewer.cxx:1555 AliTRDCalibViewer.cxx:1556 AliTRDCalibViewer.cxx:1557 AliTRDCalibViewer.cxx:1558 AliTRDCalibViewer.cxx:1559 AliTRDCalibViewer.cxx:1560 AliTRDCalibViewer.cxx:1561 AliTRDCalibViewer.cxx:1562 AliTRDCalibViewer.cxx:1563 AliTRDCalibViewer.cxx:1564 AliTRDCalibViewer.cxx:1565 AliTRDCalibViewer.cxx:1566 AliTRDCalibViewer.cxx:1567 AliTRDCalibViewer.cxx:1568 AliTRDCalibViewer.cxx:1569 AliTRDCalibViewer.cxx:1570 AliTRDCalibViewer.cxx:1571 AliTRDCalibViewer.cxx:1572 AliTRDCalibViewer.cxx:1573 AliTRDCalibViewer.cxx:1574 AliTRDCalibViewer.cxx:1575 AliTRDCalibViewer.cxx:1576 AliTRDCalibViewer.cxx:1577 AliTRDCalibViewer.cxx:1578 AliTRDCalibViewer.cxx:1579 AliTRDCalibViewer.cxx:1580 AliTRDCalibViewer.cxx:1581 AliTRDCalibViewer.cxx:1582 AliTRDCalibViewer.cxx:1583 AliTRDCalibViewer.cxx:1584 AliTRDCalibViewer.cxx:1585 AliTRDCalibViewer.cxx:1586 AliTRDCalibViewer.cxx:1587 AliTRDCalibViewer.cxx:1588