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 "AliOmegaDalitz.h"
#include <TMath.h>
#include <AliLog.h>
#include <TH1.h>
#include <TPDGCode.h>
#include <TRandom.h>
#include <TParticle.h>
#include <TDatabasePDG.h>
#include <TLorentzVector.h>
#include <TClonesArray.h>

ClassImp(AliOmegaDalitz)


//-----------------------------------------------------------------------------
//
// Generate lepton-pair mass distributions for Dalitz decays according
// to the Kroll-Wada parametrization: N. Kroll, W. Wada: Phys. Rev 98(1955)1355
//
// For the electromagnetic form factor the parameterization from
// Lepton-G is used: L.G. Landsberg et al.: Phys. Rep. 128(1985)301
//
//-----------------------------------------------------------------------------
//
// Adaption for AliRoot
//
// R. Averbeck
// A. Morsch
//
AliOmegaDalitz::AliOmegaDalitz():
	AliDecayer(),
        fEPMass(0),
	fMPMass(0),
	fInit(0)
{
    // Constructor
}

void AliOmegaDalitz::Init()
{
  // Initialisation
  Int_t    idecay, ibin, nbins = 1000;
  Double_t min, max, binwidth;
  Double_t pmass, lmass, omass, emass, mmass;
  Double_t epsilon, delta, mLL, q, kwHelp, krollWada, formFactor, weight;

  // Get the particle masses
  // electron
  emass = (TDatabasePDG::Instance()->GetParticle(kElectron))->Mass();
  // muon
  mmass = (TDatabasePDG::Instance()->GetParticle(kMuonPlus))->Mass();
  // omega
  pmass = (TDatabasePDG::Instance()->GetParticle(223))      ->Mass();
  // pi0
  omass = (TDatabasePDG::Instance()->GetParticle(kPi0))     ->Mass();

  for ( idecay = 1; idecay<=2; idecay++ )
  {
    if ( idecay == 1 ) 
      lmass = emass;
    else
      lmass = mmass;

    min = 2.0 * lmass;
    max = pmass - omass;
    binwidth = (max - min) / (Double_t)nbins;
    if ( idecay == 1 ) 
      fEPMass = new TH1F("fEPMass", "Dalitz electron pair", nbins, min, max);
    else
      fMPMass = new TH1F("fMPMass", "Dalitz muon pair", nbins, min, max);

    epsilon = (lmass / pmass) * (lmass / pmass);
    delta   = (omass / pmass) * (omass / pmass);

    for ( ibin = 1; ibin <= nbins; ibin++ )
    {
      mLL = min + (Double_t)(ibin - 1) * binwidth + binwidth / 2.0;
      q    = (mLL / pmass) * (mLL / pmass);
      if ( q <= 4.0 * epsilon )
      {
	AliFatal("Error in calculating Dalitz mass histogram binning!");
      }	

      kwHelp = (1.0 + q /  (1.0 - delta)) * (1.0 + q / (1.0 - delta))
	      - 4.0 * q / ((1.0 - delta) * (1.0 - delta));    
      if ( kwHelp <= 0.0 )
      {
	AliFatal("Error in calculating Dalitz mass histogram binning!");
      }	
      krollWada = (2.0 / mLL) * TMath::Exp(1.5 * TMath::Log(kwHelp))
                              * TMath::Sqrt(1.0 - 4.0 * epsilon / q)   
                              * (1.0 + 2.0 * epsilon / q);
      formFactor = 
	(TMath::Power(TMath::Power(0.6519,2),2)) 
	/ (TMath::Power(TMath::Power(0.6519,2)-TMath::Power(mLL, 2), 2) 
	   + TMath::Power(0.04198, 2)*TMath::Power(0.6519, 2));
      weight = krollWada * formFactor;   
      if ( idecay == 1 ) 
	fEPMass->AddBinContent(ibin, weight);
      else
	fMPMass->AddBinContent(ibin, weight);
    }
  }
}


