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$ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  Transition Radiation Detector                                            //
//  This class contains the basic functions for the Transition Radiation     //
//  Detector.                                                                //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include <TGeoGlobalMagField.h>
#include <TVirtualMC.h>
#include <TGeoManager.h>
 
#include "AliMC.h"
#include "AliMagF.h"
#include "AliRun.h"
#include "AliLoader.h"

#include "AliTRD.h"
#include "AliTRDdigitizer.h"
#include "AliTRDdigitsManager.h"
#include "AliTRDgeometry.h"
#include "AliTRDhit.h"
#include "AliTRDrawData.h"
#include "AliTRDCommonParam.h"

ClassImp(AliTRD)
 
//_____________________________________________________________________________
AliTRD::AliTRD()
  :AliDetector()
  ,fGeometry(0)
  ,fGasDensity(0)
  ,fFoilDensity(0)
  ,fGasNobleFraction(0)
  ,fPrimaryIonisation(0)
{
  //
  // Default constructor
  //
 
}
 
//_____________________________________________________________________________
AliTRD::AliTRD(const char *name, const char *title)
  :AliDetector(name,title)
  ,fGeometry(0)
  ,fGasDensity(0)
  ,fFoilDensity(0)
  ,fGasNobleFraction(0)
  ,fPrimaryIonisation(0)
{
  //
  // Standard constructor for the TRD
  //

  // Check that FRAME is there otherwise we have no place where to put TRD
  AliModule *frame = gAlice->GetModule("FRAME");
  if (!frame) {
    AliError("TRD needs FRAME to be present\n");
    exit(1);
  } 

  // Define the TRD geometry
  if ((frame->IsVersion() == 0) ||
      (frame->IsVersion() == 1)) {
    fGeometry = new AliTRDgeometry();
  }
  else {
    AliError("Could not find valid FRAME version\n");
    exit(1);
  }

  // Allocate the hit array
  fHits = new TClonesArray("AliTRDhit",405);
  gAlice->GetMCApp()->AddHitList(fHits);

}

//_____________________________________________________________________________
AliTRD::~AliTRD()
{
  //
  // TRD destructor
  //

  if (fGeometry) {
    delete fGeometry;
    fGeometry = 0;
  }

  if (fHits) {
    delete fHits;
    fHits     = 0;
  }

}

//_____________________________________________________________________________
void AliTRD::Hits2Digits()
{
  //
  // Create digits
  //

  AliTRDdigitizer digitizer("TRDdigitizer","TRD digitizer class");
  AliLog::SetClassDebugLevel("TRDdigitizer",AliDebugLevel());

  // Initialization
  digitizer.InitDetector();
    
  if (!fLoader->TreeH()) {
    fLoader->LoadHits("read");
  }
  fLoader->LoadDigits("recreate");

  AliRunLoader *runLoader = fLoader->GetRunLoader(); 

  for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
    runLoader->GetEvent(iEvent);
    digitizer.Open(runLoader,iEvent);
    digitizer.MakeDigits();
    digitizer.WriteDigits();
  }

  fLoader->UnloadHits();
  fLoader->UnloadDigits();

}

//_____________________________________________________________________________
void AliTRD::Hits2SDigits()
{
  //
  // Create summable digits
  //

  AliTRDdigitizer digitizer("TRDdigitizer","TRD digitizer class");
  // For the summable digits
  digitizer.SetSDigits(kTRUE);
  AliLog::SetClassDebugLevel("TRDdigitizer",AliDebugLevel());

  // Initialization
  digitizer.InitDetector();
    
  if (!fLoader->TreeH()) {
    fLoader->LoadHits("read");
  }
  fLoader->LoadSDigits("recreate");

  AliRunLoader *runLoader = fLoader->GetRunLoader(); 

  for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) {
    runLoader->GetEvent(iEvent);
    digitizer.Open(runLoader,iEvent);
    digitizer.MakeDigits();
    digitizer.WriteDigits();
  }

  fLoader->UnloadHits();
  fLoader->UnloadSDigits();
  
}

//_____________________________________________________________________________
AliDigitizer *AliTRD::CreateDigitizer(AliDigitizationInput* digInput) const
{
  //
  // Creates a new digitizer object
  //

  return new AliTRDdigitizer(digInput);

}

