ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

// $Id$

#include "AliMUONTrackerHV.h"

#include <algorithm>
#include <map>
#include <set>

#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliDCSValue.h"
#include "AliGRPObject.h"
#include "AliMpArrayI.h"
#include "AliMpConstants.h"
#include "AliMpDCSNamer.h"
#include "AliMpDEStore.h"
#include "AliMpDetElement.h"
#include "AliMUON2DMap.h"
#include "AliMUONCalibParamND.h"
#include "AliMUONCalibrationData.h"
#include "AliMUONCDB.h"
#include "AliMUONPainterDataRegistry.h"
#include "AliMUONTrackerData.h"
#include "AliMUONTrackerDataWrapper.h"
#include "AliLog.h"

#include "TCanvas.h"
#include "TGraph.h"
#include "TH2.h"
#include "TLine.h"
#include "TMap.h"
#include "TMultiGraph.h"
#include "TObjArray.h"
#include "TObjString.h"
#include "TStyle.h"
#include "Riostream.h"

//
// Class to inspect the MUON TRACKER HV values
//
// With this class you can :
//
// a) get a list of trips (method ReportTrips)
// b) print the values for some (or all) HV channels (method Print)
// c) plot the values for some (or all) HV channels (method Plot)
// d) get a list of HV channels that are "OFF" (methods Scan and HVoff)
//
// Note that in this class, all the output (either text or canvas) or the
// channel *names* used are the same as in the DCS UI at Pt2
// Specifically the chamber ids start at 1, the slat numbers at 1 and
// the quad and sect number at 1 also. And not at zero like for the
// DCS *aliases*. On the contraty, the internal map, coming from the OCDB,
// only contains aliases, not names. Confusing ? It is.
//

ClassImp(AliMUONTrackerHV)

//______________________________________________________________________________
AliMUONTrackerHV::AliMUONTrackerHV(const char* runlist, const char* ocdbPath)
: TObject(), fRunList(), fOCDBPath(ocdbPath), fDCSNamer(0x0)
{
  // ctor from a runlist (txt file)
  SetRunList(runlist);
}

//______________________________________________________________________________
AliMUONTrackerHV::AliMUONTrackerHV(Int_t runNumber, const char* ocdbPath)
: TObject(), fRunList(), fOCDBPath(ocdbPath), fDCSNamer(0x0)
{
  // ctor for a single run
  SetRunList(runNumber);
}

//______________________________________________________________________________
AliMUONTrackerHV::~AliMUONTrackerHV()
{
  // dtor
  delete fDCSNamer;
}

//____________________________________________________________________________
TMultiGraph* AliMUONTrackerHV::CombineMulti(TObjArray& graphs)
{
  // combine multigraphs
  
  TMultiGraph* rv = new TMultiGraph;
  
  TIter next(&graphs);
  TMultiGraph* mg;
  TMultiGraph* ref = static_cast<TMultiGraph*>(next());

  Int_t dref = ref->GetListOfGraphs()->GetEntries();

  while ( ( mg = static_cast<TMultiGraph*>(next())) )
  {
    TList* list = mg->GetListOfGraphs();
    Int_t d1 = list->GetEntries();
    
    if (  d1 != dref )
    {
      AliError(Form("%d vs %d",d1,dref));
      return 0x0;
    }
  }
  
  for ( Int_t i = 0; i < dref; ++i )
  {    
    TObjArray graph;
    next.Reset();
    while ( ( mg = static_cast<TMultiGraph*>(next())) )
    {
      graph.Add(mg->GetListOfGraphs()->At(i));
      TGraph* g = Combine(graph);
      rv->Add(g);
    }
  }
  return rv;
}

//____________________________________________________________________________
TGraph* AliMUONTrackerHV::Combine(TObjArray& graphs)
{
  // make one graph out of several
  // x axis is supposed to be time and will end up ordered in the
  // returned graph
  
  std::map<int, std::vector<double> > values;
  std::map<int, std::vector<double> >::const_iterator it;
  
  TIter next(&graphs);
  TGraph* g;
  
  while ( ( g = static_cast<TGraph*>(next())) )
  {
    for ( Int_t i = 0; i < g->GetN(); ++i )
    {
      std::vector<double> pair;
      
      pair.push_back(g->GetX()[i]);
      pair.push_back(g->GetY()[i]);
      
      values.insert( std::make_pair(g->GetX()[i],pair));
    }
  }
  
  TGraph* rv(0x0);
  
  if ( values.size() )
  {
    std::vector<double> vx;
    std::vector<double> vy;
    
    for ( it = values.begin(); it != values.end(); ++it )
    {
      const std::vector<double>& q = it->second;
      
      vx.push_back(q[0]);
      vy.push_back(q[1]);
    }
    
    rv = new TGraph(values.size(),&vx[0],&vy[0]);
    rv->GetXaxis()->SetNoExponent();
    
    g = static_cast<TGraph*>(graphs.At(0));
    
    rv->SetName(g->GetName());
    rv->SetTitle(g->GetTitle());
  }
  
  return rv;
}

//______________________________________________________________________________
void AliMUONTrackerHV::ReadIntegers(const char* filename, std::vector<int>& integers)
{
  /// Read integers from filename, where integers are either
  /// separated by "," or by return carriage
  std::ifstream in(gSystem->ExpandPathName(filename));
  int i;
  
  std::set<int> runset;
  
  char line[10000];
  
  in.getline(line,10000,'\n');
  
  TString sline(line);
  
  if (sline.Contains(","))
  {
    TObjArray* a = sline.Tokenize(",");
    TIter next(a);
    TObjString* s;
    while ( ( s = static_cast<TObjString*>(next()) ) )
    {
      runset.insert(s->String().Atoi());
    }
    delete a;
  }
  else
  {
    runset.insert(sline.Atoi());
    
    while ( in >> i )
    {
      runset.insert(i);
    }
  }
  
  for ( std::set<int>::const_iterator it = runset.begin(); it != runset.end(); ++it )
  {
    integers.push_back((*it));
  }
  
  std::sort(integers.begin(),integers.end());
}

//______________________________________________________________________________
AliMpDCSNamer*
AliMUONTrackerHV::DCSNamer() const
{
  // return the dcs namer
  if (!fDCSNamer)
  {
    if (!AliMpDEStore::Instance(false))
    {
      AliMUONCDB::LoadMapping();
    }
    fDCSNamer = new AliMpDCSNamer("TRACKER");
  }
  return fDCSNamer;
}

//______________________________________________________________________________
void AliMUONTrackerHV::SetRunList(Int_t runNumber)
{
  // Make the runlist be a single run
  fRunList.clear();
  fRunList.push_back(runNumber);
}

//______________________________________________________________________________
void
AliMUONTrackerHV::SetRunList(const char* runlist)
{
  // Read the runlist from an ASCII file or a comma separated list
  // or a space separated list
  
  fRunList.clear();
  
  if ( TString(runlist).Contains(",") || TString(runlist).Contains(" ") )
  {
    TObjArray* runs = 0x0;
    if ( TString(runlist).Contains(",") )
    {
      runs = TString(runlist).Tokenize(",");
    }
    else
    {
      runs = TString(runlist).Tokenize(" ");
    }
    TIter next(runs);
    TObjString* s;
    std::set<int> runset;
    
    while ( ( s = static_cast<TObjString*>(next()) ) )
    {
      runset.insert(s->String().Atoi());
    }
    
    for ( std::set<int>::const_iterator it = runset.begin(); it != runset.end(); ++it )
    {
      fRunList.push_back((*it));
    }
    
    std::sort(fRunList.begin(),fRunList.end());
    
    delete runs;
  }
  else
  {
    ReadIntegers(runlist,fRunList);
  }
}


