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 "AliGenHBTosl.h" 
#include "AliLog.h"

//__________________________________________________________
/////////////////////////////////////////////////////////////
//                                                         //
//  class AliGenHBTosl                                     //
//                                                         //
//  Genarator simulating particle correlations             //
//                                                         //
//  The main idea of the generator is to produce particles //
//  according to some distribution of two particle         //
//  property. In HBT they are qout,qsie and qlong.         //
//  In order to be able to generate signal that produces   //
//  given two particle correlation background must be      //
//  known before in order to produce the shape of signal   //
//  to randomize given distribution from.                  //
//                                                         //
//  The generator works as follows:                        //
//  1. Coarse Background (fQCoarseBackground) is generated //
//     ade  from the particles                             //
//     given by the external generator (variable           //
//     fGenerator) by the mixing technique.                //
//  2. Coarse signal is prduced by multiplying Coarse      //
//     background by a required function                   //
//     See method FillCoarseSignal                         //
//  3. Signal is randomized out of the coarse signal       //
//     histogram (two particle property). First particle   //
//     is taken from the external generator, and the       //
//     second one is CALCULATED on the basis of the first  //
//     one and the two particle property (qout,qside,qlong)//
//     Background is made by the mixing out of the         //
//     genereted signal events.                            //
//     This step is cotinued up to the moment signal       //
//     histogram has enough statistics (data member        //
//     fMinFill)                                           //
//     See method StartSignalPass1()                       //
//  4. chi is calculated for each bin (chiarray variqable) // 
//     (not the chi2 because sign is important)            //
//     Two particle prioperty                              //
//     (qout,qside,qlong) is chosen at the points that     //
//     chi is the smallest. First particle is taken from   //
//     the the external generator (fGenerator) and second's /
//     momenta are caclulated out of their momenta and     //
//     (qout,qside,qlong). Background is updated           //
//     continuesely for all the events. This step is       //
//     continued until stability conditions are fullfiled  //
//     or maximum number of iteration is reached.          //
//  5. The same as step 4 but events are stored.           //
//                                                         //
////////////////////////////////////////////////////////////

#include <TCanvas.h>


#include <TH3D.h>
#include <TList.h>
#include <TPDGCode.h>
#include <TParticle.h>
#include <AliStack.h>
#include <TMath.h>
#include <TVector3.h>
#include <TStopwatch.h>
#include <TFile.h>

#include "AliGenCocktailAfterBurner.h"
#include "AliGeVSimParticle.h"
#include "AliGenGeVSim.h"
#include "AliGenHIJINGpara.h"


/***********************************************************/
using std::cout;
using std::endl;
using std::ofstream;
using std::ios;
ClassImp(AliGenHBTosl)

AliGenHBTosl::AliGenHBTosl():
 AliGenerator(),
 fQCoarseBackground(0x0),
 fQCoarseSignal(0x0),
 fQSignal(0x0),
 fQBackground(0x0),
 fQSecondSignal(0x0),
 fQSecondBackground(0x0),
 fQRange(0.06),
 fQNBins(60),
 fGenerator(0x0),
 fStackBuffer(0),
 fBufferSize(5),
 fNBinsToScale(Int_t(fQNBins*0.1)),
 fDebug(0),
 fSignalShapeCreated(0),
 fMaxIterations(1000),
 fMaxChiSquereChange(0.01),
 fMaxChiSquerePerNDF(1.5), 
 fQRadius(8.0),
 fPID(kPiPlus),
 fSamplePhiMin(-0.01),
 fSamplePhiMax(TMath::TwoPi()+0.01),
 fSignalRegion(0.0),
 fMinFill(1000),
 fSwapped(0),
 fLogFile(0x0)
{
//default constructor
}
/***********************************************************/

AliGenHBTosl::AliGenHBTosl(Int_t n, Int_t pid):
 AliGenerator(n),
 fQCoarseBackground(0x0),
 fQCoarseSignal(0x0),
 fQSignal(0x0),
 fQBackground(0x0),
 fQSecondSignal(0x0),
 fQSecondBackground(0x0),
 fQRange(0.06),
 fQNBins(60),
 fGenerator(0x0),
 fStackBuffer(0),
 fBufferSize(5),
 fNBinsToScale(Int_t(fQNBins*0.1)),
 fDebug(0),
 fSignalShapeCreated(kFALSE),
 fMaxIterations(1000),
 fMaxChiSquereChange(0.01),
 fMaxChiSquerePerNDF(1.5),
 fQRadius(8.0),
 fPID(pid),
 fSamplePhiMin(-0.01),
 fSamplePhiMax(TMath::TwoPi()+0.01),
 fSignalRegion(0.0),
 fMinFill(1000),
 fSwapped(0),
 fLogFile(0x0)
{
//default constructor
}

AliGenHBTosl::AliGenHBTosl(const AliGenHBTosl & hbt):
 AliGenerator(-1),
 fQCoarseBackground(0x0),
 fQCoarseSignal(0x0),
 fQSignal(0x0),
 fQBackground(0x0),
 fQSecondSignal(0x0),
 fQSecondBackground(0x0),
 fQRange(0.06),
 fQNBins(60),
 fGenerator(0x0),
 fStackBuffer(0),
 fBufferSize(5),
 fNBinsToScale(Int_t(fQNBins*0.1)),
 fDebug(0),
 fSignalShapeCreated(kFALSE),
 fMaxIterations(1000),
 fMaxChiSquereChange(0.01),
 fMaxChiSquerePerNDF(1.5),
 fQRadius(8.0),
 fPID(kPiPlus),
 fSamplePhiMin(-0.01),
 fSamplePhiMax(TMath::TwoPi()+0.01),
 fSignalRegion(0.0),
 fMinFill(1000),
 fSwapped(0),
 fLogFile(0x0)
{
// Copy constructor
    hbt.Copy(*this);
}
/***********************************************************/

AliGenHBTosl::~AliGenHBTosl()
{
//destructor
 delete fQCoarseSignal;
 delete fQCoarseBackground;
 delete fQSignal;
 delete fQBackground;
 delete fGenerator; 
 delete fQSecondSignal;
 delete fQSecondBackground;
 delete fLogFile;
}
/***********************************************************/