//_____________________________________________________________________________
void AliTRD::SDigits2Digits()
{
  //
  // Create final digits from summable digits
  //

  // Create the TRD digitizer
  AliTRDdigitizer digitizer("TRDdigitizer","TRD digitizer class");  
  AliLog::SetClassDebugLevel("TRDdigitizer",AliDebugLevel());

  // Set the parameter
  digitizer.SetEvent(gAlice->GetEvNumber());

  // Initialization
  digitizer.InitDetector();

  // Read the s-digits via digits manager
  AliTRDdigitsManager sdigitsManager;
 
  AliLog::SetClassDebugLevel("TRDdigitisManager",AliDebugLevel());
  sdigitsManager.SetSDigits(kTRUE);
  sdigitsManager.CreateArrays();
  
  if (!fLoader->TreeS()) { 
    if (fLoader->LoadSDigits("read")) {
      return;
    }
  }
  if (!fLoader->TreeS()) {
    AliError(Form("Error while reading SDigits for event %d",gAlice->GetEvNumber()));
    return;
  }
  
  sdigitsManager.ReadDigits(fLoader->TreeS());

  // Add the s-digits to the input list 
  digitizer.AddSDigitsManager(&sdigitsManager);

  // Convert the s-digits to normal digits
  digitizer.SDigits2Digits();

  // Store the digits
  if (!fLoader->TreeD()) {
    fLoader->MakeTree("D");
  }
  if (digitizer.MakeBranch(fLoader->TreeD())){
    digitizer.WriteDigits();
  }

}

//_____________________________________________________________________________
void AliTRD::Digits2Raw() 
{
  //
  // Convert digits of the current event to raw data
  //

  fLoader->LoadDigits();
  TTree *digits = fLoader->TreeD();
  if (!digits) {
    AliError("No digits tree");
    return;
  }

  AliTRDrawData rawWriter;
  if (!rawWriter.Digits2Raw(digits)) {
    AliError("The raw writer could not load the digits tree");
  }

  fLoader->UnloadDigits();

}

//_____________________________________________________________________________
void AliTRD::AddHit(Int_t track, Int_t det, Float_t *hits, Int_t q
                  , Float_t time, Bool_t inDrift)
{
  //
  // Add a hit for the TRD
  // 

  TClonesArray &lhits = *fHits;
  AliTRDhit *hit = new(lhits[fNhits++]) AliTRDhit(fIshunt
                                                 ,track
                                                 ,det
                                                 ,hits
                                                 ,q
                                                 ,time);

  if (inDrift) {
    hit->SetDrift();
  }
  else {
    hit->SetAmplification();
  }

  if (q < 0) {
    hit->SetTRphoton();
  }

}
 
//_____________________________________________________________________________
void AliTRD::CreateGeometry()
{
  //
  // Creates the volumes for the TRD chambers
  //

  // Check that FRAME is there otherwise we have no place where to put the TRD
  AliModule *frame = gAlice->GetModule("FRAME");
  if (!frame) {
    AliFatal("The TRD needs the FRAME to be defined first");
  }

  fGeometry->CreateGeometry(fIdtmed->GetArray() - 1299);

}

