ROOT logo
////////////////////////////////////////////////////////////////////////////
//                                                                        //
//                                                                        //
//  Basic checks for tracking and detector performance                    //
//  
//     For the moment (15.10.2009) the following checks are implemented    //
//       - Number of clusters/track
//       - Number of clusters/tracklet
//       - Number of tracklets/track from different sources (Barrel, StandAlone)
//       - Number of findable tracklets
//       - Number of tracks per event and TRD sector
//       - <PH>
//       - Chi2 distribution for tracks
//       - Charge distribution per cluster and tracklet
//       - Number of events and tracks per trigger source 
//       - Trigger purity
//       - Track and Tracklet propagation status
//
//  Authors:                                                              //
//    Anton Andronic <A.Andronic@gsi.de>                                  //
//    Alexandru Bercuci <A.Bercuci@gsi.de>                                //
//    Markus Fasel <M.Fasel@gsi.de>                                       //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include <TArrayD.h>
#include <TAxis.h>
#include <TCanvas.h>
#include <TFile.h>
#include <TH1F.h>
#include <TH1I.h>
#include <TH2F.h>
#include <TH3S.h>
#include <TH3F.h>
#include <TF1.h>
#include <TGaxis.h>
#include <TGraph.h>
#include <TGraphErrors.h>
#include <TLegend.h>
#include <TLinearFitter.h>
#include <TMath.h>
#include <TMap.h>
#include <TProfile2D.h>
#include <TObjArray.h>
#include <TObject.h>
#include <TObjString.h>

#include <TPad.h>
#include <TProfile.h>
#include <TProfile2D.h>
#include <TROOT.h>
#include <TChain.h>

#include "AliLog.h"
#include "AliTRDcluster.h"
#include "AliESDHeader.h"
#include "AliESDRun.h"
#include "AliESDtrack.h"
#include "AliExternalTrackParam.h"
#include "AliTRDgeometry.h"
#include "AliTRDpadPlane.h"
#include "AliTRDSimParam.h"
#include "AliTRDseedV1.h"
#include "AliTRDtrackV1.h"
#include "AliTRDtrackerV1.h"
#include "AliTRDReconstructor.h"
#include "AliTrackReference.h"
#include "AliTrackPointArray.h"
#include "AliTracker.h"
#include "TTreeStream.h"

#include "info/AliTRDtrackInfo.h"
#include "info/AliTRDeventInfo.h"
#include "AliTRDinfoGen.h"
#include "AliTRDcheckDET.h"
#include "AliTRDpwgppHelper.h"

#include <cstdio>
#include <iostream>

ClassImp(AliTRDcheckDET)

const Color_t AliTRDcheckDET::fkColorsCentrality[AliTRDeventInfo::kCentralityClasses] = {kTeal, kOrange, kGreen, kBlue ,kRed};

//_______________________________________________________
AliTRDcheckDET::AliTRDcheckDET():
  AliTRDrecoTask()
  ,fCentralityClass(-1)
  ,fTriggerNames(NULL)
  ,fFlags(0)
{
  //
  // Default constructor
  //
  SetNameTitle("TRDcheckDET", "Basic TRD data checker");
}

//_______________________________________________________
AliTRDcheckDET::AliTRDcheckDET(char* name):
  AliTRDrecoTask(name, "Basic TRD data checker")
  ,fCentralityClass(-1)
  ,fTriggerNames(NULL)
  ,fFlags(0)
{
  //
  // Default constructor
  //
  InitFunctorList();
}


//_______________________________________________________
AliTRDcheckDET::~AliTRDcheckDET(){
  //
  // Destructor
  // 
  if(fTriggerNames) delete fTriggerNames;
}

//_______________________________________________________
void AliTRDcheckDET::UserCreateOutputObjects(){
  //
  // Create Output Objects
  //
  AliTRDrecoTask::UserCreateOutputObjects();
  if(!fTriggerNames) fTriggerNames = new TMap();
}

//_______________________________________________________
void AliTRDcheckDET::UserExec(Option_t *opt){
  //
  // Execution function
  // Filling TRD quality histos
  //
  AliDebug(2, Form("EventInfo[%p] Header[%p]", (void*)fEvent, (void*)(fEvent?fEvent->GetEventHeader():NULL)));
  if(fEvent) fCentralityClass = fEvent->GetCentrality();
  else fCentralityClass = -1;  // Assume pp
 
  AliTRDrecoTask::UserExec(opt);  

  TH1F *histo(NULL); AliTRDtrackInfo *fTrackInfo(NULL); Int_t nTracks(0);		// Count the number of tracks per event
  for(Int_t iti = 0; iti < fTracks->GetEntriesFast(); iti++){
    if(!fTracks->UncheckedAt(iti)) continue;
    if(!(fTrackInfo = dynamic_cast<AliTRDtrackInfo *>(fTracks->UncheckedAt(iti)))) continue;
    if(!fTrackInfo->GetTrack()) continue;
    nTracks++;
  }
  if(nTracks)
    if((histo = dynamic_cast<TH1F *>(fContainer->UncheckedAt(kNtracksEvent)))) histo->Fill(nTracks);

  if(!fEvent->GetEventHeader()) return; // For trigger statistics event header is essential
  Int_t triggermask = fEvent->GetEventHeader()->GetTriggerMask();
  TString triggername =  fEvent->GetRunInfo()->GetFiredTriggerClasses(triggermask);
  AliDebug(6, Form("Trigger cluster: %d, Trigger class: %s\n", triggermask, triggername.Data()));
  if((histo = dynamic_cast<TH1F *>(fContainer->UncheckedAt(kNeventsTrigger)))) histo->Fill(triggermask);

  if(nTracks){
    if((histo = dynamic_cast<TH1F *>(fContainer->UncheckedAt(kNeventsTriggerTracks)))) histo->Fill(triggermask);
  }
  if(triggermask <= 20 && !fTriggerNames->FindObject(Form("%d", triggermask))){
    fTriggerNames->Add(new TObjString(Form("%d", triggermask)), new TObjString(triggername));
    // also set the label for both histograms
    if((histo = dynamic_cast<TH1F *>(fContainer->UncheckedAt(kNeventsTriggerTracks))))
      histo->GetXaxis()->SetBinLabel(histo->FindBin(triggermask), triggername);
    if((histo = dynamic_cast<TH1F *>(fContainer->UncheckedAt(kNeventsTrigger))))
      histo->GetXaxis()->SetBinLabel(histo->FindBin(triggermask), triggername);
  }
}


//_______________________________________________________
//_______________________________________________________
Bool_t AliTRDcheckDET::PostProcess(){
  //
  // Do Postprocessing (for the moment set the number of Reference histograms)
  //
  
  TH1F *h(NULL), *h1(NULL);

  // Calculate of the trigger clusters purity
  if((h  = dynamic_cast<TH1F *>(fContainer->FindObject("hEventsTrigger"))) &&
     (h1 = dynamic_cast<TH1F *>(fContainer->FindObject("hEventsTriggerTracks")))) {
    h1->Divide(h);
    Float_t purities[20], val = 0; memset(purities, 0, 20*sizeof(Float_t));
    TString triggernames[20];
    Int_t nTriggerClasses = 0;
    for(Int_t ibin = 1; ibin <= h->GetNbinsX(); ibin++){
      if((val = h1->GetBinContent(ibin))){
        purities[nTriggerClasses] = val;
        triggernames[nTriggerClasses] = h1->GetXaxis()->GetBinLabel(ibin);
        nTriggerClasses++;
      }
    }

    if((h = dynamic_cast<TH1F *>(fContainer->UncheckedAt(kTriggerPurity)))){
      TAxis *ax = h->GetXaxis();
      for(Int_t itrg = 0; itrg < nTriggerClasses; itrg++){
        h->Fill(itrg, purities[itrg]);
        ax->SetBinLabel(itrg+1, triggernames[itrg].Data());
      }
      ax->SetRangeUser(-0.5, nTriggerClasses+.5);
      h->GetYaxis()->SetRangeUser(0,1);
    }
  }

  // track status
  if((h=dynamic_cast<TH1F*>(fContainer->At(kTrackStatus)))){
    Float_t ok = h->GetBinContent(1);
    Int_t nerr = h->GetNbinsX();
    for(Int_t ierr=nerr; ierr--;){
      h->SetBinContent(ierr+1, ok>0.?1.e2*h->GetBinContent(ierr+1)/ok:0.);
    }
    h->SetBinContent(1, 0.);
  }
  // tracklet status
  
  TObjArray *arr(NULL);
  if(( arr = dynamic_cast<TObjArray*>(fContainer->UncheckedAt(kTrackletStatus)))){
    for(Int_t ily = AliTRDgeometry::kNlayer; ily--;){
      if(!(h=dynamic_cast<TH1F*>(arr->At(ily)))) continue;
      Float_t okB = h->GetBinContent(1);
      Int_t nerrB = h->GetNbinsX();
      for(Int_t ierr=nerrB; ierr--;){
        h->SetBinContent(ierr+1, okB>0.?1.e2*h->GetBinContent(ierr+1)/okB:0.);
      }
      h->SetBinContent(1, 0.);
    }
  }
  fNRefFigures = 17;

  return kTRUE;
}

void AliTRDcheckDET::MakeSummary(){
  //
  // Create summary plots for TRD check DET
  // This function creates 2 summary plots:
  // - General Quantities
  // - PHS
  // The function will reuse GetRefFigure
  //
  
  TCanvas *cOut = new TCanvas(Form("summary%s1", GetName()), Form("Summary 1 for task %s", GetName()), 1024, 768);
  cOut->Divide(3,3);

  // Create figures using GetRefFigure
  cOut->cd(1); GetRefFigure(kFigNtracksEvent);  
  cOut->cd(2); GetRefFigure(kFigNtracksSector);
  cOut->cd(3); GetRefFigure(kFigNclustersTrack);
  cOut->cd(4); GetRefFigure(kFigNclustersTracklet);
  cOut->cd(5); GetRefFigure(kFigNtrackletsTrack);
  cOut->cd(6); GetRefFigure(kFigNTrackletsP);
  cOut->cd(7); GetRefFigure(kFigChargeCluster);
  cOut->cd(8); GetRefFigure(kFigChargeTracklet);
  cOut->SaveAs("TRD_TrackQuality.gif");
  delete cOut;

  // Second Plot: PHS
  cOut = new TCanvas(Form("summary%s2", GetName()), Form("Summary 2 for task %s", GetName()), 1024, 512);
  cOut->cd(); GetRefFigure(kFigPH);
  cOut->SaveAs("TRD_PH.gif"); 
  delete cOut;

  // Third Plot: Mean Number of clusters as function of eta, phi and layer
   cOut = new TCanvas(Form("summary%s3", GetName()), Form("Summary 3 for task %s", GetName()), 1024, 768);
  cOut->cd(); MakePlotMeanClustersLayer();
  cOut->SaveAs("TRD_MeanNclusters.gif"); 
  delete cOut;

}

//_______________________________________________________
Bool_t AliTRDcheckDET::GetRefFigure(Int_t ifig){
	//
	// Setting Reference Figures
	//
	gPad->SetLogy(0);
	gPad->SetLogx(0);
	TH1 *h = NULL; TObjArray *arr=NULL;
	TLegend *leg = NULL;
	Bool_t kFIRST(1);
	switch(ifig){
	case kFigNclustersTrack:
		MakePlotNclustersTrack();
		return kTRUE;
	case kFigNclustersTracklet:
		MakePlotNclustersTracklet();
		return kTRUE;
	case kFigNtrackletsTrack:
		h=MakePlotNTracklets();
		if(h){
			PutTrendValue("NTrackletsTrack", h->GetMean());
			PutTrendValue("NTrackletsTrackRMS", h->GetRMS());
		}
		return kTRUE;
	case kFigNTrackletsP:
		MakePlotnTrackletsVsP();
		return kTRUE;
	case kFigNtrackletsCross:
		h = ProjectCentrality((TH2*)fContainer->FindObject("hNtlsCross"), -1);
		if(!MakeBarPlot(h, kRed)) break;
		PutTrendValue("NTrackletsCross", h->GetMean());
		PutTrendValue("NTrackletsCrossRMS", h->GetRMS());
		return kTRUE;
	case kFigNtrackletsFindable:
		h = ProjectCentrality((TH2*)fContainer->FindObject("hNtlsFindable"), -1);
		if(!MakeBarPlot(h, kGreen)) break;
		PutTrendValue("NTrackletsFindable", h->GetMean());
		PutTrendValue("NTrackletsFindableRMS", h->GetRMS());
		return kTRUE;
	case kFigNtracksEvent:
		(h = (TH1F*)fContainer->FindObject("hNtrks"))->Draw("pl");
		PutTrendValue("NTracksEvent", h->GetMean());
		PutTrendValue("NTracksEventRMS", h->GetRMS());
		return kTRUE;
	case kFigNtracksSector:
		h = (TH1F*)fContainer->FindObject("hNtrksSector");
		if(!MakeBarPlot(h, kGreen)) break;
		PutTrendValue("NTracksSector", h->Integral()/h->GetNbinsX());
		return kTRUE;
	case kFigTrackStatus:
		if(!(h=(TH1F *)fContainer->FindObject("hTrackStatus"))) break;
		h->GetXaxis()->SetRangeUser(0.5, -1);
		h->GetYaxis()->CenterTitle();
		h->Draw("c");
		PutTrendValue("TrackStatus", h->Integral());
		gPad->SetLogy(0);
		return kTRUE;
	case kFigTrackletStatus:
		if(!(arr = dynamic_cast<TObjArray*>(fContainer->At(kTrackletStatus)))) break;
		leg = new TLegend(.68, .7, .97, .97);
		leg->SetBorderSize(0);leg->SetFillStyle(0);
		leg->SetHeader("TRD layer");
		for(Int_t ily=AliTRDgeometry::kNlayer; ily--;){
			if(!(h=dynamic_cast<TH1F*>(arr->At(ily)))) continue;
			if(kFIRST){
				h->Draw("pl");
				h->GetXaxis()->SetRangeUser(0.5, -1);
				h->GetYaxis()->CenterTitle();
				kFIRST = kFALSE;
			} else h->Draw("samepl");
			leg->AddEntry(h, Form("ly = %d", ily), "l");
			PutTrendValue(Form("TrackletStatus%d", ily), h->Integral());
		}
		leg->Draw();
		gPad->SetLogy(0);
		return kTRUE;
	case kFigChi2:
		MakePlotChi2();
		return kTRUE;
	case kFigPH:
		gPad->SetMargin(0.125, 0.015, 0.1, 0.1);
		MakePlotPulseHeight();
		gPad->SetLogy(0);
		return kTRUE;
	case kFigChargeCluster:
		h = ProjectCentrality((TH2*)fContainer->FindObject("hQcl"), -1);
		h->Draw("c");
		gPad->SetLogy(1);
		PutTrendValue("ChargeCluster", h->GetMaximumBin());
		PutTrendValue("ChargeClusterRMS", h->GetRMS());
		return kTRUE;
	case kFigChargeTracklet:
		MakePlotTrackletCharge();
		return kTRUE;
	case kFigNeventsTrigger:
		((TH1F*)fContainer->FindObject("hEventsTrigger"))->Draw("");
		return kTRUE;
	case kFigNeventsTriggerTracks:
		((TH1F*)fContainer->FindObject("hEventsTriggerTracks"))->Draw("");
		return kTRUE;
	case kFigTriggerPurity:
		if(!MakeBarPlot((TH1F*)fContainer->FindObject("hTriggerPurity"), kGreen)) break;
		break;
	default:
		break;
	}
	AliInfo(Form("Reference plot [%d] missing result", ifig));
	return kFALSE;
}