//______________________________________________________________________________
TGraph*
AliMUONTrackerHV::GraphValues(TMap* m, const char* dcsname)
{
  // make a graph of HV channels' voltage values for a given dcs name (name, not
  // alias)
  
  if ( TString(dcsname).Contains("sw") )
  {
    // do not graph switches
    return 0x0;
  }

  
  AliInfo(dcsname);
  
  TPair* p = static_cast<TPair*>(m->FindObject(DCSNamer()->DCSAliasFromName(dcsname).Data()));
  
  if (!p) return 0x0;
  
  TObjArray* a = static_cast<TObjArray*>(p->Value());
  TIter n2(a);
  AliDCSValue* val;
  Int_t i(0);

  TGraph* g = new TGraph(a->GetEntries());
  while ( ( val = static_cast<AliDCSValue*>(n2()) ) )
  {
    g->SetPoint(i,val->GetTimeStamp(),val->GetFloat());
    ++i;
  }
  g->SetName(dcsname);
  return g;
}

//______________________________________________________________________________
void
AliMUONTrackerHV::Scan(Int_t verbose)
{
  /// Retrieve HV values from OCDB for a given run list, and check whether
  /// we have some issues with them...
  /// If you pipe the results of this into a text file, you can then
  /// feed it to the HVoff method for further investigations.
  ///
  
  if ( fRunList.empty() )
  {
    AliError("No runs to process...");
    return;    
  }
    
  AliCDBManager::Instance()->SetDefaultStorage(fOCDBPath.Data());
  
  for ( std::vector<int>::size_type i = 0; i < fRunList.size(); ++i )
  {
    AliMUONCDB::CheckHV(fRunList[i],verbose);
  }
}

//______________________________________________________________________________
void AliMUONTrackerHV::HVoff(const char* logfile, const char* outputBaseName)
{
  /// Check the number of HV which have problem
  /// the input is the output of e.g.
  /// .L MUONTrackerHV.C+
  /// ScanHV("lhc11de.list");>  lhc11de.log
  ///
  
  gStyle->SetOptStat(0);
  
  char line[1024];
  
  std::ifstream in(logfile);
  int run(-1),a,b,c,d,e,f,g,h,z,other;
  std::map<int,std::string> results;
  
  std::string message;
  const char* testProblem = "I-AliMUONCDB::CheckHV::CheckHV:      Problem at ";
  
  while ( in.getline(line,1023,'\n') )
  {
    TString sline(line);
    if (sline.Contains("SUMMARY"))
    {
      AliInfo(line);
      int r;
      sscanf(line,"I-AliMUONCDB::CheckHV::CheckHV: RUN %09d HVchannel SUMMARY : # of cases A(%3d) B(%3d) C(%3d) D(%3d) E(%3d) F(%3d) G(%3d) H(%3d) Z(%3d) OTHER(%3d)",
             &r,&a,&b,&c,&d,&e,&f,&g,&h,&z,&other);
      if ( r != run )
      {
        if ( run == -1 )
        {
          AliCDBManager::Instance()->SetDefaultStorage(fOCDBPath.Data());
          AliCDBManager::Instance()->SetRun(r);
          AliMUONCDB::LoadMapping();
        }
        
        if ( run > 0 )
        {
          results.insert(std::make_pair(run,message));
          
        }
        message = "";
        run = r;
      }          
    }
    else if ( sline.Contains(testProblem) )
    {
      message += "|";
      message += sline(strlen(testProblem),sline.Length()-1).Data();
    }
  }
  
  results.insert(std::make_pair(run,message));
  
  TH2* hvoff = new TH2I(outputBaseName,outputBaseName,1,0,1,1,0,1);
  
  std::map<int,std::string>::const_iterator it;
  
  for ( it = results.begin(); it != results.end(); ++it )
  {
    AliInfo(Form("%d -> %s",it->first,it->second.c_str()));
    TObjArray* split = TString(it->second.c_str()).Tokenize("|");
    TIter next(split);
    TObjString* str;
    while ( ( str = static_cast<TObjString*>(next()) ) )
    {
      TString s(str->String());
      TObjArray* parts = s.Tokenize(":");
      TString alias = (static_cast<TObjString*>(parts->At(0)))->String();
      TString channel = DCSNamer()->DCSNameFromAlias(alias.Data());
      channel += Form("(%4d)",DCSNamer()->DetElemIdFromDCSAlias(alias.Data()));
      channel.ReplaceAll(".actual.vMon","");
      hvoff->Fill(Form("%6d",it->first),channel.Data(),1.0);
      delete parts;
    }
    delete split;
  }
  
  hvoff->LabelsDeflate("x");
  hvoff->LabelsDeflate("y");
  hvoff->LabelsOption("x","<");
  hvoff->LabelsOption("y","<");
  
  TCanvas* c1 = new TCanvas;
  c1->SetLeftMargin(0.35);
  hvoff->Draw("text");
  c1->Print(Form("%s.pdf",outputBaseName));
  TCanvas* c2 = new TCanvas;
  TH1* hx = hvoff->ProjectionX("hvoffperrun");
  hx->Draw();
  c2->Print(Form("%s-perrun.pdf",outputBaseName));
  TCanvas* c3 = new TCanvas;
  c3->SetBottomMargin(0.55);
  TH1* perchannel = hvoff->ProjectionY("hvoffperchannel");
  perchannel->GetXaxis()->SetBit(TAxis::kLabelsVert);
  perchannel->GetXaxis()->LabelsOption(">");
  perchannel->Draw("texthist");
  c3->Print(Form("%s-perchannel.pdf",outputBaseName));
}

//______________________________________________________________________________
void AliMUONTrackerHV::TimeAxis(TMultiGraph* g)
{
  g->GetXaxis()->SetTimeDisplay(1);
//  g->GetXaxis()->SetTimeFormat("%d/%m %H:%M%F2010-12-31 24:00:00");
  g->GetXaxis()->SetTimeFormat("%d/%m %H:%M");
  g->GetXaxis()->SetTimeOffset(0,"gmt");
  g->GetXaxis()->SetNdivisions(505);
}

//______________________________________________________________________________
TMultiGraph*
AliMUONTrackerHV::GraphHV(TMap* m, const char* dcsname)
{
  // Make a graph of the values matching dcsname
  TIter next(m);
  TObjString* s;
  
  TMultiGraph* mg = new TMultiGraph;

  while ( ( s = static_cast<TObjString*>(next()) ) )
  {
    TString name(DCSNamer()->DCSNameFromAlias(s->String()));
    
    if ( dcsname && !name.Contains(dcsname)) continue;
    
    TGraph* g = GraphValues(m,name);
    
    if ( g ) 
    {
      g->SetMarkerSize(1.5);
      g->SetMarkerStyle(2);
      g->SetLineStyle(2);
      mg->Add(g,"lp");
      g->SetTitle(name.Data());
    }
  }  

  return mg;
}

//______________________________________________________________________________
void
AliMUONTrackerHV::Print(Option_t* dcsname) const
{
  /// Print HV values for a given dcs name (or all if dcsname=0)
  
  AliCDBManager::Instance()->SetDefaultStorage(fOCDBPath.Data());
  TList messages;
  messages.SetOwner(kTRUE);
  
  for ( std::vector<int>::size_type iRun = 0; iRun < fRunList.size(); ++iRun )
  {
    Int_t runNumber = fRunList[iRun];
    
    AliInfo("---------------------");
    AliInfo(Form("RUN %09d",runNumber));
    
    messages.Delete();
    
    AliCDBManager::Instance()->SetRun(runNumber);
    
    Bool_t patchValues(kFALSE);
    Bool_t dryRun(kTRUE);
    
    TMap* m = AliMUONCalibrationData::CreateHV(runNumber,0x0,patchValues,&messages,dryRun);
    
    TIter next(m);
    TObjString* s;
    
    while ( ( s = static_cast<TObjString*>(next()) ) )
    {
      TString name(DCSNamer()->DCSNameFromAlias(s->String()));
      
      if ( dcsname && !name.Contains(dcsname)) continue;

      TPair* p = static_cast<TPair*>(m->FindObject(s->String()));
      
      if (!p) continue;
      
      TObjArray* a = static_cast<TObjArray*>(p->Value());
      TIter n2(a);
      AliDCSValue* val;
      Int_t i(0);
      
      while ( ( val = static_cast<AliDCSValue*>(n2()) ) )
      {
        std::cout << Form("i=%5d ",i) << std::endl;
        val->Print("");
        ++i;
      }
    }
  }
}