void AliOmegaDalitz::Decay(Int_t idlepton, TLorentzVector* pparent)
{
//-----------------------------------------------------------------------------
//
//  Generate Omega Dalitz decay
//
//-----------------------------------------------------------------------------

    if (!fInit) {
	Init();
	fInit=1;
    }
    
  Double_t pmass, lmass, omass, lpmass;
  Double_t e1, p1, e3, p3;
  Double_t costheta, sintheta, cosphi, sinphi, phi;
  
  // Get the particle masses
  // lepton
  lmass = (TDatabasePDG::Instance()->GetParticle(idlepton))->Mass();
  // omega
  pmass = pparent->M();
  // pi0
  omass = (TDatabasePDG::Instance()->GetParticle(kPi0))     ->Mass();

  // Sample the lepton pair mass from a histogram
  for( ;; ) 
  {
    if ( idlepton == kElectron )
      lpmass = fEPMass->GetRandom();
    else
      lpmass = fMPMass->GetRandom();
    if ( pmass - omass > lpmass && lpmass / 2. > lmass ) break;
  }
  
  // lepton pair kinematics in virtual photon rest frame
  e1 = lpmass / 2.;
  p1 = TMath::Sqrt((e1 + lmass) * (e1 - lmass));
  // betaSquare = 1.0 - 4.0 * (lmass * lmass) / (lpmass * lpmass);
  // lambda      = betaSquare / (2.0 - betaSquare);
  costheta = (2.0 * gRandom->Rndm()) - 1.;
  sintheta = TMath::Sqrt((1. + costheta) * (1. - costheta));
  phi      = 2.0 * TMath::ACos(-1.) * gRandom->Rndm();
  sinphi   = TMath::Sin(phi);
  cosphi   = TMath::Cos(phi);
  // momentum vectors of leptons in virtual photon rest frame
  Double_t pProd1[3] = {p1 * sintheta * cosphi, 
		       p1 * sintheta * sinphi, 
		       p1 * costheta};
  Double_t pProd2[3] = {-1.0 * p1 * sintheta * cosphi, 
		       -1.0 * p1 * sintheta * sinphi, 
		       -1.0 * p1 * costheta};
  
  // pizero kinematics in omega rest frame
  e3       = (pmass * pmass + omass * omass - lpmass * lpmass)/(2. * pmass);
  p3       = TMath::Sqrt((e3 + omass)  * (e3 - omass));
  costheta = (2.0 * gRandom->Rndm()) - 1.;
  sintheta = TMath::Sqrt((1. + costheta) * (1. - costheta));
  phi      = 2.0 * TMath::ACos(-1.) * gRandom->Rndm();
  sinphi   = TMath::Sin(phi);
  cosphi   = TMath::Cos(phi);	    
  // pizero 4-vector in omega rest frame
  fProducts[2].SetPx(p3 * sintheta * cosphi);
  fProducts[2].SetPy(p3 * sintheta * sinphi);
  fProducts[2].SetPz(p3 * costheta);
  fProducts[2].SetE(e3);

  // lepton 4-vectors in properly rotated virtual photon rest frame
  Double_t pRot1[3] = {0.};
  Rot(pProd1, pRot1, costheta, -sintheta, -cosphi, -sinphi);
  Double_t pRot2[3] = {0.};
  Rot(pProd2, pRot2, costheta, -sintheta, -cosphi, -sinphi); 
  fProducts[0].SetPx(pRot1[0]);
  fProducts[0].SetPy(pRot1[1]);
  fProducts[0].SetPz(pRot1[2]);
  fProducts[0].SetE(e1);
  fProducts[1].SetPx(pRot2[0]);
  fProducts[1].SetPy(pRot2[1]);
  fProducts[1].SetPz(pRot2[2]);
  fProducts[1].SetE(e1);

  // boost the dilepton into the omega's rest frame 
  Double_t eLPparent = TMath::Sqrt(p3 * p3 + lpmass * lpmass);
  TVector3 boostPair( -1.0 * fProducts[2].Px() / eLPparent, 
		      -1.0 * fProducts[2].Py() / eLPparent,
		      -1.0 * fProducts[2].Pz() / eLPparent);
  fProducts[0].Boost(boostPair);
  fProducts[1].Boost(boostPair);

  // boost all decay products into the lab frame 
  TVector3 boostLab( pparent->Px() / pparent->E(), 
		     pparent->Py() / pparent->E(),
		     pparent->Pz() / pparent->E());
  fProducts[0].Boost(boostLab);
  fProducts[1].Boost(boostLab);
  fProducts[2].Boost(boostLab);
  
  return;

}