//_______________________________________________________
TObjArray *AliTRDcheckDET::Histos(){
  //
  // Create QA histograms
  //
    
  if(fContainer) return fContainer;
  
  fContainer = new TObjArray(20);
  fContainer->SetOwner(kTRUE);

  // Register Histograms
  TH1 * h = NULL;
  TH2 * h2 = NULL;      // Pointer for two dimensional histograms
  TH3 * h3 = NULL;      // Pointer for tree dimensional histograms
  TAxis *ax = NULL;
  if(!(h2 = (TH2F *)gROOT->FindObject("hNcls"))){
    h2 = new TH2F("hNcls", "N_{clusters}/track;N_{clusters};Centrality;Entries", 181, -0.5, 180.5, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  } else h2->Reset();
  fContainer->AddAt(h2, kNclustersTrack);
 
  TObjArray *arr = new TObjArray(AliTRDgeometry::kNlayer);
  arr->SetOwner(kTRUE);  arr->SetName("clusters");
  fContainer->AddAt(arr, kNclustersLayer);
  for(Int_t ily=AliTRDgeometry::kNlayer; ily--;){
    if(!(h = (TProfile2D *)gROOT->FindObject(Form("hNcl%d", ily)))){
      h = new TProfile2D(Form("hNcl%d", ily), Form("Mean Number of clusters in Layer %d", ily), 100, -1.0, 1.0, 50, -1.1*TMath::Pi(), 1.1*TMath::Pi());
      h->GetXaxis()->SetTitle("#eta");
      h->GetYaxis()->SetTitle("#phi");
    } else h->Reset();
    arr->AddAt(h, ily);
  }

  if(!(h2 = (TH2F *)gROOT->FindObject("hNclTls"))){
    h2 = new TH2F("hNclTls","N_{clusters}/tracklet;N_{clusters};Entries", 51, -0.5, 50.5, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  } else h2->Reset();
  fContainer->AddAt(h2, kNclustersTracklet);

  if(!(h2 = (TH2F *)gROOT->FindObject("hNtls"))){
    h2 = new TH2F("hNtls", "N_{tracklets}/track;N^{tracklet};Centrality;freq.[%]", AliTRDgeometry::kNlayer, 0.5, 6.5, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  } else h2->Reset();
  fContainer->AddAt(h2, kNtrackletsTrack);

  if(!(h = (TH2F *)gROOT->FindObject("htlsSTA"))){
    h = new TH2F("hNtlsSTA", "#splitline{N_{tracklets}/track}{Stand Alone};N^{tracklet};Centrality;freq.[%]", AliTRDgeometry::kNlayer, 0.5, 6.5, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  }
  fContainer->AddAt(h, kNtrackletsSTA);

  // Binning for momentum dependent tracklet Plots
  const Int_t kNp(30);
  Float_t p=0.2;
  Float_t binsP[kNp+1], binsTrklt[AliTRDgeometry::kNlayer+1], binsCent[AliTRDeventInfo::kCentralityClasses+2];
  for(Int_t i=0;i<kNp+1; i++,p+=(TMath::Exp(i*i*.001)-1.)) binsP[i]=p;
  for(Int_t il = 0; il <= AliTRDgeometry::kNlayer; il++) binsTrklt[il] = 0.5 + il;
  for(Int_t icent = -1; icent < AliTRDeventInfo::kCentralityClasses + 1; icent++) binsCent[icent+1] = icent - 0.5;
  if(!(h3 = (TH3F *)gROOT->FindObject("htlsBAR"))){
    // Make tracklets for barrel tracks momentum dependent (if we do not exceed min and max values)
    h3 = new TH3F("hNtlsBAR", 
    "N_{tracklets}/track;p [GeV/c];N^{tracklet};freq. [%]",
    kNp, binsP, AliTRDgeometry::kNlayer, binsTrklt, AliTRDeventInfo::kCentralityClasses + 1, binsCent);
  }
  fContainer->AddAt(h3, kNtrackletsBAR);

  // 
  if(!(h2 = (TH2F *)gROOT->FindObject("hNtlsCross"))){
    h2 = new TH2F("hNtlsCross", "N_{tracklets}^{cross}/track;n_{row cross};Centrality;freq.[%]", 7, -0.5, 6.5, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  } else h2->Reset();
  fContainer->AddAt(h2, kNtrackletsCross);

  if(!(h2 = (TH2F *)gROOT->FindObject("hNtlsFindable"))){
    h2 = new TH2F("hNtlsFindable", "Found/Findable Tracklets;r[a.u];Centrality;Entries" , 101, -0.005, 1.005,  AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  } else h2->Reset();
  fContainer->AddAt(h2, kNtrackletsFindable);

  if(!(h = (TH1F *)gROOT->FindObject("hNtrks"))){
    h = new TH1F("hNtrks", "N_{tracks} / event", 100, 0, 100);
    h->GetXaxis()->SetTitle("N_{tracks}");
    h->GetYaxis()->SetTitle("Entries");
  } else h->Reset();
  fContainer->AddAt(h, kNtracksEvent);

  if(!(h = (TH1F *)gROOT->FindObject("hNtrksSector"))){
    h = new TH1F("hNtrksSector", "N_{tracks} / sector", AliTRDgeometry::kNsector, -0.5, 17.5);
    h->GetXaxis()->SetTitle("sector");
    h->GetYaxis()->SetTitle("freq. [%]");
  } else h->Reset();
  fContainer->AddAt(h, kNtracksSector);

  if(!(h = (TH1F*)gROOT->FindObject("hTrackStatus"))){
    const Int_t nerr = 7;
    h = new TH1F("hTrackStatus", "Track Status", nerr, -0.5, nerr-0.5);
    const Char_t *label[nerr] = {"OK", "PROL", "PROP", "AJST", "SNP", "TINI", "UPDT"};
    ax = h->GetXaxis();
    for(Int_t ierr=nerr; ierr--;) ax->SetBinLabel(ierr+1, label[ierr]);
    h->SetYTitle("Relative Error to Good [%]");
  }
  fContainer->AddAt(h, kTrackStatus);

  arr = new TObjArray(AliTRDgeometry::kNlayer);
  arr->SetOwner(kTRUE);  arr->SetName("TrackletStatus");
  fContainer->AddAt(arr, kTrackletStatus);
  for(Int_t ily=AliTRDgeometry::kNlayer; ily--;){
    if(!(h = (TH1F *)gROOT->FindObject(Form("hTrackletStatus%d", ily)))){
      const Int_t nerr = 8;
      h = new TH1F(Form("hTrackletStatus%d", ily), "Tracklet status", nerr, -0.5, nerr-0.5);
      h->SetLineColor(ily+1);
      const Char_t *label[nerr] = {"OK", "Geom", "Bound", "NoCl", "NoAttach", "NoClTr", "NoFit", "Chi2"};
      ax = h->GetXaxis();
      for(Int_t ierr=nerr; ierr--;) ax->SetBinLabel(ierr+1, label[ierr]);
      h->SetYTitle("Relative Error to Good [%]");
    } else h->Reset();
    arr->AddAt(h, ily);
  }

  // <PH> histos
  arr = new TObjArray(3);
  arr->SetOwner(kTRUE);  arr->SetName("<PH>");
  fContainer->AddAt(arr, kPH);
  if(!(h3 = (TH3F *)gROOT->FindObject("hPHx"))){
    h3 = new TH3F("hPHx", "<PH>(x);x[mm];Charge[a.u.];Centrality", 31, -0.08, 4.88, 100, 0, 1024, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  } else h3->Reset();
  arr->AddAt(h3, 0);
  if(!(h3 = (TH3F *)gROOT->FindObject("hPHt"))){
    h3 = new TH3F("hPHt", "<PH>(t);time[100ns];Charge[a.u.];Centrality", 31, -0.5, 30.5, 100, 0, 1024, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  } else h3->Reset();
  arr->AddAt(h3, 1);

  // Chi2 histos
  if(!(h3 = (TH3S*)gROOT->FindObject("hChi2"))){
    h3 = new TH3S("hChi2", "#chi^{2}/track;ndf;#chi^{2}/ndf;Centrality", AliTRDgeometry::kNlayer, .5, AliTRDgeometry::kNlayer+.5, 100, 0, 50, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  } else h3->Reset();
  fContainer->AddAt(h3, kChi2);

  if(!(h2 = (TH2F *)gROOT->FindObject("hQcl"))){
    h2 = new TH2F("hQcl", "Q_{cluster};Charge[a.u.];Centrality;Entries", 200, 0, 1200, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  }else h2->Reset();
  fContainer->AddAt(h2, kChargeCluster);

  if(!(h2 = (TH2F *)gROOT->FindObject("hQtrklt"))){
    h2 = new TH2F("hQtrklt", "Q_{tracklet};Charge[a.u.];Centrality;Entries", 6000, 0, 6000, AliTRDeventInfo::kCentralityClasses + 1, -1.5, AliTRDeventInfo::kCentralityClasses - 0.5);
  }else h2->Reset();
  fContainer->AddAt(h2, kChargeTracklet);


  if(!(h = (TH1F *)gROOT->FindObject("hEventsTrigger")))
    h = new TH1F("hEventsTrigger", "Trigger Class", 100, 0, 100);
  else h->Reset();
  
  fContainer->AddAt(h, kNeventsTrigger);

  if(!(h = (TH1F *)gROOT->FindObject("hEventsTriggerTracks")))
    h = new TH1F("hEventsTriggerTracks", "Trigger Class (Tracks)", 100, 0, 100);
  else h->Reset();
  fContainer->AddAt(h, kNeventsTriggerTracks);

  if(!(h = (TH1F *)gROOT->FindObject("hTriggerPurity"))){
    h = new TH1F("hTriggerPurity", "Trigger Purity", 10, -0.5, 9.5);
    h->GetXaxis()->SetTitle("Trigger Cluster");
    h->GetYaxis()->SetTitle("freq.");
  } else h->Reset();
  fContainer->AddAt(h, kTriggerPurity);

  return fContainer;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::ProjectCentrality(TH2 *hIn, Int_t centralityBin){
  //
  // Project histogram to a given centrality Bin
  //
  if(!hIn) return NULL;
  if(centralityBin >= AliTRDeventInfo::kCentralityClasses) centralityBin = -1;
  Int_t binMin = centralityBin > -1 ? centralityBin + 2 : 0, 
        binMax = centralityBin > -1 ? centralityBin + 2 : -1;
  return hIn->ProjectionX(Form("%s_%d", hIn->GetName(), centralityBin), binMin, binMax);
}

/*
* Plotting Functions
*/

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotTrackStatus(const AliTRDtrackV1 *track)
{
//
// Plot the track propagation status. The following errors are defined (see AliTRDtrackV1::ETRDtrackError)
//   PROL - track prolongation failure
//   PROP - track propagation failure
//   AJST - crossing sectors failure
//   SNP  - too large bending
//   TINI - tracklet initialization failure
//   UPDT - track position/covariance update failure 
//
// Performance plot looks as below:
//Begin_Html
//<img src="TRD/trackStatus.gif">
//End_Html
//
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH1 *h = NULL;
  if(!(h = dynamic_cast<TH1F *>(fContainer->At(kTrackStatus)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  h->Fill(fkTrack->GetStatusTRD());
  return h;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotTrackletStatus(const AliTRDtrackV1 *track)
{
//
// Plot the tracklet propagation status. The following errors are defined for tracklet (see AliTRDtrackV1::ETRDlayerError)
//   Geom   - 
//   Bound  - tracklet too close to chamber walls
//   NoCl   - no clusters in the track roads
//   NoAttach - fail to attach clusters
//   NoClTr - fail to use clusters for fit
//   NoFit  - tracklet fit failled
//   Chi2   - chi2 tracklet-track over threshold
//
// Performance plot looks as below:
//Begin_Html
//<img src="TRD/trackletStatus.gif">
//End_Html
//
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TObjArray *arr =NULL;
  if(!(arr = dynamic_cast<TObjArray*>(fContainer->At(kTrackletStatus)))){
    AliWarning("Histograms not defined.");
    return NULL;
  }

  TH1 *h = NULL;
  for(Int_t ily=AliTRDgeometry::kNlayer; ily--;){
    if(!(h = dynamic_cast<TH1F*>(arr->At(ily)))){
      AliWarning(Form("Missing histo for layer %d.", ily));
      continue;
    }
    h->Fill(fkTrack->GetStatusTRD(ily));
  }
  return h;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotNClustersTracklet(const AliTRDtrackV1 *track){
  //
  // Plot the mean number of clusters per tracklet
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  AliExternalTrackParam *par = fkTrack->GetTrackIn() ? fkTrack->GetTrackIn() : fkTrack->GetTrackOut();
  TH2 *h = NULL;
  TProfile2D *hlayer = NULL;
  Double_t eta = 0., phi = 0.;
  if(!(h = dynamic_cast<TH2F *>(fContainer->At(kNclustersTracklet)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  AliTRDseedV1 *tracklet = NULL;
  TObjArray *histosLayer = dynamic_cast<TObjArray *>(fContainer->At(kNclustersLayer));
  if(!histosLayer){
    AliWarning("No Histograms for single layer defined");
  }
  for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++){
    if(!(tracklet = fkTrack->GetTracklet(itl)) || !tracklet->IsOK()) continue;
    h->Fill(tracklet->GetN2(), fCentralityClass);
    if(histosLayer && par){
      if((hlayer = dynamic_cast<TProfile2D *>(histosLayer->At(itl)))){
        GetEtaPhiAt(par, tracklet->GetX0(), eta, phi);
        hlayer->Fill(eta, phi, tracklet->GetN2());
      }
    }
  }
  return h;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotNClustersTrack(const AliTRDtrackV1 *track){
  //
  // Plot the number of clusters in one track
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH2 *h = NULL;
  if(!(h = dynamic_cast<TH2F *>(fContainer->At(kNclustersTrack)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  
  Int_t nclusters = 0;
  AliTRDseedV1 *tracklet = NULL;
  AliExternalTrackParam *par = fkTrack->GetTrackOut() ? fkTrack->GetTrackOut() : fkTrack->GetTrackIn();
  if(!par) return NULL;
  Double_t momentumRec = par->P();
  for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++){
    if(!(tracklet = fkTrack->GetTracklet(itl)) || !tracklet->IsOK()) continue;
    Int_t n(tracklet->GetN());
    nclusters += n;
    if(DebugLevel() > 2){
      Int_t crossing = Int_t(tracklet->IsRowCross());
      Int_t detector = tracklet->GetDetector();
      Float_t theta = TMath::ATan(tracklet->GetZref(1));
      Float_t phi = TMath::ATan(tracklet->GetYref(1));
      Float_t momentumMC = 0.;
      Int_t pdg = 0;
      Int_t kinkIndex = fkESD ? fkESD->GetKinkIndex() : 0;
      UShort_t nclsTPC = fkESD ? fkESD->GetTPCncls() : 0;
      if(fkMC){
        if(fkMC->GetTrackRef()) momentumMC = fkMC->GetTrackRef()->P();
        pdg = fkMC->GetPDG();
      }
      (*DebugStream()) << "NClustersTrack"
        << "Detector="  << detector
        << "Centrality="<< fCentralityClass
        << "crossing="  << crossing
        << "momentumMC="<< momentumMC
        << "momentumRec="<< momentumRec
        << "pdg="				<< pdg
        << "theta="			<< theta
        << "phi="				<< phi
        << "kinkIndex="	<< kinkIndex
        << "TPCncls="		<< nclsTPC
        << "TRDncls="   << n
        << "\n";
    }
  }
  h->Fill(nclusters, fCentralityClass);
  return h;
}


//_______________________________________________________
TH1 *AliTRDcheckDET::PlotNTrackletsTrack(const AliTRDtrackV1 *track){
  //
  // Plot the number of tracklets
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH2 *h = NULL, *hSta = NULL; TH3 *hBarrel = NULL;
  if(!(h = dynamic_cast<TH2F *>(fContainer->At(kNtrackletsTrack)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  Int_t nTracklets = fkTrack->GetNumberOfTracklets();
  h->Fill(nTracklets, fCentralityClass);
  if(!fkESD) return h;
  Int_t status = fkESD->GetStatus();

/*  printf("in/out/refit/pid: TRD[%d|%d|%d|%d]\n", status &AliESDtrack::kTRDin ? 1 : 0, status &AliESDtrack::kTRDout ? 1 : 0, status &AliESDtrack::kTRDrefit ? 1 : 0, status &AliESDtrack::kTRDpid ? 1 : 0);*/
  Double_t p = 0.;
  Int_t method = -1;    // to distinguish between stand alone and full barrel tracks in the debugging
  if((status & AliESDtrack::kTRDin) != 0){
    method = 1;
    // Full Barrel Track: Save momentum dependence
    if(!(hBarrel = dynamic_cast<TH3F *>(fContainer->At(kNtrackletsBAR)))){
      AliWarning("Method: Barrel.  Histogram not processed!");
      return NULL;
    }
    AliExternalTrackParam *par(fkTrack->GetTrackIn());
    if(!par){
      AliError("Input track params missing");
      return NULL;
    }
    p = par->P(); // p needed later in the debug streaming
    hBarrel->Fill(p, nTracklets, fCentralityClass);
  } else {
    // Stand alone Track: momentum dependence not usefull
    method = 0;
    if(!(hSta = dynamic_cast<TH2F *>(fContainer->At(kNtrackletsSTA)))) {
      AliWarning("Method: StandAlone.  Histogram not processed!");
      return NULL;
    }
    hSta->Fill(nTracklets, fCentralityClass);
  }

  if(DebugLevel() > 2){
    AliTRDseedV1 *tracklet = NULL;
    AliTRDgeometry *geo(AliTRDinfoGen::Geometry());
    Int_t sector = -1, stack = -1, detector;
    for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++){
      if(!(tracklet = fkTrack->GetTracklet(itl)) || !(tracklet->IsOK())) continue;
      detector = tracklet->GetDetector();
      sector = geo->GetSector(detector);
      stack = geo->GetStack(detector);
      break;
    }
    (*DebugStream()) << "NTrackletsTrack"
      << "Sector="      << sector
      << "Stack="       << stack
      << "Centrality="  << fCentralityClass
      << "NTracklets="  << nTracklets
      << "Method="      << method
      << "p="           << p
      << "\n";
  }
  if(DebugLevel() > 3){
    AliTRDseedV1 *tracklet = NULL;
    for(Int_t il = 0; il < AliTRDgeometry::kNlayer; il++){
      if((tracklet = fkTrack->GetTracklet(il)) && tracklet->IsOK()){
        (*DebugStream()) << "NTrackletsLayer"
        << "Layer=" << il
        << "p=" << p
        << "\n";
      }
    }
  }
  return h;
}


//_______________________________________________________
TH1 *AliTRDcheckDET::PlotNTrackletsRowCross(const AliTRDtrackV1 *track){
  //
  // Plot the number of tracklets
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH2 *h = NULL;
  if(!(h = dynamic_cast<TH2F *>(fContainer->At(kNtrackletsCross)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }

  Int_t ncross = 0;
  AliTRDseedV1 *tracklet = NULL;
  for(Int_t il = 0; il < AliTRDgeometry::kNlayer; il++){
    if(!(tracklet = fkTrack->GetTracklet(il)) || !tracklet->IsOK()) continue;

    if(tracklet->IsRowCross()) ncross++;
  }
  h->Fill(ncross, fCentralityClass);
  return h;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotFindableTracklets(const AliTRDtrackV1 *track){
  //
  // Plots the ratio of number of tracklets vs.
  // number of findable tracklets
  //
  // Findable tracklets are defined as track prolongation
  // to layer i does not hit the dead area +- epsilon
  //
  // In order to check whether tracklet hist active area in Layer i, 
  // the track is refitted and the fitted position + an uncertainty 
  // range is compared to the chamber border (also with a different
  // uncertainty)
  //
  // For the track fit two cases are distinguished:
  // If the track is a stand alone track (defined by the status bit 
  // encoding, then the track is fitted with the tilted Rieman model
  // Otherwise the track is fitted with the Kalman fitter in two steps:
  // Since the track parameters are give at the outer point, we first 
  // fit in direction inwards. Afterwards we fit again in direction outwards
  // to extrapolate the track to layers which are not reached by the track
  // For the Kalman model, the radial track points have to be shifted by
  // a distance epsilon in the direction that we want to fit
  //
  const Float_t epsilon = 0.01;   // dead area tolerance
  const Float_t epsilonR = 1;    // shift in radial direction of the anode wire position (Kalman filter only)
  const Float_t deltaY = 0.7;    // Tolerance in the track position in y-direction
  const Float_t deltaZ = 7.0;    // Tolerance in the track position in z-direction (Padlength)
  Double_t xAnode[AliTRDgeometry::kNlayer] = {300.2, 312.8, 325.4, 338.0, 350.6, 363.2}; // Take the default X0
 
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH2 *h = NULL;
  if(!(h = dynamic_cast<TH2F *>(fContainer->At(kNtrackletsFindable)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  Int_t nFound = 0, nFindable = 0;
  Int_t stack = -1;
  Double_t ymin = 0., ymax = 0., zmin = 0., zmax = 0.;
  Double_t y = 0., z = 0.;
  AliTRDseedV1 *tracklet = NULL;
  AliTRDpadPlane *pp;  
  for(Int_t il = 0; il < AliTRDgeometry::kNlayer; il++){
    if((tracklet = fkTrack->GetTracklet(il)) && tracklet->IsOK()){
      tracklet->SetReconstructor(AliTRDinfoGen::Reconstructor());
      nFound++;
    }
  }
  // 2 Different cases:
  // 1st stand alone: here we cannot propagate, but be can do a Tilted Rieman Fit
  // 2nd barrel track: here we propagate the track to the layers
  AliTrackPoint points[6];
  Float_t xyz[3];
  memset(xyz, 0, sizeof(Float_t) * 3);
  if(fkESD && ((fkESD->GetStatus() & AliESDtrack::kTRDout) > 0) && !((fkESD->GetStatus() & AliESDtrack::kTRDin) > 0)){
    // stand alone track
    for(Int_t il = 0; il < AliTRDgeometry::kNlayer; il++){
      xyz[0] = xAnode[il];
      points[il].SetXYZ(xyz);
    }
    AliTRDtrackerV1::FitRiemanTilt(const_cast<AliTRDtrackV1 *>(fkTrack), NULL, kTRUE, 6, points);
  } else {
    // barrel track
    //
    // 2 Steps:
    // -> Kalman inwards
    // -> Kalman outwards
    AliTRDtrackV1 copyTrack(*fkTrack);  // Do Kalman on a (non-constant) copy of the track
    AliTrackPoint pointsInward[6], pointsOutward[6];
    for(Int_t il = AliTRDgeometry::kNlayer; il--;){
      // In order to avoid complications in the Kalman filter if the track points have the same radial
      // position like the tracklets, we have to shift the radial postion of the anode wire by epsilon
      // in the direction we want to go
      // The track points have to be in reverse order for the Kalman Filter inwards
      xyz[0] = xAnode[AliTRDgeometry::kNlayer - il - 1] - epsilonR;
      pointsInward[il].SetXYZ(xyz);
      xyz[0] = xAnode[il] + epsilonR;
      pointsOutward[il].SetXYZ(xyz);
    }
    /*for(Int_t ipt = 0; ipt < AliTRDgeometry::kNlayer; ipt++)
      printf("%d. X = %f\n", ipt, points[ipt].GetX());*/
    // Kalman inwards
    AliTRDtrackerV1::FitKalman(&copyTrack, NULL, kFALSE, 6, pointsInward);
    memcpy(points, pointsInward, sizeof(AliTrackPoint) * 6); // Preliminary store the inward results in the Array points
    // Kalman outwards
    AliTRDtrackerV1::FitKalman(&copyTrack, NULL, kTRUE, 6, pointsInward);
    memcpy(points, pointsOutward, sizeof(AliTrackPoint) * AliTRDgeometry::kNlayer);
  }
  AliTRDgeometry *geo(AliTRDinfoGen::Geometry());
  for(Int_t il = 0; il < AliTRDgeometry::kNlayer; il++){
    y = points[il].GetY();
    z = points[il].GetZ();
    if((stack = geo->GetStack(z, il)) < 0) continue; // Not findable
    pp = geo->GetPadPlane(il, stack);
    ymin = pp->GetCol0() + epsilon;
    ymax = pp->GetColEnd() - epsilon; 
    zmin = pp->GetRowEnd() + epsilon; 
    zmax = pp->GetRow0() - epsilon;
    // ignore y-crossing (material)
    if((z + deltaZ > zmin && z - deltaZ < zmax) && (y + deltaY > ymin && y - deltaY < ymax)) nFindable++;
      if(DebugLevel() > 3){
        Double_t posTracklet[2] = {tracklet ? tracklet->GetYfit(0) : 0, tracklet ? tracklet->GetZfit(0) : 0};
        Int_t hasTracklet = tracklet ? 1 : 0;
        (*DebugStream())   << "FindableTracklets"
          << "layer="     << il
          << "ytracklet=" << posTracklet[0]
          << "ytrack="    << y
          << "ztracklet=" << posTracklet[1]
          << "ztrack="    << z
          << "tracklet="  << hasTracklet
          << "\n";
      }
  }
  
  h->Fill((nFindable > 0 ? TMath::Min(nFound/static_cast<Double_t>(nFindable), 1.) : 1), fCentralityClass);
  AliDebug(2, Form("Findable[Found]: %d[%d|%f]", nFindable, nFound, nFound/static_cast<Float_t>(nFindable > 0 ? nFindable : 1)));
  return h;
}


//_______________________________________________________
TH1 *AliTRDcheckDET::PlotChi2(const AliTRDtrackV1 *track){
  //
  // Plot the chi2 of the track
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH3 *h = NULL;
  if(!(h = dynamic_cast<TH3S*>(fContainer->At(kChi2)))) {
    AliWarning("No Histogram defined.");
    return NULL;
  }
  Int_t n = fkTrack->GetNumberOfTracklets();
  if(!n) return NULL;

  h->Fill(n, fkTrack->GetChi2()/n, fCentralityClass);
  return h;
}


//_______________________________________________________
TH1 *AliTRDcheckDET::PlotPHt(const AliTRDtrackV1 *track){
  //
  // Plot the average pulse height
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH3F *h = NULL;
  if(!(h = dynamic_cast<TH3F *>(((TObjArray*)(fContainer->At(kPH)))->At(1)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  AliTRDseedV1 *tracklet = NULL;
  AliTRDcluster *c = NULL;
  for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++){
    if(!(tracklet = fkTrack->GetTracklet(itl)) || !tracklet->IsOK())continue;
    Int_t crossing = Int_t(tracklet->IsRowCross());
    Int_t detector = tracklet->GetDetector();
    tracklet->ResetClusterIter();
    while((c = tracklet->NextCluster())){
      if(!IsUsingClustersOutsideChamber() && !c->IsInChamber()) continue;
      Int_t localtime        = c->GetLocalTimeBin();
      Double_t absoluteCharge = TMath::Abs(c->GetQ());
      h->Fill(localtime, absoluteCharge, fCentralityClass);
      if(DebugLevel() > 3){
        Int_t inChamber = c->IsInChamber() ? 1 : 0;
        Double_t distance[2];
        GetDistanceToTracklet(distance, tracklet, c);
        Float_t theta = TMath::ATan(tracklet->GetZref(1));
        Float_t phi = TMath::ATan(tracklet->GetYref(1));
        AliExternalTrackParam *trdPar = fkTrack->GetTrackIn();
        Float_t momentumMC = 0, momentumRec = trdPar ? trdPar->P() : fkTrack->P(); // prefer Track Low
        Int_t pdg = 0;
        Int_t kinkIndex = fkESD ? fkESD->GetKinkIndex() : 0;
        UShort_t tpcNCLS = fkESD ? fkESD->GetTPCncls() : 0;
        if(fkMC){
          if(fkMC->GetTrackRef()) momentumMC = fkMC->GetTrackRef()->P();
          pdg = fkMC->GetPDG();
        }
        (*DebugStream()) << "PHt"
          << "Detector="	<< detector
          << "Centrality="<< fCentralityClass
          << "crossing="	<< crossing
          << "inChamber=" << inChamber
          << "Timebin="		<< localtime
          << "Charge="		<< absoluteCharge
          << "momentumMC="	<< momentumMC
          << "momentumRec="	<< momentumRec
          << "pdg="				<< pdg
          << "theta="			<< theta
          << "phi="				<< phi
          << "kinkIndex="	<< kinkIndex
          << "TPCncls="		<< tpcNCLS
          << "dy="        << distance[0]
          << "dz="        << distance[1]
          << "c.="        << c
          << "\n";
      }
    }
  }
  return h;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotPHx(const AliTRDtrackV1 *track){
  //
  // Plots the average pulse height vs the distance from the anode wire
  // (plus const anode wire offset)
  //
  if(track) fkTrack = track;
  if(!fkTrack){
     AliDebug(4, "No Track defined.");
     return NULL;
  }
  TH3 *h = NULL;
  if(!(h = dynamic_cast<TH3F *>(((TObjArray*)(fContainer->At(kPH)))->At(0)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  AliTRDseedV1 *tracklet(NULL);
  AliTRDcluster *c(NULL);
  Double_t xd(0.), dqdl(0.);
  TVectorD vq(AliTRDseedV1::kNtb), vxd(AliTRDseedV1::kNtb), vdqdl(AliTRDseedV1::kNtb);
  for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++){
    if(!(tracklet = fkTrack->GetTracklet(itl)) || !(tracklet->IsOK())) continue;
    Int_t det(tracklet->GetDetector());
    Bool_t rc(tracklet->IsRowCross());
    for(Int_t ic(0); ic<AliTRDseedV1::kNtb; ic++){
      Bool_t kFIRST(kFALSE);
      if(!(c = tracklet->GetClusters(ic))){
         if(!(c = tracklet->GetClusters(AliTRDseedV1::kNtb+ic))) continue;
      } else kFIRST=kTRUE;
      if(!IsUsingClustersOutsideChamber() && !c->IsInChamber()) continue;
      xd = tracklet->GetX0() - c->GetX(); vxd[ic] = xd;
      dqdl=tracklet->GetdQdl(ic); vdqdl[ic] = dqdl;
      vq[ic]=c->GetQ();
      if(kFIRST && (c = tracklet->GetClusters(AliTRDseedV1::kNtb+ic))) vq[ic]+=c->GetQ();
      h->Fill(xd, dqdl, fCentralityClass);
    }
    if(DebugLevel() > 3){
      (*DebugStream()) << "PHx"
        << "det="  << det
        << "rc="   << rc
        << "xd="   << &vxd
        << "q="    << &vq
        << "dqdl=" << &vdqdl
        << "\n";
    }
  }  
  return h;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotChargeCluster(const AliTRDtrackV1 *track){
  //
  // Plot the cluster charge
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH2 *h = NULL;
  if(!(h = dynamic_cast<TH2F *>(fContainer->At(kChargeCluster)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  AliTRDseedV1 *tracklet = NULL;
  AliTRDcluster *c = NULL;
  for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++){
    if(!(tracklet = fkTrack->GetTracklet(itl)) || !tracklet->IsOK())continue;
    for(Int_t ic(0); ic < AliTRDseedV1::kNtb; ic++){
      Bool_t kFIRST(kFALSE);
      if(!(c = tracklet->GetClusters(ic))) {
        if(!(c = tracklet->GetClusters(AliTRDseedV1::kNtb+ic))) continue;
      } else kFIRST = kTRUE;
      Float_t q(c->GetQ());
      if(kFIRST && (c = tracklet->GetClusters(AliTRDseedV1::kNtb+ic))) q+=c->GetQ();
      h->Fill(q, fCentralityClass);
    }
  }
  return h;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotChargeTracklet(const AliTRDtrackV1 *track){
  //
  // Plot the charge deposit per chamber
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH2 *h = NULL;
  if(!(h = dynamic_cast<TH2F *>(fContainer->At(kChargeTracklet)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  AliTRDseedV1 *tracklet = NULL;
  AliTRDcluster *c = NULL;
  Double_t qTot = 0;
  Int_t nTracklets =fkTrack->GetNumberOfTracklets();
  for(Int_t itl(0); itl < AliTRDgeometry::kNlayer; itl++){
    if(!(tracklet = fkTrack->GetTracklet(itl)) || !tracklet->IsOK()) continue;
    qTot = 0.;
    for(Int_t ic = AliTRDseedV1::kNclusters; ic--;){
      if(!(c = tracklet->GetClusters(ic))) continue;
      qTot += TMath::Abs(c->GetQ());
    }
    h->Fill(qTot, fCentralityClass);
    if(DebugLevel() > 3){
      Int_t crossing = (Int_t)tracklet->IsRowCross();
      Int_t detector = tracklet->GetDetector();
      Float_t theta = TMath::ATan(tracklet->GetZfit(1));
      Float_t phi = TMath::ATan(tracklet->GetYfit(1));
      Float_t momentum = 0.;
      Int_t pdg = 0;
      Int_t kinkIndex = fkESD ? fkESD->GetKinkIndex() : 0;
      UShort_t nclsTPC = fkESD ? fkESD->GetTPCncls() : 0;
      if(fkMC){
	      if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
        pdg = fkMC->GetPDG();
      }
      (*DebugStream()) << "ChargeTracklet"
        << "Detector="  << detector
        << "Centrality="<< fCentralityClass
        << "crossing="  << crossing
        << "momentum="	<< momentum
        << "nTracklets="<< nTracklets
        << "pdg="				<< pdg
        << "theta="			<< theta
        << "phi="				<< phi
        << "kinkIndex="	<< kinkIndex
        << "TPCncls="		<< nclsTPC
        << "QT="        << qTot
        << "\n";
    }
  }
  return h;
}

//_______________________________________________________
TH1 *AliTRDcheckDET::PlotNTracksSector(const AliTRDtrackV1 *track){
  //
  // Plot the number of tracks per Sector
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(4, "No Track defined.");
    return NULL;
  }
  TH1 *h = NULL;
  if(!(h = dynamic_cast<TH1F *>(fContainer->At(kNtracksSector)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }

  // TODO we should compare with
  // sector = Int_t(track->GetAlpha() / AliTRDgeometry::GetAlpha());

  AliTRDseedV1 *tracklet = NULL;
  Int_t sector = -1;
  for(Int_t itl = 0; itl < AliTRDgeometry::kNlayer; itl++){
    if(!(tracklet = fkTrack->GetTracklet(itl)) || !tracklet->IsOK()) continue;
    sector = static_cast<Int_t>(tracklet->GetDetector()/AliTRDgeometry::kNdets);
    break;
  }
  h->Fill(sector);
  return h;
}


//________________________________________________________
void AliTRDcheckDET::GetDistanceToTracklet(Double_t *dist, AliTRDseedV1 * const tracklet, AliTRDcluster * const c)
{
  Float_t x = c->GetX();
  dist[0] = c->GetY() - tracklet->GetYat(x);
  dist[1] = c->GetZ() - tracklet->GetZat(x);
}

//________________________________________________________
void AliTRDcheckDET::GetEtaPhiAt(const AliExternalTrackParam *track, Double_t x, Double_t &eta, Double_t &phi){
  //
  // Get phi and eta at a given radial position
  // 
  if(!fEvent) return;
  AliExternalTrackParam workpar(*track);

  Double_t posLocal[3];
  Bool_t sucPos = workpar.GetXYZAt(x, fEvent->GetRunInfo()->GetMagneticField(), posLocal);
  Double_t sagPhi = sucPos ? TMath::ATan2(posLocal[1], posLocal[0]) : 0.;
  phi = sagPhi;
  eta = workpar.Eta();
}


//_______________________________________________________
TH1* AliTRDcheckDET::MakePlotChi2() const
{
// Plot chi2/track normalized to number of degree of freedom 
// (tracklets) and compare with the theoretical distribution.
// 
// Alex Bercuci <A.Bercuci@gsi.de>

  return NULL;

/*  TH2S *h2 = (TH2S*)fContainer->At(kChi2);
  TF1 f("fChi2", "[0]*pow(x, [1]-1)*exp(-0.5*x)", 0., 50.);
  f.SetParLimits(1,1, 1e100);
  TLegend *leg = new TLegend(.7,.7,.95,.95);
  leg->SetBorderSize(1); leg->SetHeader("Tracklets per Track");
  TH1D *h1 = NULL;
  Bool_t kFIRST = kTRUE;
  for(Int_t il=1; il<=h2->GetNbinsX(); il++){
    h1 = h2->ProjectionY(Form("pyChi2%d", il), il, il);
    if(h1->Integral()<50) continue;
    h1->Scale(1./h1->Integral());
    h1->SetMarkerStyle(7);h1->SetMarkerColor(il);
    h1->SetLineColor(il);h1->SetLineStyle(2);
    f.SetParameter(1, .5*il);f.SetLineColor(il);
    h1->Fit(&f, "QW+", kFIRST ? "pc": "pcsame");
    leg->AddEntry(h1, Form("%d", il), "l");
    if(kFIRST){
      h1->GetXaxis()->SetRangeUser(0., 25.);
    }
    kFIRST = kFALSE;
  }
  leg->Draw();
  gPad->SetLogy();
  return h1;*/
}


//________________________________________________________
TH1* AliTRDcheckDET::MakePlotNTracklets(){
	//
	// Make nice bar plot of the number of tracklets in each method
	//
	TH3 *hTracklets3D = dynamic_cast<TH3F *>(fContainer->FindObject("hNtlsBAR"));
	if(!hTracklets3D){
		AliError("Tracklet Histogram not found");
		return NULL;
	}
	TH1 *hBAR = hTracklets3D->Project3D("y");
	hBAR->SetName("hBAR");
	hBAR->SetTitle("Number of Tracklets");
	if(hBAR->Integral()) hBAR->Scale(1./hBAR->Integral());
	hBAR->SetLineColor(kBlack);
	hBAR->SetLineWidth(2);
	hBAR->Draw();

	// Draw also centrality-dependent plots
	TH1 *hBarCent[AliTRDeventInfo::kCentralityClasses];
	Int_t nHistsCentrality = 0;
	for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
		hTracklets3D->GetZaxis()->SetRange(icent+2, icent+2);
		hBarCent[icent] = hTracklets3D->Project3D("y");
		if(!(hBarCent[icent] && hBarCent[icent]->GetEntries())){
			delete hBarCent[icent];
			hBarCent[icent] = NULL;
			continue;
		}
		hBarCent[icent]->SetName(Form("hBarCent_%d", icent));
		hBarCent[icent]->SetTitle("Number of Tracklets");
		hBarCent[icent]->Scale(1./hBarCent[icent]->Integral());
		hBarCent[icent]->SetLineColor(fkColorsCentrality[icent]);
		hBarCent[icent]->Draw("same");
		nHistsCentrality++;
	}
	hTracklets3D->GetZaxis()->SetRange(0, hTracklets3D->GetNbinsZ());
	AliInfo(Form("Number of Centrality Classes: %d", nHistsCentrality));
	if(nHistsCentrality){
		TLegend *leg = new TLegend(0.5, 0.6, 0.89, 0.89);
		leg->SetBorderSize(0);
		leg->SetFillStyle(0);
		for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++)
			if(hBarCent[icent]) leg->AddEntry(hBarCent[icent], Form("Centrality Class %d", icent), "l");
		leg->Draw();
		gPad->Update();
	}
	return hBAR;

	/*
	  TH2F *tmp = (TH2F *)fContainer->FindObject("hNtlsBAR");
	  TH1D *hBAR = tmp->ProjectionY();
	  TH1F *hSTA = (TH1F *)fContainer->FindObject("hNtlsSTA");
	  TH1F *hCON = (TH1F *)fContainer->FindObject("hNtls");
	  TLegend *leg = new TLegend(0.13, 0.75, 0.39, 0.89);
	  leg->SetBorderSize(1);
	  leg->SetFillColor(0);

	  Float_t scale = hCON->Integral();
	  if(scale) hCON->Scale(100./scale);
	  hCON->SetFillColor(kRed);hCON->SetLineColor(kRed);
	  hCON->SetBarWidth(0.2);
	  hCON->SetBarOffset(0.6);
	  hCON->SetStats(kFALSE);
	  hCON->GetYaxis()->SetRangeUser(0.,40.);
	  hCON->GetYaxis()->SetTitleOffset(1.2);
	  hCON->Draw("bar1"); leg->AddEntry(hCON, "Total", "f");
	  hCON->SetMaximum(55.);

	  if(scale) hBAR->Scale(100./scale);
	  hBAR->SetFillColor(kGreen);hBAR->SetLineColor(kGreen);
	  hBAR->SetBarWidth(0.2);
	  hBAR->SetBarOffset(0.2);
	  hBAR->SetTitle("");
	  hBAR->SetStats(kFALSE);
	  hBAR->GetYaxis()->SetRangeUser(0.,40.);
	  hBAR->GetYaxis()->SetTitleOffset(1.2);
	  hBAR->Draw("bar1same"); leg->AddEntry(hBAR, "Barrel", "f");

	  if(scale) hSTA->Scale(100./scale);
	  hSTA->SetFillColor(kBlue);hSTA->SetLineColor(kBlue);
	  hSTA->SetBarWidth(0.2);
	  hSTA->SetBarOffset(0.4);
	  hSTA->SetTitle("");
	  hSTA->SetStats(kFALSE);
	  hSTA->GetYaxis()->SetRangeUser(0.,40.);
	  hSTA->GetYaxis()->SetTitleOffset(1.2);
	  hSTA->Draw("bar1same"); leg->AddEntry(hSTA, "Stand Alone", "f");
	  leg->Draw();
	  gPad->Update();
  	  return hCON;
	 */
}

//________________________________________________________
void AliTRDcheckDET::MakePlotNclustersTrack(){
	//
	// Plot number of clusters
	// Put histos from all centrality classes into one pad
	//
	TH2 *hClusters = dynamic_cast<TH2 *>(fContainer->FindObject("hNcls"));
	if(!hClusters){
		AliError("Cluster histogram not found in the output");
	}
	TH1 *hAllCentrality = hClusters->ProjectionX("hNcls_all");
	hAllCentrality->SetTitle("Number of clusters/track");
	if(hAllCentrality->Integral()>0.) hAllCentrality->Scale(1./hAllCentrality->Integral());
	hAllCentrality->SetLineColor(kBlack);
	hAllCentrality->SetLineWidth(2);
	hAllCentrality->GetYaxis()->SetRangeUser(0, 0.02);
	hAllCentrality->Draw();
	PutTrendValue("NClustersTrack", hAllCentrality->GetMean());
	PutTrendValue("NClustersTrackRMS", hAllCentrality->GetRMS());

	// Now look at single centrality classes
	TH1 *hProjCentral[AliTRDeventInfo::kCentralityClasses];
	Int_t nHistsCentrality = 0;
	for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
		hProjCentral[icent] = hClusters->ProjectionX(Form("hNcls_%d", icent), icent+1, icent+1);
		if(!hProjCentral[icent]->GetEntries()){
			delete hProjCentral[icent];
			hProjCentral[icent] = NULL;
			continue;
		}
		hProjCentral[icent]->Scale(1./hProjCentral[icent]->Integral());
		hProjCentral[icent]->SetTitle("Number of clusters/track");
		hProjCentral[icent]->SetLineColor(fkColorsCentrality[icent]);
		hProjCentral[icent]->GetYaxis()->SetRangeUser(0, 0.03);
		hProjCentral[icent]->Draw("same");
		nHistsCentrality++;
	}
	AliInfo(Form("%d centrality classes found", nHistsCentrality));
	if(nHistsCentrality){
		// Draw nice legend
		TLegend *leg = new TLegend(0.5, 0.6, 0.89, 0.89);
		leg->SetBorderSize(0);
		leg->SetFillStyle(0);
		for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
			if(hProjCentral[icent]) leg->AddEntry(hProjCentral[icent], Form("Centrality Class %d", icent), "l");
		}
		leg->Draw();
		gPad->Update();
	}
}

//________________________________________________________
void AliTRDcheckDET::MakePlotNclustersTracklet(){
	//
	// Plot number of clusters for different centrality classes
	//
	TH2 *hClusters = dynamic_cast<TH2*>(fContainer->FindObject("hNclTls"));
	if(!hClusters){
		AliError("Histogram for the number of clusters per tracklet not available");
		return;
	}
	TH1 *hAllCentrality = hClusters->ProjectionX("hNclsTls_all");
	hAllCentrality->SetTitle("Number of clusters/track");
	if(hAllCentrality->Integral()>0.) hAllCentrality->Scale(1./hAllCentrality->Integral());
	hAllCentrality->SetLineColor(kBlack);
	hAllCentrality->SetLineWidth(2);
	hAllCentrality->GetYaxis()->SetRangeUser(0, 0.3);
	hAllCentrality->Draw("pc");
	PutTrendValue("NClustersTracklet", hAllCentrality->GetMean());
	PutTrendValue("NClustersTrackletRMS", hAllCentrality->GetRMS());

	// Now look at single centrality classes
	TH1 *hProjCentral[AliTRDeventInfo::kCentralityClasses];
	Int_t nHistsCentrality = 0;
	for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
		hProjCentral[icent] = hClusters->ProjectionX(Form("hNclsTls_%d", icent), icent+1, icent+1);
		if(!hProjCentral[icent]->GetEntries()){
			delete hProjCentral[icent];
			hProjCentral[icent] = NULL;
			continue;
		}
		if(hProjCentral[icent]->Integral()>0.) hProjCentral[icent]->Scale(1./hProjCentral[icent]->Integral());
		hProjCentral[icent]->SetTitle("Number of clusters/track");
		hProjCentral[icent]->SetLineColor(fkColorsCentrality[icent]);
		hProjCentral[icent]->GetYaxis()->SetRangeUser(0, 0.3);
		hProjCentral[icent]->Draw("pcsame");
		nHistsCentrality++;
	}
	AliInfo(Form("%d centrality classes found", nHistsCentrality));
	if(nHistsCentrality){
		// Draw nice legend
		TLegend *leg = new TLegend(0.5, 0.6, 0.89, 0.89);
		leg->SetBorderSize(0);
		leg->SetFillStyle(0);
		for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
			if(hProjCentral[icent]) leg->AddEntry(hProjCentral[icent], Form("Centrality Class %d", icent), "l");
		}
		leg->Draw();
		gPad->Update();
	}
}

//________________________________________________________
void AliTRDcheckDET::MakePlotTrackletCharge(){
	//
	// Draw tracklet charge for different centrality classes
	//
	TH2 *hQt = dynamic_cast<TH2*>(fContainer->FindObject("hQtrklt"));
	if(!hQt){
		AliError("Histogram for tracklet charges not found");
		return;
	}
	// First Project all charhes
	TH1 *hQtAll = hQt->ProjectionX("hQtAll");
	hQtAll->SetTitle("Tracklet Charge");
	Double_t scalefactor = hQtAll->GetMaximum()>0.?(0.7 * hQtAll->Integral() / hQtAll->GetMaximum()):1;
	if(hQtAll->Integral()>0.) hQtAll->Scale(scalefactor/hQtAll->Integral());
	hQtAll->GetYaxis()->SetRangeUser(0., 1.);
	hQtAll->SetLineColor(kBlack);
	hQtAll->SetLineWidth(2);
	hQtAll->Draw("c");
	PutTrendValue("ChargeTracklet", hQtAll->GetMaximumBin());
	PutTrendValue("ChargeTrackletRMS", hQtAll->GetRMS());

	TH1 *hQtCent[AliTRDeventInfo::kCentralityClasses];
	Int_t nHistsCentrality = 0;
	for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
		hQtCent[icent] = hQt->ProjectionX(Form("hQt_%d", icent), icent+1, icent+1);
		if(!hQtCent[icent]->GetEntries()){
			delete hQtCent[icent]; hQtCent[icent]=NULL;
			continue;
		}
		hQtCent[icent]->SetTitle("Tracklet Charge");
		if(hQtCent[icent]->Integral()>0.) hQtCent[icent]->Scale(scalefactor/hQtCent[icent]->Integral());
		hQtCent[icent]->GetYaxis()->SetRangeUser(0., 1.);
		hQtCent[icent]->SetLineColor(fkColorsCentrality[icent]);
		hQtCent[icent]->Draw("csame");
		nHistsCentrality++;
	}
	AliInfo(Form("%d centrality classes found", nHistsCentrality));
	if(nHistsCentrality){
		TLegend *leg = new TLegend(0.5, 0.6, 0.89, 0.89);
		leg->SetBorderSize(0);
		leg->SetFillStyle(0);
		for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
			if(hQtCent[icent]) leg->AddEntry(hQtCent[icent], Form("Centrality Class %d", icent), "l");
		}
		leg->Draw();
		gPad->Update();
	}
}

//________________________________________________________
void AliTRDcheckDET::MakePlotnTrackletsVsP(){
  //
  // Plot abundance of tracks with number of tracklets as function of momentum
  //

  Color_t color[AliTRDgeometry::kNlayer] = {kBlue, kOrange, kBlack, kGreen, kCyan, kRed};
  TH1 *h(NULL); TGraphErrors *g[AliTRDgeometry::kNlayer];
  for(Int_t itl(0); itl<AliTRDgeometry::kNlayer; itl++){
    g[itl] = new TGraphErrors();
    g[itl]->SetLineColor(color[itl]);
    g[itl]->SetMarkerColor(color[itl]);
    g[itl]->SetMarkerStyle(20 + itl);
  }

  TH3 *hBar3D = dynamic_cast<TH3F *>(fContainer->FindObject("hNtlsBAR"));
  if(!hBar3D){
	  AliError("Histogram for the number of tracklets vs p not available");
	  return;
  }
  TH2 *hBar = (TH2 *)hBar3D->Project3D("yx");
  TAxis *ax(hBar->GetXaxis());
  Int_t np(ax->GetNbins());
  for(Int_t ipBin(1); ipBin<np; ipBin++){
    h = hBar->ProjectionY("npBin", ipBin, ipBin);
    if(!Int_t(h->Integral())) continue;
    h->Scale(100./h->Integral());
    Float_t p(ax->GetBinCenter(ipBin)); 
    Float_t dp(ax->GetBinWidth(ipBin)); 
    Int_t ip(g[0]->GetN());
    for(Int_t itl(AliTRDgeometry::kNlayer); itl--;){
      g[itl]->SetPoint(ip, p, h->GetBinContent(itl+1));
      g[itl]->SetPointError(ip, dp/3.46, h->GetBinError(itl+1));
    }
  }

  TLegend *leg = new TLegend(0.76, 0.6, 1., 0.9);
  leg->SetBorderSize(0);
  leg->SetHeader("Tracklet/Track");
  leg->SetFillStyle(0);
  h = hBar->ProjectionX("npxBin"); h->Reset();
  h->SetTitle("");
  h->GetYaxis()->SetRangeUser(1., 99.);
  h->GetYaxis()->SetMoreLogLabels();
  h->GetYaxis()->CenterTitle();
  h->GetYaxis()->SetTitleOffset(1.2);
  h->SetYTitle("Prob. [%]");
  h->GetXaxis()->SetRangeUser(0.4, 12.);
  h->GetXaxis()->SetMoreLogLabels();
  h->GetXaxis()->CenterTitle();
  h->Draw("p");
  for(Int_t itl(AliTRDgeometry::kNlayer); itl--;){
    g[itl]->Draw("pc");
    leg->AddEntry(g[itl], Form("n = %d", itl+1),"pl");
  }

  leg->Draw();
  gPad->SetLogx();gPad->SetLogy();
}

//________________________________________________________
Bool_t AliTRDcheckDET::MakePlotPulseHeight(){
	//
	// Create Plot of the Pluse Height Spectrum
	//
	TCanvas *output = gPad->GetCanvas();
	output->Divide(2);
	output->cd(1);

	TObjArray *arr = (TObjArray*)fContainer->FindObject("<PH>");
	//TH3F *hPhx = dynamic_cast<TH3F *>(arr->At(0)),
	TH3F *hPht = dynamic_cast<TH3F *>(arr->At(1));
	if(!hPht) return kFALSE;
	// Project centrality of the 2 histograms
	//TH2 *hProjCentX = dynamic_cast<TH2 *>(hPhx->Project3D("yx")),
	TH2 *hProjCentT = dynamic_cast<TH2 *>(hPht->Project3D("yx"));
  if(!hProjCentT) return kFALSE;
	//hProjCentX->SetName("hProjCentX");
	hProjCentT->SetName("hProjCentT");
	// Draw 2D histogram versus time on pad 2
	output->cd(2);
	hProjCentT->SetTitle("2D Pulse Height vs. Time");
	hProjCentT->GetYaxis()->SetTitleOffset(1.8);
  hProjCentT->GetYaxis()->SetRangeUser(0., 600.);
	hProjCentT->SetStats(kFALSE);
	hProjCentT->Draw("colz");

  // Fit each slice of the pulse height spectrum with a Landau function
  TGraphErrors *landaufit = new TGraphErrors;
  landaufit->SetTitle();
  landaufit->SetMarkerColor(kWhite);
  landaufit->SetLineColor(kWhite);
  landaufit->SetMarkerStyle(25);
  TH1 *projection;
  Int_t ntime = 0;
  for(Int_t it = 1; it <= hProjCentT->GetXaxis()->GetLast(); it++){
    projection = hProjCentT->ProjectionY("proj", it, it);
    if(!projection->GetEntries()){
      delete projection;
      continue;  
    }
    TF1 fitfun("fitfun", "landau", 0, 1000);
    fitfun.SetParLimits(0, 1e-1, 1e9); fitfun.SetParameter(0, 1000);
    fitfun.SetParLimits(1, 10, 200); fitfun.SetParameter(1, 50);
    fitfun.SetParLimits(2, 1e-1, 200); fitfun.SetParameter(2, 10);
    projection->Fit(&fitfun, "QN", "", 0, 1000); 
    landaufit->SetPoint(ntime, hProjCentT->GetXaxis()->GetBinCenter(it), fitfun.GetParameter(1));
    landaufit->SetPointError(ntime, hProjCentT->GetXaxis()->GetBinWidth(it)/2., fitfun.GetParError(1));
    ntime++;
    delete projection;
  }
  landaufit->Draw("lpesame");

	// Fill 1D PHS as function of time resp. radius (same binning of the 2 histograms)
	//TH1 *hPhsX = new TH1F("hPhsX", "Average PH vs X", hProjCentT->GetXaxis()->GetNbins(), hProjCentT->GetXaxis()->GetXbins()->GetArray()),
  Int_t nbinsT = hProjCentT->GetXaxis()->GetNbins();
	TH1	*hPhsT = new TH1F("hPhsT", "Average Ph vs Time; Time (100 ns); Average Pulse Height (a.u.)", nbinsT, -0.5, nbinsT - 0.5),
		*htmp = NULL;
	/*for(Int_t irad = 1; irad <= hProjCentX->GetXaxis()->GetNbins(); irad++){
		htmp = hProjCentX->ProjectionY("tmp", irad, irad);
		hPhsX->SetBinContent(irad, htmp->GetMean());
		hPhsX->SetBinError(irad, htmp->GetMeanError());
		delete htmp;
	}*/
	for(Int_t it = 1; it <= hProjCentT->GetXaxis()->GetNbins(); it++){
		htmp = hProjCentT->ProjectionY("tmp", it, it);
		hPhsT->SetBinContent(it, htmp->GetMean());
		hPhsT->SetBinError(it, htmp->GetMeanError());
		delete htmp;
	}
	output->cd(1);
	// Draw 1D histograms
	if(hPhsT->GetEntries()){
		hPhsT->SetMarkerStyle(24);
		hPhsT->SetMarkerColor(kBlack);
		hPhsT->SetLineColor(kBlack);
		hPhsT->GetYaxis()->SetTitleOffset(1.5);
		hPhsT->Draw("e1");
		// Now fit the PHS with respect to time to get plateau and slope
		// Trending for the pulse height: plateau value, slope and timebin of the maximum
		TLinearFitter fit(1,"pol1");
		Double_t time = 0.;
		for(Int_t itime = 10; itime <= 20; itime++){
			time = Double_t(itime);
			Double_t err(hPhsT->GetBinError(itime + 1));
			if(err>1.e-10) fit.AddPoint(&time, hPhsT->GetBinContent(itime + 1), err);
		}
		if(!fit.Eval()){
			Double_t plateau = fit.GetParameter(0) + 12 * fit.GetParameter(1);
			Double_t slope = fit.GetParameter(1);
			PutTrendValue("PHplateau", plateau);
			PutTrendValue("PHslope", slope);
			PutTrendValue("PHamplificationPeak", static_cast<Double_t>(hPhsT->GetMaximumBin()-1));
			AliDebug(1, Form("plateau %f, slope %f, MaxTime %f", plateau, slope, static_cast<Double_t>(hPhsT->GetMaximumBin()-1)));
		}
	}
	/*if(hPhsX->GetEntries()){
		hPhsX->SetMarkerStyle(22);
		hPhsX->SetMarkerColor(kBlue);
		hPhsX->SetLineColor(kBlue);
		hPhsX->GetYaxis()->SetTitleOffset(1.5);
		hPhsX->Draw("e1same");
		// create axis according to the histogram dimensions of the original second histogram
		TGaxis *axis = new TGaxis(gPad->GetUxmin(),
				gPad->GetUymax(),
				gPad->GetUxmax(),
				gPad->GetUymax(),
				-0.08, 4.88, 510,"-L");
		axis->SetLineColor(kBlue);
		axis->SetLabelColor(kBlue);
		axis->SetTextColor(kBlue);
		axis->SetTitle("x_{0}-x_{c} [cm]");
		axis->Draw();
		gPad->Update();
	}*/

	// Centrality-dependent Pulse-Height Spectrum
	TH1 *hPhtCent[AliTRDeventInfo::kCentralityClasses];
	TH2 *hPtmp;
	Int_t nHistsCentrality = 0;
  TArrayD ptbinning(hPht->GetNbinsX()+1);
  for(Int_t ibin = 1; ibin <=hPht->GetNbinsX(); ibin++) ptbinning[ibin-1] = hPht->GetXaxis()->GetBinLowEdge(ibin);
  ptbinning[hPht->GetNbinsX()] = hPht->GetXaxis()->GetBinUpEdge(hPht->GetNbinsX());
	for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
		hPht->GetZaxis()->SetRange(icent+2,icent+2);
		hPtmp = dynamic_cast<TH2*>(hPht->Project3D("yx"));
		if(!(hPtmp && hPtmp->GetEntries())){
			hPhtCent[icent] = NULL;
			continue;
		}
		hPhtCent[icent] = new TH1F(Form("hPhtCent_%d", icent), "Average Ph vs Time", hPtmp->GetNbinsX(), ptbinning.GetArray());
		for(Int_t it = 1; it <= hPtmp->GetNbinsX(); it++){
			htmp = hPtmp->ProjectionY("htmp", it, it);
			hPhtCent[icent]->SetBinContent(it, htmp->GetMean());
			hPhtCent[icent]->SetBinError(it, htmp->GetMeanError());
			delete htmp;
		}
		delete hPtmp;
		hPhtCent[icent]->SetMarkerStyle(24);
		hPhtCent[icent]->SetMarkerColor(fkColorsCentrality[icent]);
		hPhtCent[icent]->SetLineColor(fkColorsCentrality[icent]);
		hPhtCent[icent]->Draw("e1same");
		nHistsCentrality++;
	}
	hPht->GetZaxis()->SetRange(0, hPht->GetNbinsZ());
	if(nHistsCentrality){
		TLegend *leg = new TLegend(0.5, 0.6, 0.89, 0.89);
		leg->SetBorderSize(0);
		leg->SetFillStyle(0);
		for(Int_t icent = 0; icent < AliTRDeventInfo::kCentralityClasses; icent++){
			if(hPhtCent[icent]) leg->AddEntry(hPhtCent[icent], Form("Centrality Class %d", icent), "p");
		}
		leg->Draw();
		gPad->Update();
	}

	// delete 2D Projection of the PHS vs x since it is only used to calculate the 1D projection
	//delete hProjCentX;

	return kTRUE;
}

//________________________________________________________
void AliTRDcheckDET::MakePlotMeanClustersLayer(){
  //
  // Create Summary plot for the mean number of clusters per layer
  //
  TCanvas *output = gPad->GetCanvas();
  output->Divide(3,2);
  TObjArray *histos = (TObjArray *)fContainer->At(kNclustersLayer);
  if(!histos){
    AliWarning("Histos for each layer not found");
    return;
  }
  TProfile2D *hlayer = NULL;
  for(Int_t ily = 0; ily < AliTRDgeometry::kNlayer; ily++){
    if(!(hlayer = dynamic_cast<TProfile2D *>(histos->At(ily)))) continue;
    output->cd(ily + 1);
    gPad->SetGrid(0,0);
    hlayer->Draw("colz");
  }
}

//________________________________________________________
Bool_t AliTRDcheckDET::MakeBarPlot(TH1 *histo, Int_t color){
  //
  // Draw nice bar plots
  //
  if(!histo->GetEntries()) return kFALSE;
  if(histo->Integral()>0.) histo->Scale(100./histo->Integral());
  histo->SetFillColor(color);
  histo->SetBarOffset(.2);
  histo->SetBarWidth(.6);
  histo->Draw("bar1");
  return kTRUE;
}
 AliTRDcheckDET.cxx:1
 AliTRDcheckDET.cxx:2
 AliTRDcheckDET.cxx:3
 AliTRDcheckDET.cxx:4
 AliTRDcheckDET.cxx:5
 AliTRDcheckDET.cxx:6
 AliTRDcheckDET.cxx:7
 AliTRDcheckDET.cxx:8
 AliTRDcheckDET.cxx:9
 AliTRDcheckDET.cxx:10
 AliTRDcheckDET.cxx:11
 AliTRDcheckDET.cxx:12
 AliTRDcheckDET.cxx:13
 AliTRDcheckDET.cxx:14
 AliTRDcheckDET.cxx:15
 AliTRDcheckDET.cxx:16
 AliTRDcheckDET.cxx:17
 AliTRDcheckDET.cxx:18
 AliTRDcheckDET.cxx:19
 AliTRDcheckDET.cxx:20
 AliTRDcheckDET.cxx:21
 AliTRDcheckDET.cxx:22
 AliTRDcheckDET.cxx:23
 AliTRDcheckDET.cxx:24
 AliTRDcheckDET.cxx:25
 AliTRDcheckDET.cxx:26
 AliTRDcheckDET.cxx:27
 AliTRDcheckDET.cxx:28
 AliTRDcheckDET.cxx:29
 AliTRDcheckDET.cxx:30
 AliTRDcheckDET.cxx:31
 AliTRDcheckDET.cxx:32
 AliTRDcheckDET.cxx:33
 AliTRDcheckDET.cxx:34
 AliTRDcheckDET.cxx:35
 AliTRDcheckDET.cxx:36
 AliTRDcheckDET.cxx:37
 AliTRDcheckDET.cxx:38
 AliTRDcheckDET.cxx:39
 AliTRDcheckDET.cxx:40
 AliTRDcheckDET.cxx:41
 AliTRDcheckDET.cxx:42
 AliTRDcheckDET.cxx:43
 AliTRDcheckDET.cxx:44
 AliTRDcheckDET.cxx:45
 AliTRDcheckDET.cxx:46
 AliTRDcheckDET.cxx:47
 AliTRDcheckDET.cxx:48
 AliTRDcheckDET.cxx:49
 AliTRDcheckDET.cxx:50
 AliTRDcheckDET.cxx:51
 AliTRDcheckDET.cxx:52
 AliTRDcheckDET.cxx:53
 AliTRDcheckDET.cxx:54
 AliTRDcheckDET.cxx:55
 AliTRDcheckDET.cxx:56
 AliTRDcheckDET.cxx:57
 AliTRDcheckDET.cxx:58
 AliTRDcheckDET.cxx:59
 AliTRDcheckDET.cxx:60
 AliTRDcheckDET.cxx:61
 AliTRDcheckDET.cxx:62
 AliTRDcheckDET.cxx:63
 AliTRDcheckDET.cxx:64
 AliTRDcheckDET.cxx:65
 AliTRDcheckDET.cxx:66
 AliTRDcheckDET.cxx:67
 AliTRDcheckDET.cxx:68
 AliTRDcheckDET.cxx:69
 AliTRDcheckDET.cxx:70
 AliTRDcheckDET.cxx:71
 AliTRDcheckDET.cxx:72
 AliTRDcheckDET.cxx:73
 AliTRDcheckDET.cxx:74
 AliTRDcheckDET.cxx:75
 AliTRDcheckDET.cxx:76
 AliTRDcheckDET.cxx:77
 AliTRDcheckDET.cxx:78
 AliTRDcheckDET.cxx:79
 AliTRDcheckDET.cxx:80
 AliTRDcheckDET.cxx:81
 AliTRDcheckDET.cxx:82
 AliTRDcheckDET.cxx:83
 AliTRDcheckDET.cxx:84
 AliTRDcheckDET.cxx:85
 AliTRDcheckDET.cxx:86
 AliTRDcheckDET.cxx:87
 AliTRDcheckDET.cxx:88
 AliTRDcheckDET.cxx:89
 AliTRDcheckDET.cxx:90
 AliTRDcheckDET.cxx:91
 AliTRDcheckDET.cxx:92
 AliTRDcheckDET.cxx:93
 AliTRDcheckDET.cxx:94
 AliTRDcheckDET.cxx:95
 AliTRDcheckDET.cxx:96
 AliTRDcheckDET.cxx:97
 AliTRDcheckDET.cxx:98
 AliTRDcheckDET.cxx:99
 AliTRDcheckDET.cxx:100
 AliTRDcheckDET.cxx:101
 AliTRDcheckDET.cxx:102
 AliTRDcheckDET.cxx:103
 AliTRDcheckDET.cxx:104
 AliTRDcheckDET.cxx:105
 AliTRDcheckDET.cxx:106
 AliTRDcheckDET.cxx:107
 AliTRDcheckDET.cxx:108
 AliTRDcheckDET.cxx:109
 AliTRDcheckDET.cxx:110
 AliTRDcheckDET.cxx:111
 AliTRDcheckDET.cxx:112
 AliTRDcheckDET.cxx:113
 AliTRDcheckDET.cxx:114
 AliTRDcheckDET.cxx:115
 AliTRDcheckDET.cxx:116
 AliTRDcheckDET.cxx:117
 AliTRDcheckDET.cxx:118
 AliTRDcheckDET.cxx:119
 AliTRDcheckDET.cxx:120
 AliTRDcheckDET.cxx:121
 AliTRDcheckDET.cxx:122
 AliTRDcheckDET.cxx:123
 AliTRDcheckDET.cxx:124
 AliTRDcheckDET.cxx:125
 AliTRDcheckDET.cxx:126
 AliTRDcheckDET.cxx:127
 AliTRDcheckDET.cxx:128
 AliTRDcheckDET.cxx:129
 AliTRDcheckDET.cxx:130
 AliTRDcheckDET.cxx:131
 AliTRDcheckDET.cxx:132
 AliTRDcheckDET.cxx:133
 AliTRDcheckDET.cxx:134
 AliTRDcheckDET.cxx:135
 AliTRDcheckDET.cxx:136
 AliTRDcheckDET.cxx:137
 AliTRDcheckDET.cxx:138
 AliTRDcheckDET.cxx:139
 AliTRDcheckDET.cxx:140
 AliTRDcheckDET.cxx:141
 AliTRDcheckDET.cxx:142
 AliTRDcheckDET.cxx:143
 AliTRDcheckDET.cxx:144
 AliTRDcheckDET.cxx:145
 AliTRDcheckDET.cxx:146
 AliTRDcheckDET.cxx:147
 AliTRDcheckDET.cxx:148
 AliTRDcheckDET.cxx:149
 AliTRDcheckDET.cxx:150
 AliTRDcheckDET.cxx:151
 AliTRDcheckDET.cxx:152
 AliTRDcheckDET.cxx:153
 AliTRDcheckDET.cxx:154
 AliTRDcheckDET.cxx:155
 AliTRDcheckDET.cxx:156
 AliTRDcheckDET.cxx:157
 AliTRDcheckDET.cxx:158
 AliTRDcheckDET.cxx:159
 AliTRDcheckDET.cxx:160
 AliTRDcheckDET.cxx:161
 AliTRDcheckDET.cxx:162
 AliTRDcheckDET.cxx:163
 AliTRDcheckDET.cxx:164
 AliTRDcheckDET.cxx:165
 AliTRDcheckDET.cxx:166
 AliTRDcheckDET.cxx:167
 AliTRDcheckDET.cxx:168
 AliTRDcheckDET.cxx:169
 AliTRDcheckDET.cxx:170
 AliTRDcheckDET.cxx:171
 AliTRDcheckDET.cxx:172
 AliTRDcheckDET.cxx:173
 AliTRDcheckDET.cxx:174
 AliTRDcheckDET.cxx:175
 AliTRDcheckDET.cxx:176
 AliTRDcheckDET.cxx:177
 AliTRDcheckDET.cxx:178
 AliTRDcheckDET.cxx:179
 AliTRDcheckDET.cxx:180
 AliTRDcheckDET.cxx:181
 AliTRDcheckDET.cxx:182
 AliTRDcheckDET.cxx:183
 AliTRDcheckDET.cxx:184
 AliTRDcheckDET.cxx:185
 AliTRDcheckDET.cxx:186
 AliTRDcheckDET.cxx:187
 AliTRDcheckDET.cxx:188
 AliTRDcheckDET.cxx:189
 AliTRDcheckDET.cxx:190
 AliTRDcheckDET.cxx:191
 AliTRDcheckDET.cxx:192
 AliTRDcheckDET.cxx:193
 AliTRDcheckDET.cxx:194
 AliTRDcheckDET.cxx:195
 AliTRDcheckDET.cxx:196
 AliTRDcheckDET.cxx:197
 AliTRDcheckDET.cxx:198
 AliTRDcheckDET.cxx:199
 AliTRDcheckDET.cxx:200
 AliTRDcheckDET.cxx:201
 AliTRDcheckDET.cxx:202
 AliTRDcheckDET.cxx:203
 AliTRDcheckDET.cxx:204
 AliTRDcheckDET.cxx:205
 AliTRDcheckDET.cxx:206
 AliTRDcheckDET.cxx:207
 AliTRDcheckDET.cxx:208
 AliTRDcheckDET.cxx:209
 AliTRDcheckDET.cxx:210
 AliTRDcheckDET.cxx:211
 AliTRDcheckDET.cxx:212
 AliTRDcheckDET.cxx:213
 AliTRDcheckDET.cxx:214
 AliTRDcheckDET.cxx:215
 AliTRDcheckDET.cxx:216
 AliTRDcheckDET.cxx:217
 AliTRDcheckDET.cxx:218
 AliTRDcheckDET.cxx:219
 AliTRDcheckDET.cxx:220
 AliTRDcheckDET.cxx:221
 AliTRDcheckDET.cxx:222
 AliTRDcheckDET.cxx:223
 AliTRDcheckDET.cxx:224
 AliTRDcheckDET.cxx:225
 AliTRDcheckDET.cxx:226
 AliTRDcheckDET.cxx:227
 AliTRDcheckDET.cxx:228
 AliTRDcheckDET.cxx:229
 AliTRDcheckDET.cxx:230
 AliTRDcheckDET.cxx:231
 AliTRDcheckDET.cxx:232
 AliTRDcheckDET.cxx:233
 AliTRDcheckDET.cxx:234
 AliTRDcheckDET.cxx:235
 AliTRDcheckDET.cxx:236
 AliTRDcheckDET.cxx:237
 AliTRDcheckDET.cxx:238
 AliTRDcheckDET.cxx:239
 AliTRDcheckDET.cxx:240
 AliTRDcheckDET.cxx:241
 AliTRDcheckDET.cxx:242
 AliTRDcheckDET.cxx:243
 AliTRDcheckDET.cxx:244
 AliTRDcheckDET.cxx:245
 AliTRDcheckDET.cxx:246
 AliTRDcheckDET.cxx:247
 AliTRDcheckDET.cxx:248
 AliTRDcheckDET.cxx:249
 AliTRDcheckDET.cxx:250
 AliTRDcheckDET.cxx:251
 AliTRDcheckDET.cxx:252
 AliTRDcheckDET.cxx:253
 AliTRDcheckDET.cxx:254
 AliTRDcheckDET.cxx:255
 AliTRDcheckDET.cxx:256
 AliTRDcheckDET.cxx:257
 AliTRDcheckDET.cxx:258
 AliTRDcheckDET.cxx:259
 AliTRDcheckDET.cxx:260
 AliTRDcheckDET.cxx:261
 AliTRDcheckDET.cxx:262
 AliTRDcheckDET.cxx:263
 AliTRDcheckDET.cxx:264
 AliTRDcheckDET.cxx:265
 AliTRDcheckDET.cxx:266
 AliTRDcheckDET.cxx:267
 AliTRDcheckDET.cxx:268
 AliTRDcheckDET.cxx:269
 AliTRDcheckDET.cxx:270
 AliTRDcheckDET.cxx:271
 AliTRDcheckDET.cxx:272
 AliTRDcheckDET.cxx:273
 AliTRDcheckDET.cxx:274
 AliTRDcheckDET.cxx:275
 AliTRDcheckDET.cxx:276
 AliTRDcheckDET.cxx:277
 AliTRDcheckDET.cxx:278
 AliTRDcheckDET.cxx:279
 AliTRDcheckDET.cxx:280
 AliTRDcheckDET.cxx:281
 AliTRDcheckDET.cxx:282
 AliTRDcheckDET.cxx:283
 AliTRDcheckDET.cxx:284
 AliTRDcheckDET.cxx:285
 AliTRDcheckDET.cxx:286
 AliTRDcheckDET.cxx:287
 AliTRDcheckDET.cxx:288
 AliTRDcheckDET.cxx:289
 AliTRDcheckDET.cxx:290
 AliTRDcheckDET.cxx:291
 AliTRDcheckDET.cxx:292
 AliTRDcheckDET.cxx:293
 AliTRDcheckDET.cxx:294
 AliTRDcheckDET.cxx:295
 AliTRDcheckDET.cxx:296
 AliTRDcheckDET.cxx:297
 AliTRDcheckDET.cxx:298
 AliTRDcheckDET.cxx:299
 AliTRDcheckDET.cxx:300
 AliTRDcheckDET.cxx:301
 AliTRDcheckDET.cxx:302
 AliTRDcheckDET.cxx:303
 AliTRDcheckDET.cxx:304
 AliTRDcheckDET.cxx:305
 AliTRDcheckDET.cxx:306
 AliTRDcheckDET.cxx:307
 AliTRDcheckDET.cxx:308
 AliTRDcheckDET.cxx:309
 AliTRDcheckDET.cxx:310
 AliTRDcheckDET.cxx:311
 AliTRDcheckDET.cxx:312
 AliTRDcheckDET.cxx:313
 AliTRDcheckDET.cxx:314
 AliTRDcheckDET.cxx:315
 AliTRDcheckDET.cxx:316
 AliTRDcheckDET.cxx:317
 AliTRDcheckDET.cxx:318
 AliTRDcheckDET.cxx:319
 AliTRDcheckDET.cxx:320
 AliTRDcheckDET.cxx:321
 AliTRDcheckDET.cxx:322
 AliTRDcheckDET.cxx:323
 AliTRDcheckDET.cxx:324
 AliTRDcheckDET.cxx:325
 AliTRDcheckDET.cxx:326
 AliTRDcheckDET.cxx:327
 AliTRDcheckDET.cxx:328
 AliTRDcheckDET.cxx:329
 AliTRDcheckDET.cxx:330
 AliTRDcheckDET.cxx:331
 AliTRDcheckDET.cxx:332
 AliTRDcheckDET.cxx:333
 AliTRDcheckDET.cxx:334
 AliTRDcheckDET.cxx:335
 AliTRDcheckDET.cxx:336
 AliTRDcheckDET.cxx:337
 AliTRDcheckDET.cxx:338
 AliTRDcheckDET.cxx:339
 AliTRDcheckDET.cxx:340
 AliTRDcheckDET.cxx:341
 AliTRDcheckDET.cxx:342
 AliTRDcheckDET.cxx:343
 AliTRDcheckDET.cxx:344
 AliTRDcheckDET.cxx:345
 AliTRDcheckDET.cxx:346
 AliTRDcheckDET.cxx:347
 AliTRDcheckDET.cxx:348
 AliTRDcheckDET.cxx:349
 AliTRDcheckDET.cxx:350
 AliTRDcheckDET.cxx:351
 AliTRDcheckDET.cxx:352
 AliTRDcheckDET.cxx:353
 AliTRDcheckDET.cxx:354
 AliTRDcheckDET.cxx:355
 AliTRDcheckDET.cxx:356
 AliTRDcheckDET.cxx:357
 AliTRDcheckDET.cxx:358
 AliTRDcheckDET.cxx:359
 AliTRDcheckDET.cxx:360
 AliTRDcheckDET.cxx:361
 AliTRDcheckDET.cxx:362
 AliTRDcheckDET.cxx:363
 AliTRDcheckDET.cxx:364
 AliTRDcheckDET.cxx:365
 AliTRDcheckDET.cxx:366
 AliTRDcheckDET.cxx:367
 AliTRDcheckDET.cxx:368
 AliTRDcheckDET.cxx:369
 AliTRDcheckDET.cxx:370
 AliTRDcheckDET.cxx:371
 AliTRDcheckDET.cxx:372
 AliTRDcheckDET.cxx:373
 AliTRDcheckDET.cxx:374
 AliTRDcheckDET.cxx:375
 AliTRDcheckDET.cxx:376
 AliTRDcheckDET.cxx:377
 AliTRDcheckDET.cxx:378
 AliTRDcheckDET.cxx:379
 AliTRDcheckDET.cxx:380
 AliTRDcheckDET.cxx:381
 AliTRDcheckDET.cxx:382
 AliTRDcheckDET.cxx:383
 AliTRDcheckDET.cxx:384
 AliTRDcheckDET.cxx:385
 AliTRDcheckDET.cxx:386
 AliTRDcheckDET.cxx:387
 AliTRDcheckDET.cxx:388
 AliTRDcheckDET.cxx:389
 AliTRDcheckDET.cxx:390
 AliTRDcheckDET.cxx:391
 AliTRDcheckDET.cxx:392
 AliTRDcheckDET.cxx:393
 AliTRDcheckDET.cxx:394
 AliTRDcheckDET.cxx:395
 AliTRDcheckDET.cxx:396
 AliTRDcheckDET.cxx:397
 AliTRDcheckDET.cxx:398
 AliTRDcheckDET.cxx:399
 AliTRDcheckDET.cxx:400
 AliTRDcheckDET.cxx:401
 AliTRDcheckDET.cxx:402
 AliTRDcheckDET.cxx:403
 AliTRDcheckDET.cxx:404
 AliTRDcheckDET.cxx:405
 AliTRDcheckDET.cxx:406
 AliTRDcheckDET.cxx:407
 AliTRDcheckDET.cxx:408
 AliTRDcheckDET.cxx:409
 AliTRDcheckDET.cxx:410
 AliTRDcheckDET.cxx:411
 AliTRDcheckDET.cxx:412
 AliTRDcheckDET.cxx:413
 AliTRDcheckDET.cxx:414
 AliTRDcheckDET.cxx:415
 AliTRDcheckDET.cxx:416
 AliTRDcheckDET.cxx:417
 AliTRDcheckDET.cxx:418
 AliTRDcheckDET.cxx:419
 AliTRDcheckDET.cxx:420
 AliTRDcheckDET.cxx:421
 AliTRDcheckDET.cxx:422
 AliTRDcheckDET.cxx:423
 AliTRDcheckDET.cxx:424
 AliTRDcheckDET.cxx:425
 AliTRDcheckDET.cxx:426
 AliTRDcheckDET.cxx:427
 AliTRDcheckDET.cxx:428
 AliTRDcheckDET.cxx:429
 AliTRDcheckDET.cxx:430
 AliTRDcheckDET.cxx:431
 AliTRDcheckDET.cxx:432
 AliTRDcheckDET.cxx:433
 AliTRDcheckDET.cxx:434
 AliTRDcheckDET.cxx:435
 AliTRDcheckDET.cxx:436
 AliTRDcheckDET.cxx:437
 AliTRDcheckDET.cxx:438
 AliTRDcheckDET.cxx:439
 AliTRDcheckDET.cxx:440
 AliTRDcheckDET.cxx:441
 AliTRDcheckDET.cxx:442
 AliTRDcheckDET.cxx:443
 AliTRDcheckDET.cxx:444
 AliTRDcheckDET.cxx:445
 AliTRDcheckDET.cxx:446
 AliTRDcheckDET.cxx:447
 AliTRDcheckDET.cxx:448
 AliTRDcheckDET.cxx:449
 AliTRDcheckDET.cxx:450
 AliTRDcheckDET.cxx:451
 AliTRDcheckDET.cxx:452
 AliTRDcheckDET.cxx:453
 AliTRDcheckDET.cxx:454
 AliTRDcheckDET.cxx:455
 AliTRDcheckDET.cxx:456
 AliTRDcheckDET.cxx:457
 AliTRDcheckDET.cxx:458
 AliTRDcheckDET.cxx:459
 AliTRDcheckDET.cxx:460
 AliTRDcheckDET.cxx:461
 AliTRDcheckDET.cxx:462
 AliTRDcheckDET.cxx:463
 AliTRDcheckDET.cxx:464
 AliTRDcheckDET.cxx:465
 AliTRDcheckDET.cxx:466
 AliTRDcheckDET.cxx:467
 AliTRDcheckDET.cxx:468
 AliTRDcheckDET.cxx:469
 AliTRDcheckDET.cxx:470
 AliTRDcheckDET.cxx:471
 AliTRDcheckDET.cxx:472
 AliTRDcheckDET.cxx:473
 AliTRDcheckDET.cxx:474
 AliTRDcheckDET.cxx:475
 AliTRDcheckDET.cxx:476
 AliTRDcheckDET.cxx:477
 AliTRDcheckDET.cxx:478
 AliTRDcheckDET.cxx:479
 AliTRDcheckDET.cxx:480
 AliTRDcheckDET.cxx:481
 AliTRDcheckDET.cxx:482
 AliTRDcheckDET.cxx:483
 AliTRDcheckDET.cxx:484
 AliTRDcheckDET.cxx:485
 AliTRDcheckDET.cxx:486
 AliTRDcheckDET.cxx:487
 AliTRDcheckDET.cxx:488
 AliTRDcheckDET.cxx:489
 AliTRDcheckDET.cxx:490
 AliTRDcheckDET.cxx:491
 AliTRDcheckDET.cxx:492
 AliTRDcheckDET.cxx:493
 AliTRDcheckDET.cxx:494
 AliTRDcheckDET.cxx:495
 AliTRDcheckDET.cxx:496
 AliTRDcheckDET.cxx:497
 AliTRDcheckDET.cxx:498
 AliTRDcheckDET.cxx:499
 AliTRDcheckDET.cxx:500
 AliTRDcheckDET.cxx:501
 AliTRDcheckDET.cxx:502
 AliTRDcheckDET.cxx:503
 AliTRDcheckDET.cxx:504
 AliTRDcheckDET.cxx:505
 AliTRDcheckDET.cxx:506
 AliTRDcheckDET.cxx:507
 AliTRDcheckDET.cxx:508
 AliTRDcheckDET.cxx:509
 AliTRDcheckDET.cxx:510
 AliTRDcheckDET.cxx:511
 AliTRDcheckDET.cxx:512
 AliTRDcheckDET.cxx:513
 AliTRDcheckDET.cxx:514
 AliTRDcheckDET.cxx:515
 AliTRDcheckDET.cxx:516
 AliTRDcheckDET.cxx:517
 AliTRDcheckDET.cxx:518
 AliTRDcheckDET.cxx:519
 AliTRDcheckDET.cxx:520
 AliTRDcheckDET.cxx:521
 AliTRDcheckDET.cxx:522
 AliTRDcheckDET.cxx:523
 AliTRDcheckDET.cxx:524
 AliTRDcheckDET.cxx:525
 AliTRDcheckDET.cxx:526
 AliTRDcheckDET.cxx:527
 AliTRDcheckDET.cxx:528
 AliTRDcheckDET.cxx:529
 AliTRDcheckDET.cxx:530
 AliTRDcheckDET.cxx:531
 AliTRDcheckDET.cxx:532
 AliTRDcheckDET.cxx:533
 AliTRDcheckDET.cxx:534
 AliTRDcheckDET.cxx:535
 AliTRDcheckDET.cxx:536
 AliTRDcheckDET.cxx:537
 AliTRDcheckDET.cxx:538
 AliTRDcheckDET.cxx:539
 AliTRDcheckDET.cxx:540
 AliTRDcheckDET.cxx:541
 AliTRDcheckDET.cxx:542
 AliTRDcheckDET.cxx:543
 AliTRDcheckDET.cxx:544
 AliTRDcheckDET.cxx:545
 AliTRDcheckDET.cxx:546
 AliTRDcheckDET.cxx:547
 AliTRDcheckDET.cxx:548
 AliTRDcheckDET.cxx:549
 AliTRDcheckDET.cxx:550
 AliTRDcheckDET.cxx:551
 AliTRDcheckDET.cxx:552
 AliTRDcheckDET.cxx:553
 AliTRDcheckDET.cxx:554
 AliTRDcheckDET.cxx:555
 AliTRDcheckDET.cxx:556
 AliTRDcheckDET.cxx:557
 AliTRDcheckDET.cxx:558
 AliTRDcheckDET.cxx:559
 AliTRDcheckDET.cxx:560
 AliTRDcheckDET.cxx:561
 AliTRDcheckDET.cxx:562
 AliTRDcheckDET.cxx:563
 AliTRDcheckDET.cxx:564
 AliTRDcheckDET.cxx:565
 AliTRDcheckDET.cxx:566
 AliTRDcheckDET.cxx:567
 AliTRDcheckDET.cxx:568
 AliTRDcheckDET.cxx:569
 AliTRDcheckDET.cxx:570
 AliTRDcheckDET.cxx:571
 AliTRDcheckDET.cxx:572
 AliTRDcheckDET.cxx:573
 AliTRDcheckDET.cxx:574
 AliTRDcheckDET.cxx:575
 AliTRDcheckDET.cxx:576
 AliTRDcheckDET.cxx:577
 AliTRDcheckDET.cxx:578
 AliTRDcheckDET.cxx:579
 AliTRDcheckDET.cxx:580
 AliTRDcheckDET.cxx:581
 AliTRDcheckDET.cxx:582
 AliTRDcheckDET.cxx:583
 AliTRDcheckDET.cxx:584
 AliTRDcheckDET.cxx:585
 AliTRDcheckDET.cxx:586
 AliTRDcheckDET.cxx:587
 AliTRDcheckDET.cxx:588
 AliTRDcheckDET.cxx:589
 AliTRDcheckDET.cxx:590
 AliTRDcheckDET.cxx:591
 AliTRDcheckDET.cxx:592
 AliTRDcheckDET.cxx:593
 AliTRDcheckDET.cxx:594
 AliTRDcheckDET.cxx:595
 AliTRDcheckDET.cxx:596
 AliTRDcheckDET.cxx:597
 AliTRDcheckDET.cxx:598
 AliTRDcheckDET.cxx:599
 AliTRDcheckDET.cxx:600
 AliTRDcheckDET.cxx:601
 AliTRDcheckDET.cxx:602
 AliTRDcheckDET.cxx:603
 AliTRDcheckDET.cxx:604
 AliTRDcheckDET.cxx:605
 AliTRDcheckDET.cxx:606
 AliTRDcheckDET.cxx:607
 AliTRDcheckDET.cxx:608
 AliTRDcheckDET.cxx:609
 AliTRDcheckDET.cxx:610
 AliTRDcheckDET.cxx:611
 AliTRDcheckDET.cxx:612
 AliTRDcheckDET.cxx:613
 AliTRDcheckDET.cxx:614
 AliTRDcheckDET.cxx:615
 AliTRDcheckDET.cxx:616
 AliTRDcheckDET.cxx:617
 AliTRDcheckDET.cxx:618
 AliTRDcheckDET.cxx:619
 AliTRDcheckDET.cxx:620
 AliTRDcheckDET.cxx:621
 AliTRDcheckDET.cxx:622
 AliTRDcheckDET.cxx:623
 AliTRDcheckDET.cxx:624
 AliTRDcheckDET.cxx:625
 AliTRDcheckDET.cxx:626
 AliTRDcheckDET.cxx:627
 AliTRDcheckDET.cxx:628
 AliTRDcheckDET.cxx:629
 AliTRDcheckDET.cxx:630
 AliTRDcheckDET.cxx:631
 AliTRDcheckDET.cxx:632
 AliTRDcheckDET.cxx:633
 AliTRDcheckDET.cxx:634
 AliTRDcheckDET.cxx:635
 AliTRDcheckDET.cxx:636
 AliTRDcheckDET.cxx:637
 AliTRDcheckDET.cxx:638
 AliTRDcheckDET.cxx:639
 AliTRDcheckDET.cxx:640
 AliTRDcheckDET.cxx:641
 AliTRDcheckDET.cxx:642
 AliTRDcheckDET.cxx:643
 AliTRDcheckDET.cxx:644
 AliTRDcheckDET.cxx:645
 AliTRDcheckDET.cxx:646
 AliTRDcheckDET.cxx:647
 AliTRDcheckDET.cxx:648
 AliTRDcheckDET.cxx:649
 AliTRDcheckDET.cxx:650
 AliTRDcheckDET.cxx:651
 AliTRDcheckDET.cxx:652
 AliTRDcheckDET.cxx:653
 AliTRDcheckDET.cxx:654
 AliTRDcheckDET.cxx:655
 AliTRDcheckDET.cxx:656
 AliTRDcheckDET.cxx:657
 AliTRDcheckDET.cxx:658
 AliTRDcheckDET.cxx:659
 AliTRDcheckDET.cxx:660
 AliTRDcheckDET.cxx:661
 AliTRDcheckDET.cxx:662
 AliTRDcheckDET.cxx:663
 AliTRDcheckDET.cxx:664
 AliTRDcheckDET.cxx:665
 AliTRDcheckDET.cxx:666
 AliTRDcheckDET.cxx:667
 AliTRDcheckDET.cxx:668
 AliTRDcheckDET.cxx:669
 AliTRDcheckDET.cxx:670
 AliTRDcheckDET.cxx:671
 AliTRDcheckDET.cxx:672
 AliTRDcheckDET.cxx:673
 AliTRDcheckDET.cxx:674
 AliTRDcheckDET.cxx:675
 AliTRDcheckDET.cxx:676
 AliTRDcheckDET.cxx:677
 AliTRDcheckDET.cxx:678
 AliTRDcheckDET.cxx:679
 AliTRDcheckDET.cxx:680
 AliTRDcheckDET.cxx:681
 AliTRDcheckDET.cxx:682
 AliTRDcheckDET.cxx:683
 AliTRDcheckDET.cxx:684
 AliTRDcheckDET.cxx:685
 AliTRDcheckDET.cxx:686
 AliTRDcheckDET.cxx:687
 AliTRDcheckDET.cxx:688
 AliTRDcheckDET.cxx:689
 AliTRDcheckDET.cxx:690
 AliTRDcheckDET.cxx:691
 AliTRDcheckDET.cxx:692
 AliTRDcheckDET.cxx:693
 AliTRDcheckDET.cxx:694
 AliTRDcheckDET.cxx:695
 AliTRDcheckDET.cxx:696
 AliTRDcheckDET.cxx:697
 AliTRDcheckDET.cxx:698
 AliTRDcheckDET.cxx:699
 AliTRDcheckDET.cxx:700
 AliTRDcheckDET.cxx:701
 AliTRDcheckDET.cxx:702
 AliTRDcheckDET.cxx:703
 AliTRDcheckDET.cxx:704
 AliTRDcheckDET.cxx:705
 AliTRDcheckDET.cxx:706
 AliTRDcheckDET.cxx:707
 AliTRDcheckDET.cxx:708
 AliTRDcheckDET.cxx:709
 AliTRDcheckDET.cxx:710
 AliTRDcheckDET.cxx:711
 AliTRDcheckDET.cxx:712
 AliTRDcheckDET.cxx:713
 AliTRDcheckDET.cxx:714
 AliTRDcheckDET.cxx:715
 AliTRDcheckDET.cxx:716
 AliTRDcheckDET.cxx:717
 AliTRDcheckDET.cxx:718
 AliTRDcheckDET.cxx:719
 AliTRDcheckDET.cxx:720
 AliTRDcheckDET.cxx:721
 AliTRDcheckDET.cxx:722
 AliTRDcheckDET.cxx:723
 AliTRDcheckDET.cxx:724
 AliTRDcheckDET.cxx:725
 AliTRDcheckDET.cxx:726
 AliTRDcheckDET.cxx:727
 AliTRDcheckDET.cxx:728
 AliTRDcheckDET.cxx:729
 AliTRDcheckDET.cxx:730
 AliTRDcheckDET.cxx:731
 AliTRDcheckDET.cxx:732
 AliTRDcheckDET.cxx:733
 AliTRDcheckDET.cxx:734
 AliTRDcheckDET.cxx:735
 AliTRDcheckDET.cxx:736
 AliTRDcheckDET.cxx:737
 AliTRDcheckDET.cxx:738
 AliTRDcheckDET.cxx:739
 AliTRDcheckDET.cxx:740
 AliTRDcheckDET.cxx:741
 AliTRDcheckDET.cxx:742
 AliTRDcheckDET.cxx:743
 AliTRDcheckDET.cxx:744
 AliTRDcheckDET.cxx:745
 AliTRDcheckDET.cxx:746
 AliTRDcheckDET.cxx:747
 AliTRDcheckDET.cxx:748
 AliTRDcheckDET.cxx:749
 AliTRDcheckDET.cxx:750
 AliTRDcheckDET.cxx:751
 AliTRDcheckDET.cxx:752
 AliTRDcheckDET.cxx:753
 AliTRDcheckDET.cxx:754
 AliTRDcheckDET.cxx:755
 AliTRDcheckDET.cxx:756
 AliTRDcheckDET.cxx:757
 AliTRDcheckDET.cxx:758
 AliTRDcheckDET.cxx:759
 AliTRDcheckDET.cxx:760
 AliTRDcheckDET.cxx:761
 AliTRDcheckDET.cxx:762
 AliTRDcheckDET.cxx:763
 AliTRDcheckDET.cxx:764
 AliTRDcheckDET.cxx:765
 AliTRDcheckDET.cxx:766
 AliTRDcheckDET.cxx:767
 AliTRDcheckDET.cxx:768
 AliTRDcheckDET.cxx:769
 AliTRDcheckDET.cxx:770
 AliTRDcheckDET.cxx:771
 AliTRDcheckDET.cxx:772
 AliTRDcheckDET.cxx:773
 AliTRDcheckDET.cxx:774
 AliTRDcheckDET.cxx:775
 AliTRDcheckDET.cxx:776
 AliTRDcheckDET.cxx:777
 AliTRDcheckDET.cxx:778
 AliTRDcheckDET.cxx:779
 AliTRDcheckDET.cxx:780
 AliTRDcheckDET.cxx:781
 AliTRDcheckDET.cxx:782
 AliTRDcheckDET.cxx:783
 AliTRDcheckDET.cxx:784
 AliTRDcheckDET.cxx:785
 AliTRDcheckDET.cxx:786
 AliTRDcheckDET.cxx:787
 AliTRDcheckDET.cxx:788
 AliTRDcheckDET.cxx:789
 AliTRDcheckDET.cxx:790
 AliTRDcheckDET.cxx:791
 AliTRDcheckDET.cxx:792
 AliTRDcheckDET.cxx:793
 AliTRDcheckDET.cxx:794
 AliTRDcheckDET.cxx:795
 AliTRDcheckDET.cxx:796
 AliTRDcheckDET.cxx:797
 AliTRDcheckDET.cxx:798
 AliTRDcheckDET.cxx:799
 AliTRDcheckDET.cxx:800
 AliTRDcheckDET.cxx:801
 AliTRDcheckDET.cxx:802
 AliTRDcheckDET.cxx:803
 AliTRDcheckDET.cxx:804
 AliTRDcheckDET.cxx:805
 AliTRDcheckDET.cxx:806
 AliTRDcheckDET.cxx:807
 AliTRDcheckDET.cxx:808
 AliTRDcheckDET.cxx:809
 AliTRDcheckDET.cxx:810
 AliTRDcheckDET.cxx:811
 AliTRDcheckDET.cxx:812
 AliTRDcheckDET.cxx:813
 AliTRDcheckDET.cxx:814
 AliTRDcheckDET.cxx:815
 AliTRDcheckDET.cxx:816
 AliTRDcheckDET.cxx:817
 AliTRDcheckDET.cxx:818
 AliTRDcheckDET.cxx:819
 AliTRDcheckDET.cxx:820
 AliTRDcheckDET.cxx:821
 AliTRDcheckDET.cxx:822
 AliTRDcheckDET.cxx:823
 AliTRDcheckDET.cxx:824
 AliTRDcheckDET.cxx:825
 AliTRDcheckDET.cxx:826
 AliTRDcheckDET.cxx:827
 AliTRDcheckDET.cxx:828
 AliTRDcheckDET.cxx:829
 AliTRDcheckDET.cxx:830
 AliTRDcheckDET.cxx:831
 AliTRDcheckDET.cxx:832
 AliTRDcheckDET.cxx:833
 AliTRDcheckDET.cxx:834
 AliTRDcheckDET.cxx:835
 AliTRDcheckDET.cxx:836
 AliTRDcheckDET.cxx:837
 AliTRDcheckDET.cxx:838
 AliTRDcheckDET.cxx:839
 AliTRDcheckDET.cxx:840
 AliTRDcheckDET.cxx:841
 AliTRDcheckDET.cxx:842
 AliTRDcheckDET.cxx:843
 AliTRDcheckDET.cxx:844
 AliTRDcheckDET.cxx:845
 AliTRDcheckDET.cxx:846
 AliTRDcheckDET.cxx:847
 AliTRDcheckDET.cxx:848
 AliTRDcheckDET.cxx:849
 AliTRDcheckDET.cxx:850
 AliTRDcheckDET.cxx:851
 AliTRDcheckDET.cxx:852
 AliTRDcheckDET.cxx:853
 AliTRDcheckDET.cxx:854
 AliTRDcheckDET.cxx:855
 AliTRDcheckDET.cxx:856
 AliTRDcheckDET.cxx:857
 AliTRDcheckDET.cxx:858
 AliTRDcheckDET.cxx:859
 AliTRDcheckDET.cxx:860
 AliTRDcheckDET.cxx:861
 AliTRDcheckDET.cxx:862
 AliTRDcheckDET.cxx:863
 AliTRDcheckDET.cxx:864
 AliTRDcheckDET.cxx:865
 AliTRDcheckDET.cxx:866
 AliTRDcheckDET.cxx:867
 AliTRDcheckDET.cxx:868
 AliTRDcheckDET.cxx:869
 AliTRDcheckDET.cxx:870
 AliTRDcheckDET.cxx:871
 AliTRDcheckDET.cxx:872
 AliTRDcheckDET.cxx:873
 AliTRDcheckDET.cxx:874
 AliTRDcheckDET.cxx:875
 AliTRDcheckDET.cxx:876
 AliTRDcheckDET.cxx:877
 AliTRDcheckDET.cxx:878
 AliTRDcheckDET.cxx:879
 AliTRDcheckDET.cxx:880
 AliTRDcheckDET.cxx:881
 AliTRDcheckDET.cxx:882
 AliTRDcheckDET.cxx:883
 AliTRDcheckDET.cxx:884
 AliTRDcheckDET.cxx:885
 AliTRDcheckDET.cxx:886
 AliTRDcheckDET.cxx:887
 AliTRDcheckDET.cxx:888
 AliTRDcheckDET.cxx:889
 AliTRDcheckDET.cxx:890
 AliTRDcheckDET.cxx:891
 AliTRDcheckDET.cxx:892
 AliTRDcheckDET.cxx:893
 AliTRDcheckDET.cxx:894
 AliTRDcheckDET.cxx:895
 AliTRDcheckDET.cxx:896
 AliTRDcheckDET.cxx:897
 AliTRDcheckDET.cxx:898
 AliTRDcheckDET.cxx:899
 AliTRDcheckDET.cxx:900
 AliTRDcheckDET.cxx:901
 AliTRDcheckDET.cxx:902
 AliTRDcheckDET.cxx:903
 AliTRDcheckDET.cxx:904
 AliTRDcheckDET.cxx:905
 AliTRDcheckDET.cxx:906
 AliTRDcheckDET.cxx:907
 AliTRDcheckDET.cxx:908
 AliTRDcheckDET.cxx:909
 AliTRDcheckDET.cxx:910
 AliTRDcheckDET.cxx:911
 AliTRDcheckDET.cxx:912
 AliTRDcheckDET.cxx:913
 AliTRDcheckDET.cxx:914
 AliTRDcheckDET.cxx:915
 AliTRDcheckDET.cxx:916
 AliTRDcheckDET.cxx:917
 AliTRDcheckDET.cxx:918
 AliTRDcheckDET.cxx:919
 AliTRDcheckDET.cxx:920
 AliTRDcheckDET.cxx:921
 AliTRDcheckDET.cxx:922
 AliTRDcheckDET.cxx:923
 AliTRDcheckDET.cxx:924
 AliTRDcheckDET.cxx:925
 AliTRDcheckDET.cxx:926
 AliTRDcheckDET.cxx:927
 AliTRDcheckDET.cxx:928
 AliTRDcheckDET.cxx:929
 AliTRDcheckDET.cxx:930
 AliTRDcheckDET.cxx:931
 AliTRDcheckDET.cxx:932
 AliTRDcheckDET.cxx:933
 AliTRDcheckDET.cxx:934
 AliTRDcheckDET.cxx:935
 AliTRDcheckDET.cxx:936
 AliTRDcheckDET.cxx:937
 AliTRDcheckDET.cxx:938
 AliTRDcheckDET.cxx:939
 AliTRDcheckDET.cxx:940
 AliTRDcheckDET.cxx:941
 AliTRDcheckDET.cxx:942
 AliTRDcheckDET.cxx:943
 AliTRDcheckDET.cxx:944
 AliTRDcheckDET.cxx:945
 AliTRDcheckDET.cxx:946
 AliTRDcheckDET.cxx:947
 AliTRDcheckDET.cxx:948
 AliTRDcheckDET.cxx:949
 AliTRDcheckDET.cxx:950
 AliTRDcheckDET.cxx:951
 AliTRDcheckDET.cxx:952
 AliTRDcheckDET.cxx:953
 AliTRDcheckDET.cxx:954
 AliTRDcheckDET.cxx:955
 AliTRDcheckDET.cxx:956
 AliTRDcheckDET.cxx:957
 AliTRDcheckDET.cxx:958
 AliTRDcheckDET.cxx:959
 AliTRDcheckDET.cxx:960
 AliTRDcheckDET.cxx:961
 AliTRDcheckDET.cxx:962
 AliTRDcheckDET.cxx:963
 AliTRDcheckDET.cxx:964
 AliTRDcheckDET.cxx:965
 AliTRDcheckDET.cxx:966
 AliTRDcheckDET.cxx:967
 AliTRDcheckDET.cxx:968
 AliTRDcheckDET.cxx:969
 AliTRDcheckDET.cxx:970
 AliTRDcheckDET.cxx:971
 AliTRDcheckDET.cxx:972
 AliTRDcheckDET.cxx:973
 AliTRDcheckDET.cxx:974
 AliTRDcheckDET.cxx:975
 AliTRDcheckDET.cxx:976
 AliTRDcheckDET.cxx:977
 AliTRDcheckDET.cxx:978
 AliTRDcheckDET.cxx:979
 AliTRDcheckDET.cxx:980
 AliTRDcheckDET.cxx:981
 AliTRDcheckDET.cxx:982
 AliTRDcheckDET.cxx:983
 AliTRDcheckDET.cxx:984
 AliTRDcheckDET.cxx:985
 AliTRDcheckDET.cxx:986
 AliTRDcheckDET.cxx:987
 AliTRDcheckDET.cxx:988
 AliTRDcheckDET.cxx:989
 AliTRDcheckDET.cxx:990
 AliTRDcheckDET.cxx:991
 AliTRDcheckDET.cxx:992
 AliTRDcheckDET.cxx:993
 AliTRDcheckDET.cxx:994
 AliTRDcheckDET.cxx:995
 AliTRDcheckDET.cxx:996
 AliTRDcheckDET.cxx:997
 AliTRDcheckDET.cxx:998
 AliTRDcheckDET.cxx:999
 AliTRDcheckDET.cxx:1000
 AliTRDcheckDET.cxx:1001
 AliTRDcheckDET.cxx:1002
 AliTRDcheckDET.cxx:1003
 AliTRDcheckDET.cxx:1004
 AliTRDcheckDET.cxx:1005
 AliTRDcheckDET.cxx:1006
 AliTRDcheckDET.cxx:1007
 AliTRDcheckDET.cxx:1008
 AliTRDcheckDET.cxx:1009
 AliTRDcheckDET.cxx:1010
 AliTRDcheckDET.cxx:1011
 AliTRDcheckDET.cxx:1012
 AliTRDcheckDET.cxx:1013
 AliTRDcheckDET.cxx:1014
 AliTRDcheckDET.cxx:1015
 AliTRDcheckDET.cxx:1016
 AliTRDcheckDET.cxx:1017
 AliTRDcheckDET.cxx:1018
 AliTRDcheckDET.cxx:1019
 AliTRDcheckDET.cxx:1020
 AliTRDcheckDET.cxx:1021
 AliTRDcheckDET.cxx:1022
 AliTRDcheckDET.cxx:1023
 AliTRDcheckDET.cxx:1024
 AliTRDcheckDET.cxx:1025
 AliTRDcheckDET.cxx:1026
 AliTRDcheckDET.cxx:1027
 AliTRDcheckDET.cxx:1028
 AliTRDcheckDET.cxx:1029
 AliTRDcheckDET.cxx:1030
 AliTRDcheckDET.cxx:1031
 AliTRDcheckDET.cxx:1032
 AliTRDcheckDET.cxx:1033
 AliTRDcheckDET.cxx:1034
 AliTRDcheckDET.cxx:1035
 AliTRDcheckDET.cxx:1036
 AliTRDcheckDET.cxx:1037
 AliTRDcheckDET.cxx:1038
 AliTRDcheckDET.cxx:1039
 AliTRDcheckDET.cxx:1040
 AliTRDcheckDET.cxx:1041
 AliTRDcheckDET.cxx:1042
 AliTRDcheckDET.cxx:1043
 AliTRDcheckDET.cxx:1044
 AliTRDcheckDET.cxx:1045
 AliTRDcheckDET.cxx:1046
 AliTRDcheckDET.cxx:1047
 AliTRDcheckDET.cxx:1048
 AliTRDcheckDET.cxx:1049
 AliTRDcheckDET.cxx:1050
 AliTRDcheckDET.cxx:1051
 AliTRDcheckDET.cxx:1052
 AliTRDcheckDET.cxx:1053
 AliTRDcheckDET.cxx:1054
 AliTRDcheckDET.cxx:1055
 AliTRDcheckDET.cxx:1056
 AliTRDcheckDET.cxx:1057
 AliTRDcheckDET.cxx:1058
 AliTRDcheckDET.cxx:1059
 AliTRDcheckDET.cxx:1060
 AliTRDcheckDET.cxx:1061
 AliTRDcheckDET.cxx:1062
 AliTRDcheckDET.cxx:1063
 AliTRDcheckDET.cxx:1064
 AliTRDcheckDET.cxx:1065
 AliTRDcheckDET.cxx:1066
 AliTRDcheckDET.cxx:1067
 AliTRDcheckDET.cxx:1068
 AliTRDcheckDET.cxx:1069
 AliTRDcheckDET.cxx:1070
 AliTRDcheckDET.cxx:1071
 AliTRDcheckDET.cxx:1072
 AliTRDcheckDET.cxx:1073
 AliTRDcheckDET.cxx:1074
 AliTRDcheckDET.cxx:1075
 AliTRDcheckDET.cxx:1076
 AliTRDcheckDET.cxx:1077
 AliTRDcheckDET.cxx:1078
 AliTRDcheckDET.cxx:1079
 AliTRDcheckDET.cxx:1080
 AliTRDcheckDET.cxx:1081
 AliTRDcheckDET.cxx:1082
 AliTRDcheckDET.cxx:1083
 AliTRDcheckDET.cxx:1084
 AliTRDcheckDET.cxx:1085
 AliTRDcheckDET.cxx:1086
 AliTRDcheckDET.cxx:1087
 AliTRDcheckDET.cxx:1088
 AliTRDcheckDET.cxx:1089
 AliTRDcheckDET.cxx:1090
 AliTRDcheckDET.cxx:1091
 AliTRDcheckDET.cxx:1092
 AliTRDcheckDET.cxx:1093
 AliTRDcheckDET.cxx:1094
 AliTRDcheckDET.cxx:1095
 AliTRDcheckDET.cxx:1096
 AliTRDcheckDET.cxx:1097
 AliTRDcheckDET.cxx:1098
 AliTRDcheckDET.cxx:1099
 AliTRDcheckDET.cxx:1100
 AliTRDcheckDET.cxx:1101
 AliTRDcheckDET.cxx:1102
 AliTRDcheckDET.cxx:1103
 AliTRDcheckDET.cxx:1104
 AliTRDcheckDET.cxx:1105
 AliTRDcheckDET.cxx:1106
 AliTRDcheckDET.cxx:1107
 AliTRDcheckDET.cxx:1108
 AliTRDcheckDET.cxx:1109
 AliTRDcheckDET.cxx:1110
 AliTRDcheckDET.cxx:1111
 AliTRDcheckDET.cxx:1112
 AliTRDcheckDET.cxx:1113
 AliTRDcheckDET.cxx:1114
 AliTRDcheckDET.cxx:1115
 AliTRDcheckDET.cxx:1116
 AliTRDcheckDET.cxx:1117
 AliTRDcheckDET.cxx:1118
 AliTRDcheckDET.cxx:1119
 AliTRDcheckDET.cxx:1120
 AliTRDcheckDET.cxx:1121
 AliTRDcheckDET.cxx:1122
 AliTRDcheckDET.cxx:1123
 AliTRDcheckDET.cxx:1124
 AliTRDcheckDET.cxx:1125
 AliTRDcheckDET.cxx:1126
 AliTRDcheckDET.cxx:1127
 AliTRDcheckDET.cxx:1128
 AliTRDcheckDET.cxx:1129
 AliTRDcheckDET.cxx:1130
 AliTRDcheckDET.cxx:1131
 AliTRDcheckDET.cxx:1132
 AliTRDcheckDET.cxx:1133
 AliTRDcheckDET.cxx:1134
 AliTRDcheckDET.cxx:1135
 AliTRDcheckDET.cxx:1136
 AliTRDcheckDET.cxx:1137
 AliTRDcheckDET.cxx:1138
 AliTRDcheckDET.cxx:1139
 AliTRDcheckDET.cxx:1140
 AliTRDcheckDET.cxx:1141
 AliTRDcheckDET.cxx:1142
 AliTRDcheckDET.cxx:1143
 AliTRDcheckDET.cxx:1144
 AliTRDcheckDET.cxx:1145
 AliTRDcheckDET.cxx:1146
 AliTRDcheckDET.cxx:1147
 AliTRDcheckDET.cxx:1148
 AliTRDcheckDET.cxx:1149
 AliTRDcheckDET.cxx:1150
 AliTRDcheckDET.cxx:1151
 AliTRDcheckDET.cxx:1152
 AliTRDcheckDET.cxx:1153
 AliTRDcheckDET.cxx:1154
 AliTRDcheckDET.cxx:1155
 AliTRDcheckDET.cxx:1156
 AliTRDcheckDET.cxx:1157
 AliTRDcheckDET.cxx:1158
 AliTRDcheckDET.cxx:1159
 AliTRDcheckDET.cxx:1160
 AliTRDcheckDET.cxx:1161
 AliTRDcheckDET.cxx:1162
 AliTRDcheckDET.cxx:1163
 AliTRDcheckDET.cxx:1164
 AliTRDcheckDET.cxx:1165
 AliTRDcheckDET.cxx:1166
 AliTRDcheckDET.cxx:1167
 AliTRDcheckDET.cxx:1168
 AliTRDcheckDET.cxx:1169
 AliTRDcheckDET.cxx:1170
 AliTRDcheckDET.cxx:1171
 AliTRDcheckDET.cxx:1172
 AliTRDcheckDET.cxx:1173
 AliTRDcheckDET.cxx:1174
 AliTRDcheckDET.cxx:1175
 AliTRDcheckDET.cxx:1176
 AliTRDcheckDET.cxx:1177
 AliTRDcheckDET.cxx:1178
 AliTRDcheckDET.cxx:1179
 AliTRDcheckDET.cxx:1180
 AliTRDcheckDET.cxx:1181
 AliTRDcheckDET.cxx:1182
 AliTRDcheckDET.cxx:1183
 AliTRDcheckDET.cxx:1184
 AliTRDcheckDET.cxx:1185
 AliTRDcheckDET.cxx:1186
 AliTRDcheckDET.cxx:1187
 AliTRDcheckDET.cxx:1188
 AliTRDcheckDET.cxx:1189
 AliTRDcheckDET.cxx:1190
 AliTRDcheckDET.cxx:1191
 AliTRDcheckDET.cxx:1192
 AliTRDcheckDET.cxx:1193
 AliTRDcheckDET.cxx:1194
 AliTRDcheckDET.cxx:1195
 AliTRDcheckDET.cxx:1196
 AliTRDcheckDET.cxx:1197
 AliTRDcheckDET.cxx:1198
 AliTRDcheckDET.cxx:1199
 AliTRDcheckDET.cxx:1200
 AliTRDcheckDET.cxx:1201
 AliTRDcheckDET.cxx:1202
 AliTRDcheckDET.cxx:1203
 AliTRDcheckDET.cxx:1204
 AliTRDcheckDET.cxx:1205
 AliTRDcheckDET.cxx:1206
 AliTRDcheckDET.cxx:1207
 AliTRDcheckDET.cxx:1208
 AliTRDcheckDET.cxx:1209
 AliTRDcheckDET.cxx:1210
 AliTRDcheckDET.cxx:1211
 AliTRDcheckDET.cxx:1212
 AliTRDcheckDET.cxx:1213
 AliTRDcheckDET.cxx:1214
 AliTRDcheckDET.cxx:1215
 AliTRDcheckDET.cxx:1216
 AliTRDcheckDET.cxx:1217
 AliTRDcheckDET.cxx:1218
 AliTRDcheckDET.cxx:1219
 AliTRDcheckDET.cxx:1220
 AliTRDcheckDET.cxx:1221
 AliTRDcheckDET.cxx:1222
 AliTRDcheckDET.cxx:1223
 AliTRDcheckDET.cxx:1224
 AliTRDcheckDET.cxx:1225
 AliTRDcheckDET.cxx:1226
 AliTRDcheckDET.cxx:1227
 AliTRDcheckDET.cxx:1228
 AliTRDcheckDET.cxx:1229
 AliTRDcheckDET.cxx:1230
 AliTRDcheckDET.cxx:1231
 AliTRDcheckDET.cxx:1232
 AliTRDcheckDET.cxx:1233
 AliTRDcheckDET.cxx:1234
 AliTRDcheckDET.cxx:1235
 AliTRDcheckDET.cxx:1236
 AliTRDcheckDET.cxx:1237
 AliTRDcheckDET.cxx:1238
 AliTRDcheckDET.cxx:1239
 AliTRDcheckDET.cxx:1240
 AliTRDcheckDET.cxx:1241
 AliTRDcheckDET.cxx:1242
 AliTRDcheckDET.cxx:1243
 AliTRDcheckDET.cxx:1244
 AliTRDcheckDET.cxx:1245
 AliTRDcheckDET.cxx:1246
 AliTRDcheckDET.cxx:1247
 AliTRDcheckDET.cxx:1248
 AliTRDcheckDET.cxx:1249
 AliTRDcheckDET.cxx:1250
 AliTRDcheckDET.cxx:1251
 AliTRDcheckDET.cxx:1252
 AliTRDcheckDET.cxx:1253
 AliTRDcheckDET.cxx:1254
 AliTRDcheckDET.cxx:1255
 AliTRDcheckDET.cxx:1256
 AliTRDcheckDET.cxx:1257
 AliTRDcheckDET.cxx:1258
 AliTRDcheckDET.cxx:1259
 AliTRDcheckDET.cxx:1260
 AliTRDcheckDET.cxx:1261
 AliTRDcheckDET.cxx:1262
 AliTRDcheckDET.cxx:1263
 AliTRDcheckDET.cxx:1264
 AliTRDcheckDET.cxx:1265
 AliTRDcheckDET.cxx:1266
 AliTRDcheckDET.cxx:1267
 AliTRDcheckDET.cxx:1268
 AliTRDcheckDET.cxx:1269
 AliTRDcheckDET.cxx:1270
 AliTRDcheckDET.cxx:1271
 AliTRDcheckDET.cxx:1272
 AliTRDcheckDET.cxx:1273
 AliTRDcheckDET.cxx:1274
 AliTRDcheckDET.cxx:1275
 AliTRDcheckDET.cxx:1276
 AliTRDcheckDET.cxx:1277
 AliTRDcheckDET.cxx:1278
 AliTRDcheckDET.cxx:1279
 AliTRDcheckDET.cxx:1280
 AliTRDcheckDET.cxx:1281
 AliTRDcheckDET.cxx:1282
 AliTRDcheckDET.cxx:1283
 AliTRDcheckDET.cxx:1284
 AliTRDcheckDET.cxx:1285
 AliTRDcheckDET.cxx:1286
 AliTRDcheckDET.cxx:1287
 AliTRDcheckDET.cxx:1288
 AliTRDcheckDET.cxx:1289
 AliTRDcheckDET.cxx:1290
 AliTRDcheckDET.cxx:1291
 AliTRDcheckDET.cxx:1292
 AliTRDcheckDET.cxx:1293
 AliTRDcheckDET.cxx:1294
 AliTRDcheckDET.cxx:1295
 AliTRDcheckDET.cxx:1296
 AliTRDcheckDET.cxx:1297
 AliTRDcheckDET.cxx:1298
 AliTRDcheckDET.cxx:1299
 AliTRDcheckDET.cxx:1300
 AliTRDcheckDET.cxx:1301
 AliTRDcheckDET.cxx:1302
 AliTRDcheckDET.cxx:1303
 AliTRDcheckDET.cxx:1304
 AliTRDcheckDET.cxx:1305
 AliTRDcheckDET.cxx:1306
 AliTRDcheckDET.cxx:1307
 AliTRDcheckDET.cxx:1308
 AliTRDcheckDET.cxx:1309
 AliTRDcheckDET.cxx:1310
 AliTRDcheckDET.cxx:1311
 AliTRDcheckDET.cxx:1312
 AliTRDcheckDET.cxx:1313
 AliTRDcheckDET.cxx:1314
 AliTRDcheckDET.cxx:1315
 AliTRDcheckDET.cxx:1316
 AliTRDcheckDET.cxx:1317
 AliTRDcheckDET.cxx:1318
 AliTRDcheckDET.cxx:1319
 AliTRDcheckDET.cxx:1320
 AliTRDcheckDET.cxx:1321
 AliTRDcheckDET.cxx:1322
 AliTRDcheckDET.cxx:1323
 AliTRDcheckDET.cxx:1324
 AliTRDcheckDET.cxx:1325
 AliTRDcheckDET.cxx:1326
 AliTRDcheckDET.cxx:1327
 AliTRDcheckDET.cxx:1328
 AliTRDcheckDET.cxx:1329
 AliTRDcheckDET.cxx:1330
 AliTRDcheckDET.cxx:1331
 AliTRDcheckDET.cxx:1332
 AliTRDcheckDET.cxx:1333
 AliTRDcheckDET.cxx:1334
 AliTRDcheckDET.cxx:1335
 AliTRDcheckDET.cxx:1336
 AliTRDcheckDET.cxx:1337
 AliTRDcheckDET.cxx:1338
 AliTRDcheckDET.cxx:1339
 AliTRDcheckDET.cxx:1340
 AliTRDcheckDET.cxx:1341
 AliTRDcheckDET.cxx:1342
 AliTRDcheckDET.cxx:1343
 AliTRDcheckDET.cxx:1344
 AliTRDcheckDET.cxx:1345
 AliTRDcheckDET.cxx:1346
 AliTRDcheckDET.cxx:1347
 AliTRDcheckDET.cxx:1348
 AliTRDcheckDET.cxx:1349
 AliTRDcheckDET.cxx:1350
 AliTRDcheckDET.cxx:1351
 AliTRDcheckDET.cxx:1352
 AliTRDcheckDET.cxx:1353
 AliTRDcheckDET.cxx:1354
 AliTRDcheckDET.cxx:1355
 AliTRDcheckDET.cxx:1356
 AliTRDcheckDET.cxx:1357
 AliTRDcheckDET.cxx:1358
 AliTRDcheckDET.cxx:1359
 AliTRDcheckDET.cxx:1360
 AliTRDcheckDET.cxx:1361
 AliTRDcheckDET.cxx:1362
 AliTRDcheckDET.cxx:1363
 AliTRDcheckDET.cxx:1364
 AliTRDcheckDET.cxx:1365
 AliTRDcheckDET.cxx:1366
 AliTRDcheckDET.cxx:1367
 AliTRDcheckDET.cxx:1368
 AliTRDcheckDET.cxx:1369
 AliTRDcheckDET.cxx:1370
 AliTRDcheckDET.cxx:1371
 AliTRDcheckDET.cxx:1372
 AliTRDcheckDET.cxx:1373
 AliTRDcheckDET.cxx:1374
 AliTRDcheckDET.cxx:1375
 AliTRDcheckDET.cxx:1376
 AliTRDcheckDET.cxx:1377
 AliTRDcheckDET.cxx:1378
 AliTRDcheckDET.cxx:1379
 AliTRDcheckDET.cxx:1380
 AliTRDcheckDET.cxx:1381
 AliTRDcheckDET.cxx:1382
 AliTRDcheckDET.cxx:1383
 AliTRDcheckDET.cxx:1384
 AliTRDcheckDET.cxx:1385
 AliTRDcheckDET.cxx:1386
 AliTRDcheckDET.cxx:1387
 AliTRDcheckDET.cxx:1388
 AliTRDcheckDET.cxx:1389
 AliTRDcheckDET.cxx:1390
 AliTRDcheckDET.cxx:1391
 AliTRDcheckDET.cxx:1392
 AliTRDcheckDET.cxx:1393
 AliTRDcheckDET.cxx:1394
 AliTRDcheckDET.cxx:1395
 AliTRDcheckDET.cxx:1396
 AliTRDcheckDET.cxx:1397
 AliTRDcheckDET.cxx:1398
 AliTRDcheckDET.cxx:1399
 AliTRDcheckDET.cxx:1400
 AliTRDcheckDET.cxx:1401
 AliTRDcheckDET.cxx:1402
 AliTRDcheckDET.cxx:1403
 AliTRDcheckDET.cxx:1404
 AliTRDcheckDET.cxx:1405
 AliTRDcheckDET.cxx:1406
 AliTRDcheckDET.cxx:1407
 AliTRDcheckDET.cxx:1408
 AliTRDcheckDET.cxx:1409
 AliTRDcheckDET.cxx:1410
 AliTRDcheckDET.cxx:1411
 AliTRDcheckDET.cxx:1412
 AliTRDcheckDET.cxx:1413
 AliTRDcheckDET.cxx:1414
 AliTRDcheckDET.cxx:1415
 AliTRDcheckDET.cxx:1416
 AliTRDcheckDET.cxx:1417
 AliTRDcheckDET.cxx:1418
 AliTRDcheckDET.cxx:1419
 AliTRDcheckDET.cxx:1420
 AliTRDcheckDET.cxx:1421
 AliTRDcheckDET.cxx:1422
 AliTRDcheckDET.cxx:1423
 AliTRDcheckDET.cxx:1424
 AliTRDcheckDET.cxx:1425
 AliTRDcheckDET.cxx:1426
 AliTRDcheckDET.cxx:1427
 AliTRDcheckDET.cxx:1428
 AliTRDcheckDET.cxx:1429
 AliTRDcheckDET.cxx:1430
 AliTRDcheckDET.cxx:1431
 AliTRDcheckDET.cxx:1432
 AliTRDcheckDET.cxx:1433
 AliTRDcheckDET.cxx:1434
 AliTRDcheckDET.cxx:1435
 AliTRDcheckDET.cxx:1436
 AliTRDcheckDET.cxx:1437
 AliTRDcheckDET.cxx:1438
 AliTRDcheckDET.cxx:1439
 AliTRDcheckDET.cxx:1440
 AliTRDcheckDET.cxx:1441
 AliTRDcheckDET.cxx:1442
 AliTRDcheckDET.cxx:1443
 AliTRDcheckDET.cxx:1444
 AliTRDcheckDET.cxx:1445
 AliTRDcheckDET.cxx:1446
 AliTRDcheckDET.cxx:1447
 AliTRDcheckDET.cxx:1448
 AliTRDcheckDET.cxx:1449
 AliTRDcheckDET.cxx:1450
 AliTRDcheckDET.cxx:1451
 AliTRDcheckDET.cxx:1452
 AliTRDcheckDET.cxx:1453
 AliTRDcheckDET.cxx:1454
 AliTRDcheckDET.cxx:1455
 AliTRDcheckDET.cxx:1456
 AliTRDcheckDET.cxx:1457
 AliTRDcheckDET.cxx:1458
 AliTRDcheckDET.cxx:1459
 AliTRDcheckDET.cxx:1460
 AliTRDcheckDET.cxx:1461
 AliTRDcheckDET.cxx:1462
 AliTRDcheckDET.cxx:1463
 AliTRDcheckDET.cxx:1464
 AliTRDcheckDET.cxx:1465
 AliTRDcheckDET.cxx:1466
 AliTRDcheckDET.cxx:1467
 AliTRDcheckDET.cxx:1468
 AliTRDcheckDET.cxx:1469
 AliTRDcheckDET.cxx:1470
 AliTRDcheckDET.cxx:1471
 AliTRDcheckDET.cxx:1472
 AliTRDcheckDET.cxx:1473
 AliTRDcheckDET.cxx:1474
 AliTRDcheckDET.cxx:1475
 AliTRDcheckDET.cxx:1476
 AliTRDcheckDET.cxx:1477
 AliTRDcheckDET.cxx:1478
 AliTRDcheckDET.cxx:1479
 AliTRDcheckDET.cxx:1480
 AliTRDcheckDET.cxx:1481
 AliTRDcheckDET.cxx:1482
 AliTRDcheckDET.cxx:1483
 AliTRDcheckDET.cxx:1484
 AliTRDcheckDET.cxx:1485
 AliTRDcheckDET.cxx:1486
 AliTRDcheckDET.cxx:1487
 AliTRDcheckDET.cxx:1488
 AliTRDcheckDET.cxx:1489
 AliTRDcheckDET.cxx:1490
 AliTRDcheckDET.cxx:1491
 AliTRDcheckDET.cxx:1492
 AliTRDcheckDET.cxx:1493
 AliTRDcheckDET.cxx:1494
 AliTRDcheckDET.cxx:1495
 AliTRDcheckDET.cxx:1496
 AliTRDcheckDET.cxx:1497
 AliTRDcheckDET.cxx:1498
 AliTRDcheckDET.cxx:1499
 AliTRDcheckDET.cxx:1500
 AliTRDcheckDET.cxx:1501
 AliTRDcheckDET.cxx:1502
 AliTRDcheckDET.cxx:1503
 AliTRDcheckDET.cxx:1504
 AliTRDcheckDET.cxx:1505
 AliTRDcheckDET.cxx:1506
 AliTRDcheckDET.cxx:1507
 AliTRDcheckDET.cxx:1508
 AliTRDcheckDET.cxx:1509
 AliTRDcheckDET.cxx:1510
 AliTRDcheckDET.cxx:1511
 AliTRDcheckDET.cxx:1512
 AliTRDcheckDET.cxx:1513
 AliTRDcheckDET.cxx:1514
 AliTRDcheckDET.cxx:1515
 AliTRDcheckDET.cxx:1516
 AliTRDcheckDET.cxx:1517
 AliTRDcheckDET.cxx:1518
 AliTRDcheckDET.cxx:1519
 AliTRDcheckDET.cxx:1520
 AliTRDcheckDET.cxx:1521
 AliTRDcheckDET.cxx:1522
 AliTRDcheckDET.cxx:1523
 AliTRDcheckDET.cxx:1524
 AliTRDcheckDET.cxx:1525
 AliTRDcheckDET.cxx:1526
 AliTRDcheckDET.cxx:1527
 AliTRDcheckDET.cxx:1528
 AliTRDcheckDET.cxx:1529
 AliTRDcheckDET.cxx:1530
 AliTRDcheckDET.cxx:1531
 AliTRDcheckDET.cxx:1532
 AliTRDcheckDET.cxx:1533
 AliTRDcheckDET.cxx:1534
 AliTRDcheckDET.cxx:1535
 AliTRDcheckDET.cxx:1536
 AliTRDcheckDET.cxx:1537
 AliTRDcheckDET.cxx:1538
 AliTRDcheckDET.cxx:1539
 AliTRDcheckDET.cxx:1540
 AliTRDcheckDET.cxx:1541
 AliTRDcheckDET.cxx:1542
 AliTRDcheckDET.cxx:1543
 AliTRDcheckDET.cxx:1544
 AliTRDcheckDET.cxx:1545
 AliTRDcheckDET.cxx:1546
 AliTRDcheckDET.cxx:1547
 AliTRDcheckDET.cxx:1548
 AliTRDcheckDET.cxx:1549
 AliTRDcheckDET.cxx:1550
 AliTRDcheckDET.cxx:1551
 AliTRDcheckDET.cxx:1552
 AliTRDcheckDET.cxx:1553
 AliTRDcheckDET.cxx:1554
 AliTRDcheckDET.cxx:1555
 AliTRDcheckDET.cxx:1556
 AliTRDcheckDET.cxx:1557
 AliTRDcheckDET.cxx:1558
 AliTRDcheckDET.cxx:1559
 AliTRDcheckDET.cxx:1560
 AliTRDcheckDET.cxx:1561
 AliTRDcheckDET.cxx:1562
 AliTRDcheckDET.cxx:1563
 AliTRDcheckDET.cxx:1564
 AliTRDcheckDET.cxx:1565
 AliTRDcheckDET.cxx:1566
 AliTRDcheckDET.cxx:1567
 AliTRDcheckDET.cxx:1568
 AliTRDcheckDET.cxx:1569
 AliTRDcheckDET.cxx:1570
 AliTRDcheckDET.cxx:1571
 AliTRDcheckDET.cxx:1572
 AliTRDcheckDET.cxx:1573
 AliTRDcheckDET.cxx:1574
 AliTRDcheckDET.cxx:1575
 AliTRDcheckDET.cxx:1576
 AliTRDcheckDET.cxx:1577
 AliTRDcheckDET.cxx:1578
 AliTRDcheckDET.cxx:1579
 AliTRDcheckDET.cxx:1580
 AliTRDcheckDET.cxx:1581
 AliTRDcheckDET.cxx:1582
 AliTRDcheckDET.cxx:1583
 AliTRDcheckDET.cxx:1584
 AliTRDcheckDET.cxx:1585
 AliTRDcheckDET.cxx:1586
 AliTRDcheckDET.cxx:1587
 AliTRDcheckDET.cxx:1588
 AliTRDcheckDET.cxx:1589
 AliTRDcheckDET.cxx:1590
 AliTRDcheckDET.cxx:1591
 AliTRDcheckDET.cxx:1592
 AliTRDcheckDET.cxx:1593
 AliTRDcheckDET.cxx:1594
 AliTRDcheckDET.cxx:1595
 AliTRDcheckDET.cxx:1596
 AliTRDcheckDET.cxx:1597
 AliTRDcheckDET.cxx:1598
 AliTRDcheckDET.cxx:1599
 AliTRDcheckDET.cxx:1600
 AliTRDcheckDET.cxx:1601
 AliTRDcheckDET.cxx:1602
 AliTRDcheckDET.cxx:1603
 AliTRDcheckDET.cxx:1604
 AliTRDcheckDET.cxx:1605
 AliTRDcheckDET.cxx:1606
 AliTRDcheckDET.cxx:1607
 AliTRDcheckDET.cxx:1608
 AliTRDcheckDET.cxx:1609
 AliTRDcheckDET.cxx:1610
 AliTRDcheckDET.cxx:1611
 AliTRDcheckDET.cxx:1612
 AliTRDcheckDET.cxx:1613
 AliTRDcheckDET.cxx:1614
 AliTRDcheckDET.cxx:1615
 AliTRDcheckDET.cxx:1616
 AliTRDcheckDET.cxx:1617
 AliTRDcheckDET.cxx:1618
 AliTRDcheckDET.cxx:1619
 AliTRDcheckDET.cxx:1620
 AliTRDcheckDET.cxx:1621
 AliTRDcheckDET.cxx:1622
 AliTRDcheckDET.cxx:1623
 AliTRDcheckDET.cxx:1624
 AliTRDcheckDET.cxx:1625
 AliTRDcheckDET.cxx:1626
 AliTRDcheckDET.cxx:1627
 AliTRDcheckDET.cxx:1628
 AliTRDcheckDET.cxx:1629
 AliTRDcheckDET.cxx:1630
 AliTRDcheckDET.cxx:1631
 AliTRDcheckDET.cxx:1632
 AliTRDcheckDET.cxx:1633
 AliTRDcheckDET.cxx:1634
 AliTRDcheckDET.cxx:1635
 AliTRDcheckDET.cxx:1636
 AliTRDcheckDET.cxx:1637
 AliTRDcheckDET.cxx:1638
 AliTRDcheckDET.cxx:1639
 AliTRDcheckDET.cxx:1640
 AliTRDcheckDET.cxx:1641
 AliTRDcheckDET.cxx:1642
 AliTRDcheckDET.cxx:1643
 AliTRDcheckDET.cxx:1644
 AliTRDcheckDET.cxx:1645
 AliTRDcheckDET.cxx:1646
 AliTRDcheckDET.cxx:1647
 AliTRDcheckDET.cxx:1648
 AliTRDcheckDET.cxx:1649
 AliTRDcheckDET.cxx:1650
 AliTRDcheckDET.cxx:1651
 AliTRDcheckDET.cxx:1652
 AliTRDcheckDET.cxx:1653
 AliTRDcheckDET.cxx:1654
 AliTRDcheckDET.cxx:1655
 AliTRDcheckDET.cxx:1656
 AliTRDcheckDET.cxx:1657
 AliTRDcheckDET.cxx:1658
 AliTRDcheckDET.cxx:1659
 AliTRDcheckDET.cxx:1660
 AliTRDcheckDET.cxx:1661
 AliTRDcheckDET.cxx:1662
 AliTRDcheckDET.cxx:1663
 AliTRDcheckDET.cxx:1664
 AliTRDcheckDET.cxx:1665
 AliTRDcheckDET.cxx:1666
 AliTRDcheckDET.cxx:1667
 AliTRDcheckDET.cxx:1668
 AliTRDcheckDET.cxx:1669
 AliTRDcheckDET.cxx:1670
 AliTRDcheckDET.cxx:1671
 AliTRDcheckDET.cxx:1672
 AliTRDcheckDET.cxx:1673
 AliTRDcheckDET.cxx:1674
 AliTRDcheckDET.cxx:1675
 AliTRDcheckDET.cxx:1676
 AliTRDcheckDET.cxx:1677
 AliTRDcheckDET.cxx:1678
 AliTRDcheckDET.cxx:1679
 AliTRDcheckDET.cxx:1680
 AliTRDcheckDET.cxx:1681
 AliTRDcheckDET.cxx:1682
 AliTRDcheckDET.cxx:1683
 AliTRDcheckDET.cxx:1684
 AliTRDcheckDET.cxx:1685
 AliTRDcheckDET.cxx:1686
 AliTRDcheckDET.cxx:1687
 AliTRDcheckDET.cxx:1688
 AliTRDcheckDET.cxx:1689
 AliTRDcheckDET.cxx:1690
 AliTRDcheckDET.cxx:1691
 AliTRDcheckDET.cxx:1692
 AliTRDcheckDET.cxx:1693
 AliTRDcheckDET.cxx:1694
 AliTRDcheckDET.cxx:1695
 AliTRDcheckDET.cxx:1696
 AliTRDcheckDET.cxx:1697
 AliTRDcheckDET.cxx:1698
 AliTRDcheckDET.cxx:1699
 AliTRDcheckDET.cxx:1700
 AliTRDcheckDET.cxx:1701
 AliTRDcheckDET.cxx:1702
 AliTRDcheckDET.cxx:1703
 AliTRDcheckDET.cxx:1704
 AliTRDcheckDET.cxx:1705
 AliTRDcheckDET.cxx:1706
 AliTRDcheckDET.cxx:1707
 AliTRDcheckDET.cxx:1708
 AliTRDcheckDET.cxx:1709
 AliTRDcheckDET.cxx:1710
 AliTRDcheckDET.cxx:1711
 AliTRDcheckDET.cxx:1712
 AliTRDcheckDET.cxx:1713
 AliTRDcheckDET.cxx:1714
 AliTRDcheckDET.cxx:1715
 AliTRDcheckDET.cxx:1716
 AliTRDcheckDET.cxx:1717
 AliTRDcheckDET.cxx:1718
 AliTRDcheckDET.cxx:1719
 AliTRDcheckDET.cxx:1720
 AliTRDcheckDET.cxx:1721
 AliTRDcheckDET.cxx:1722
 AliTRDcheckDET.cxx:1723
 AliTRDcheckDET.cxx:1724
 AliTRDcheckDET.cxx:1725
 AliTRDcheckDET.cxx:1726
 AliTRDcheckDET.cxx:1727
 AliTRDcheckDET.cxx:1728
 AliTRDcheckDET.cxx:1729
 AliTRDcheckDET.cxx:1730
 AliTRDcheckDET.cxx:1731
 AliTRDcheckDET.cxx:1732
 AliTRDcheckDET.cxx:1733
 AliTRDcheckDET.cxx:1734
 AliTRDcheckDET.cxx:1735
 AliTRDcheckDET.cxx:1736
 AliTRDcheckDET.cxx:1737
 AliTRDcheckDET.cxx:1738
 AliTRDcheckDET.cxx:1739
 AliTRDcheckDET.cxx:1740
 AliTRDcheckDET.cxx:1741
 AliTRDcheckDET.cxx:1742
 AliTRDcheckDET.cxx:1743
 AliTRDcheckDET.cxx:1744
 AliTRDcheckDET.cxx:1745
 AliTRDcheckDET.cxx:1746
 AliTRDcheckDET.cxx:1747
 AliTRDcheckDET.cxx:1748
 AliTRDcheckDET.cxx:1749
 AliTRDcheckDET.cxx:1750
 AliTRDcheckDET.cxx:1751
 AliTRDcheckDET.cxx:1752
 AliTRDcheckDET.cxx:1753
 AliTRDcheckDET.cxx:1754
 AliTRDcheckDET.cxx:1755
 AliTRDcheckDET.cxx:1756
 AliTRDcheckDET.cxx:1757
 AliTRDcheckDET.cxx:1758
 AliTRDcheckDET.cxx:1759
 AliTRDcheckDET.cxx:1760
 AliTRDcheckDET.cxx:1761
 AliTRDcheckDET.cxx:1762
 AliTRDcheckDET.cxx:1763
 AliTRDcheckDET.cxx:1764
 AliTRDcheckDET.cxx:1765
 AliTRDcheckDET.cxx:1766
 AliTRDcheckDET.cxx:1767
 AliTRDcheckDET.cxx:1768
 AliTRDcheckDET.cxx:1769
 AliTRDcheckDET.cxx:1770
 AliTRDcheckDET.cxx:1771
 AliTRDcheckDET.cxx:1772
 AliTRDcheckDET.cxx:1773
 AliTRDcheckDET.cxx:1774
 AliTRDcheckDET.cxx:1775
 AliTRDcheckDET.cxx:1776
 AliTRDcheckDET.cxx:1777
 AliTRDcheckDET.cxx:1778
 AliTRDcheckDET.cxx:1779
 AliTRDcheckDET.cxx:1780
 AliTRDcheckDET.cxx:1781
 AliTRDcheckDET.cxx:1782