#include <TClonesArray.h>
#include <TParticle.h>
#include <TPDGCode.h>
#include <TRandom.h>
#include <TTree.h>
#include "AliDimuCombinator.h"
#include "AliRun.h"
#include "AliMC.h"
ClassImp(AliDimuCombinator)
AliDimuCombinator::AliDimuCombinator():
fNParticle((Int_t) (AliRunLoader::Instance()->TreeK())->GetEntries()),
fImuon1(0),
fImuon2(0),
fImin1(0),
fImin2(0),
fImax1(fNParticle),
fImax2(fNParticle),
fRate1(1.),
fRate2(1.),
fMuon1(0),
fMuon2(0),
fPtMin(0.),
fEtaMin(-10.),
fEtaMax(10.)
{
fNParticle = (Int_t) (AliRunLoader::Instance()->TreeK())->GetEntries();
}
AliDimuCombinator::AliDimuCombinator(const AliDimuCombinator & combinator)
:TObject(combinator),
fNParticle(0),
fImuon1(0),
fImuon2(0),
fImin1(0),
fImin2(0),
fImax1(0),
fImax2(0),
fRate1(0),
fRate2(0),
fMuon1(0),
fMuon2(0),
fPtMin(0.),
fEtaMin(0.),
fEtaMax(0.)
{
combinator.Copy(*this);
}
TParticle* AliDimuCombinator::Particle(Int_t i) const
{
return gAlice->GetMCApp()->Particle(i);
}
TParticle* AliDimuCombinator::FirstMuon()
{
fImuon1 = fImin1;
fMuon1 = Particle(fImuon1);
while(Type(fMuon1) != kMuonPlus && Type(fMuon1) != kMuonMinus) {
fImuon1++;
if (fImuon1 >= fImax1) {fMuon1 = 0; break;}
fMuon1 = Particle(fImuon1);
}
return fMuon1;
}
TParticle* AliDimuCombinator::FirstMuonSelected()
{
TParticle* muon = FirstMuon();
while(muon != 0 && !Selected(muon)) {muon = NextMuon();}
return muon;
}
TParticle* AliDimuCombinator::NextMuon()
{
fImuon1++;
if (fImuon1 >= fNParticle) {fMuon1 = 0; return fMuon1;}
fMuon1 = Particle(fImuon1);
while(Type(fMuon1) != kMuonPlus && Type(fMuon1) != kMuonMinus) {
fImuon1++;
if (fImuon1 >= fImax1) {fMuon1 = 0; break;}
fMuon1 = Particle(fImuon1);
}
return fMuon1;
}
TParticle* AliDimuCombinator::NextMuonSelected()
{
TParticle * muon = NextMuon();
while(muon !=0 && !Selected(muon)) {muon = NextMuon();}
return muon;
}
void AliDimuCombinator::FirstPartner()
{
if (fImin1 == fImin2) {
fImuon2 = fImuon1+1;
} else {
fImuon2 = fImin2;
}
if (fImuon2 >= fImax2) {fMuon2 = 0; return;}
fMuon2 = Particle(fImuon2);
while(Type(fMuon2) != kMuonPlus && Type(fMuon2) != kMuonMinus) {
fImuon2++;
if (fImuon2 >= fImax2) {fMuon2 = 0; break;}
fMuon2 = Particle(fImuon2);
}
}
void AliDimuCombinator::FirstPartnerSelected()
{
FirstPartner();
while(fMuon2 !=0 && !Selected(fMuon2)) {NextPartner();}
}
void AliDimuCombinator::NextPartner()
{
fImuon2++;
if (fImuon2 >= fImax2) {fMuon2 = 0; return;}
fMuon2 = Particle(fImuon2);
while(Type(fMuon2) != kMuonPlus && Type(fMuon2) != kMuonMinus) {
fImuon2++;
if (fImuon2 >= fImax2) {fMuon2 = 0; break;}
fMuon2 = Particle(fImuon2);
}
}
void AliDimuCombinator::NextPartnerSelected()
{
NextPartner();
while(fMuon2 !=0 && !Selected(fMuon2)) {NextPartner();}
}
TParticle* AliDimuCombinator::Partner() const
{
return fMuon2;
}
void AliDimuCombinator::FirstMuonPair(TParticle* & muon1, TParticle* & muon2)
{
FirstMuon();
FirstPartner();
muon1 = fMuon1;
muon2 = fMuon2;
}
void AliDimuCombinator::NextMuonPair(TParticle* & muon1, TParticle* & muon2)
{
NextPartner();
if (!Partner()) {
NextMuon();
FirstPartner();
}
muon1 = fMuon1;
muon2 = fMuon2;
}
void AliDimuCombinator::FirstMuonPairSelected(TParticle* & muon1,
TParticle* & muon2)
{
FirstMuonSelected();
FirstPartnerSelected();
muon1 = fMuon1;
muon2 = fMuon2;
}
void AliDimuCombinator::NextMuonPairSelected(TParticle* & muon1,
TParticle* & muon2)
{
NextPartnerSelected();
if (!Partner()) {
NextMuonSelected();
FirstPartnerSelected();
}
muon1 = fMuon1;
muon2 = fMuon2;
}
void AliDimuCombinator::ResetRange()
{
fImin1 = fImin2 = 0;
fImax1 = fImax2 = fNParticle;
}
void AliDimuCombinator::SetFirstRange(Int_t from, Int_t to)
{
fImin1 = from;
fImax1 = to;
if (fImax1 > fNParticle) fImax1 = fNParticle;
}
void AliDimuCombinator::SetSecondRange(Int_t from, Int_t to)
{
fImin2 = from;
fImax2 = to;
if (fImax2 > fNParticle) fImax2 = fNParticle;
}
Bool_t AliDimuCombinator::Selected(const TParticle* part) const
{
if (part == 0) {return 0;}
if (part->Pt() > fPtMin && part->Eta() > fEtaMin && part->Eta() < fEtaMax) {
return 1;
} else {
return 0;
}
}
Bool_t AliDimuCombinator::Selected(const TParticle* part1, const TParticle* part2) const
{
return Selected(part1)*Selected(part2);
}
Float_t AliDimuCombinator::Mass(const TParticle* part1, const TParticle* part2) const
{
Float_t px,py,pz,e;
px = part1->Px()+part2->Px();
py = part1->Py()+part2->Py();
pz = part1->Pz()+part2->Pz();
e = part1->Energy()+part2->Energy();
Float_t p = px*px+py*py+pz*pz;
if (e*e < p) {
return -1;
} else {
return TMath::Sqrt(e*e-p);
}
}
Float_t AliDimuCombinator::PT(const TParticle* part1, const TParticle* part2) const
{
Float_t px,py;
px = part1->Px()+part2->Px();
py = part1->Py()+part2->Py();
return TMath::Sqrt(px*px+py*py);
}
Float_t AliDimuCombinator::Pz(const TParticle* part1, const TParticle* part2) const
{
return part1->Pz()+part2->Pz();
}
Float_t AliDimuCombinator::Y(const TParticle* part1, const TParticle* part2) const
{
Float_t pz,e;
pz = part1->Pz()+part2->Pz();
e = part1->Energy()+part2->Energy();
return 0.5*TMath::Log((e+pz)/(e-pz));
}
void AliDimuCombinator::SmearGauss(Float_t width, Float_t & value) const
{
value+=gRandom->Gaus(0, width);
}
Float_t AliDimuCombinator::DecayProbability(const TParticle* part) const
{
Float_t d, h, theta, cTau;
TParticle* parent = Parent(part);
Int_t ipar = Type(parent);
if (ipar == kPiPlus || ipar == kPiMinus) {
cTau=780.4;
} else if (ipar == kKPlus || ipar == kKMinus) {
cTau = 370.9;
} else {
cTau = 0;
}
Float_t gammaBeta=(parent->P())/(parent->GetMass());
theta = parent->Theta();
h = 90*TMath::Tan(theta);
if (h<4) {
d=4/TMath::Sin(theta);
} else {
d=90/TMath::Cos(theta);
}
if (cTau > 0) {
return 1-TMath::Exp(-d/cTau/gammaBeta);
} else {
return 1;
}
}
/*
<p> In the the code above :
<P>If h is less than 4 cm, pions or kaons go in the beam pipe and can have a long way
<BR>If h is greater than 4 cm, pions or kaons crash into the front absorber
<P><IMG SRC="absorbeur.jpg" HEIGHT=292 WIDTH=819>
*/
//End_Html
Float_t AliDimuCombinator::Weight(const TParticle* part1, const TParticle* part2) const
{
Float_t wgt = (part1->GetWeight())*(part2->GetWeight());
if (Correlated(part1, part2)) {
if ( part1->GetFirstMother() == part2->GetFirstMother()) {
return part1->GetWeight()*fRate1;
} else {
return wgt/(Parent(part1)->GetWeight())*fRate1;
}
} else {
return wgt*fRate1*fRate2;
}
}
/*
<p>Some clarifications on the calculation of the dimuons weight :
<P>We must keep in mind that if we force the meson decay in muons and we put
lot of mesons (J/psi, upsilon, ...) to have a good statistic we are
obliged to calculate different weights to correct the number
of muons
<BR>
<P>First -->
<BR>The particle weight is given by w=R*M*Br
<BR> with :
<UL>R = the rate by event. This number gives the number
of produced J/psi, upsilon, pion ... in a collision.
<BR>It corresponds of the weight 0.06 given for example in gener->AddGenerator(jpsi,"J/Psi",
0.06); from the config.C macro.
<BR>In this example R=0.06
<P>M = the rate of the mother production. This number depend on :
<BR> - the number of generated events --> fParentWeight=1./Float_t(fNpart) in AliGenPythia.cxx . This
is a normalization to 1 of the number of generated particles.
<BR> - the kinematic bias coming
from the y and Pt cuts. Method AliGenPythia::AdjustWeights() in AliGenPythia.cxx
<BR>(in AliGenParam.cxx this 2 things are taken into account in fParentWeight
= fYWgt*fPtWgt*phiWgt/fNpart )
<P>Br = the branching ratio in muon from the mother decay</UL>
<P><BR>In this method, part->GetWeight() = M*Br
<UL> </UL>
Next -->
<BR>The weight of the dimuon depends on the correlation between muons
<BR>
<UL>If the muons are correlated and come from a resonance (for example
J/psi -> mu+ mu-) , the weight of the dimuon is the weight of one muon then
<BR>w12= R*M*Br = w1* R1 (in this method this gives part1->GetWeight()*fRate1)
<P>If the muons are correlated and come from a charm or a bottom pair then
w12 = M*R*Br1*Br2 = w1*w2*R1/M1
<BR>(in this method this gives wgt/(Parent(part1)->GetWeight())*fRate1).
Indeed the 2 muons come from the same mother so the
<BR>weight of a DD~ or BB~ is M*Br and they are no correlation in the decay
(Br1*Br2)
<P>If the muons are not correlated w12 = M1*M2*R1*R2*Br1*Br2 = w1*w2*R1*R2
(in this method this gives wgt*fRate1*fRate2)
<BR> </UL>
*/
//End_Html
Float_t AliDimuCombinator::Weight(const TParticle* part) const
{
return (part->GetWeight())*(Parent(part)->GetWeight())*fRate1;
}
Bool_t AliDimuCombinator::Correlated(const TParticle* part1, const TParticle* part2) const
{
if ((Origin(part1) >= 0) && Origin(part1) == Origin(part2)) {
return kTRUE;
} else {
return kFALSE;
}
}
TParticle* AliDimuCombinator::Parent(const TParticle* part) const
{
return Particle(part->GetFirstMother());
}
Int_t AliDimuCombinator::Origin(const TParticle* part) const
{
Int_t iparent= part->GetFirstMother();
if (iparent < 0) return iparent;
Int_t ip;
while(1) {
ip = (Particle(iparent))->GetFirstMother();
if (ip < 0) {
break;
} else {
iparent = ip;
}
}
return iparent;
}
Int_t AliDimuCombinator::Type(const TParticle *part) const
{
return part->GetPdgCode();
}
AliDimuCombinator& AliDimuCombinator::operator=(const AliDimuCombinator& rhs)
{
rhs.Copy(*this);
return *this;
}
void AliDimuCombinator::Copy(TObject&) const
{
Fatal("Copy","Not implemented!\n");
}
AliDimuCombinator.cxx:100 AliDimuCombinator.cxx:101 AliDimuCombinator.cxx:102 AliDimuCombinator.cxx:103 AliDimuCombinator.cxx:104 AliDimuCombinator.cxx:105 AliDimuCombinator.cxx:106 AliDimuCombinator.cxx:107 AliDimuCombinator.cxx:108 AliDimuCombinator.cxx:109 AliDimuCombinator.cxx:110 AliDimuCombinator.cxx:111 AliDimuCombinator.cxx:112 AliDimuCombinator.cxx:113 AliDimuCombinator.cxx:114 AliDimuCombinator.cxx:115 AliDimuCombinator.cxx:116 AliDimuCombinator.cxx:117 AliDimuCombinator.cxx:118 AliDimuCombinator.cxx:119 AliDimuCombinator.cxx:120 AliDimuCombinator.cxx:121 AliDimuCombinator.cxx:122 AliDimuCombinator.cxx:123 AliDimuCombinator.cxx:124 AliDimuCombinator.cxx:125 AliDimuCombinator.cxx:126 AliDimuCombinator.cxx:127 AliDimuCombinator.cxx:128 AliDimuCombinator.cxx:129 AliDimuCombinator.cxx:130 AliDimuCombinator.cxx:131 AliDimuCombinator.cxx:132 AliDimuCombinator.cxx:133 AliDimuCombinator.cxx:134 AliDimuCombinator.cxx:135 AliDimuCombinator.cxx:136 AliDimuCombinator.cxx:137 AliDimuCombinator.cxx:138 AliDimuCombinator.cxx:139 AliDimuCombinator.cxx:140 AliDimuCombinator.cxx:141 AliDimuCombinator.cxx:142 AliDimuCombinator.cxx:143 AliDimuCombinator.cxx:144 AliDimuCombinator.cxx:145 AliDimuCombinator.cxx:146 AliDimuCombinator.cxx:147 AliDimuCombinator.cxx:148 AliDimuCombinator.cxx:149 AliDimuCombinator.cxx:150 AliDimuCombinator.cxx:151 AliDimuCombinator.cxx:152 AliDimuCombinator.cxx:153 AliDimuCombinator.cxx:154 AliDimuCombinator.cxx:155 AliDimuCombinator.cxx:156 AliDimuCombinator.cxx:157 AliDimuCombinator.cxx:158 AliDimuCombinator.cxx:159 AliDimuCombinator.cxx:160 AliDimuCombinator.cxx:161 AliDimuCombinator.cxx:162 AliDimuCombinator.cxx:163 AliDimuCombinator.cxx:164 AliDimuCombinator.cxx:165 AliDimuCombinator.cxx:166 AliDimuCombinator.cxx:167 AliDimuCombinator.cxx:168 AliDimuCombinator.cxx:169 AliDimuCombinator.cxx:170 AliDimuCombinator.cxx:171 AliDimuCombinator.cxx:172 AliDimuCombinator.cxx:173 AliDimuCombinator.cxx:174 AliDimuCombinator.cxx:175 AliDimuCombinator.cxx:176 AliDimuCombinator.cxx:177 AliDimuCombinator.cxx:178 AliDimuCombinator.cxx:179 AliDimuCombinator.cxx:180 AliDimuCombinator.cxx:181 AliDimuCombinator.cxx:182 AliDimuCombinator.cxx:183 AliDimuCombinator.cxx:184 AliDimuCombinator.cxx:185 AliDimuCombinator.cxx:186 AliDimuCombinator.cxx:187 AliDimuCombinator.cxx:188 AliDimuCombinator.cxx:189 AliDimuCombinator.cxx:190 AliDimuCombinator.cxx:191 AliDimuCombinator.cxx:192 AliDimuCombinator.cxx:193 AliDimuCombinator.cxx:194 AliDimuCombinator.cxx:195 AliDimuCombinator.cxx:196 AliDimuCombinator.cxx:197 AliDimuCombinator.cxx:198 AliDimuCombinator.cxx:199 AliDimuCombinator.cxx:200 AliDimuCombinator.cxx:201 AliDimuCombinator.cxx:202 AliDimuCombinator.cxx:203 AliDimuCombinator.cxx:204 AliDimuCombinator.cxx:205 AliDimuCombinator.cxx:206 AliDimuCombinator.cxx:207 AliDimuCombinator.cxx:208 AliDimuCombinator.cxx:209 AliDimuCombinator.cxx:210 AliDimuCombinator.cxx:211 AliDimuCombinator.cxx:212 AliDimuCombinator.cxx:213 AliDimuCombinator.cxx:214 AliDimuCombinator.cxx:215 AliDimuCombinator.cxx:216 AliDimuCombinator.cxx:217 AliDimuCombinator.cxx:218 AliDimuCombinator.cxx:219 AliDimuCombinator.cxx:220 AliDimuCombinator.cxx:221 AliDimuCombinator.cxx:222 AliDimuCombinator.cxx:223 AliDimuCombinator.cxx:224 AliDimuCombinator.cxx:225 AliDimuCombinator.cxx:226 AliDimuCombinator.cxx:227 AliDimuCombinator.cxx:228 AliDimuCombinator.cxx:229 AliDimuCombinator.cxx:230 AliDimuCombinator.cxx:231 AliDimuCombinator.cxx:232 AliDimuCombinator.cxx:233 AliDimuCombinator.cxx:234 AliDimuCombinator.cxx:235 AliDimuCombinator.cxx:236 AliDimuCombinator.cxx:237 AliDimuCombinator.cxx:238 AliDimuCombinator.cxx:239 AliDimuCombinator.cxx:240 AliDimuCombinator.cxx:241 AliDimuCombinator.cxx:242 AliDimuCombinator.cxx:243 AliDimuCombinator.cxx:244 AliDimuCombinator.cxx:245 AliDimuCombinator.cxx:246 AliDimuCombinator.cxx:247 AliDimuCombinator.cxx:248 AliDimuCombinator.cxx:249 AliDimuCombinator.cxx:250 AliDimuCombinator.cxx:251 AliDimuCombinator.cxx:252 AliDimuCombinator.cxx:253 AliDimuCombinator.cxx:254 AliDimuCombinator.cxx:255 AliDimuCombinator.cxx:256 AliDimuCombinator.cxx:257 AliDimuCombinator.cxx:258 AliDimuCombinator.cxx:259 AliDimuCombinator.cxx:260 AliDimuCombinator.cxx:261 AliDimuCombinator.cxx:262 AliDimuCombinator.cxx:263 AliDimuCombinator.cxx:264 AliDimuCombinator.cxx:265 AliDimuCombinator.cxx:266 AliDimuCombinator.cxx:267 AliDimuCombinator.cxx:268 AliDimuCombinator.cxx:269 AliDimuCombinator.cxx:270 AliDimuCombinator.cxx:271 AliDimuCombinator.cxx:272 AliDimuCombinator.cxx:273 AliDimuCombinator.cxx:274 AliDimuCombinator.cxx:275 AliDimuCombinator.cxx:276 AliDimuCombinator.cxx:277 AliDimuCombinator.cxx:278 AliDimuCombinator.cxx:279 AliDimuCombinator.cxx:280 AliDimuCombinator.cxx:281 AliDimuCombinator.cxx:282 AliDimuCombinator.cxx:283 AliDimuCombinator.cxx:284 AliDimuCombinator.cxx:285 AliDimuCombinator.cxx:286 AliDimuCombinator.cxx:287 AliDimuCombinator.cxx:288 AliDimuCombinator.cxx:289 AliDimuCombinator.cxx:290 AliDimuCombinator.cxx:291 AliDimuCombinator.cxx:292 AliDimuCombinator.cxx:293 AliDimuCombinator.cxx:294 AliDimuCombinator.cxx:295 AliDimuCombinator.cxx:296 AliDimuCombinator.cxx:297 AliDimuCombinator.cxx:298 AliDimuCombinator.cxx:299 AliDimuCombinator.cxx:300 AliDimuCombinator.cxx:301 AliDimuCombinator.cxx:302 AliDimuCombinator.cxx:303 AliDimuCombinator.cxx:304 AliDimuCombinator.cxx:305 AliDimuCombinator.cxx:306 AliDimuCombinator.cxx:307 AliDimuCombinator.cxx:308 AliDimuCombinator.cxx:309 AliDimuCombinator.cxx:310 AliDimuCombinator.cxx:311 AliDimuCombinator.cxx:312 AliDimuCombinator.cxx:313 AliDimuCombinator.cxx:314 AliDimuCombinator.cxx:315 AliDimuCombinator.cxx:316 AliDimuCombinator.cxx:317 AliDimuCombinator.cxx:318 AliDimuCombinator.cxx:319 AliDimuCombinator.cxx:320 AliDimuCombinator.cxx:321 AliDimuCombinator.cxx:322 AliDimuCombinator.cxx:323 AliDimuCombinator.cxx:324 AliDimuCombinator.cxx:325 AliDimuCombinator.cxx:326 AliDimuCombinator.cxx:327 AliDimuCombinator.cxx:328 AliDimuCombinator.cxx:329 AliDimuCombinator.cxx:330 AliDimuCombinator.cxx:331 AliDimuCombinator.cxx:332 AliDimuCombinator.cxx:333 AliDimuCombinator.cxx:334 AliDimuCombinator.cxx:335 AliDimuCombinator.cxx:336 AliDimuCombinator.cxx:337 AliDimuCombinator.cxx:338 AliDimuCombinator.cxx:339 AliDimuCombinator.cxx:340 AliDimuCombinator.cxx:341 AliDimuCombinator.cxx:342 AliDimuCombinator.cxx:343 AliDimuCombinator.cxx:344 AliDimuCombinator.cxx:345 AliDimuCombinator.cxx:346 AliDimuCombinator.cxx:347 AliDimuCombinator.cxx:348 AliDimuCombinator.cxx:349 AliDimuCombinator.cxx:350 AliDimuCombinator.cxx:351 AliDimuCombinator.cxx:352 AliDimuCombinator.cxx:353 AliDimuCombinator.cxx:354 AliDimuCombinator.cxx:355 AliDimuCombinator.cxx:356 AliDimuCombinator.cxx:357 AliDimuCombinator.cxx:358 AliDimuCombinator.cxx:359 AliDimuCombinator.cxx:360 AliDimuCombinator.cxx:361 AliDimuCombinator.cxx:362 AliDimuCombinator.cxx:363 AliDimuCombinator.cxx:364 AliDimuCombinator.cxx:365 AliDimuCombinator.cxx:366 AliDimuCombinator.cxx:367 AliDimuCombinator.cxx:368 AliDimuCombinator.cxx:369 AliDimuCombinator.cxx:370 AliDimuCombinator.cxx:371 AliDimuCombinator.cxx:372 AliDimuCombinator.cxx:373 AliDimuCombinator.cxx:374 AliDimuCombinator.cxx:375 AliDimuCombinator.cxx:376 AliDimuCombinator.cxx:377 AliDimuCombinator.cxx:378 AliDimuCombinator.cxx:379 AliDimuCombinator.cxx:380 AliDimuCombinator.cxx:381 AliDimuCombinator.cxx:382 AliDimuCombinator.cxx:383 AliDimuCombinator.cxx:384 AliDimuCombinator.cxx:385 AliDimuCombinator.cxx:386 AliDimuCombinator.cxx:387 AliDimuCombinator.cxx:388 AliDimuCombinator.cxx:389 AliDimuCombinator.cxx:390 AliDimuCombinator.cxx:391 AliDimuCombinator.cxx:392 AliDimuCombinator.cxx:393 AliDimuCombinator.cxx:394 AliDimuCombinator.cxx:395 AliDimuCombinator.cxx:396 AliDimuCombinator.cxx:397 AliDimuCombinator.cxx:398 AliDimuCombinator.cxx:399 AliDimuCombinator.cxx:400 AliDimuCombinator.cxx:401 AliDimuCombinator.cxx:402 AliDimuCombinator.cxx:403 AliDimuCombinator.cxx:404 AliDimuCombinator.cxx:405 AliDimuCombinator.cxx:406 AliDimuCombinator.cxx:407 AliDimuCombinator.cxx:408 AliDimuCombinator.cxx:409 AliDimuCombinator.cxx:410 AliDimuCombinator.cxx:411 AliDimuCombinator.cxx:412 AliDimuCombinator.cxx:413 AliDimuCombinator.cxx:414 AliDimuCombinator.cxx:415 AliDimuCombinator.cxx:416 AliDimuCombinator.cxx:417 AliDimuCombinator.cxx:418 AliDimuCombinator.cxx:419 AliDimuCombinator.cxx:420 AliDimuCombinator.cxx:421 AliDimuCombinator.cxx:422 AliDimuCombinator.cxx:423 AliDimuCombinator.cxx:424 AliDimuCombinator.cxx:425 AliDimuCombinator.cxx:426 AliDimuCombinator.cxx:427 AliDimuCombinator.cxx:428 AliDimuCombinator.cxx:429 AliDimuCombinator.cxx:430 AliDimuCombinator.cxx:431 AliDimuCombinator.cxx:432 AliDimuCombinator.cxx:433 AliDimuCombinator.cxx:434 AliDimuCombinator.cxx:435 AliDimuCombinator.cxx:436 AliDimuCombinator.cxx:437 AliDimuCombinator.cxx:438 AliDimuCombinator.cxx:439 AliDimuCombinator.cxx:440 AliDimuCombinator.cxx:441 AliDimuCombinator.cxx:442 AliDimuCombinator.cxx:443 AliDimuCombinator.cxx:444 AliDimuCombinator.cxx:445 AliDimuCombinator.cxx:446 AliDimuCombinator.cxx:447 AliDimuCombinator.cxx:448 AliDimuCombinator.cxx:449 AliDimuCombinator.cxx:450 AliDimuCombinator.cxx:451 AliDimuCombinator.cxx:452 AliDimuCombinator.cxx:453 AliDimuCombinator.cxx:454 AliDimuCombinator.cxx:455 AliDimuCombinator.cxx:456 AliDimuCombinator.cxx:457 AliDimuCombinator.cxx:458 AliDimuCombinator.cxx:459 AliDimuCombinator.cxx:460 AliDimuCombinator.cxx:461 AliDimuCombinator.cxx:462 AliDimuCombinator.cxx:463 AliDimuCombinator.cxx:464 AliDimuCombinator.cxx:465 AliDimuCombinator.cxx:466 AliDimuCombinator.cxx:467 AliDimuCombinator.cxx:468 AliDimuCombinator.cxx:469 AliDimuCombinator.cxx:470 AliDimuCombinator.cxx:471 AliDimuCombinator.cxx:472 AliDimuCombinator.cxx:473 AliDimuCombinator.cxx:474 AliDimuCombinator.cxx:475 AliDimuCombinator.cxx:476 AliDimuCombinator.cxx:477 AliDimuCombinator.cxx:478 AliDimuCombinator.cxx:479 AliDimuCombinator.cxx:480 AliDimuCombinator.cxx:481 AliDimuCombinator.cxx:482 AliDimuCombinator.cxx:483 AliDimuCombinator.cxx:484 AliDimuCombinator.cxx:485 AliDimuCombinator.cxx:486 AliDimuCombinator.cxx:487 AliDimuCombinator.cxx:488 AliDimuCombinator.cxx:489 AliDimuCombinator.cxx:490 AliDimuCombinator.cxx:491 AliDimuCombinator.cxx:492 AliDimuCombinator.cxx:493 AliDimuCombinator.cxx:494 AliDimuCombinator.cxx:495 AliDimuCombinator.cxx:496 AliDimuCombinator.cxx:497 AliDimuCombinator.cxx:498 AliDimuCombinator.cxx:499 AliDimuCombinator.cxx:500 AliDimuCombinator.cxx:501 AliDimuCombinator.cxx:502 AliDimuCombinator.cxx:503 AliDimuCombinator.cxx:504 AliDimuCombinator.cxx:505 AliDimuCombinator.cxx:506 AliDimuCombinator.cxx:507 AliDimuCombinator.cxx:508 AliDimuCombinator.cxx:509 AliDimuCombinator.cxx:510 AliDimuCombinator.cxx:511 AliDimuCombinator.cxx:512 AliDimuCombinator.cxx:513 AliDimuCombinator.cxx:514 AliDimuCombinator.cxx:515 AliDimuCombinator.cxx:516 AliDimuCombinator.cxx:517 AliDimuCombinator.cxx:518 AliDimuCombinator.cxx:519 AliDimuCombinator.cxx:520 AliDimuCombinator.cxx:521