Int_t AliOmegaDalitz::ImportParticles(TClonesArray *particles)
{
    // Import TParticles in array particles
    // l+ l- pi0
    
    TClonesArray &clonesParticles = *particles;

    Int_t pdg   [3] = {kElectron, -kElectron, kPi0};
    if ( fProducts[1].M() > 0.001 ) 
    {  
      pdg[0] =  kMuonPlus;
      pdg[1] = -kMuonPlus;
    }
    Int_t parent[3] = {0, 0, -1};
    Int_t d1    [3] = {-1, -1, 1};
    Int_t d2    [3] = {-1, -1, 2};
    for (Int_t i = 2; i > -1; i--) {
	Double_t px = fProducts[i].Px();
	Double_t py = fProducts[i].Py();
	Double_t pz = fProducts[i].Pz();
	Double_t e  = fProducts[i].E();
	//
	new(clonesParticles[2 - i]) TParticle(pdg[i], 1, parent[i], -1, d1[i], d2[i], px, py, pz, e, 0., 0., 0., 0.);
    }
    return (3);
}


void AliOmegaDalitz::
Rot(Double_t pin[3], Double_t pout[3], Double_t costheta, Double_t sintheta,
    Double_t cosphi, Double_t sinphi) const
{
// Perform rotation
  pout[0] = pin[0]*costheta*cosphi-pin[1]*sinphi+pin[2]*sintheta*cosphi;
  pout[1] = pin[0]*costheta*sinphi+pin[1]*cosphi+pin[2]*sintheta*sinphi;
  pout[2] = -1.0  * pin[0] * sintheta + pin[2] * costheta;
  return;
}