//______________________________________________________________________________
void
AliMUONTrackerHV::Plot(const char* dcsname, Bool_t withPatch, Bool_t plotIntermediate)
{
  /// Show HV values for a given dcs name (or all if dcsname=0)
  /// Each canvas for each run will go to a separate PDF file
  
  AliCDBManager::Instance()->SetDefaultStorage(fOCDBPath.Data());
  TList messages;
  messages.SetOwner(kTRUE);
  TObjArray graphs;
  
  for ( std::vector<int>::size_type i = 0; i < fRunList.size(); ++i )
  {
    Int_t runNumber = fRunList[i];
  
    messages.Delete();
    
    AliCDBManager::Instance()->SetRun(runNumber);
    
    TMap* m = AliMUONCalibrationData::CreateHV(runNumber,0x0,withPatch,&messages,kTRUE);
    
    TMultiGraph* mg = GraphHV(m,dcsname);
    
    if ( !mg ) continue;
    
    graphs.Add(mg);
    
    TString cname(Form("MCH_HV_RUN%09d",runNumber));
    
    if ( strlen(dcsname) > 0 )
    {
      TString s(dcsname);
      s.ReplaceAll("/","_");
      cname += Form("_dcsname_%s",s.Data());
    }
    
    AliCDBEntry* e = AliCDBManager::Instance()->Get("GRP/GRP/Data",runNumber);
    
    TLine* startRunLine(0);
    TLine* endRunLine(0);
    time_t start(0);
    time_t end(0);
    
    if ( e )
    {
      AliGRPObject* grp = static_cast<AliGRPObject*>(e->GetObject());
      if (grp)
      {
        start = grp->GetTimeStart();
        end = grp->GetTimeEnd();
      }
    }
    
    if ( end )
    {
      TGraph* g = new TGraph(1);
      g->SetPoint(0,end,0);
      mg->Add(g,"");
    }
    
    if ( plotIntermediate )
    {
      TCanvas* c = new TCanvas(cname.Data(),cname.Data());
    
      c->Draw();
    
      mg->SetTitle(cname.Data());
    
      mg->Draw("AL");
    
      TimeAxis(mg);
    
      if ( start )
      {
        startRunLine = new TLine(start,mg->GetYaxis()->GetXmin(),start,mg->GetYaxis()->GetXmax());
        startRunLine->SetLineColor(2);
        startRunLine->SetLineWidth(4);
      }
      if  ( end )
      {
        endRunLine = new TLine(end,mg->GetYaxis()->GetXmin(),end,mg->GetYaxis()->GetXmax());
        endRunLine->SetLineColor(2);
        endRunLine->SetLineWidth(4);
      }
    
      if ( startRunLine ) startRunLine->Draw();
      if ( endRunLine ) endRunLine->Draw();
    
      c->SaveAs(Form("%s.pdf",cname.Data()));
    }
  }
  
  new TCanvas;
  
  TMultiGraph* g = CombineMulti(graphs);

  TIter next(g->GetListOfGraphs());
  TGraph* gi;
  
  while ( ( gi = static_cast<TGraph*>(next())))
  {
    gi->SetMarkerStyle(kPlus);
  }
  g->Draw("alp");
  TimeAxis(g);
}