void AliGenHBTosl::Init()
{
  //Initializes generator
  if (fGenerator == 0x0)
   { 
   
     AliGenHIJINGpara* bkggen = new AliGenHIJINGpara(fNpart*4);
     fGenerator = bkggen;

/*     
     AliGenGeVSim * gevsim = new AliGenGeVSim(0.0);
     AliGeVSimParticle* kplus = new AliGeVSimParticle(fPID,1,fNpart, 0.17, 0.9);
     gevsim->AddParticleType(kplus);
     
     fGenerator = gevsim;
*/

/*   
   
    AliMevSimConfig *c = new AliMevSimConfig(1);
    c->SetRectPlane(1);                                 // reaction plane control, model 4
    c->SetGrid(80,80);

    AliGenMevSim *mevsim = new AliGenMevSim(c);
    mevsim->SetPtRange(0.001, 3);
    mevsim->SetMomentumRange(0.1, 3);
    mevsim->SetTrackingFlag(0);
    mevsim->SetOrigin(0.0, 0.0, 0.0);
    mevsim->SetSigma(0.0, 0.0, 0.0);
    AliMevSimParticle *kplus = new AliMevSimParticle(kKPlus, fNpart, 0, 0.25, 0.0, 2, 0.15, 0.0, 0.0 );
    mevsim->AddParticleType(kplus);
    fGenerator = mevsim;
*/
    
    fGenerator->SetOrigin(fOrigin[0],fOrigin[1],fOrigin[2]);
    static const Double_t kDegToRadCF = 180./TMath::Pi();
    fGenerator->SetMomentumRange(fPtMin,fPtMax);
    fGenerator->SetPhiRange(kDegToRadCF*fPhiMin,kDegToRadCF*fPhiMax);
    fGenerator->SetYRange(fYMin,fYMax);
    fGenerator->SetThetaRange(kDegToRadCF*fThetaMin,kDegToRadCF*fThetaMax);
    fGenerator->Init();
    
   }

//  fQCoarseBackground =  new TH3D("fQCoarseBackground","",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange);
//  fQCoarseSignal =  new TH3D("fQCoarseSignal","fQCoarseSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange);
//  fQCoarseBackground->Sumw2();
//  fQCoarseSignal->Sumw2();
   
  fQSignal =  new TH3D("fQSignal1","fQSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange);
  fQBackground =  new TH3D("fQBackground1","fQBackground",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange);

  fQSecondSignal =  new TH3D("fQSignal2","fQSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange);
  fQSecondBackground =  new TH3D("fQBackground2","fQBackground",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange);

  fQSignal->Sumw2();
  fQBackground->Sumw2();
  fQSecondSignal->Sumw2();
  fQSecondBackground->Sumw2();
  
  fLogFile = new ofstream("BadEvent",ios::out);
  
}
/***********************************************************/

void AliGenHBTosl::Generate()
{
 //the main method
  
 ofstream& logfile = *fLogFile;
 logfile<<"Generate"<<"Attempts to generate "<<fNpart<<" particles.";
 
 
 if (fStackBuffer == 0x0) fStackBuffer = new TList();
 //Here is initialization level
 if (fSignalShapeCreated == kFALSE)
  {
   TH3D *hs = 0x0, *hb = 0x0;
   TFile* file;

   file = TFile::Open("QTSignal.root");
   if (file)
    {
     hs = (TH3D*)file->Get("fQSignal1");
     if (hs) hs->SetDirectory(0x0);
    }
   delete file;
   
   file = TFile::Open("QTBackground.root");
   if (file)
    {
     hb = (TH3D*)file->Get("fQBackground1");
     if (hb) hb->SetDirectory(0x0);
    }
   delete file;
   
   if (hs && hb)
    {
      Info("Generate","**********************************");
      Info("Generate","Found starting histograms in files");
      Info("Generate","**********************************");
      delete fQSignal;
      delete fQBackground;
      fQSignal = hs;
      fQBackground = hb;
    }
   else
    { 
      TH3D *cs = 0x0, *cb = 0x0;
      file = TFile::Open("QTCoarseBackground.root");
      if (file)
       {
        cb = (TH3D*)file->Get("fQCoarseBackground");
        if (cb) cb->SetDirectory(0x0);
       }
      delete file;

      file = TFile::Open("QTCoarseSignal.root");
      if (file)
       {
        cs = (TH3D*)file->Get("fQCoarseSignal");
        if (cs) cs->SetDirectory(0x0);
       }
      delete file;

      if (cs && cb)
       {

         Info("Generate","Got Coarse signal and bkg from files");
         delete fQCoarseBackground;
         delete fQCoarseSignal;
         fQCoarseSignal = cs;
         fQCoarseBackground = cb;
       }
      else
       { 
         if (cb)
           {
             Info("Generate","Got Coarse bkg from file");
             delete fQCoarseBackground;
             fQCoarseBackground = cb;
           }
         else
           {
             fQCoarseBackground =  new TH3D("fQCoarseBackground","",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange);
             fQCoarseBackground->Sumw2();

             FillCoarse();      //create coarse background - just to know the spectrum
           }

         fQCoarseSignal =  new TH3D("fQCoarseSignal","fQCoarseSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange);
         fQCoarseSignal->Sumw2();
         FillCoarseSignal();//create first coarse signal by brutal multplication coarse background and required function shape
       }
       
      StartSignal();     //Initilizes the stack that is used for generation
    }  
   fSignalShapeCreated = kTRUE;
  }

 AliStack* stack = RotateStack();

 AliStack* genstack = fGenerator->GetStack();
 if (genstack == 0x0)
  {
   genstack = new AliStack(fNpart);
   fGenerator->SetStack(genstack);  
  }
 else
  {
   genstack->Reset();
  }
 
 fGenerator->Generate();
 Int_t ntr = 0;
 if ( genstack->GetNtrack() < fNpart/2)
  {
    Warning("Generate","************************************************************");
    Warning("Generate","Generator generated (%d) less particles then expected (%d).",
             stack->GetNtrack(),fNpart/2);
    Warning("Generate","************************************************************");
  }

 TH3D* work = new TH3D("work","work",fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange);
 work->SetDirectory(0x0);
 work->Sumw2();
 
 Double_t*** chiarray = new Double_t** [fQNBins+1];
 Double_t*** sigarray = new Double_t** [fQNBins+1];
 
 for (Int_t i = 1; i<=fQNBins; i++)
   {
      chiarray[i] =  new Double_t* [fQNBins+1];
      sigarray[i] =  new Double_t* [fQNBins+1];
      
      for (Int_t k = 1; k<=fQNBins; k++)
       {
         chiarray[i][k] =  new Double_t [fQNBins+1];
         sigarray[i][k] =  new Double_t [fQNBins+1];
       }
   }

      
 Double_t scale = Scale(fQSignal,fQBackground);
 work->Divide(fQSignal,fQBackground,scale);
 
 Double_t binwdh = work->GetBinWidth(1)/2.;

 for (Int_t k = 1; k<=fQNBins; k++)
   {
    Double_t z = work->GetZaxis()->GetBinCenter(k);
    for (Int_t j = 1; j<=fQNBins; j++)
      {  
       Double_t y = work->GetYaxis()->GetBinCenter(j);
       for (Int_t i = 1; i<=fQNBins; i++)
         {
              sigarray[i][j][k] = fQSignal->GetBinContent(i,j,k);//store current value of signal histogram
              Double_t x = work->GetXaxis()->GetBinCenter(i);//get center value of a bin (qinv)
              Double_t v = GetQOutQSideQLongCorrTheorValue(x,y,z);//get expected value of CF in that qinv
              Double_t diff = v - work->GetBinContent(i,j,k);//store difference betweeon current value, and desired value
              chiarray[i][j][k] = diff; // no-x x is a weight to get good distribution
         }
       }
    }
 
 char msg[1000];
 logfile<<endl;
 snprintf(msg,1000, "\n");
 Int_t middlebin = fQNBins/2;
 
 for (Int_t k = middlebin-5; k < middlebin+5; k++)
   {
     Double_t tx = work->GetXaxis()->GetBinCenter(30);
     Double_t ty = work->GetYaxis()->GetBinCenter(30);
     Double_t tz = work->GetZaxis()->GetBinCenter(k);
     snprintf(msg,1000, "% 6.5f ",GetQOutQSideQLongCorrTheorValue(tx,ty,tz));
     logfile<<msg;
   }
 logfile<<endl;
  
 for (Int_t k = middlebin-5; k < middlebin+5; k++)
  {
    snprintf(msg,1000, "% 6.5f ",work->GetBinContent(30,30,k));
    logfile<<msg;
  }
 logfile<<endl;

 for (Int_t k = middlebin-5; k < middlebin+5; k++)
  {
    snprintf(msg, 1000, "% 6.5f ",chiarray[30][30][k]);
    logfile<<msg;
  }
 logfile<<endl;
 
 TParticle particle(fPID,0,-1,-1,-1,-1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
 TParticle* second = &particle;

 Bool_t shortloop = kTRUE;
 Int_t sc = 0;//security check against infinite loop

 while ( (ntr+1) < fNpart)
   {
     Int_t xmax = 1; 
     Int_t ymax = 1; 
     Int_t zmax = 1; 
     Double_t qout;
     Double_t qside;
     Double_t qlong;
     
     
     Int_t loopmin;
     Int_t loopmax;
     
     if (shortloop)
      {
        shortloop = kFALSE;
        loopmax = fQNBins;
        loopmin = 1;
      }
     else 
      {
        shortloop = kTRUE;
        loopmax = fQNBins/2+fQNBins/4;
        loopmin = fQNBins/2-fQNBins/4;
      }
     
     
     for (Int_t k = loopmin; k <=loopmax; k++ )
      {
       qlong = work->GetZaxis()->GetBinCenter(k);
       for (Int_t j = loopmin; j<=loopmax; j++)
         {
          qside = work->GetYaxis()->GetBinCenter(j);
          for (Int_t i = loopmin; i<=loopmax; i++)
            {
              qout  = work->GetXaxis()->GetBinCenter(i);
              if (chiarray[xmax][ymax][zmax] < chiarray[i][j][k]) 
               {
                 xmax = i;
                 ymax = j;
                 zmax = k;
               }  
              
//              Double_t qdist = TMath::Sqrt(qout*qout + qside*qside + qlong*qlong);
              
//              Double_t fact = chiarray[i][j][k];//chiarray is chi2
//              if (fact > work->GetBinError(i,j,k))//if differece between what we want and 
//               {                                  //what we have is bigger than stat. error
//                 xmax = i;                        //we force to fill that bin
//                 ymax = j;
//                 zmax = k;
//                 break;
//               }
            }
         }
      }
     Double_t qlongc = work->GetZaxis()->GetBinCenter(zmax);
     Double_t qsidec = work->GetYaxis()->GetBinCenter(ymax);
     Double_t qoutc  = work->GetXaxis()->GetBinCenter(xmax);
     

     snprintf(msg,1000, "Generate Fill bin chi2(%d,%d,%d)=%f",xmax,ymax,zmax,chiarray[xmax][ymax][zmax]);
     logfile<<msg;
     
     qout  = gRandom->Uniform(qoutc -binwdh, qoutc +binwdh);
     qside = gRandom->Uniform(qsidec-binwdh, qsidec+binwdh);
     qlong = gRandom->Uniform(qlongc-binwdh, qlongc+binwdh);

     TParticle* first = 0;
     Int_t jj = 0;
     
     while (jj < genstack->GetNtrack())
      {
        TParticle* tmpp = genstack->Particle(jj++);
        if (tmpp->GetPdgCode() == fPID)
         {
           if (CheckParticle(tmpp,0x0,stack) == kFALSE)
            {
              first = tmpp;
              break;
            } 
         }
      } 
     
     if (first == 0x0)
      {
        if ( fDebug > 2 ) Info("StartSignal","No more particles of that type");
        break;
      }
     
     //Here put the check if this particle do not fall into signal region with other partticle
     
      Int_t retval = GetThreeD(first,second,qout,qside,qlong);
      if (retval)
       {
         //Info("StartSignal","Can not find momenta for this OSL and particle");
         continue;
       }
    //in case this particle is falling into signal area with another
    //particle we take a another pair
    //it can intruduce artificial correlations 
     Bool_t checkresult = CheckParticle(second,first,stack);
     if ( checkresult  && (sc < 10) ) 
      { 
        sc++;
        continue;
      }  
     sc = 0;
     
     //Put on output stack
     SetTrack(first,ntr);
     SetTrack(second,ntr);

     //Put on internal stack   
     Int_t etmp;
     SetTrack(first,etmp,stack);
     SetTrack(second,etmp,stack);
     
     Double_t y = GetQOutQSideQLongCorrTheorValue(qoutc,qsidec,qlongc);
      
     sigarray[xmax][ymax][zmax] ++; 
     chiarray[xmax][ymax][zmax] = scale*sigarray[xmax][ymax][zmax]/fQBackground->GetBinContent(xmax,ymax,zmax);
     chiarray[xmax][ymax][zmax] = (y - chiarray[xmax][ymax][zmax]);
      
    }
  
 Mix(fStackBuffer,fQBackground,fQSecondSignal); //upgrate background
 Mix(stack,fQSignal,fQSecondBackground); //upgrate signal
 
 delete work;
 
 for (Int_t i = 1; i<=fQNBins; i++)
   {
     for (Int_t k = 1; k<=fQNBins; k++)
      {
        delete [] chiarray[i][k]; 
        delete [] sigarray[i][k];
      }
     delete [] chiarray[i];
     delete [] sigarray[i];
   }
 delete [] chiarray;
 delete [] sigarray;
}
/***********************************************************/

void AliGenHBTosl::GetOneD(TParticle* first, TParticle* second,Double_t qinv)
{
//deprecated method that caclulates momenta of the second particle 
// out of qinv and the first particle    
//first particle is rotated that only X is non-zero

    
  Double_t m = first->GetMass();
  Double_t msqrd = m*m;
  Double_t fourmassSquered = 4.*msqrd;
  
  //Condition that R must fullfill to be possible to have qinv less smaller then randomized
//  Double_t rRange = qinv*TMath::Sqrt(qinv*qinv + fourmassSquered)/fourmassSquered;
//  Double_t r = gRandom->Uniform(rRange);

  Double_t r = gRandom->Uniform(qinv);
  Double_t phi = gRandom->Uniform(TMath::TwoPi());
  
  Double_t firstPx = first->P();//first particle is rotated that only X is non-zero  thus P==Px
  Double_t px = 2.*msqrd*firstPx + firstPx*qinv*qinv;
  Double_t temp = qinv*qinv*qinv*qinv  + fourmassSquered * (qinv*qinv - r*r );
  if (temp < 0.0)
   {
     Error("GetOneD","temp is less then 0: %f",temp);
     return;
   }
  temp = temp*(msqrd+firstPx*firstPx);
  
  px = (px - TMath::Sqrt(temp))/(2.*msqrd);
  
  Double_t py = r*TMath::Sin(phi);
  Double_t pz = r*TMath::Cos(phi);
  
  TVector3 firstpvector(first->Px(),first->Py(),first->Pz());
  TVector3 vector(px,py,pz);
  Rotate(firstpvector,vector);
 
  Double_t e = TMath::Sqrt(msqrd + vector.X()*vector.X() + vector.Y()*vector.Y() + vector.Z()*vector.Z());
  second->SetMomentum(vector.X(),vector.Y(),vector.Z(),e);
//  TParticle* f = new TParticle(first->GetPdgCode(),0,-1,-1,-1,-1, firstPx,0,0,e=TMath::Sqrt(msqrd+firstPx*firstPx),0.0,0.0,0.0,0.0);
//        TParticle(pdg, is, parent, -1, kFirstDaughter, kLastDaughter,
//                px, py, pz, e, vx, vy, vz, tof);
 
  AliDebug(1,Form("Randomized qinv = %f, obtained = %f",qinv,GetQInv(first,second)));

}
/***********************************************************/

Int_t AliGenHBTosl::GetThreeD(TParticle* first,TParticle* second, Double_t qout, Double_t qside, Double_t qlong)
{
//deprecated method that caclulates momenta of the second particle 
//out of  qout qside and qlong and the first particle    
  Double_t m = first->GetMass();
  Double_t m2 = m*m;
  
  Double_t px = first->P();//first particle is rotated that only X is non-zero  thus P==Px
  Double_t px2 = px*px;

  
  Double_t qout2 = qout*qout;
  Double_t qside2 = qside*qside;
  Double_t qlong2 = qlong*qlong;
  
  
  Double_t util1 = 4.*px2 - qside2;//4*P1x^2 - Y^2
  if (util1 < 0) 
   {
     Info("GetThreeD","4.*px2* - qside2 is negative px: %f, qside: %f",px,qside);
     return 1;
   }  
  Double_t util2 = TMath::Sqrt(px2*qout2*util1);
  

  Double_t p2x,p2y,p2z;
      
//  if ( (qside >= 0) && (qout >= 0) && (qlong >= 0))
  if (qout >= 0)
   {
     //p2x
     Double_t tmp = px*(2.*px2 - qside2);
     tmp -=  util2;
     p2x = tmp/(2.*px2);

     //p2y
     tmp =  qout - TMath::Sqrt(util1);
     p2y = - (tmp*qside)/(2.*px);
      
     //p2z
     tmp = 4.*m2 + 2.*qout2+qlong2;
     tmp *= px;
     tmp -= 2.*util2;//!!!
     tmp += 4.*px*px2;
     tmp *= qlong2;

     Double_t m2px2 = m2+px2;
     Double_t tmp2 = m2px2*tmp;

     tmp  = 4.*(m2px2+qout2) + qlong2;
     tmp *= px;
     tmp -= 4.*util2;
     tmp *= 4.*(m2px2) + qlong2;
     tmp *= qlong2*qlong2;
     tmp *= m2px2*m2px2;
     tmp *= px;
     if (tmp < 0)
      {
        Error("","Argument of sqrt is negative");
        return 1;
      }

     tmp2 += TMath::Sqrt(tmp); 

     tmp = 8.0*px*m2px2*m2px2;
     p2z = -TMath::Sqrt(tmp2/tmp);
     if (qlong < 0) p2z = -p2z;
   }
  else
   {
     //p2x
     Double_t tmp = px*(2.*px2 - qside2);
     tmp +=  util2;
     p2x = tmp/(2.*px2);

     //p2y
     tmp =  qout - TMath::Sqrt(util1);
     p2y = - (tmp*qside)/(2.*px);
      
     //p2z
     tmp = 4.*m2 + 2.*qout2+qlong2;
     tmp *= px;
     tmp += 2.*util2;//!!!
     tmp += 4.*px*px2;
     tmp *= qlong2;

     Double_t m2px2 = m2+px2;
     Double_t tmp2 = m2px2*tmp;

     tmp  = 4.*(m2px2+qout2) + qlong2;
     tmp *= px;
     tmp += 4.*util2;
     tmp *= 4.*(m2px2) + qlong2;
     tmp *= qlong2*qlong2;
     tmp *= m2px2*m2px2;
     tmp *= px;
     if (tmp < 0)
      {
        Error("","Argument of sqrt is negative");
        return 1;
      }

     tmp2 += TMath::Sqrt(tmp); 

     tmp = 8.0*px*m2px2*m2px2;
     p2z = -TMath::Sqrt(tmp2/tmp);
     if (qlong < 0) p2z = -p2z;
    }
     
//  if ( (qside >= 0) && (qout >= 0) && (qlong >= 0))  p2z = -p2z;
  
  TVector3 firstpvector(first->Px(),first->Py(),first->Pz());
  TVector3 vector(p2x,p2y,p2z);
  Rotate(firstpvector,vector);
 
  Double_t e = TMath::Sqrt(m2 + vector.X()*vector.X() + vector.Y()*vector.Y() + vector.Z()*vector.Z());
  second->SetMomentum(vector.X(),vector.Y(),vector.Z(),e);
  
////////////  
  if ( AliDebugLevel() > 3 )
   {
     e=TMath::Sqrt(m2+px*px);  
     TParticle* f = new TParticle(first->GetPdgCode(),0,-1,-1,-1,-1, px , 0.0, 0.0, e,0.0,0.0,0.0,0.0);

     e = TMath::Sqrt(m2 + p2x*p2x + p2y*p2y + p2z*p2z);
     TParticle* s = new TParticle(first->GetPdgCode(),0,-1,-1,-1,-1, p2x, p2y, p2z, e, 0.0, 0.0, 0.0, 0.0);

     Double_t qo, qs, ql;
     GetQOutQSideQLong(f,s,qo, qs, ql);

     Info("GetThreeD","TEST");
     f->Print();
     s->Print();
     Info("GetThreeD","Required %f %f %f",qout,qside,qlong);
     Info("GetThreeD","Got      %f %f %f",qo,qs,ql);
     if ( qout == qo)
        if (qside == qs)
          if  (qlong == ql)
            Info("GetThreeD","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
   }  
///////////// 
  return 0;
}
/***********************************************************/

void AliGenHBTosl::StartSignal()
{ 
//Starts the signal histograms  
 ofstream& logfile = *fLogFile;
 logfile<<"\n\n\n\n";
 logfile<<"************************************************"<<endl;
 logfile<<"************************************************"<<endl;
 logfile<<"               StartSignal                      "<<endl;
 logfile<<"************************************************"<<endl;
 logfile<<"************************************************"<<endl;
 
 AliStack* stack;
 
 fSwapped = kFALSE;
 
 TParticle particle(fPID,0,-1,-1,-1,-1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
 TParticle* second = &particle;
 
 TIter next(fStackBuffer);
 while(( stack=(AliStack*)next() ))
  {
    stack->Reset();
  }

 AliStack* genstack = fGenerator->GetStack();
 if (genstack == 0x0)
  {
   genstack = new AliStack(fNpart);
   fGenerator->SetStack(genstack);  
  }
 else
  {
   genstack->Reset();
  }
 
 StartSignalPass1();
 //We alread have detailed histograms and we do not need Coarse anymore
 delete fQCoarseSignal;
 delete fQCoarseBackground;
 fQCoarseSignal = 0x0;
 fQCoarseBackground = 0x0;

  
 const Double_t kNDF = fQNBins*fQNBins*fQNBins;
 
 TH3D* work = new TH3D("work","work",fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange);
 work->Sumw2();
 work->SetDirectory(0x0);
 
 
 Double_t binwdh = work->GetBinWidth(1)/2.;
 
 Double_t*** chiarray = new Double_t** [fQNBins+1];
 Double_t*** sigarray = new Double_t** [fQNBins+1];
 
 for (Int_t i = 1; i<=fQNBins; i++)
   {
      chiarray[i] =  new Double_t* [fQNBins+1];
      sigarray[i] =  new Double_t* [fQNBins+1];
      
      for (Int_t k = 1; k<=fQNBins; k++)
       {
         chiarray[i][k] =  new Double_t [fQNBins+1];
         sigarray[i][k] =  new Double_t [fQNBins+1];
       }
   }

  
 Float_t chisqrchange = fMaxChiSquereChange + 1.;
 Float_t chisqrPerDF = fMaxChiSquerePerNDF;
 Float_t chisqrold = 0.0;
 
 Int_t counter = 1;
 Int_t niterations = 1;
 Int_t rotaxisorder = 1;//defines order of looping over 3D histo (X,Y,Z or Y,Z,X or Z,X,Y)
 
 Bool_t flag = kTRUE;
 Bool_t shortloop = kTRUE;
 TCanvas* c1 = new TCanvas();


 printf("\n");
 Info("StartSignal","\n\n\n\nSecond Pass\n\n\n\n");

 while ( ( (chisqrPerDF > fMaxChiSquereChange) || flag) && (niterations++ < fMaxIterations)  )
  {
   
   logfile<<"StartSignal\n";
   logfile<<" Row 1 Theory, 2 current value, 3 Chi2 \n";

   Double_t chisqrnew = 0.0;
   flag = kFALSE;
     
   Double_t scale = Scale(fQSignal,fQBackground);
   work->Divide(fQSignal,fQBackground,scale);
   
   if ( (counter%100) == 0) 
    {
      c1->cd();
      char buff[50];
      snprintf(buff,50, "QTWorkPass2.%3d.root",counter);
      TFile* file = TFile::Open(buff,"update");
      work->Write();
      work->SetDirectory(0x0);
      file->Close();
      delete file;

      snprintf(buff,50, "QTBackgroundPass2.%3d.root",counter);
      file = TFile::Open(buff,"update");
      fQBackground->Write();
      fQBackground->SetDirectory(0x0);
      file->Close();
      delete file;

      snprintf(buff,50, "QTSignalPass2.%3d.root",counter);
      file = TFile::Open(buff,"update");
      fQSignal->Write();
      fQSignal->SetDirectory(0x0);
      file->Close();
      delete file;
    }

   counter++;
   Int_t novertresh = 0;
   for (Int_t k = 1; k<=fQNBins; k++)
    {
      Double_t z = work->GetZaxis()->GetBinCenter(k);
      for (Int_t j = 1; j<=fQNBins; j++)
        {  
          Double_t y = work->GetYaxis()->GetBinCenter(j);
          for (Int_t i = 1; i<=fQNBins; i++)
            {
              Double_t x = work->GetXaxis()->GetBinCenter(i);//get center value of a bin (qout)
              sigarray[i][j][k] = fQSignal->GetBinContent(i,j,k);//store current value of signal histogram
              Double_t v = GetQOutQSideQLongCorrTheorValue(x,y,z);//get expected value of CF in that qinv
              Double_t diff = v - work->GetBinContent(i,j,k);//store difference betweeon current value, and desired value 
              chiarray[i][j][k] = diff; // no-x x is a weight to get good distribution
              Double_t be = work->GetBinError(i,j,k);
              chisqrnew += diff*diff/(be*be);//add up chisq

              //even if algorithm is stable (chi sqr change less then threshold)
              //and any bin differs more then 5% from expected value we continue
              Double_t fact = diff;
              if (TMath::Abs(fact) > 0.1) 
               {
                 flag = kTRUE; 
                 novertresh++;
               } 
            }
         }   
     }
    

   char msg[1000];

   printf("\n");
  
   for (Int_t k = 25; k < 36; k++)
    {
      Double_t tx = work->GetXaxis()->GetBinCenter(30);
      Double_t ty = work->GetYaxis()->GetBinCenter(30);
      Double_t tz = work->GetZaxis()->GetBinCenter(k);
      snprintf(msg,1000, "% 6.5f ",GetQOutQSideQLongCorrTheorValue(tx,ty,tz));
      logfile<<msg;
    }
   logfile<<endl;

   for (Int_t k = 25; k < 36; k++)
    {
      snprintf(msg, 1000, "%6.5f ",work->GetBinContent(30,30,k));
      logfile<<msg;
    }
   logfile<<endl;

   for (Int_t k = 25; k < 36; k++)
    {
      snprintf(msg,1000, "% 6.5f ",chiarray[30][30][k]);
      logfile<<msg;
    }
   logfile<<endl;
    
   chisqrchange = TMath::Abs(chisqrnew - chisqrold)/chisqrnew;
   chisqrold = chisqrnew;

   chisqrPerDF = chisqrnew/kNDF;
   
   Info("StartSignal","Iteration %d Chi-sq change %f%%",niterations,chisqrchange*100.0);
   Info("StartSignal","ChiSq = %f, NDF = %f, ChiSq/NDF = %f",chisqrnew, kNDF, chisqrPerDF );
   Info("StartSignal","novertresh = %d",novertresh);
   
   
   stack = RotateStack();
   genstack->Reset();
   fGenerator->Generate();
   Int_t ninputparticle = 0, ntr = 0;
   if ( genstack->GetNtrack() < fNpart/2)
    {
      Warning("StartSignal","**********************************");
      Warning("StartSignal","Generator generated (%d) less particles then expected (%d).",
               genstack->GetNtrack(),fNpart/2);
      Warning("StartSignal","**********************************");
    }
   
   Int_t sc = 0; //security check against infinite loop
   while ( (ntr+1) < fNpart)//ntr is number of track generated up to now
    {
     Int_t xmax = 1; 
     Int_t ymax = 1; 
     Int_t zmax = 1; 
     Double_t qout;
     Double_t qside;
     Double_t qlong;
     
     Int_t i,j,k;
     
     Int_t* cx = 0x0;
     Int_t* cy = 0x0;
     Int_t* cz = 0x0;
     
     switch (rotaxisorder)
      {
        case 1:
          cx = &i;
          cy = &j;
          cz = &k;
          break;
        case 2:
          cx = &j;
          cy = &k;
          cz = &i;
          break;
        case 3:
          cx = &k;
          cy = &i;
          cz = &j;
          break;
      }
     rotaxisorder++;
     if (rotaxisorder > 3) rotaxisorder = 1;
     Int_t nrange;
     
     if (shortloop)
      {
        shortloop = kFALSE;
        nrange = fQNBins;
      }
     else 
      {
        shortloop = kTRUE;
        nrange = fQNBins/4;
      }
       
//     Bool_t force = kFALSE; 
     for ( k = 1; k <=nrange;k++ )
      {
       for ( j = 1; j<=nrange; j++)
         {
          for ( i = 1; i<=nrange; i++)
            {
              if ( (chiarray[*cx][*cy][*cz]) > (chiarray[xmax][ymax][zmax]) ) 
               {
                 xmax = *cx;
                 ymax = *cy;
                 zmax = *cz;
               }  
        
//              Double_t fact = chiarray[*cx][*cy][*cz];//chiarray is chi2*qinv
//              if (fact > work->GetBinError(*cx,*cy,*cz))//if differece between what we want and 
//               {                                  //what we have is bigger than stat. error
//                                                  //we force to fill that bin
//                 qout  = work->GetXaxis()->GetBinCenter(*cx);
//                 qside = work->GetYaxis()->GetBinCenter(*cy);
//                 qlong = work->GetZaxis()->GetBinCenter(*cz);

//                 Info("StartSignal"," bin: (%d,%d,%d) loop status (%d,%d,%d) \nUsing Force: chiarray: %f \nq(o,s,l): (%f,%f,%f)  signal: %d background: %d binerror: %f",
//	  *cx,*cy,*cz,i,j,k,fact,qout,qside,qlong,
//	  (Int_t)sigarray[*cx][*cy][*cz],(Int_t)fQBackground->GetBinContent(*cx,*cy,*cz),work->GetBinError(*cx,*cy,*cz));
//                 force = kTRUE;
//                 break;
//               }
               
            }
//           if (force) break; 
          }
//         if (force) break;
        }


      qout  = work->GetXaxis()->GetBinCenter(xmax);
      qside = work->GetYaxis()->GetBinCenter(ymax);
      qlong = work->GetZaxis()->GetBinCenter(zmax);

//      Info("StartSignal"," bin: (%d,%d,%d) chiarray: %f \nq(o,s,l): (%f,%f,%f)  signal: %d background: %d binerror: %f",
//            xmax,ymax,zmax,chiarray[xmax][ymax][zmax],qout,qside,qlong,
//            (Int_t)sigarray[xmax][ymax][zmax],
//            (Int_t)fQBackground->GetBinContent(xmax,ymax,zmax),
//            work->GetBinError(xmax,ymax,zmax));
          
      qout  = gRandom->Uniform(qout-binwdh,qout+binwdh);
      qside = gRandom->Uniform(qside-binwdh,qside+binwdh);
      qlong = gRandom->Uniform(qlong-binwdh,qlong+binwdh);

      TParticle* first = 0;
      while (ninputparticle < genstack->GetNtrack())
       {
         TParticle* tmpp = genstack->Particle(ninputparticle++);
         if (tmpp->GetPdgCode() == fPID)
          {
           if (CheckParticle(tmpp,0x0,stack) == kFALSE)
            {
              first = tmpp;
              break;
            } 
          }
       } 

      if (first == 0x0)
       {
         if ( fDebug > 2 ) Info("StartSignal","No more particles of that type");
         break;
       }
      
      Int_t retval = GetThreeD(first,second,qout,qside,qlong);
      if (retval)
       {
         Info("StartSignal","Can not find momenta for this OSL and particle OSL = %f %f %f",qout,qside,qlong);
         first->Print();
         second->Print();
         
         continue;
       }
     //in case this particle is falling into signal area with another
     //particle we take a another pair
     //it can intruduce artificial correlations 
      Bool_t checkresult = CheckParticle(second,first,stack);
      if ( checkresult  && (sc < 10) ) 
       { 
         sc++;
         continue;
       }  
      sc = 0;

      //Put on output stack
      SetTrack(first,ntr,stack);
      SetTrack(second,ntr,stack);

      Double_t y = GetQOutQSideQLongCorrTheorValue(qout,qside,qlong);
      
      sigarray[xmax][ymax][zmax] ++; 
      chiarray[xmax][ymax][zmax] = scale*sigarray[xmax][ymax][zmax]/fQBackground->GetBinContent(xmax,ymax,zmax);
      chiarray[xmax][ymax][zmax] = (y - chiarray[xmax][ymax][zmax]);
      
    }
   Info("StartSignal","Mixing background...");
   Mix(fStackBuffer,fQBackground,fQSecondBackground); //upgrate background
   Info("StartSignal","Mixing signal...");
   Mix(stack,fQSignal,fQSecondSignal); //upgrate background

      
//   if ( (chisqrPerDF < 2.0) && (fSwapped == kFALSE) )
//     {
//         SwapGeneratingHistograms();
//     }
   
 }
 TFile* filef = TFile::Open("QTBackground.root","recreate");
 fQBackground->Write();
 fQBackground->SetDirectory(0x0);
 filef->Close();
 delete filef;

 filef = TFile::Open("QTSignal.root","recreate");
 fQSignal->Write();
 fQSignal->SetDirectory(0x0);
 filef->Close();
 delete filef;

 
 delete c1;
 delete work; 

 for (Int_t i = 1; i<=fQNBins; i++)
   {
     for (Int_t k = 1; k<=fQNBins; k++)
      {
        delete [] chiarray[i][k]; 
        delete [] sigarray[i][k];
      }
     delete [] chiarray[i];
     delete [] sigarray[i];
   }
 delete [] chiarray;
 delete [] sigarray;
 
}
/***********************************************************/

void AliGenHBTosl::StartSignalPass1()
{
 //This method makes first part of the initialization of working histograms
 //It randomizes qout, qside and qlong from the coarse signal histogram
 
 Bool_t flag = kTRUE;
 TParticle particle(fPID,0,-1,-1,-1,-1,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
 TParticle* second = &particle;
 Double_t qout;
 Double_t qside;
 Double_t qlong;
 
 Info("StartSignalPass1","\n\nFirst Pass\n\n");
 
 while (flag)
  {
    Info("StartSignalPass1","NextEvent");
    AliStack* stack = RotateStack();
    AliStack* genstack = fGenerator->GetStack();
    genstack->Reset();
    fGenerator->Generate();
    Int_t j = 0, ntr = 0;
    if ( genstack->GetNtrack() < fNpart/2)
     {
       Warning("StartSignalPass1","**********************************");
       Warning("StartSignalPass1","Generator generated (%d) less particles then expected (%d).",
                genstack->GetNtrack(),fNpart/2);
       Warning("StartSignalPass1","**********************************");
     }
   
    Int_t sc = 0;//security check against infinite loop
    while ((ntr+1)<fNpart)
     {
  
//    Info("StartSignal","Number of track on output stack: = %d", ntr);
//    Info("StartSignal","Number of track on input stack: = %d\n", j);
      
      TParticle* first = 0;
      while (j < genstack->GetNtrack())
       {
         TParticle* tmpp = genstack->Particle(j++);
         if (tmpp->GetPdgCode() == fPID)
          {
           if (CheckParticle(tmpp,0x0,stack) == kFALSE)
            {
              first = tmpp;
              break;
            }
           else
            {
              Info("StartSignalPass1","Particle did not pass the safety check 1");
              tmpp->Print();
            } 
          }
       } 

      if (first == 0x0)
       {
         if ( fDebug > 2 ) Info("StartSignalPass1","No more particles of that type");
         
         break;
       }

      SetTrack(first,ntr,stack);
      
      fQCoarseSignal->GetRandom3(qout,qside,qlong);

      Int_t retval = GetThreeD(first,second,qout,qside,qlong);
      if (retval)
       {
         //Info("StartSignal","Can not find momenta for this OSL and particle");
         continue;
       }
      //in case this particle is falling into signal area with another
      //particle we take a another pair
      //it can intruduce artificial correlations 
       Bool_t checkresult = CheckParticle(second,first,stack);
       if ( checkresult  && (sc < 10) ) 
        { 
          sc++;
          Info("StartSignalPass1","Particle did not pass the safety check 2");
          second->Print();
          continue;
        }
 
       sc = 0;
      
      SetTrack(second,ntr,stack);
     }
    
    Mix(stack,fQSignal,fQSecondSignal);
    Mix(fStackBuffer,fQBackground,fQSecondBackground);
    
    flag = kFALSE;
    
    for (Int_t k = 1; k<=fQNBins; k++)
      {
       for (j = 1; j<=fQNBins; j++)
         {  
           for (Int_t i = 1; i<=fQNBins; i++)
             {
                if ( (fQBackground->GetBinContent(i,j,k) < fMinFill) )
                  {
                    //(fQSignal->GetBinContent(i,j,k) < fMinFill) || 
	Info("StartSignalPass1","bin (%d,%d,%d): signal=%f background=%f",i,j,k,
                          fQSignal->GetBinContent(i,j,k),fQBackground->GetBinContent(i,j,k));
	flag = kTRUE;//continue while
	break;//breakes for not while
                  }
             }
            if (flag == kTRUE) break;
          }
        if (flag == kTRUE) break;
      }
    
  }//while (flag)


}
/***********************************************************/

void AliGenHBTosl::FillCoarseSignal()
{
 //Makes coarse signal by multiplying the coarse background and required function
 Info("FillCoarseSignal","START");
 for (Int_t k = 1; k <=fQNBins ;k++ )
   {
    Double_t z = fQCoarseBackground->GetZaxis()->GetBinCenter(k);
    for (Int_t j = 1; j <=fQNBins; j++)
      {
       Double_t y = fQCoarseBackground->GetYaxis()->GetBinCenter(j);
       for (Int_t i = 1; i <=fQNBins; i++)
         {
           Double_t x  = fQCoarseBackground->GetXaxis()->GetBinCenter(i);
           Double_t v = GetQOutQSideQLongCorrTheorValue(x,y,z);
           Info("FillCoarseSignal","Bin (%d,%d,%d): osl(%f,%f,%f)=%f",i,j,k,x,y,z,v);
           fQCoarseSignal->SetBinContent(i,j,k,v*fQCoarseBackground->GetBinContent(i,j,k));
         }   
       }  
    }   
 
  //if (AliDebugLevel()) 
  TestCoarseSignal();
 
  Info("FillCoarseSignal","DONE"); 
}
/***********************************************************/

void AliGenHBTosl::FillCoarse()
{
  //creates the statistical background histogram on the base of input from
  //fGenerator
  Info("FillCoarse","START");
   
  AliStack* stack;
  Int_t niter = 0;
  
  Bool_t cont;
  TH3D tmph("tmph","tmph",2,0,1,2,0,1,2,0,1);
  printf("\n");

  do 
   { 
//     if (niter > 20) break;
     
     cout<<niter++<<"  bincont "<<fQCoarseBackground->GetBinContent(30,30,28)
                  <<" "<<fQCoarseBackground->GetBinContent(30,30,29)
                  <<" "<<fQCoarseBackground->GetBinContent(30,30,30)
                  <<" "<<fQCoarseBackground->GetBinContent(30,30,31)
                  <<" "<<fQCoarseBackground->GetBinContent(30,30,32)
                  <<"\n";
     fflush(0);

     stack = RotateStack();
     fGenerator->SetStack(stack);
     fGenerator->Init();
     fGenerator->Generate();

     Mix(fStackBuffer,fQCoarseBackground,&tmph);
     
     cont = kFALSE;
     
     Info("FillCoarse","fMinFill = %d",fMinFill);
     for (Int_t k = 1; k<=fQNBins; k++)
       {
        for (Int_t j = 1; j<=fQNBins; j++)
          {  
            for (Int_t i = 1; i<=fQNBins; i++)
              {
                if ( fQCoarseBackground->GetBinContent(i,j,k) < fMinFill )
                {
                  cont = kTRUE;
                  Info("FillCoarse","bin (%d,%d,%d)=%f",i,j,k,fQCoarseBackground->GetBinContent(i,j,k));
                  break;
                }

              }
            if (cont) break;
          }
         if (cont) break;
        }
   }while(cont);
   
  printf("\n");
  fGenerator->SetStack(0x0);
  Info("FillCoarse","DONE");
  
}
/***********************************************************/
 
void AliGenHBTosl::Mix(TList* eventbuffer,TH3D* denominator,TH3D* denominator2)
{
  //Fills denominators
  //Mixes events stored in the eventbuffer and fills the background histograms
  static TStopwatch stoper;
  
  if (eventbuffer == 0x0)
   {
    Error("Mix","Buffer List is null.");
    return;
   }

  if (denominator == 0x0)
   {
    Error("Mix","Denominator histogram is null.");
    return;
   }

  if (denominator2 == 0x0)
   {
    Error("Mix","Denominator2 histogram is null.");
    return;
   }

  Info("Mix","%s",denominator->GetName());
  stoper.Start();
  
  TIter next(eventbuffer);
  AliStack* firstevent;
  AliStack* secondevent = 0x0;
  
  while(( firstevent=(AliStack*)next() ))
   {
    if (secondevent == 0x0) 
     {
       secondevent = firstevent;
       continue;
     }
//    Info("Mix","Mixing %#x with %#x",firstevent,secondevent);
    for(Int_t j = 0; j < firstevent->GetNtrack(); j++ )
     { 
       TParticle* firstpart = firstevent->Particle(j);
       
       Float_t phi = firstpart->Phi();
       if ( (phi < fSamplePhiMin) || ( phi > fSamplePhiMax)) continue;
       
//       Info("Mix","Mixing %d phi %f min %f max %f",j,phi,fSamplePhiMin,fSamplePhiMax);

       for(Int_t i = 0; i < secondevent->GetNtrack(); i++ )
         {
           TParticle* secondpart = secondevent->Particle(i);
           phi = secondpart->Phi();
           if ( (phi < fSamplePhiMin) || ( phi > fSamplePhiMax)) continue;
           
           Double_t qout;
           Double_t qside;
           Double_t qlong;
           GetQOutQSideQLong(firstpart,secondpart,qout,qside,qlong);
           denominator->Fill(qout,qside,qlong);
           denominator2->Fill(qout,qside,qlong);
         }
     }

    secondevent = firstevent;
   }
  stoper.Stop();
  stoper.Print();
  
}
/***********************************************************/

void AliGenHBTosl::Mix(AliStack* stack, TH3D* numerator, TH3D* numerator2)
{
//fils numerator with particles from stack
  static TStopwatch stoper;
  if (stack == 0x0)
   {
    Error("Mix","Stack is null.");
    return;
   }

  if ( (numerator == 0x0) || (numerator2 == 0x0) )
   {
    Error("Mix","Numerator histogram is null.");
    return;
   }

  Info("Mix","%s",numerator->GetName());
  stoper.Start();

  for(Int_t j = 0; j < stack->GetNtrack(); j++ )
    { 
      TParticle* firstpart = stack->Particle(j);
      Float_t phi = firstpart->Phi();
      if ( (phi < fSamplePhiMin) || ( phi > fSamplePhiMax)) continue;
       
      for(Int_t i = j+1; i < stack->GetNtrack(); i++ )
       {
         TParticle* secondpart = stack->Particle(i);
         phi = secondpart->Phi();
         if ( (phi < fSamplePhiMin) || ( phi > fSamplePhiMax)) continue;
         Double_t qout;
         Double_t qside;
         Double_t qlong;
         GetQOutQSideQLong(firstpart,secondpart,qout,qside,qlong);
         numerator->Fill(qout,qside,qlong);
         numerator2->Fill(qout,qside,qlong);
       }
    }
  stoper.Stop();
  stoper.Print();
  
}
/***********************************************************/

Double_t AliGenHBTosl::GetQInv(TParticle* f, TParticle* s)
{
//calculates qinv 
// cout<<f->Px()<<"   "<<s->Px()<<endl;
 Double_t pxdiff = f->Px() - s->Px();
 Double_t pydiff = f->Py() - s->Py();
 Double_t pzdiff = f->Pz() - s->Pz();
 Double_t ediff  = f->Energy() - s->Energy();
 
 Double_t qinvl = ediff*ediff - ( pxdiff*pxdiff + pydiff*pydiff + pzdiff*pzdiff );
 Double_t qinv = TMath::Sqrt(TMath::Abs(qinvl)); 
 return qinv;
}
/***********************************************************/

void  AliGenHBTosl::GetQOutQSideQLong(TParticle* f, TParticle* s,Double_t& out, Double_t& side, Double_t& lon)
{
 //returns qout,qside and qlong of the pair of particles
 out = side = lon = 10e5;
 
 Double_t pxsum = f->Px() + s->Px();
 Double_t pysum = f->Py() + s->Py();
 Double_t pzsum = f->Pz() + s->Pz();
 Double_t esum  = f->Energy() + s->Energy();
 Double_t pxdiff = f->Px() - s->Px();
 Double_t pydiff = f->Py() - s->Py();
 Double_t pzdiff = f->Pz() - s->Pz();
 Double_t ediff  = f->Energy() - s->Energy();
 Double_t kt =  0.5*TMath::Hypot(pxsum,pysum);

 Double_t k2 = pxsum*pxdiff+pysum*pydiff;
 
 if (kt == 0.0)
  {
     f->Print();
     s->Print();
     kt = 10e5;
  }
 else
  { 
    out = 0.5*k2/kt;
    side = (f->Px()*s->Py()-s->Px()*f->Py())/kt;
  }

 Double_t beta = pzsum/esum;
 Double_t gamma = 1.0/TMath::Sqrt((1.-beta)*(1.+beta));

 lon = gamma * ( pzdiff - beta*ediff );

// out = TMath::Abs(out);
// side = TMath::Abs(side);
// lon = TMath::Abs(lon);
}

/***********************************************************/

Double_t AliGenHBTosl::Scale(TH3D* num, TH3D* den)
{
 //Calculates the factor that should be used to scale
 //quatience of num and den to 1 at tail

  AliDebug(1,"Entered");
  if(!num)
   {
     AliError("No numerator");
     return 0.0;
   }
  if(!den)
   {
     AliError("No denominator");
     return 0.0;
   }

  if(fNBinsToScale < 1)
   {
    AliError("Number of bins for scaling is smaller than 1");
    return 0.0;
   }
  Int_t fNBinsToScaleX = fNBinsToScale;
  Int_t fNBinsToScaleY = fNBinsToScale;
  Int_t fNBinsToScaleZ = fNBinsToScale;

  Int_t nbinsX = num->GetNbinsX();
  if (fNBinsToScaleX > nbinsX) 
   {
    AliError("Number of X bins for scaling is bigger thnan number of bins in histograms");
    return 0.0;
   }
   
  Int_t nbinsY = num->GetNbinsX();
  if (fNBinsToScaleY > nbinsY) 
   {
    AliError("Number of Y bins for scaling is bigger thnan number of bins in histograms");
    return 0.0;
   }

  Int_t nbinsZ = num->GetNbinsZ();
  if (fNBinsToScaleZ > nbinsZ) 
   {
    AliError("Number of Z bins for scaling is bigger thnan number of bins in histograms");
    return 0.0;
   }

  AliDebug(1,"No errors detected");

  Int_t offsetX = nbinsX - fNBinsToScaleX - 1; //bin that we start loop over bins in axis X
  Int_t offsetY = nbinsY - fNBinsToScaleY - 1; //bin that we start loop over bins in axis Y
  Int_t offsetZ = nbinsZ - fNBinsToScaleZ - 1; //bin that we start loop over bins in axis Z

  Double_t densum = 0.0;
  Double_t numsum = 0.0;
  
  for (Int_t k = offsetZ; k<nbinsZ; k++)
    for (Int_t j = offsetY; j<nbinsY; j++)
      for (Int_t i = offsetX; i<nbinsX; i++)
       {
        if ( num->GetBinContent(i,j,k) > 0.0 )
         {
           
           densum += den->GetBinContent(i,j,k);
           numsum += num->GetBinContent(i,j,k);
         }
       }
  
  AliDebug(1,Form("numsum=%f densum=%f fNBinsToScaleX=%d fNBinsToScaleY=%d fNBinsToScaleZ=%d",
          numsum,densum,fNBinsToScaleX,fNBinsToScaleY,fNBinsToScaleZ));
  
  if (numsum == 0) return 0.0;
  Double_t ret = densum/numsum;

  AliDebug(1,Form("returning %f",ret));
  return ret;
   
}
/***********************************************************/

void AliGenHBTosl::TestCoarseSignal()
{
//Tests how works filling from generated histogram shape
  TH3D* work = new TH3D("work","work",fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange);
     
//  for (Int_t i = 0; i < fQCoarseBackground->GetEntries() ;i++)
//   {
//     Double_t x,y,z;
//     fQCoarseSignal->GetRandom3(x,y,z);
//     work->Fill(x,y,z);
//   }

  TCanvas* c1 = new TCanvas();
  c1->cd();
  work->Draw();
  c1->SaveAs("QTwork.root");
  TFile* file = TFile::Open("QTwork.root","update");
//  work->Write();
  work->SetDirectory(0x0);
  file->Close();
  
  fQCoarseSignal->Draw(); 
  c1->SaveAs("QTCoarseSignal.root");
  file = TFile::Open("QTCoarseSignal.root","update");
  fQCoarseSignal->Write();
  fQCoarseSignal->SetDirectory(0x0);
  file->Close();
  
  fQCoarseBackground->Draw(); 
  c1->SaveAs("QTCoarseBackground.root");
  file = TFile::Open("QTCoarseBackground.root","update");
  fQCoarseBackground->Write();
  fQCoarseBackground->SetDirectory(0x0);
  file->Close();
  
  TH1 *result = (TH1*)fQCoarseBackground->Clone("ratio");
  result->SetTitle("ratio");
  Float_t normfactor = Scale(work,fQCoarseBackground);
  result->Divide(work,fQCoarseBackground,normfactor);//work
  
  
  c1->cd();
  result->Draw();
  c1->SaveAs("QTresult.root");
  file = TFile::Open("QTresult.root","update");
  result->Write();
  result->SetDirectory(0x0);
  file->Close();
  
  delete work;
  delete c1;
}
/***********************************************************/

void AliGenHBTosl::SetTrack(TParticle* p, Int_t& ntr) 
{
//Shortcut to PushTrack(bla,bla,bla,bla.............)
   if (p->P() == 0.0)
    {
      Error("SetTrack(TParticle*,Int_t&)","Particle has zero momentum");
      return;
    }
   
   
   Int_t pdg = p->GetPdgCode();
   Double_t px = p->Px();
   Double_t py = p->Py();
   Double_t pz = p->Pz();
   Double_t e  = p->Energy();
   Double_t vx = p->Vx();
   Double_t vy = p->Vy();
   Double_t vz = p->Vz();
   Double_t tof = p->T();

   TVector3 pol;
   p->GetPolarisation(pol);

   Double_t polx = pol.X();
   Double_t poly = pol.Y();
   Double_t polz = pol.Z();
   TMCProcess mech = AliGenCocktailAfterBurner::IntToMCProcess(p->GetUniqueID());
   Float_t weight = p->GetWeight();

   AliGenerator::PushTrack(fTrackIt, -1, pdg, px, py, pz, e, vx, vy, vz, tof,polx, poly, polz, mech, ntr, weight);
}
/***********************************************************/

void AliGenHBTosl::SetTrack(TParticle* p, Int_t& ntr, AliStack* stack) const 
{
//Shortcut to SetTrack(bla,bla,bla,bla.............)
   if (p->P() == 0.0)
    {
      Error("SetTrack(TParticle*,Int_t&,AliStack*)","Particle has zero momentum");
      return;
    }
 
   Int_t pdg = p->GetPdgCode();
   Double_t px = p->Px();
   Double_t py = p->Py();
   Double_t pz = p->Pz();
   Double_t e  = p->Energy();

   stack->PushTrack(fTrackIt, -1, pdg, px, py, pz, e, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, kPPrimary, ntr,1,0);
}
/***********************************************************/

void AliGenHBTosl::Rotate(TVector3& relvector, TVector3& vector)
{
//This method rotates vector about the angeles that are needed to rotate 
//relvector from postion (firstPx,0,0) to its actual positon
//In other words: To make equations easier

  static TVector3 first;
  if (AliDebugLevel()>=1) 
   {
     first.SetXYZ(relvector.x(),relvector.y(),relvector.z());
   }
  
  Double_t firstPx = TMath::Sqrt( relvector.x()*relvector.x() + 
                                  relvector.y()*relvector.y() + 
                                  relvector.z()*relvector.z()   );
	              
  Double_t rotAngleZ = -TMath::ATan2(relvector.y(),relvector.x());//calculating rot angles
  relvector.RotateZ(rotAngleZ);
  rotAngleZ = -rotAngleZ;
  Double_t rotAngleY = -TMath::ATan2(relvector.z(),relvector.x());
  
  vector.RotateY(rotAngleY);
  vector.RotateZ(rotAngleZ);
  
  if (AliDebugLevel()>5)
   {
    TVector3 test(firstPx,0.0,0.0);
    test.RotateY(rotAngleY);
    test.RotateZ(rotAngleZ);
    AliInfo(Form("Rotation test: px %f %f",first.x(),test.x()));
    AliInfo(Form("Rotation test: py %f %f",first.y(),test.y()));
    AliInfo(Form("Rotation test: pz %f %f",first.z(),test.z()));
   }
}
/***********************************************************/

Double_t AliGenHBTosl::Rotate(Double_t x,Double_t y,Double_t z)
{
//Rotates vector to base where only x - coordinate is no-zero, and returns that 

  Double_t xylength = TMath::Hypot(x,y);
  Double_t sinphi = -y/xylength;
  Double_t cosphi = x/xylength;
  
  Double_t xprime = cosphi*x - sinphi*y;
  Double_t yprime = sinphi*x + cosphi*y;
  
  TVector3 v(x,y,z);
  Double_t a1 = -TMath::ATan2(v.Y(),v.X());
  
  if (AliDebugLevel()>5)
   {
     AliInfo(Form("Xpr = %f  Ypr = %f",xprime,yprime));
     AliInfo(Form("Calc sin = %f, and %f",sinphi,TMath::Sin(a1)));
     AliInfo(Form("Calc cos = %f, and %f",cosphi,TMath::Cos(a1)));
   }

  Double_t xprimezlength = TMath::Hypot(xprime,z);
  
  Double_t sintheta = z/xprimezlength;
  Double_t costheta = xprime/xprimezlength;
  
  
  Double_t xbis = sintheta*z + costheta*(cosphi*x - sinphi*y);
  
  AliInfo(Form("Calculated rot %f, modulus %f",xbis,TMath::Sqrt(x*x+y*y+z*z)));
  return xbis;
}
/***********************************************************/

AliStack* AliGenHBTosl::RotateStack()
{ 
//swaps to next stack last goes to first and is reseted

 AliStack* stack;
 if ( fStackBuffer->GetSize() >= fBufferSize )
  {
    stack = (AliStack*)fStackBuffer->Remove(fStackBuffer->Last());
  }
 else
  {
    stack = new AliStack(fNpart);
  }
     
 fStackBuffer->AddFirst(stack);
 stack->Reset();
 return stack;
}
/***********************************************************/

Double_t AliGenHBTosl::GetQInvCorrTheorValue(Double_t qinv) const
{
//Function (deprecated)
 static const Double_t kFactorsqrd = 0.197*0.197;//squared conversion factor SI<->eV
 
 return 1.0 + 0.5*TMath::Exp(-qinv*qinv*fQRadius*fQRadius/kFactorsqrd);
}
/***********************************************************/

Double_t AliGenHBTosl::GetQOutQSideQLongCorrTheorValue(Double_t& out, Double_t& side, Double_t& lon) const
{
 //Theoretical function. Wa want to get correlation of the shape of this function
 static const Double_t kFactorsqrd = 0.197*0.197;//squared conversion factor SI<->eV
 return 1.0 + 0.7*TMath::Exp(-fQRadius*fQRadius*(out*out+side*side+lon*lon)/kFactorsqrd);
}
/***********************************************************/

Bool_t AliGenHBTosl::CheckParticle(TParticle* p, TParticle* aupair ,AliStack* stack)
{
 //Checks if a given particle is falling into signal region with any other particle
 //already existing on stack
  //PH return kFALSE;
  
 if (fSignalRegion <=0) return kFALSE;
 
 for (Int_t i = 0; i < stack->GetNtrack(); i++)
  {
    TParticle* part = stack->Particle(i);
    if (part == aupair) continue;
    Double_t qout = 10e5;
    Double_t qside= 10e5;
    Double_t qlong= 10e5;
    GetQOutQSideQLong(p,part,qout,qside,qlong);
    
    if (TMath::Abs(qout)  < fSignalRegion)
      if (TMath::Abs(qside) < fSignalRegion)
       if (TMath::Abs(qlong) < fSignalRegion) 
         return kTRUE;
  }
  return kFALSE; 
}
/***********************************************************/

void AliGenHBTosl::SwapGeneratingHistograms()
{
  //Checks if it is time to swap signal and background histograms
  //if yes it swaps them
  Int_t threshold = fMinFill;
  for (Int_t k = 1; k<=fQNBins; k++)
   {
     for (Int_t j = 1; j<=fQNBins; j++)
       {  
         for (Int_t i = 1; i<=fQNBins; i++)
           {
             if ( fQSecondBackground->GetBinContent(i,j,k) < threshold) return;
           }
       }
            
   }
  
  
  Info("SwapGeneratingHistograms","*******************************************");
  Info("SwapGeneratingHistograms","*******************************************");
  Info("SwapGeneratingHistograms","*******************************************");
  Info("SwapGeneratingHistograms","****   SWAPPING HISTOGRAMS             ****");
  Info("SwapGeneratingHistograms","*******************************************");
  Info("SwapGeneratingHistograms","*******************************************");
  Info("SwapGeneratingHistograms","*******************************************");
  
  
  TH3D* h = fQSignal;
  fQSignal = fQSecondSignal;
  fQSecondSignal = h;
  fQSecondSignal->Reset();
  fQSecondSignal->SetDirectory(0x0);
  
  h = fQBackground;
  fQBackground = fQSecondBackground;
  fQSecondBackground = h;
  fQSecondBackground->Reset();
  fQSecondBackground->SetDirectory(0x0);
  
  fSwapped = kTRUE;
  
}

AliGenHBTosl& AliGenHBTosl::operator=(const  AliGenHBTosl& rhs)
{
// Assignment operator
    rhs.Copy(*this);
    return *this;
}

void AliGenHBTosl::Copy(TObject&) const
{
    //
    // Copy 
    //
    Fatal("Copy","Not implemented!\n");
}


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