//_____________________________________________________________________________
void AliTRD::CreateMaterials()
{
  //
  // Create the materials for the TRD
  //

  Int_t   isxfld = ((AliMagF *) TGeoGlobalMagField::Instance()->GetField())->Integ();
  Float_t sxmgmx = ((AliMagF *) TGeoGlobalMagField::Instance()->GetField())->Max();
  
  //////////////////////////////////////////////////////////////////////////
  //     Define Materials 
  //////////////////////////////////////////////////////////////////////////

  // Aluminum
  AliMaterial( 1,"Al",  26.98, 13.0, 2.7,    8.9,  37.2);
  // Copper
  AliMaterial( 2,"Cu",  63.54, 29.0, 8.96,   1.43, 14.8);
  // Carbon
  AliMaterial( 3,"C" ,  12.01,  6.0, 2.265, 18.8,  74.4);
  // Carbon for fiber mats
  AliMaterial( 4,"C2",  12.01,  6.0, 1.75,  18.8,  74.4);
  // Zinc
  AliMaterial( 5,"Sn", 118.71, 50.0, 7.31,   1.21, 14.8);
  // Silicon
  AliMaterial( 6,"Si",  28.09, 14.0, 2.33,   9.36, 37.2);
  // Iron
  AliMaterial( 7,"Fe",  55.85, 26.0, 7.87,   1.76, 14.8);

  // Air  
  Float_t aAir[4]   = { 12.011   , 14.0     , 15.9994  , 36.0      };
  Float_t zAir[4]   = {  6.0     ,  7.0     ,  8.0     , 18.0      };
  Float_t wAir[4]   = {  0.000124,  0.755267,  0.231781,  0.012827 };
  Float_t dAir      = 1.20479e-03;
  AliMixture(51,"Air",          aAir,   zAir,   dAir,    4, wAir  );
  // Polyethilene (CH2) 
  Float_t ape[2]    = { 12.011 ,  1.0079 };
  Float_t zpe[2]    = {  6.0   ,  1.0    };
  Float_t wpe[2]    = {  1.0   ,  2.0    };
  Float_t dpe       = 0.95;
  AliMixture(52,"Polyethilene", ape,    zpe,    dpe,    -2, wpe   );
  // Gas mixtures
  // Xe/CO2-gas-mixture (85% / 15%) 
  Float_t aXeCO2[3] = { 131.29   ,  12.0107 ,  15.9994  };
  Float_t zXeCO2[3] = {  54.0    ,   6.0    ,   8.0     };
  Float_t wXeCO2[3] = {   8.5    ,   1.5    ,   3.0     }; 
  Float_t fxc       = 0.85;
  Float_t dxe       = 0.00549; // at 20C
  Float_t dco       = 0.00186; // at 20C
  Float_t dgmXe     = fxc * dxe + (1.0 - fxc) * dco;
  // Ar/CO2-gas-mixture
  Float_t aArCO2[3] = {  39.948  ,  12.0107 ,  15.9994  };
  Float_t zArCO2[3] = {  18.0    ,   6.0    ,   8.0     };
  Float_t wArCO2[3] = {   8.2    ,   1.8    ,   3.6     }; 
  Float_t fac       = 0.82;
  Float_t dar       = 0.00166; // at 20C
  Float_t dgmAr     = fac * dar + (1.0 - fac) * dco;
  if      (AliTRDCommonParam::Instance()->IsXenon()) {
    AliMixture(53,"XeCO2",        aXeCO2, zXeCO2, dgmXe,  -3, wXeCO2);
  }
  else if (AliTRDCommonParam::Instance()->IsArgon()) {
    AliInfo("Gas mixture: Ar C02 (80/20)");
    AliMixture(53,"ArCO2",        aArCO2, zArCO2, dgmAr,  -3, wArCO2);
  }
  else {
    AliFatal("Wrong gas mixture");
    exit(1);
  }
  // G10
  Float_t aG10[4]   = {  1.0079, 12.011 , 15.9994, 28.086  };
  Float_t zG10[4]   = {  1.0   ,  6.0   ,  8.0   , 14.0    };
  Float_t wG10[4]   = {  0.023 ,  0.194 ,  0.443 ,  0.340  };
  Float_t dG10      = 2.0;
  AliMixture(54,"G10",          aG10,  zG10,  dG10,   4,wG10  );
  // Water
  Float_t awa[2]    = {  1.0079, 15.9994 };
  Float_t zwa[2]    = {  1.0   ,  8.0    };
  Float_t wwa[2]    = {  2.0   ,  1.0    };
  Float_t dwa       = 1.0;
  AliMixture(55,"Water",        awa,   zwa,   dwa,   -2,wwa   );
  // Rohacell (C5H8O2), X0 = 535.005cm
  Float_t arh[3]    = { 12.011 ,  1.0079, 15.9994 };
  Float_t zrh[3]    = {  6.0   ,  1.0   ,  8.0    };
  Float_t wrh[3]    = {  5.0   ,  8.0   ,  2.0    };
  Float_t drh       = 0.075;   
  AliMixture(56,"Rohacell",     arh,   zrh,   drh,   -3,wrh   );
  // Epoxy (C18H19O3)
  Float_t aEpoxy[3] = { 15.9994,  1.0079, 12.011  }; 
  Float_t zEpoxy[3] = {  8.0   ,  1.0   ,  6.0    }; 
  Float_t wEpoxy[3] = {  3.0   , 19.0   , 18.0    }; 
  Float_t dEpoxy    = 1.8 ; 
  AliMixture(57,"Epoxy",        aEpoxy,zEpoxy,dEpoxy,-3,wEpoxy);
  // Araldite, low density epoxy (C18H19O3)
  Float_t aAral[3]  = { 15.9994,  1.0079, 12.011  }; 
  Float_t zAral[3]  = {  8.0   ,  1.0   ,  6.0    }; 
  Float_t wAral[3]  = {  3.0   , 19.0   , 18.0    }; 
  Float_t dAral     = 1.12; // Hardener: 1.15, epoxy: 1.1, mixture: 1/2
  AliMixture(58,"Araldite",     aAral, zAral, dAral, -3,wAral );
  // Mylar
  Float_t aMy[3]    = { 12.011 ,   1.0  , 15.9994 };
  Float_t zMy[3]    = {  6.0   ,   1.0  ,  8.0    };
  Float_t wMy[3]    = {  5.0   ,   4.0  ,  2.0    };
  Float_t dMy       = 1.39;
  AliMixture(59,"Mylar",        aMy,   zMy,   dMy,   -3,wMy   );
  // Polypropylene (C3H6) for radiator fibers
  Float_t app[2]    = { 12.011 ,  1.0079 };
  Float_t zpp[2]    = {  6.0   ,  1.0    };
  Float_t wpp[2]    = {  3.0   ,  6.0    };
  Float_t dpp       = 0.068;
  AliMixture(60,"Polypropylene",app,   zpp,   dpp,   -2,wpp   );
  // Aramide for honeycomb
  Float_t aAra[4]   = {  1.0079, 12.011 , 15.9994, 14.0067 };
  Float_t zAra[4]   = {  1.0   ,  6.0   ,  8.0   ,  7.0    };
  Float_t wAra[4]   = {  3.0   ,  1.0   ,  1.0   ,  1.0    };
  Float_t dAra      = 0.032;
  AliMixture(61,"Aramide",      aAra,  zAra,  dAra,  -4,wAra  );
  // GFK for Wacosit (Epoxy + Si)
  Float_t aGFK[4]   = {  1.0079, 12.011 , 15.9994, 28.086  };
  Float_t zGFK[4]   = {  1.0   ,  6.0   ,  8.0   , 14.0    };
  Float_t wGFK[4]   = {  0.0445,  0.5031,  0.1118,  0.340  };
  Float_t dGFK      = 2.0;
  AliMixture(62,"GFK",          aGFK,  zGFK,  dGFK,   4,wGFK  );

  //////////////////////////////////////////////////////////////////////////
  //     Tracking Media Parameters 
  //////////////////////////////////////////////////////////////////////////

  // General tracking parameter
  Float_t tmaxfd    = -10.0;
  Float_t stemax    = -1.0e10;
  Float_t deemax    = -0.1;
  Float_t epsil     =  1.0e-4;
  Float_t stmin     = -0.001;

  // Al Frame 
  AliMedium( 1,"Al Frame"   , 1,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Air 
  AliMedium( 2,"Air"        ,51,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Wires
  AliMedium( 3,"Wires"      , 2,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // All other ROB materials (caps, etc.)
  AliMedium( 4,"ROB Other"  , 2,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Cu pads 
  AliMedium( 5,"Padplane"   , 2,1,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Fee + cables 
  AliMedium( 6,"Readout"    , 2,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // C frame (Wacosit) 
  AliMedium( 7,"Wacosit"    ,62,0,isxfld,sxmgmx
	      ,tmaxfd,stemax,deemax,epsil,stmin);
  // INOX of cooling bus bars
  AliMedium( 8,"Cooling bus", 7,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Gas-mixture (Xe/CO2) 
  AliMedium( 9,"Gas-mix"    ,53,1,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Honeycomb
  AliMedium(10,"Honeycomb"  ,61,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Araldite glue
  AliMedium(11,"Glue"       ,58,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // G10-plates
  AliMedium(13,"G10-plates" ,54,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Cooling water
  AliMedium(14,"Water"      ,55,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Rohacell for the radiator
  AliMedium(15,"Rohacell"   ,56,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Al layer in MCMs
  AliMedium(16,"MCM-Al"     , 1,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Sn layer in MCMs
  AliMedium(17,"MCM-Sn"     , 5,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Cu layer in MCMs
  AliMedium(18,"MCM-Cu"     , 2,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // G10 layer in MCMs
  AliMedium(19,"MCM-G10"    ,54,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Si in readout chips
  AliMedium(20,"Chip-Si"    , 6,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Epoxy in readout chips
  AliMedium(21,"Chip-Ep"    ,57,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // PE in connectors
  AliMedium(22,"Conn-PE"    ,52,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Cu in connectors
  AliMedium(23,"Chip-Cu"    , 2,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Al of cooling pipes
  AliMedium(24,"Cooling"    , 1,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Cu in services
  AliMedium(25,"Serv-Cu"    , 2,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Carbon fiber mat
  AliMedium(26,"Carbon"     , 4,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Mylar foil
  AliMedium(27,"Mylar"      ,59,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);
  // Polypropylene fibers
  AliMedium(28,"Fiber"      ,60,0,isxfld,sxmgmx
              ,tmaxfd,stemax,deemax,epsil,stmin);

  // Save the density values for the TRD absorbtion
  Float_t dmy  = 1.39;
  fFoilDensity = dmy;
  if      (AliTRDCommonParam::Instance()->IsXenon()) {
    fGasDensity       = dgmXe;
    fGasNobleFraction = fxc;
  }
  else if (AliTRDCommonParam::Instance()->IsArgon()) {
    fGasDensity       = dgmAr;
    fGasNobleFraction = fac;
  }

}
 
//_____________________________________________________________________________
void AliTRD::Init()
{
  //
  // Initialize the TRD detector after the geometry has been created
  //

  AliDebug(1,"++++++++++++++++++++++++++++++++++++++++++++++");

  if (fGeometry->IsVersion() != 1) {
    AliError("Not a valid geometry");
  }

}

//_____________________________________________________________________________
void AliTRD::ResetDigits()
{
  //
  // Reset number of digits and the digits array for this detector
  //

  fNdigits = 0;

  if (fDigits) {
    fDigits->Clear();
  }

}

//_____________________________________________________________________________
void AliTRD::SetTreeAddress()
{
  //
  // Set the branch addresses for the trees.
  //

  if (fLoader->TreeH() && 
      (fHits == 0x0)) {
    fHits = new TClonesArray("AliTRDhit",405);
  }
  AliDetector::SetTreeAddress();

}

//_____________________________________________________________________________
Bool_t AliTRD::Raw2SDigits(AliRawReader *rawReader)
{
  //
  // Converts RAW data to SDigits
  //

  AliLoader *loader = fRunLoader->GetLoader("TRDLoader");
  if (!loader) {
    AliError("Can not get TRD loader from Run Loader");
    return kFALSE;
  }
    
  TTree *tree = 0;
  tree = loader->TreeS();
  if (!tree) {
    loader->MakeTree("S");
    tree = loader->TreeS();
  }

  AliTRDdigitizer digitizer("TRDdigitizer","TRD digitizer class");  

  AliTRDrawData       *rawdata        = new AliTRDrawData();
  AliTRDdigitsManager *digitsManager  = rawdata->Raw2Digits(rawReader);

  // Create the s-digits manager
  AliTRDdigitsManager *sdigitsManager = new AliTRDdigitsManager();

  if (sdigitsManager) {

    sdigitsManager->SetSDigits(kTRUE);
    sdigitsManager->CreateArrays();

    // Convert the digits into s-digits
    digitizer.Digits2SDigits(digitsManager,sdigitsManager);

    sdigitsManager->MakeBranch(tree);
    sdigitsManager->WriteDigits();

    delete digitsManager;

    return kTRUE;

  } 
  else {

    return kFALSE;

  }

}

//_____________________________________________________________________________
AliLoader *AliTRD::MakeLoader(const Char_t *topfoldername)
{
  //
  // Create a loader for the TRD tracklets
  //

 fLoader = new AliLoader(GetName(),topfoldername);

 AliInfo("Adding Tracklets-loader");

 AliDataLoader *dl = new AliDataLoader("TRD.Tracklets.root"
                                      ,"tracklets"
                                      ,"tracklets");
 fLoader->AddDataLoader(dl);

                dl = new AliDataLoader("TRD.GtuTracks.root"
                                      ,"gtutracks"
                                      ,"gtutracks");
 fLoader->AddDataLoader(dl);

 return fLoader;

}

//_____________________________________________________________________________
AliTRD &AliTRD::operator=(const AliTRD &trd)
{
  //
  // Assignment operator
  //

  if (this != &trd) {
    ((AliTRD &) trd).Copy(*this);
  }

  return *this;

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