void AliOmegaDalitz::Decay(TClonesArray* array)
{
  //
  // Replace all omega dalitz decays with the correct matrix element decays
  //
  printf("-->Correcting Dalitz \n");
  Int_t nt = array->GetEntriesFast();
  TParticle* dp[3];
  for (Int_t i = 0; i < nt; i++) {
    TParticle* part = (TParticle*) (array->At(i));
    if (part->GetPdgCode() != 223)                     continue;
    
    Int_t fd = part->GetFirstDaughter() - 1;
    Int_t ld = part->GetLastDaughter()  - 1;

    if (fd < 0)                                        continue;
    if ((ld - fd) != 2)                                continue;

    for (Int_t j = 0; j < 3; j++) dp[j] = (TParticle*) (array->At(fd+j));
    if ((dp[0]->GetPdgCode() != kPi0) ||
	((TMath::Abs(dp[1]->GetPdgCode()) != kElectron) &&
	 (TMath::Abs(dp[1]->GetPdgCode()) != kMuonPlus))) continue;
    TLorentzVector omega(part->Px(), part->Py(), part->Pz(), part->Energy());
    if ( TMath::Abs(dp[1]->GetPdgCode()) == kElectron ) 
      Decay(kElectron, &omega);
    else
      Decay(kMuonPlus, &omega);
    for (Int_t j = 0; j < 3; j++) dp[j]->SetMomentum(fProducts[2-j]);
    printf("original %13.3f %13.3f %13.3f %13.3f \n", 
	   part->Px(), part->Py(), part->Pz(), part->Energy());
    printf("new       %13.3f %13.3f %13.3f %13.3f \n", 
	   dp[0]->Px()+dp[1]->Px()+dp[2]->Px(), 
	   dp[0]->Py()+dp[1]->Py()+dp[2]->Py(), 
	   dp[0]->Pz()+dp[1]->Pz()+dp[2]->Pz(), 
	   dp[0]->Energy()+dp[1]->Energy()+dp[2]->Energy());


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

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

AliOmegaDalitz::AliOmegaDalitz(const AliOmegaDalitz &dalitz)
  : AliDecayer(),
    fEPMass(0),
    fMPMass(0),
    fInit(0)
{
  // Copy constructor
  dalitz.Copy(*this);
}
 AliOmegaDalitz.cxx:1
 AliOmegaDalitz.cxx:2
 AliOmegaDalitz.cxx:3
 AliOmegaDalitz.cxx:4
 AliOmegaDalitz.cxx:5
 AliOmegaDalitz.cxx:6
 AliOmegaDalitz.cxx:7
 AliOmegaDalitz.cxx:8
 AliOmegaDalitz.cxx:9
 AliOmegaDalitz.cxx:10
 AliOmegaDalitz.cxx:11
 AliOmegaDalitz.cxx:12
 AliOmegaDalitz.cxx:13
 AliOmegaDalitz.cxx:14
 AliOmegaDalitz.cxx:15
 AliOmegaDalitz.cxx:16
 AliOmegaDalitz.cxx:17
 AliOmegaDalitz.cxx:18
 AliOmegaDalitz.cxx:19
 AliOmegaDalitz.cxx:20
 AliOmegaDalitz.cxx:21
 AliOmegaDalitz.cxx:22
 AliOmegaDalitz.cxx:23
 AliOmegaDalitz.cxx:24
 AliOmegaDalitz.cxx:25
 AliOmegaDalitz.cxx:26
 AliOmegaDalitz.cxx:27
 AliOmegaDalitz.cxx:28
 AliOmegaDalitz.cxx:29
 AliOmegaDalitz.cxx:30
 AliOmegaDalitz.cxx:31
 AliOmegaDalitz.cxx:32
 AliOmegaDalitz.cxx:33
 AliOmegaDalitz.cxx:34
 AliOmegaDalitz.cxx:35
 AliOmegaDalitz.cxx:36
 AliOmegaDalitz.cxx:37
 AliOmegaDalitz.cxx:38
 AliOmegaDalitz.cxx:39
 AliOmegaDalitz.cxx:40
 AliOmegaDalitz.cxx:41
 AliOmegaDalitz.cxx:42
 AliOmegaDalitz.cxx:43
 AliOmegaDalitz.cxx:44
 AliOmegaDalitz.cxx:45
 AliOmegaDalitz.cxx:46
 AliOmegaDalitz.cxx:47
 AliOmegaDalitz.cxx:48
 AliOmegaDalitz.cxx:49
 AliOmegaDalitz.cxx:50
 AliOmegaDalitz.cxx:51
 AliOmegaDalitz.cxx:52
 AliOmegaDalitz.cxx:53
 AliOmegaDalitz.cxx:54
 AliOmegaDalitz.cxx:55
 AliOmegaDalitz.cxx:56
 AliOmegaDalitz.cxx:57
 AliOmegaDalitz.cxx:58
 AliOmegaDalitz.cxx:59
 AliOmegaDalitz.cxx:60
 AliOmegaDalitz.cxx:61
 AliOmegaDalitz.cxx:62
 AliOmegaDalitz.cxx:63
 AliOmegaDalitz.cxx:64
 AliOmegaDalitz.cxx:65
 AliOmegaDalitz.cxx:66
 AliOmegaDalitz.cxx:67
 AliOmegaDalitz.cxx:68
 AliOmegaDalitz.cxx:69
 AliOmegaDalitz.cxx:70
 AliOmegaDalitz.cxx:71
 AliOmegaDalitz.cxx:72
 AliOmegaDalitz.cxx:73
 AliOmegaDalitz.cxx:74
 AliOmegaDalitz.cxx:75
 AliOmegaDalitz.cxx:76
 AliOmegaDalitz.cxx:77
 AliOmegaDalitz.cxx:78
 AliOmegaDalitz.cxx:79
 AliOmegaDalitz.cxx:80
 AliOmegaDalitz.cxx:81
 AliOmegaDalitz.cxx:82
 AliOmegaDalitz.cxx:83
 AliOmegaDalitz.cxx:84
 AliOmegaDalitz.cxx:85
 AliOmegaDalitz.cxx:86
 AliOmegaDalitz.cxx:87
 AliOmegaDalitz.cxx:88
 AliOmegaDalitz.cxx:89
 AliOmegaDalitz.cxx:90
 AliOmegaDalitz.cxx:91
 AliOmegaDalitz.cxx:92
 AliOmegaDalitz.cxx:93
 AliOmegaDalitz.cxx:94
 AliOmegaDalitz.cxx:95
 AliOmegaDalitz.cxx:96
 AliOmegaDalitz.cxx:97
 AliOmegaDalitz.cxx:98
 AliOmegaDalitz.cxx:99
 AliOmegaDalitz.cxx:100
 AliOmegaDalitz.cxx:101
 AliOmegaDalitz.cxx:102
 AliOmegaDalitz.cxx:103
 AliOmegaDalitz.cxx:104
 AliOmegaDalitz.cxx:105
 AliOmegaDalitz.cxx:106
 AliOmegaDalitz.cxx:107
 AliOmegaDalitz.cxx:108
 AliOmegaDalitz.cxx:109
 AliOmegaDalitz.cxx:110
 AliOmegaDalitz.cxx:111
 AliOmegaDalitz.cxx:112
 AliOmegaDalitz.cxx:113
 AliOmegaDalitz.cxx:114
 AliOmegaDalitz.cxx:115
 AliOmegaDalitz.cxx:116
 AliOmegaDalitz.cxx:117
 AliOmegaDalitz.cxx:118
 AliOmegaDalitz.cxx:119
 AliOmegaDalitz.cxx:120
 AliOmegaDalitz.cxx:121
 AliOmegaDalitz.cxx:122
 AliOmegaDalitz.cxx:123
 AliOmegaDalitz.cxx:124
 AliOmegaDalitz.cxx:125
 AliOmegaDalitz.cxx:126
 AliOmegaDalitz.cxx:127
 AliOmegaDalitz.cxx:128
 AliOmegaDalitz.cxx:129
 AliOmegaDalitz.cxx:130
 AliOmegaDalitz.cxx:131
 AliOmegaDalitz.cxx:132
 AliOmegaDalitz.cxx:133
 AliOmegaDalitz.cxx:134
 AliOmegaDalitz.cxx:135
 AliOmegaDalitz.cxx:136
 AliOmegaDalitz.cxx:137
 AliOmegaDalitz.cxx:138
 AliOmegaDalitz.cxx:139
 AliOmegaDalitz.cxx:140
 AliOmegaDalitz.cxx:141
 AliOmegaDalitz.cxx:142
 AliOmegaDalitz.cxx:143
 AliOmegaDalitz.cxx:144
 AliOmegaDalitz.cxx:145
 AliOmegaDalitz.cxx:146
 AliOmegaDalitz.cxx:147
 AliOmegaDalitz.cxx:148
 AliOmegaDalitz.cxx:149
 AliOmegaDalitz.cxx:150
 AliOmegaDalitz.cxx:151
 AliOmegaDalitz.cxx:152
 AliOmegaDalitz.cxx:153
 AliOmegaDalitz.cxx:154
 AliOmegaDalitz.cxx:155
 AliOmegaDalitz.cxx:156
 AliOmegaDalitz.cxx:157
 AliOmegaDalitz.cxx:158
 AliOmegaDalitz.cxx:159
 AliOmegaDalitz.cxx:160
 AliOmegaDalitz.cxx:161
 AliOmegaDalitz.cxx:162
 AliOmegaDalitz.cxx:163
 AliOmegaDalitz.cxx:164
 AliOmegaDalitz.cxx:165
 AliOmegaDalitz.cxx:166
 AliOmegaDalitz.cxx:167
 AliOmegaDalitz.cxx:168
 AliOmegaDalitz.cxx:169
 AliOmegaDalitz.cxx:170
 AliOmegaDalitz.cxx:171
 AliOmegaDalitz.cxx:172
 AliOmegaDalitz.cxx:173
 AliOmegaDalitz.cxx:174
 AliOmegaDalitz.cxx:175
 AliOmegaDalitz.cxx:176
 AliOmegaDalitz.cxx:177
 AliOmegaDalitz.cxx:178
 AliOmegaDalitz.cxx:179
 AliOmegaDalitz.cxx:180
 AliOmegaDalitz.cxx:181
 AliOmegaDalitz.cxx:182
 AliOmegaDalitz.cxx:183
 AliOmegaDalitz.cxx:184
 AliOmegaDalitz.cxx:185
 AliOmegaDalitz.cxx:186
 AliOmegaDalitz.cxx:187
 AliOmegaDalitz.cxx:188
 AliOmegaDalitz.cxx:189
 AliOmegaDalitz.cxx:190
 AliOmegaDalitz.cxx:191
 AliOmegaDalitz.cxx:192
 AliOmegaDalitz.cxx:193
 AliOmegaDalitz.cxx:194
 AliOmegaDalitz.cxx:195
 AliOmegaDalitz.cxx:196
 AliOmegaDalitz.cxx:197
 AliOmegaDalitz.cxx:198
 AliOmegaDalitz.cxx:199
 AliOmegaDalitz.cxx:200
 AliOmegaDalitz.cxx:201
 AliOmegaDalitz.cxx:202
 AliOmegaDalitz.cxx:203
 AliOmegaDalitz.cxx:204
 AliOmegaDalitz.cxx:205
 AliOmegaDalitz.cxx:206
 AliOmegaDalitz.cxx:207
 AliOmegaDalitz.cxx:208
 AliOmegaDalitz.cxx:209
 AliOmegaDalitz.cxx:210
 AliOmegaDalitz.cxx:211
 AliOmegaDalitz.cxx:212
 AliOmegaDalitz.cxx:213
 AliOmegaDalitz.cxx:214
 AliOmegaDalitz.cxx:215
 AliOmegaDalitz.cxx:216
 AliOmegaDalitz.cxx:217
 AliOmegaDalitz.cxx:218
 AliOmegaDalitz.cxx:219
 AliOmegaDalitz.cxx:220
 AliOmegaDalitz.cxx:221
 AliOmegaDalitz.cxx:222
 AliOmegaDalitz.cxx:223
 AliOmegaDalitz.cxx:224
 AliOmegaDalitz.cxx:225
 AliOmegaDalitz.cxx:226
 AliOmegaDalitz.cxx:227
 AliOmegaDalitz.cxx:228
 AliOmegaDalitz.cxx:229
 AliOmegaDalitz.cxx:230
 AliOmegaDalitz.cxx:231
 AliOmegaDalitz.cxx:232
 AliOmegaDalitz.cxx:233
 AliOmegaDalitz.cxx:234
 AliOmegaDalitz.cxx:235
 AliOmegaDalitz.cxx:236
 AliOmegaDalitz.cxx:237
 AliOmegaDalitz.cxx:238
 AliOmegaDalitz.cxx:239
 AliOmegaDalitz.cxx:240
 AliOmegaDalitz.cxx:241
 AliOmegaDalitz.cxx:242
 AliOmegaDalitz.cxx:243
 AliOmegaDalitz.cxx:244
 AliOmegaDalitz.cxx:245
 AliOmegaDalitz.cxx:246
 AliOmegaDalitz.cxx:247
 AliOmegaDalitz.cxx:248
 AliOmegaDalitz.cxx:249
 AliOmegaDalitz.cxx:250
 AliOmegaDalitz.cxx:251
 AliOmegaDalitz.cxx:252
 AliOmegaDalitz.cxx:253
 AliOmegaDalitz.cxx:254
 AliOmegaDalitz.cxx:255
 AliOmegaDalitz.cxx:256
 AliOmegaDalitz.cxx:257
 AliOmegaDalitz.cxx:258
 AliOmegaDalitz.cxx:259
 AliOmegaDalitz.cxx:260
 AliOmegaDalitz.cxx:261
 AliOmegaDalitz.cxx:262
 AliOmegaDalitz.cxx:263
 AliOmegaDalitz.cxx:264
 AliOmegaDalitz.cxx:265
 AliOmegaDalitz.cxx:266
 AliOmegaDalitz.cxx:267
 AliOmegaDalitz.cxx:268
 AliOmegaDalitz.cxx:269
 AliOmegaDalitz.cxx:270
 AliOmegaDalitz.cxx:271
 AliOmegaDalitz.cxx:272
 AliOmegaDalitz.cxx:273
 AliOmegaDalitz.cxx:274
 AliOmegaDalitz.cxx:275
 AliOmegaDalitz.cxx:276
 AliOmegaDalitz.cxx:277
 AliOmegaDalitz.cxx:278
 AliOmegaDalitz.cxx:279
 AliOmegaDalitz.cxx:280
 AliOmegaDalitz.cxx:281
 AliOmegaDalitz.cxx:282
 AliOmegaDalitz.cxx:283
 AliOmegaDalitz.cxx:284
 AliOmegaDalitz.cxx:285
 AliOmegaDalitz.cxx:286
 AliOmegaDalitz.cxx:287
 AliOmegaDalitz.cxx:288
 AliOmegaDalitz.cxx:289
 AliOmegaDalitz.cxx:290
 AliOmegaDalitz.cxx:291
 AliOmegaDalitz.cxx:292
 AliOmegaDalitz.cxx:293
 AliOmegaDalitz.cxx:294
 AliOmegaDalitz.cxx:295
 AliOmegaDalitz.cxx:296
 AliOmegaDalitz.cxx:297
 AliOmegaDalitz.cxx:298
 AliOmegaDalitz.cxx:299
 AliOmegaDalitz.cxx:300
 AliOmegaDalitz.cxx:301
 AliOmegaDalitz.cxx:302
 AliOmegaDalitz.cxx:303
 AliOmegaDalitz.cxx:304
 AliOmegaDalitz.cxx:305
 AliOmegaDalitz.cxx:306
 AliOmegaDalitz.cxx:307
 AliOmegaDalitz.cxx:308
 AliOmegaDalitz.cxx:309
 AliOmegaDalitz.cxx:310
 AliOmegaDalitz.cxx:311
 AliOmegaDalitz.cxx:312
 AliOmegaDalitz.cxx:313
 AliOmegaDalitz.cxx:314
 AliOmegaDalitz.cxx:315
 AliOmegaDalitz.cxx:316
 AliOmegaDalitz.cxx:317
 AliOmegaDalitz.cxx:318
 AliOmegaDalitz.cxx:319
 AliOmegaDalitz.cxx:320
 AliOmegaDalitz.cxx:321
 AliOmegaDalitz.cxx:322
 AliOmegaDalitz.cxx:323
 AliOmegaDalitz.cxx:324
 AliOmegaDalitz.cxx:325
 AliOmegaDalitz.cxx:326
 AliOmegaDalitz.cxx:327
 AliOmegaDalitz.cxx:328