//______________________________________________________________________________
void
AliMUONTrackerHV::ReportTrips(Bool_t includeLowOnes)
{
  /// Report trips
  /// if includeLowOnes is kTRUE we'll report also the trips which starts from non-operational voltage values
  
  AliCDBManager::Instance()->SetDefaultStorage(fOCDBPath.Data());
  
  TList messages;
  messages.SetOwner(kTRUE);
  TObjString* msg(0);

  std::map<std::string,int> channels;

  for ( std::vector<int>::size_type i = 0; i < fRunList.size(); ++i )
  {
    Int_t runNumber = fRunList[i];
    
    AliInfo("---------------------");
    
    Int_t ntrips(0);
    
    messages.Delete();
    
    AliCDBManager::Instance()->SetRun(runNumber);
    
    AliMUONCalibrationData::CreateHV(runNumber,0x0,kTRUE,&messages,kTRUE);
    
    if (!AliMpDEStore::Instance(false))
    {
      AliMUONCDB::LoadMapping();
    }
    
    TIter next(&messages);

    while ( ( msg = static_cast<TObjString*>(next())) )
    {
      if ( msg->String().Contains("TRIP") && ( includeLowOnes || !msg->String().Contains("LOWTRIP") ) )
      {
        ++ntrips;
      }
    }

    AliInfo(Form("RUN %09d - %d trip%c",runNumber,ntrips,(ntrips>1 ? 's':' ')));
    
    next.Reset();
    std::map<int,std::string> report;
    
    while ( ( msg = static_cast<TObjString*>(next())) )
    {
      if ( msg->String().Contains("TRIP") )
      {
        TObjArray* parts = msg->String().Tokenize(" ");
        TString channelName(static_cast<TObjString*>(parts->At(0))->String());
        
        for ( Int_t ip = 0; ip <= parts->GetLast(); ++ip)
        {
          TString p(static_cast<TObjString*>(parts->At(ip))->String());
          
          if ( p.Contains("TRIP") )
          {
            if ( includeLowOnes || !p.Contains("LOWTRIP") )
            {
              TString ts(static_cast<TObjString*>(parts->At(ip+2))->String());
          
              ip += 3;
          
              Int_t index = ts.Index("TS:");
          
              UInt_t timeStamp = TString(ts(index+strlen("TS:"),ts.Length()-index)).Atoi();
          
              TString tmp(msg->String());
              tmp.ReplaceAll(channelName.Data(),DCSNamer()->DCSNameFromAlias(channelName.Data()));
              report[timeStamp] = tmp.Data();
              channels[channelName.Data()]++;
            }
          }
        }
        delete parts;
      }
    }

    for ( std::map<int,std::string>::const_iterator it = report.begin(); it != report.end(); ++it )
    {
      AliInfo(Form("%s %s",TTimeStamp(it->first).AsString("s"),it->second.c_str()));
    }
  }
  
  AliInfo("--------------------------------------------------------------------");
  AliInfo("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
  
  int totalTrips(0);
  AliMUON2DMap tripMap(kTRUE);
  Int_t nofChannels(AliMpConstants::ManuNofChannels());

  for ( std::map<std::string,int>::const_iterator it = channels.begin(); it != channels.end(); ++it )
  {
    AliInfo(Form("%40s %3d",DCSNamer()->DCSNameFromAlias(it->first.c_str()).Data(),it->second));
    totalTrips += it->second;
    
    Int_t detElemId = DCSNamer()->DetElemIdFromDCSAlias(it->first.c_str());
    
    AliMpDetElement* de = AliMpDEStore::Instance()->GetDetElement(detElemId);
    
    // build the list of manuIds for this channel
    AliMpArrayI manuArray;
    
    manuArray.SetSize(300);
    
    Int_t index = DCSNamer()->DCSIndexFromDCSAlias(it->first.c_str());
    Int_t firstIndex(index);
    Int_t lastIndex(index);
    
    if ( index < 0 )
    {
      // it's a slat, must loop over PCBs
      firstIndex = 0;
      lastIndex = DCSNamer()->NumberOfPCBs(detElemId)-1;
    }
    
    for ( int i = firstIndex; i <= lastIndex ; ++i )
    {
      const AliMpArrayI* ma = de->ManusForHV(i);
      if (!ma)
      {
        AliError(Form("Could not get ma for de %d index %d",detElemId,i));
        continue;
      }
      for ( int j = 0; j < ma->GetSize(); ++j )
      {
        manuArray.Add(ma->GetValue(j),kFALSE);
      }
    }
    
    for ( Int_t iManu = 0; iManu < manuArray.GetSize(); ++iManu )
    {
      Int_t manuId = manuArray.GetValue(iManu);
      
      AliMUONVCalibParam* tripRate = new AliMUONCalibParamND(1,nofChannels,detElemId,manuId,0);
      
      tripMap.Add(tripRate);
      
      for ( Int_t j = 0 ; j < nofChannels; ++j )
      {
        tripRate->SetValueAsDouble(j,0,it->second*1.0);
      }
    }
  }

  AliInfo("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
  AliInfo(Form("Total of %3d trips for %4ld runs",totalTrips,fRunList.size()));
  
  AliMUONTrackerData* data = new AliMUONTrackerData("tripcount","Number of trips",1);
  data->Add(tripMap);
  data->SetDimensionName(0,"ntrips");

  AliMUONVTrackerDataMaker* dw = new AliMUONTrackerDataWrapper(data);
  
  AliMUONPainterDataRegistry::Instance()->Register(dw);

}

 AliMUONTrackerHV.cxx:1
 AliMUONTrackerHV.cxx:2
 AliMUONTrackerHV.cxx:3
 AliMUONTrackerHV.cxx:4
 AliMUONTrackerHV.cxx:5
 AliMUONTrackerHV.cxx:6
 AliMUONTrackerHV.cxx:7
 AliMUONTrackerHV.cxx:8
 AliMUONTrackerHV.cxx:9
 AliMUONTrackerHV.cxx:10
 AliMUONTrackerHV.cxx:11
 AliMUONTrackerHV.cxx:12
 AliMUONTrackerHV.cxx:13
 AliMUONTrackerHV.cxx:14
 AliMUONTrackerHV.cxx:15
 AliMUONTrackerHV.cxx:16
 AliMUONTrackerHV.cxx:17
 AliMUONTrackerHV.cxx:18
 AliMUONTrackerHV.cxx:19
 AliMUONTrackerHV.cxx:20
 AliMUONTrackerHV.cxx:21
 AliMUONTrackerHV.cxx:22
 AliMUONTrackerHV.cxx:23
 AliMUONTrackerHV.cxx:24
 AliMUONTrackerHV.cxx:25
 AliMUONTrackerHV.cxx:26
 AliMUONTrackerHV.cxx:27
 AliMUONTrackerHV.cxx:28
 AliMUONTrackerHV.cxx:29
 AliMUONTrackerHV.cxx:30
 AliMUONTrackerHV.cxx:31
 AliMUONTrackerHV.cxx:32
 AliMUONTrackerHV.cxx:33
 AliMUONTrackerHV.cxx:34
 AliMUONTrackerHV.cxx:35
 AliMUONTrackerHV.cxx:36
 AliMUONTrackerHV.cxx:37
 AliMUONTrackerHV.cxx:38
 AliMUONTrackerHV.cxx:39
 AliMUONTrackerHV.cxx:40
 AliMUONTrackerHV.cxx:41
 AliMUONTrackerHV.cxx:42
 AliMUONTrackerHV.cxx:43
 AliMUONTrackerHV.cxx:44
 AliMUONTrackerHV.cxx:45
 AliMUONTrackerHV.cxx:46
 AliMUONTrackerHV.cxx:47
 AliMUONTrackerHV.cxx:48
 AliMUONTrackerHV.cxx:49
 AliMUONTrackerHV.cxx:50
 AliMUONTrackerHV.cxx:51
 AliMUONTrackerHV.cxx:52
 AliMUONTrackerHV.cxx:53
 AliMUONTrackerHV.cxx:54
 AliMUONTrackerHV.cxx:55
 AliMUONTrackerHV.cxx:56
 AliMUONTrackerHV.cxx:57
 AliMUONTrackerHV.cxx:58
 AliMUONTrackerHV.cxx:59
 AliMUONTrackerHV.cxx:60
 AliMUONTrackerHV.cxx:61
 AliMUONTrackerHV.cxx:62
 AliMUONTrackerHV.cxx:63
 AliMUONTrackerHV.cxx:64
 AliMUONTrackerHV.cxx:65
 AliMUONTrackerHV.cxx:66
 AliMUONTrackerHV.cxx:67
 AliMUONTrackerHV.cxx:68
 AliMUONTrackerHV.cxx:69
 AliMUONTrackerHV.cxx:70
 AliMUONTrackerHV.cxx:71
 AliMUONTrackerHV.cxx:72
 AliMUONTrackerHV.cxx:73
 AliMUONTrackerHV.cxx:74
 AliMUONTrackerHV.cxx:75
 AliMUONTrackerHV.cxx:76
 AliMUONTrackerHV.cxx:77
 AliMUONTrackerHV.cxx:78
 AliMUONTrackerHV.cxx:79
 AliMUONTrackerHV.cxx:80
 AliMUONTrackerHV.cxx:81
 AliMUONTrackerHV.cxx:82
 AliMUONTrackerHV.cxx:83
 AliMUONTrackerHV.cxx:84
 AliMUONTrackerHV.cxx:85
 AliMUONTrackerHV.cxx:86
 AliMUONTrackerHV.cxx:87
 AliMUONTrackerHV.cxx:88
 AliMUONTrackerHV.cxx:89
 AliMUONTrackerHV.cxx:90
 AliMUONTrackerHV.cxx:91
 AliMUONTrackerHV.cxx:92
 AliMUONTrackerHV.cxx:93
 AliMUONTrackerHV.cxx:94
 AliMUONTrackerHV.cxx:95
 AliMUONTrackerHV.cxx:96
 AliMUONTrackerHV.cxx:97
 AliMUONTrackerHV.cxx:98
 AliMUONTrackerHV.cxx:99
 AliMUONTrackerHV.cxx:100
 AliMUONTrackerHV.cxx:101
 AliMUONTrackerHV.cxx:102
 AliMUONTrackerHV.cxx:103
 AliMUONTrackerHV.cxx:104
 AliMUONTrackerHV.cxx:105
 AliMUONTrackerHV.cxx:106
 AliMUONTrackerHV.cxx:107
 AliMUONTrackerHV.cxx:108
 AliMUONTrackerHV.cxx:109
 AliMUONTrackerHV.cxx:110
 AliMUONTrackerHV.cxx:111
 AliMUONTrackerHV.cxx:112
 AliMUONTrackerHV.cxx:113
 AliMUONTrackerHV.cxx:114
 AliMUONTrackerHV.cxx:115
 AliMUONTrackerHV.cxx:116
 AliMUONTrackerHV.cxx:117
 AliMUONTrackerHV.cxx:118
 AliMUONTrackerHV.cxx:119
 AliMUONTrackerHV.cxx:120
 AliMUONTrackerHV.cxx:121
 AliMUONTrackerHV.cxx:122
 AliMUONTrackerHV.cxx:123
 AliMUONTrackerHV.cxx:124
 AliMUONTrackerHV.cxx:125
 AliMUONTrackerHV.cxx:126
 AliMUONTrackerHV.cxx:127
 AliMUONTrackerHV.cxx:128
 AliMUONTrackerHV.cxx:129
 AliMUONTrackerHV.cxx:130
 AliMUONTrackerHV.cxx:131
 AliMUONTrackerHV.cxx:132
 AliMUONTrackerHV.cxx:133
 AliMUONTrackerHV.cxx:134
 AliMUONTrackerHV.cxx:135
 AliMUONTrackerHV.cxx:136
 AliMUONTrackerHV.cxx:137
 AliMUONTrackerHV.cxx:138
 AliMUONTrackerHV.cxx:139
 AliMUONTrackerHV.cxx:140
 AliMUONTrackerHV.cxx:141
 AliMUONTrackerHV.cxx:142
 AliMUONTrackerHV.cxx:143
 AliMUONTrackerHV.cxx:144
 AliMUONTrackerHV.cxx:145
 AliMUONTrackerHV.cxx:146
 AliMUONTrackerHV.cxx:147
 AliMUONTrackerHV.cxx:148
 AliMUONTrackerHV.cxx:149
 AliMUONTrackerHV.cxx:150
 AliMUONTrackerHV.cxx:151
 AliMUONTrackerHV.cxx:152
 AliMUONTrackerHV.cxx:153
 AliMUONTrackerHV.cxx:154
 AliMUONTrackerHV.cxx:155
 AliMUONTrackerHV.cxx:156
 AliMUONTrackerHV.cxx:157
 AliMUONTrackerHV.cxx:158
 AliMUONTrackerHV.cxx:159
 AliMUONTrackerHV.cxx:160
 AliMUONTrackerHV.cxx:161
 AliMUONTrackerHV.cxx:162
 AliMUONTrackerHV.cxx:163
 AliMUONTrackerHV.cxx:164
 AliMUONTrackerHV.cxx:165
 AliMUONTrackerHV.cxx:166
 AliMUONTrackerHV.cxx:167
 AliMUONTrackerHV.cxx:168
 AliMUONTrackerHV.cxx:169
 AliMUONTrackerHV.cxx:170
 AliMUONTrackerHV.cxx:171
 AliMUONTrackerHV.cxx:172
 AliMUONTrackerHV.cxx:173
 AliMUONTrackerHV.cxx:174
 AliMUONTrackerHV.cxx:175
 AliMUONTrackerHV.cxx:176
 AliMUONTrackerHV.cxx:177
 AliMUONTrackerHV.cxx:178
 AliMUONTrackerHV.cxx:179
 AliMUONTrackerHV.cxx:180
 AliMUONTrackerHV.cxx:181
 AliMUONTrackerHV.cxx:182
 AliMUONTrackerHV.cxx:183
 AliMUONTrackerHV.cxx:184
 AliMUONTrackerHV.cxx:185
 AliMUONTrackerHV.cxx:186
 AliMUONTrackerHV.cxx:187
 AliMUONTrackerHV.cxx:188
 AliMUONTrackerHV.cxx:189
 AliMUONTrackerHV.cxx:190
 AliMUONTrackerHV.cxx:191
 AliMUONTrackerHV.cxx:192
 AliMUONTrackerHV.cxx:193
 AliMUONTrackerHV.cxx:194
 AliMUONTrackerHV.cxx:195
 AliMUONTrackerHV.cxx:196
 AliMUONTrackerHV.cxx:197
 AliMUONTrackerHV.cxx:198
 AliMUONTrackerHV.cxx:199
 AliMUONTrackerHV.cxx:200
 AliMUONTrackerHV.cxx:201
 AliMUONTrackerHV.cxx:202
 AliMUONTrackerHV.cxx:203
 AliMUONTrackerHV.cxx:204
 AliMUONTrackerHV.cxx:205
 AliMUONTrackerHV.cxx:206
 AliMUONTrackerHV.cxx:207
 AliMUONTrackerHV.cxx:208
 AliMUONTrackerHV.cxx:209
 AliMUONTrackerHV.cxx:210
 AliMUONTrackerHV.cxx:211
 AliMUONTrackerHV.cxx:212
 AliMUONTrackerHV.cxx:213
 AliMUONTrackerHV.cxx:214
 AliMUONTrackerHV.cxx:215
 AliMUONTrackerHV.cxx:216
 AliMUONTrackerHV.cxx:217
 AliMUONTrackerHV.cxx:218
 AliMUONTrackerHV.cxx:219
 AliMUONTrackerHV.cxx:220
 AliMUONTrackerHV.cxx:221
 AliMUONTrackerHV.cxx:222
 AliMUONTrackerHV.cxx:223
 AliMUONTrackerHV.cxx:224
 AliMUONTrackerHV.cxx:225
 AliMUONTrackerHV.cxx:226
 AliMUONTrackerHV.cxx:227
 AliMUONTrackerHV.cxx:228
 AliMUONTrackerHV.cxx:229
 AliMUONTrackerHV.cxx:230
 AliMUONTrackerHV.cxx:231
 AliMUONTrackerHV.cxx:232
 AliMUONTrackerHV.cxx:233
 AliMUONTrackerHV.cxx:234
 AliMUONTrackerHV.cxx:235
 AliMUONTrackerHV.cxx:236
 AliMUONTrackerHV.cxx:237
 AliMUONTrackerHV.cxx:238
 AliMUONTrackerHV.cxx:239
 AliMUONTrackerHV.cxx:240
 AliMUONTrackerHV.cxx:241
 AliMUONTrackerHV.cxx:242
 AliMUONTrackerHV.cxx:243
 AliMUONTrackerHV.cxx:244
 AliMUONTrackerHV.cxx:245
 AliMUONTrackerHV.cxx:246
 AliMUONTrackerHV.cxx:247
 AliMUONTrackerHV.cxx:248
 AliMUONTrackerHV.cxx:249
 AliMUONTrackerHV.cxx:250
 AliMUONTrackerHV.cxx:251
 AliMUONTrackerHV.cxx:252
 AliMUONTrackerHV.cxx:253
 AliMUONTrackerHV.cxx:254
 AliMUONTrackerHV.cxx:255
 AliMUONTrackerHV.cxx:256
 AliMUONTrackerHV.cxx:257
 AliMUONTrackerHV.cxx:258
 AliMUONTrackerHV.cxx:259
 AliMUONTrackerHV.cxx:260
 AliMUONTrackerHV.cxx:261
 AliMUONTrackerHV.cxx:262
 AliMUONTrackerHV.cxx:263
 AliMUONTrackerHV.cxx:264
 AliMUONTrackerHV.cxx:265
 AliMUONTrackerHV.cxx:266
 AliMUONTrackerHV.cxx:267
 AliMUONTrackerHV.cxx:268
 AliMUONTrackerHV.cxx:269
 AliMUONTrackerHV.cxx:270
 AliMUONTrackerHV.cxx:271
 AliMUONTrackerHV.cxx:272
 AliMUONTrackerHV.cxx:273
 AliMUONTrackerHV.cxx:274
 AliMUONTrackerHV.cxx:275
 AliMUONTrackerHV.cxx:276
 AliMUONTrackerHV.cxx:277
 AliMUONTrackerHV.cxx:278
 AliMUONTrackerHV.cxx:279
 AliMUONTrackerHV.cxx:280
 AliMUONTrackerHV.cxx:281
 AliMUONTrackerHV.cxx:282
 AliMUONTrackerHV.cxx:283
 AliMUONTrackerHV.cxx:284
 AliMUONTrackerHV.cxx:285
 AliMUONTrackerHV.cxx:286
 AliMUONTrackerHV.cxx:287
 AliMUONTrackerHV.cxx:288
 AliMUONTrackerHV.cxx:289
 AliMUONTrackerHV.cxx:290
 AliMUONTrackerHV.cxx:291
 AliMUONTrackerHV.cxx:292
 AliMUONTrackerHV.cxx:293
 AliMUONTrackerHV.cxx:294
 AliMUONTrackerHV.cxx:295
 AliMUONTrackerHV.cxx:296
 AliMUONTrackerHV.cxx:297
 AliMUONTrackerHV.cxx:298
 AliMUONTrackerHV.cxx:299
 AliMUONTrackerHV.cxx:300
 AliMUONTrackerHV.cxx:301
 AliMUONTrackerHV.cxx:302
 AliMUONTrackerHV.cxx:303
 AliMUONTrackerHV.cxx:304
 AliMUONTrackerHV.cxx:305
 AliMUONTrackerHV.cxx:306
 AliMUONTrackerHV.cxx:307
 AliMUONTrackerHV.cxx:308
 AliMUONTrackerHV.cxx:309
 AliMUONTrackerHV.cxx:310
 AliMUONTrackerHV.cxx:311
 AliMUONTrackerHV.cxx:312
 AliMUONTrackerHV.cxx:313
 AliMUONTrackerHV.cxx:314
 AliMUONTrackerHV.cxx:315
 AliMUONTrackerHV.cxx:316
 AliMUONTrackerHV.cxx:317
 AliMUONTrackerHV.cxx:318
 AliMUONTrackerHV.cxx:319
 AliMUONTrackerHV.cxx:320
 AliMUONTrackerHV.cxx:321
 AliMUONTrackerHV.cxx:322
 AliMUONTrackerHV.cxx:323
 AliMUONTrackerHV.cxx:324
 AliMUONTrackerHV.cxx:325
 AliMUONTrackerHV.cxx:326
 AliMUONTrackerHV.cxx:327
 AliMUONTrackerHV.cxx:328
 AliMUONTrackerHV.cxx:329
 AliMUONTrackerHV.cxx:330
 AliMUONTrackerHV.cxx:331
 AliMUONTrackerHV.cxx:332
 AliMUONTrackerHV.cxx:333
 AliMUONTrackerHV.cxx:334
 AliMUONTrackerHV.cxx:335
 AliMUONTrackerHV.cxx:336
 AliMUONTrackerHV.cxx:337
 AliMUONTrackerHV.cxx:338
 AliMUONTrackerHV.cxx:339
 AliMUONTrackerHV.cxx:340
 AliMUONTrackerHV.cxx:341
 AliMUONTrackerHV.cxx:342
 AliMUONTrackerHV.cxx:343
 AliMUONTrackerHV.cxx:344
 AliMUONTrackerHV.cxx:345
 AliMUONTrackerHV.cxx:346
 AliMUONTrackerHV.cxx:347
 AliMUONTrackerHV.cxx:348
 AliMUONTrackerHV.cxx:349
 AliMUONTrackerHV.cxx:350
 AliMUONTrackerHV.cxx:351
 AliMUONTrackerHV.cxx:352
 AliMUONTrackerHV.cxx:353
 AliMUONTrackerHV.cxx:354
 AliMUONTrackerHV.cxx:355
 AliMUONTrackerHV.cxx:356
 AliMUONTrackerHV.cxx:357
 AliMUONTrackerHV.cxx:358
 AliMUONTrackerHV.cxx:359
 AliMUONTrackerHV.cxx:360
 AliMUONTrackerHV.cxx:361
 AliMUONTrackerHV.cxx:362
 AliMUONTrackerHV.cxx:363
 AliMUONTrackerHV.cxx:364
 AliMUONTrackerHV.cxx:365
 AliMUONTrackerHV.cxx:366
 AliMUONTrackerHV.cxx:367
 AliMUONTrackerHV.cxx:368
 AliMUONTrackerHV.cxx:369
 AliMUONTrackerHV.cxx:370
 AliMUONTrackerHV.cxx:371
 AliMUONTrackerHV.cxx:372
 AliMUONTrackerHV.cxx:373
 AliMUONTrackerHV.cxx:374
 AliMUONTrackerHV.cxx:375
 AliMUONTrackerHV.cxx:376
 AliMUONTrackerHV.cxx:377
 AliMUONTrackerHV.cxx:378
 AliMUONTrackerHV.cxx:379
 AliMUONTrackerHV.cxx:380
 AliMUONTrackerHV.cxx:381
 AliMUONTrackerHV.cxx:382
 AliMUONTrackerHV.cxx:383
 AliMUONTrackerHV.cxx:384
 AliMUONTrackerHV.cxx:385
 AliMUONTrackerHV.cxx:386
 AliMUONTrackerHV.cxx:387
 AliMUONTrackerHV.cxx:388
 AliMUONTrackerHV.cxx:389
 AliMUONTrackerHV.cxx:390
 AliMUONTrackerHV.cxx:391
 AliMUONTrackerHV.cxx:392
 AliMUONTrackerHV.cxx:393
 AliMUONTrackerHV.cxx:394
 AliMUONTrackerHV.cxx:395
 AliMUONTrackerHV.cxx:396
 AliMUONTrackerHV.cxx:397
 AliMUONTrackerHV.cxx:398
 AliMUONTrackerHV.cxx:399
 AliMUONTrackerHV.cxx:400
 AliMUONTrackerHV.cxx:401
 AliMUONTrackerHV.cxx:402
 AliMUONTrackerHV.cxx:403
 AliMUONTrackerHV.cxx:404
 AliMUONTrackerHV.cxx:405
 AliMUONTrackerHV.cxx:406
 AliMUONTrackerHV.cxx:407
 AliMUONTrackerHV.cxx:408
 AliMUONTrackerHV.cxx:409
 AliMUONTrackerHV.cxx:410
 AliMUONTrackerHV.cxx:411
 AliMUONTrackerHV.cxx:412
 AliMUONTrackerHV.cxx:413
 AliMUONTrackerHV.cxx:414
 AliMUONTrackerHV.cxx:415
 AliMUONTrackerHV.cxx:416
 AliMUONTrackerHV.cxx:417
 AliMUONTrackerHV.cxx:418
 AliMUONTrackerHV.cxx:419
 AliMUONTrackerHV.cxx:420
 AliMUONTrackerHV.cxx:421
 AliMUONTrackerHV.cxx:422
 AliMUONTrackerHV.cxx:423
 AliMUONTrackerHV.cxx:424
 AliMUONTrackerHV.cxx:425
 AliMUONTrackerHV.cxx:426
 AliMUONTrackerHV.cxx:427
 AliMUONTrackerHV.cxx:428
 AliMUONTrackerHV.cxx:429
 AliMUONTrackerHV.cxx:430
 AliMUONTrackerHV.cxx:431
 AliMUONTrackerHV.cxx:432
 AliMUONTrackerHV.cxx:433
 AliMUONTrackerHV.cxx:434
 AliMUONTrackerHV.cxx:435
 AliMUONTrackerHV.cxx:436
 AliMUONTrackerHV.cxx:437
 AliMUONTrackerHV.cxx:438
 AliMUONTrackerHV.cxx:439
 AliMUONTrackerHV.cxx:440
 AliMUONTrackerHV.cxx:441
 AliMUONTrackerHV.cxx:442
 AliMUONTrackerHV.cxx:443
 AliMUONTrackerHV.cxx:444
 AliMUONTrackerHV.cxx:445
 AliMUONTrackerHV.cxx:446
 AliMUONTrackerHV.cxx:447
 AliMUONTrackerHV.cxx:448
 AliMUONTrackerHV.cxx:449
 AliMUONTrackerHV.cxx:450
 AliMUONTrackerHV.cxx:451
 AliMUONTrackerHV.cxx:452
 AliMUONTrackerHV.cxx:453
 AliMUONTrackerHV.cxx:454
 AliMUONTrackerHV.cxx:455
 AliMUONTrackerHV.cxx:456
 AliMUONTrackerHV.cxx:457
 AliMUONTrackerHV.cxx:458
 AliMUONTrackerHV.cxx:459
 AliMUONTrackerHV.cxx:460
 AliMUONTrackerHV.cxx:461
 AliMUONTrackerHV.cxx:462
 AliMUONTrackerHV.cxx:463
 AliMUONTrackerHV.cxx:464
 AliMUONTrackerHV.cxx:465
 AliMUONTrackerHV.cxx:466
 AliMUONTrackerHV.cxx:467
 AliMUONTrackerHV.cxx:468
 AliMUONTrackerHV.cxx:469
 AliMUONTrackerHV.cxx:470
 AliMUONTrackerHV.cxx:471
 AliMUONTrackerHV.cxx:472
 AliMUONTrackerHV.cxx:473
 AliMUONTrackerHV.cxx:474
 AliMUONTrackerHV.cxx:475
 AliMUONTrackerHV.cxx:476
 AliMUONTrackerHV.cxx:477
 AliMUONTrackerHV.cxx:478
 AliMUONTrackerHV.cxx:479
 AliMUONTrackerHV.cxx:480
 AliMUONTrackerHV.cxx:481
 AliMUONTrackerHV.cxx:482
 AliMUONTrackerHV.cxx:483
 AliMUONTrackerHV.cxx:484
 AliMUONTrackerHV.cxx:485
 AliMUONTrackerHV.cxx:486
 AliMUONTrackerHV.cxx:487
 AliMUONTrackerHV.cxx:488
 AliMUONTrackerHV.cxx:489
 AliMUONTrackerHV.cxx:490
 AliMUONTrackerHV.cxx:491
 AliMUONTrackerHV.cxx:492
 AliMUONTrackerHV.cxx:493
 AliMUONTrackerHV.cxx:494
 AliMUONTrackerHV.cxx:495
 AliMUONTrackerHV.cxx:496
 AliMUONTrackerHV.cxx:497
 AliMUONTrackerHV.cxx:498
 AliMUONTrackerHV.cxx:499
 AliMUONTrackerHV.cxx:500
 AliMUONTrackerHV.cxx:501
 AliMUONTrackerHV.cxx:502
 AliMUONTrackerHV.cxx:503
 AliMUONTrackerHV.cxx:504
 AliMUONTrackerHV.cxx:505
 AliMUONTrackerHV.cxx:506
 AliMUONTrackerHV.cxx:507
 AliMUONTrackerHV.cxx:508
 AliMUONTrackerHV.cxx:509
 AliMUONTrackerHV.cxx:510
 AliMUONTrackerHV.cxx:511
 AliMUONTrackerHV.cxx:512
 AliMUONTrackerHV.cxx:513
 AliMUONTrackerHV.cxx:514
 AliMUONTrackerHV.cxx:515
 AliMUONTrackerHV.cxx:516
 AliMUONTrackerHV.cxx:517
 AliMUONTrackerHV.cxx:518
 AliMUONTrackerHV.cxx:519
 AliMUONTrackerHV.cxx:520
 AliMUONTrackerHV.cxx:521
 AliMUONTrackerHV.cxx:522
 AliMUONTrackerHV.cxx:523
 AliMUONTrackerHV.cxx:524
 AliMUONTrackerHV.cxx:525
 AliMUONTrackerHV.cxx:526
 AliMUONTrackerHV.cxx:527
 AliMUONTrackerHV.cxx:528
 AliMUONTrackerHV.cxx:529
 AliMUONTrackerHV.cxx:530
 AliMUONTrackerHV.cxx:531
 AliMUONTrackerHV.cxx:532
 AliMUONTrackerHV.cxx:533
 AliMUONTrackerHV.cxx:534
 AliMUONTrackerHV.cxx:535
 AliMUONTrackerHV.cxx:536
 AliMUONTrackerHV.cxx:537
 AliMUONTrackerHV.cxx:538
 AliMUONTrackerHV.cxx:539
 AliMUONTrackerHV.cxx:540
 AliMUONTrackerHV.cxx:541
 AliMUONTrackerHV.cxx:542
 AliMUONTrackerHV.cxx:543
 AliMUONTrackerHV.cxx:544
 AliMUONTrackerHV.cxx:545
 AliMUONTrackerHV.cxx:546
 AliMUONTrackerHV.cxx:547
 AliMUONTrackerHV.cxx:548
 AliMUONTrackerHV.cxx:549
 AliMUONTrackerHV.cxx:550
 AliMUONTrackerHV.cxx:551
 AliMUONTrackerHV.cxx:552
 AliMUONTrackerHV.cxx:553
 AliMUONTrackerHV.cxx:554
 AliMUONTrackerHV.cxx:555
 AliMUONTrackerHV.cxx:556
 AliMUONTrackerHV.cxx:557
 AliMUONTrackerHV.cxx:558
 AliMUONTrackerHV.cxx:559
 AliMUONTrackerHV.cxx:560
 AliMUONTrackerHV.cxx:561
 AliMUONTrackerHV.cxx:562
 AliMUONTrackerHV.cxx:563
 AliMUONTrackerHV.cxx:564
 AliMUONTrackerHV.cxx:565
 AliMUONTrackerHV.cxx:566
 AliMUONTrackerHV.cxx:567
 AliMUONTrackerHV.cxx:568
 AliMUONTrackerHV.cxx:569
 AliMUONTrackerHV.cxx:570
 AliMUONTrackerHV.cxx:571
 AliMUONTrackerHV.cxx:572
 AliMUONTrackerHV.cxx:573
 AliMUONTrackerHV.cxx:574
 AliMUONTrackerHV.cxx:575
 AliMUONTrackerHV.cxx:576
 AliMUONTrackerHV.cxx:577
 AliMUONTrackerHV.cxx:578
 AliMUONTrackerHV.cxx:579
 AliMUONTrackerHV.cxx:580
 AliMUONTrackerHV.cxx:581
 AliMUONTrackerHV.cxx:582
 AliMUONTrackerHV.cxx:583
 AliMUONTrackerHV.cxx:584
 AliMUONTrackerHV.cxx:585
 AliMUONTrackerHV.cxx:586
 AliMUONTrackerHV.cxx:587
 AliMUONTrackerHV.cxx:588
 AliMUONTrackerHV.cxx:589
 AliMUONTrackerHV.cxx:590
 AliMUONTrackerHV.cxx:591
 AliMUONTrackerHV.cxx:592
 AliMUONTrackerHV.cxx:593
 AliMUONTrackerHV.cxx:594
 AliMUONTrackerHV.cxx:595
 AliMUONTrackerHV.cxx:596
 AliMUONTrackerHV.cxx:597
 AliMUONTrackerHV.cxx:598
 AliMUONTrackerHV.cxx:599
 AliMUONTrackerHV.cxx:600
 AliMUONTrackerHV.cxx:601
 AliMUONTrackerHV.cxx:602
 AliMUONTrackerHV.cxx:603
 AliMUONTrackerHV.cxx:604
 AliMUONTrackerHV.cxx:605
 AliMUONTrackerHV.cxx:606
 AliMUONTrackerHV.cxx:607
 AliMUONTrackerHV.cxx:608
 AliMUONTrackerHV.cxx:609
 AliMUONTrackerHV.cxx:610
 AliMUONTrackerHV.cxx:611
 AliMUONTrackerHV.cxx:612
 AliMUONTrackerHV.cxx:613
 AliMUONTrackerHV.cxx:614
 AliMUONTrackerHV.cxx:615
 AliMUONTrackerHV.cxx:616
 AliMUONTrackerHV.cxx:617
 AliMUONTrackerHV.cxx:618
 AliMUONTrackerHV.cxx:619
 AliMUONTrackerHV.cxx:620
 AliMUONTrackerHV.cxx:621
 AliMUONTrackerHV.cxx:622
 AliMUONTrackerHV.cxx:623
 AliMUONTrackerHV.cxx:624
 AliMUONTrackerHV.cxx:625
 AliMUONTrackerHV.cxx:626
 AliMUONTrackerHV.cxx:627
 AliMUONTrackerHV.cxx:628
 AliMUONTrackerHV.cxx:629
 AliMUONTrackerHV.cxx:630
 AliMUONTrackerHV.cxx:631
 AliMUONTrackerHV.cxx:632
 AliMUONTrackerHV.cxx:633
 AliMUONTrackerHV.cxx:634
 AliMUONTrackerHV.cxx:635
 AliMUONTrackerHV.cxx:636
 AliMUONTrackerHV.cxx:637
 AliMUONTrackerHV.cxx:638
 AliMUONTrackerHV.cxx:639
 AliMUONTrackerHV.cxx:640
 AliMUONTrackerHV.cxx:641
 AliMUONTrackerHV.cxx:642
 AliMUONTrackerHV.cxx:643
 AliMUONTrackerHV.cxx:644
 AliMUONTrackerHV.cxx:645
 AliMUONTrackerHV.cxx:646
 AliMUONTrackerHV.cxx:647
 AliMUONTrackerHV.cxx:648
 AliMUONTrackerHV.cxx:649
 AliMUONTrackerHV.cxx:650
 AliMUONTrackerHV.cxx:651
 AliMUONTrackerHV.cxx:652
 AliMUONTrackerHV.cxx:653
 AliMUONTrackerHV.cxx:654
 AliMUONTrackerHV.cxx:655
 AliMUONTrackerHV.cxx:656
 AliMUONTrackerHV.cxx:657
 AliMUONTrackerHV.cxx:658
 AliMUONTrackerHV.cxx:659
 AliMUONTrackerHV.cxx:660
 AliMUONTrackerHV.cxx:661
 AliMUONTrackerHV.cxx:662
 AliMUONTrackerHV.cxx:663
 AliMUONTrackerHV.cxx:664
 AliMUONTrackerHV.cxx:665
 AliMUONTrackerHV.cxx:666
 AliMUONTrackerHV.cxx:667
 AliMUONTrackerHV.cxx:668
 AliMUONTrackerHV.cxx:669
 AliMUONTrackerHV.cxx:670
 AliMUONTrackerHV.cxx:671
 AliMUONTrackerHV.cxx:672
 AliMUONTrackerHV.cxx:673
 AliMUONTrackerHV.cxx:674
 AliMUONTrackerHV.cxx:675
 AliMUONTrackerHV.cxx:676
 AliMUONTrackerHV.cxx:677
 AliMUONTrackerHV.cxx:678
 AliMUONTrackerHV.cxx:679
 AliMUONTrackerHV.cxx:680
 AliMUONTrackerHV.cxx:681
 AliMUONTrackerHV.cxx:682
 AliMUONTrackerHV.cxx:683
 AliMUONTrackerHV.cxx:684
 AliMUONTrackerHV.cxx:685
 AliMUONTrackerHV.cxx:686
 AliMUONTrackerHV.cxx:687
 AliMUONTrackerHV.cxx:688
 AliMUONTrackerHV.cxx:689
 AliMUONTrackerHV.cxx:690
 AliMUONTrackerHV.cxx:691
 AliMUONTrackerHV.cxx:692
 AliMUONTrackerHV.cxx:693
 AliMUONTrackerHV.cxx:694
 AliMUONTrackerHV.cxx:695
 AliMUONTrackerHV.cxx:696
 AliMUONTrackerHV.cxx:697
 AliMUONTrackerHV.cxx:698
 AliMUONTrackerHV.cxx:699
 AliMUONTrackerHV.cxx:700
 AliMUONTrackerHV.cxx:701
 AliMUONTrackerHV.cxx:702
 AliMUONTrackerHV.cxx:703
 AliMUONTrackerHV.cxx:704
 AliMUONTrackerHV.cxx:705
 AliMUONTrackerHV.cxx:706
 AliMUONTrackerHV.cxx:707
 AliMUONTrackerHV.cxx:708
 AliMUONTrackerHV.cxx:709
 AliMUONTrackerHV.cxx:710
 AliMUONTrackerHV.cxx:711
 AliMUONTrackerHV.cxx:712
 AliMUONTrackerHV.cxx:713
 AliMUONTrackerHV.cxx:714
 AliMUONTrackerHV.cxx:715
 AliMUONTrackerHV.cxx:716
 AliMUONTrackerHV.cxx:717
 AliMUONTrackerHV.cxx:718
 AliMUONTrackerHV.cxx:719
 AliMUONTrackerHV.cxx:720
 AliMUONTrackerHV.cxx:721
 AliMUONTrackerHV.cxx:722
 AliMUONTrackerHV.cxx:723
 AliMUONTrackerHV.cxx:724
 AliMUONTrackerHV.cxx:725
 AliMUONTrackerHV.cxx:726
 AliMUONTrackerHV.cxx:727
 AliMUONTrackerHV.cxx:728
 AliMUONTrackerHV.cxx:729
 AliMUONTrackerHV.cxx:730
 AliMUONTrackerHV.cxx:731
 AliMUONTrackerHV.cxx:732
 AliMUONTrackerHV.cxx:733
 AliMUONTrackerHV.cxx:734
 AliMUONTrackerHV.cxx:735
 AliMUONTrackerHV.cxx:736
 AliMUONTrackerHV.cxx:737
 AliMUONTrackerHV.cxx:738
 AliMUONTrackerHV.cxx:739
 AliMUONTrackerHV.cxx:740
 AliMUONTrackerHV.cxx:741
 AliMUONTrackerHV.cxx:742
 AliMUONTrackerHV.cxx:743
 AliMUONTrackerHV.cxx:744
 AliMUONTrackerHV.cxx:745
 AliMUONTrackerHV.cxx:746
 AliMUONTrackerHV.cxx:747
 AliMUONTrackerHV.cxx:748
 AliMUONTrackerHV.cxx:749
 AliMUONTrackerHV.cxx:750
 AliMUONTrackerHV.cxx:751
 AliMUONTrackerHV.cxx:752
 AliMUONTrackerHV.cxx:753
 AliMUONTrackerHV.cxx:754
 AliMUONTrackerHV.cxx:755
 AliMUONTrackerHV.cxx:756
 AliMUONTrackerHV.cxx:757
 AliMUONTrackerHV.cxx:758
 AliMUONTrackerHV.cxx:759
 AliMUONTrackerHV.cxx:760
 AliMUONTrackerHV.cxx:761
 AliMUONTrackerHV.cxx:762
 AliMUONTrackerHV.cxx:763
 AliMUONTrackerHV.cxx:764
 AliMUONTrackerHV.cxx:765
 AliMUONTrackerHV.cxx:766
 AliMUONTrackerHV.cxx:767
 AliMUONTrackerHV.cxx:768
 AliMUONTrackerHV.cxx:769
 AliMUONTrackerHV.cxx:770
 AliMUONTrackerHV.cxx:771
 AliMUONTrackerHV.cxx:772
 AliMUONTrackerHV.cxx:773
 AliMUONTrackerHV.cxx:774
 AliMUONTrackerHV.cxx:775
 AliMUONTrackerHV.cxx:776
 AliMUONTrackerHV.cxx:777
 AliMUONTrackerHV.cxx:778
 AliMUONTrackerHV.cxx:779
 AliMUONTrackerHV.cxx:780
 AliMUONTrackerHV.cxx:781
 AliMUONTrackerHV.cxx:782
 AliMUONTrackerHV.cxx:783
 AliMUONTrackerHV.cxx:784
 AliMUONTrackerHV.cxx:785
 AliMUONTrackerHV.cxx:786
 AliMUONTrackerHV.cxx:787
 AliMUONTrackerHV.cxx:788
 AliMUONTrackerHV.cxx:789
 AliMUONTrackerHV.cxx:790
 AliMUONTrackerHV.cxx:791
 AliMUONTrackerHV.cxx:792
 AliMUONTrackerHV.cxx:793
 AliMUONTrackerHV.cxx:794
 AliMUONTrackerHV.cxx:795
 AliMUONTrackerHV.cxx:796
 AliMUONTrackerHV.cxx:797
 AliMUONTrackerHV.cxx:798
 AliMUONTrackerHV.cxx:799
 AliMUONTrackerHV.cxx:800
 AliMUONTrackerHV.cxx:801
 AliMUONTrackerHV.cxx:802
 AliMUONTrackerHV.cxx:803
 AliMUONTrackerHV.cxx:804
 AliMUONTrackerHV.cxx:805
 AliMUONTrackerHV.cxx:806
 AliMUONTrackerHV.cxx:807
 AliMUONTrackerHV.cxx:808
 AliMUONTrackerHV.cxx:809
 AliMUONTrackerHV.cxx:810
 AliMUONTrackerHV.cxx:811
 AliMUONTrackerHV.cxx:812
 AliMUONTrackerHV.cxx:813
 AliMUONTrackerHV.cxx:814
 AliMUONTrackerHV.cxx:815
 AliMUONTrackerHV.cxx:816
 AliMUONTrackerHV.cxx:817
 AliMUONTrackerHV.cxx:818
 AliMUONTrackerHV.cxx:819
 AliMUONTrackerHV.cxx:820
 AliMUONTrackerHV.cxx:821
 AliMUONTrackerHV.cxx:822
 AliMUONTrackerHV.cxx:823
 AliMUONTrackerHV.cxx:824
 AliMUONTrackerHV.cxx:825
 AliMUONTrackerHV.cxx:826
 AliMUONTrackerHV.cxx:827
 AliMUONTrackerHV.cxx:828