#include "AliMUONTrackLight.h"
#include "AliMUONTrack.h"
#include "AliMUONConstants.h"
#include "AliMUONVTrackStore.h"
#include "AliMUONTrackParam.h"
#include "AliESDMuonTrack.h"
#include "AliStack.h"
#include "AliLog.h"
#include "TDatabasePDG.h"
#include "TParticle.h"
#include "TString.h"
#include <cstdio>
ClassImp(AliMUONTrackLight)
AliMUONTrackLight::AliMUONTrackLight()
: TObject(),
fPrec(),
fIsTriggered(kFALSE),
fCharge(-999),
fChi2(-1),
fCentr(-1),
fPgen(),
fTrackPythiaLine(-999),
fTrackPDGCode(-999),
fOscillation(kFALSE),
fNParents(0),
fWeight(1)
{
fPgen.SetPxPyPzE(0.,0.,0.,0.);
fPrec.SetPxPyPzE(0.,0.,0.,0.);
for (Int_t i=0; i<3; i++) fXYZ[i]=-999;
for (Int_t npar = 0; npar < fgkNParentsMax; npar++){
fParentPDGCode[npar] = -1;
fParentPythiaLine[npar] = -1;
}
for (Int_t i = 0; i < 4; i++){
fQuarkPDGCode[i] = -1;
fQuarkPythiaLine[i] = -1;
}
}
AliMUONTrackLight::AliMUONTrackLight(const AliMUONTrackLight &muonCopy)
: TObject(muonCopy),
fPrec(muonCopy.fPrec),
fIsTriggered(muonCopy.fIsTriggered),
fCharge(muonCopy.fCharge),
fChi2(muonCopy.fChi2),
fCentr(muonCopy.fCentr),
fPgen(muonCopy.fPgen),
fTrackPythiaLine(muonCopy.fTrackPythiaLine),
fTrackPDGCode(muonCopy.fTrackPDGCode),
fOscillation(muonCopy.fOscillation),
fNParents(muonCopy.fNParents),
fWeight(muonCopy.fWeight)
{
for (Int_t i=0; i<3; i++) fXYZ[i]=muonCopy.fXYZ[i];
for (Int_t npar = 0; npar < fgkNParentsMax; npar++){
fParentPDGCode[npar] = muonCopy.fParentPDGCode[npar];
fParentPythiaLine[npar] = muonCopy.fParentPythiaLine[npar];
}
for (Int_t i = 0; i < 4; i++){
fQuarkPDGCode[i] = muonCopy.fQuarkPDGCode[i];
fQuarkPythiaLine[i] = muonCopy.fQuarkPythiaLine[i];
}
}
AliMUONTrackLight::AliMUONTrackLight(AliESDMuonTrack* muonTrack)
: TObject(),
fPrec(),
fIsTriggered(kFALSE),
fCharge(-999),
fChi2(-1),
fCentr(-1),
fPgen(),
fTrackPythiaLine(-999),
fTrackPDGCode(-999),
fOscillation(kFALSE),
fNParents(0),
fWeight(1)
{
fPgen.SetPxPyPzE(0.,0.,0.,0.);
for (Int_t npar = 0; npar < fgkNParentsMax; npar++){
fParentPDGCode[npar] = -1;
fParentPythiaLine[npar] = -1;
}
for (Int_t i = 0; i < 4; i++){
fQuarkPDGCode[i] = -1;
fQuarkPythiaLine[i] = -1;
}
FillFromESD(muonTrack);
}
AliMUONTrackLight::~AliMUONTrackLight()
{
}
AliMUONTrackLight& AliMUONTrackLight::operator=(const AliMUONTrackLight& muonCopy)
{
if (this == &muonCopy) return *this;
TObject::operator=(muonCopy);
fPrec = muonCopy.fPrec;
fIsTriggered = muonCopy.fIsTriggered;
fCharge = muonCopy.fCharge;
fChi2 = muonCopy.fChi2;
fCentr = muonCopy.fCentr;
fPgen = muonCopy.fPgen;
fTrackPythiaLine = muonCopy.fTrackPythiaLine;
fTrackPDGCode = muonCopy.fTrackPDGCode;
fOscillation = muonCopy.fOscillation;
fNParents = muonCopy.fNParents;
fWeight = muonCopy.fWeight;
for (Int_t i=0; i<3; i++) fXYZ[i]=muonCopy.fXYZ[i];
for (Int_t npar = 0; npar < fgkNParentsMax; npar++){
fParentPDGCode[npar] = muonCopy.fParentPDGCode[npar];
fParentPythiaLine[npar] = muonCopy.fParentPythiaLine[npar];
}
for (Int_t i = 0; i < 4; i++){
fQuarkPDGCode[i] = muonCopy.fQuarkPDGCode[i];
fQuarkPythiaLine[i] = muonCopy.fQuarkPythiaLine[i];
}
return *this;
}
void AliMUONTrackLight::FillFromAliMUONTrack(AliMUONTrack *trackReco,Double_t zvert){
AliMUONTrackParam* trPar = trackReco->GetTrackParamAtVertex();
if (!trPar) {
AliError("The track must contain the parameters at vertex");
return;
}
this->SetCharge(Int_t(TMath::Sign(1.,trPar->GetInverseBendingMomentum())));
this->SetPxPyPz(trPar->Px(),trPar->Py(), trPar->Pz());
this->SetTriggered(trackReco->GetMatchTrigger());
Double_t xyz[3] = { trPar->GetNonBendingCoor(),
trPar->GetBendingCoor(),
trPar->GetZ()};
if (zvert!=-9999) xyz[2] = zvert;
this->SetVertex(xyz);
}
void AliMUONTrackLight::FillFromESD(AliESDMuonTrack* muonTrack,Double_t zvert){
Double_t mumass = TDatabasePDG::Instance()->GetParticle(13)->Mass();
Double_t thetaX = muonTrack->GetThetaX();
Double_t thetaY = muonTrack->GetThetaY();
Double_t tanthx = TMath::Tan(thetaX);
Double_t tanthy = TMath::Tan(thetaY);
Double_t pYZ = 1./TMath::Abs(muonTrack->GetInverseBendingMomentum());
Double_t pz = - pYZ / TMath::Sqrt(1.0 + tanthy * tanthy);
Double_t px = pz * tanthx;
Double_t py = pz * tanthy;
fCharge = Int_t(TMath::Sign(1.,muonTrack->GetInverseBendingMomentum()));
Double_t energy = TMath::Sqrt(mumass * mumass + px*px + py*py + pz*pz);
fPrec.SetPxPyPzE(px,py,pz,energy);
fXYZ[0] = muonTrack->GetNonBendingCoor();
fXYZ[1] = muonTrack->GetBendingCoor();
if (zvert==-9999) fXYZ[2] = muonTrack->GetZ();
else fXYZ[2] = zvert;
fChi2 = muonTrack->GetChi2()/ (2.0 * muonTrack->GetNHit() - 5);
fIsTriggered = muonTrack->GetMatchTrigger();
}
void AliMUONTrackLight::SetPxPyPz(Double_t px, Double_t py, Double_t pz){
Double_t mumass = TDatabasePDG::Instance()->GetParticle(13)->Mass();
Double_t energy = TMath::Sqrt(mumass * mumass + px*px + py*py + pz*pz);
fPrec.SetPxPyPzE(px,py,pz,energy);
}
void AliMUONTrackLight::FillMuonHistory(AliStack *stack, TParticle *part){
Int_t countP = -1;
Int_t parents[10], parLine[10];
Int_t lineM = part->GetFirstMother();
TParticle *mother;
Int_t status=-1, pdg=-1;
while(lineM >= 0){
mother = stack->Particle(lineM);
pdg = mother->GetPdgCode();
if(pdg == 92 || pdg == 21 || TMath::Abs(pdg) < 10 || IsDiquark(pdg)) break;
parents[++countP] = pdg;
parLine[countP] = lineM;
status = mother->GetStatusCode();
if(IsB0(parents[countP]) && status == 12) this->SetOscillation(kTRUE);
lineM = mother->GetFirstMother();
}
for(int i = 0; i <= countP; i++){
this->SetParentPDGCode(i,parents[countP-i]);
this->SetParentPythiaLine(i,parLine[countP-i]);
}
fNParents = countP+1;
countP = -1;
while(lineM >= 0){
mother = stack->Particle(lineM);
pdg = mother->GetPdgCode();
this->SetQuarkPythiaLine(++countP, lineM);
this->SetQuarkPDGCode(countP, pdg);
lineM = mother->GetFirstMother();
}
countP = 1;
for(int par = 0; par < 4; par++){
if(TMath::Abs(this->GetQuarkPDGCode(par)) < 6){
countP = par;
break;
}
}
if(this->GetQuarkPythiaLine(countP) > -1 && (this->GetParentFlavour(0)==4 || this->GetParentFlavour(0)==5)){
if(this->GetParentFlavour(0) != TMath::Abs(this->GetQuarkPDGCode(countP))){
AliWarning(Form("quark flavour of parent and that of quark do not correspond: %d %d --> correcting\n",
this->GetParentFlavour(0), TMath::Abs(this->GetQuarkPDGCode(countP)))
);
pdg = this->GetQuarkPDGCode(countP);
Int_t line = this->GetQuarkPythiaLine(countP);
this->ResetQuarkInfo();
while(TMath::Abs(pdg) != this->GetParentFlavour(0)){
pdg = stack->Particle(++line)->GetPdgCode();
}
while(line >= 0){
mother = stack->Particle(line);
pdg = mother->GetPdgCode();
this->SetQuarkPythiaLine(countP, line);
this->SetQuarkPDGCode(countP++, pdg);
line = mother->GetFirstMother();
}
this->PrintInfo("h");
}
}
}
void AliMUONTrackLight::ResetQuarkInfo(){
for(int pos = 1; pos < 4; pos++){
this->SetQuarkPDGCode(pos,-1);
this->SetQuarkPythiaLine(pos,-1);
}
}
Bool_t AliMUONTrackLight::IsB0(Int_t intTest) const {
Int_t bMes0[2] = {511,531};
Bool_t answer = kFALSE;
for(int i = 0; i < 2; i++){
if(TMath::Abs(intTest) == bMes0[i]){
answer = kTRUE;
break;
}
}
return answer;
}
Bool_t AliMUONTrackLight::IsMotherAResonance(Int_t index) const {
Int_t intTest = GetParentPDGCode(index);
Int_t id=intTest%100000;
return (!((id-id%10)%110));
}
Int_t AliMUONTrackLight::GetParentFlavour(Int_t idParent) const {
Int_t pdg = GetParentPDGCode(idParent);
Int_t quark = TMath::Abs(pdg/100);
if(quark > 9) quark = quark/10;
return quark;
}
void AliMUONTrackLight::PrintInfo(const Option_t* opt){
TString options(opt);
options.ToUpper();
if(options.Contains("H") || options.Contains("A")){
char *name= new char[100];
TString pdg = "", line = "";
for(int i = 3; i >= 0; i--){
if(this->GetQuarkPythiaLine(i)>= 0){
snprintf(name, 100, "%4d --> ", this->GetQuarkPythiaLine(i));
line += name;
snprintf(name, 100, "%4d --> ", this->GetQuarkPDGCode(i));
pdg += name;
}
}
for(int i = 0; i < fNParents; i++){
if(this->GetParentPythiaLine(i)>= 0){
snprintf(name, 100, "%7d --> ", this->GetParentPythiaLine(i));
line += name;
snprintf(name, 100, "%7d --> ", this->GetParentPDGCode(i));
pdg += name;
}
}
snprintf(name, 100, "%4d", this->GetTrackPythiaLine()); line += name;
snprintf(name, 100, "%4d", this->GetTrackPDGCode()); pdg += name;
printf("\nmuon's decay history:\n");
printf(" PDG: %s\n", pdg.Data());
printf("line: %s\n", line.Data());
}
if(options.Contains("K") || options.Contains("A")){
Int_t charge = this->GetCharge();
Double_t *vtx = this->GetVertex();
TLorentzVector momRec = this->GetPRec();
TLorentzVector momGen = this->GetPGen();
printf("the track's charge is %d\n", charge);
printf("Primary vertex: Vx = %1.3f, Vy = %1.3f, Vz = %1.3f\n", vtx[0], vtx[1], vtx[2]);
printf("Generated: Px = %1.3f, Py = %1.3f, Pz = %1.3f\n", momGen.Px(), momGen.Py(), momGen.Pz());
printf("Reconstructed: Px = %1.3f, Py = %1.3f, Pz = %1.3f\n", momRec.Px(), momRec.Py(), momRec.Pz());
printf("Rec. variables: pT %1.3f, pseudo-rapidity %1.3f, theta %1.3f (%1.3f degree), phi %1.3f (%1.3f degree)\n",
momRec.Pt(), momRec.Eta(), momRec.Theta(), 180./TMath::Pi() * momRec.Theta(),
momRec.Phi(), 180./TMath::Pi() * momRec.Phi());
}
}
Bool_t AliMUONTrackLight::IsParentPionOrKaon(Int_t idparent){
Int_t pdg = this->GetParentPDGCode(idparent);
if (TMath::Abs(pdg)==211 ||
TMath::Abs(pdg)==321 ||
TMath::Abs(pdg)==213 ||
TMath::Abs(pdg)==311 ||
TMath::Abs(pdg)==313 ||
TMath::Abs(pdg)==323
) {
return kTRUE;
}
else return kFALSE;
}
Bool_t AliMUONTrackLight::IsDiquark(Int_t pdg) const{
pdg = TMath::Abs(pdg);
if((pdg > 1000) && (pdg%100 < 10)) return kTRUE;
else return kFALSE;
}
AliMUONTrackLight.cxx:100 AliMUONTrackLight.cxx:101 AliMUONTrackLight.cxx:102 AliMUONTrackLight.cxx:103 AliMUONTrackLight.cxx:104 AliMUONTrackLight.cxx:105 AliMUONTrackLight.cxx:106 AliMUONTrackLight.cxx:107 AliMUONTrackLight.cxx:108 AliMUONTrackLight.cxx:109 AliMUONTrackLight.cxx:110 AliMUONTrackLight.cxx:111 AliMUONTrackLight.cxx:112 AliMUONTrackLight.cxx:113 AliMUONTrackLight.cxx:114 AliMUONTrackLight.cxx:115 AliMUONTrackLight.cxx:116 AliMUONTrackLight.cxx:117 AliMUONTrackLight.cxx:118 AliMUONTrackLight.cxx:119 AliMUONTrackLight.cxx:120 AliMUONTrackLight.cxx:121 AliMUONTrackLight.cxx:122 AliMUONTrackLight.cxx:123 AliMUONTrackLight.cxx:124 AliMUONTrackLight.cxx:125 AliMUONTrackLight.cxx:126 AliMUONTrackLight.cxx:127 AliMUONTrackLight.cxx:128 AliMUONTrackLight.cxx:129 AliMUONTrackLight.cxx:130 AliMUONTrackLight.cxx:131 AliMUONTrackLight.cxx:132 AliMUONTrackLight.cxx:133 AliMUONTrackLight.cxx:134 AliMUONTrackLight.cxx:135 AliMUONTrackLight.cxx:136 AliMUONTrackLight.cxx:137 AliMUONTrackLight.cxx:138 AliMUONTrackLight.cxx:139 AliMUONTrackLight.cxx:140 AliMUONTrackLight.cxx:141 AliMUONTrackLight.cxx:142 AliMUONTrackLight.cxx:143 AliMUONTrackLight.cxx:144 AliMUONTrackLight.cxx:145 AliMUONTrackLight.cxx:146 AliMUONTrackLight.cxx:147 AliMUONTrackLight.cxx:148 AliMUONTrackLight.cxx:149 AliMUONTrackLight.cxx:150 AliMUONTrackLight.cxx:151 AliMUONTrackLight.cxx:152 AliMUONTrackLight.cxx:153 AliMUONTrackLight.cxx:154 AliMUONTrackLight.cxx:155 AliMUONTrackLight.cxx:156 AliMUONTrackLight.cxx:157 AliMUONTrackLight.cxx:158 AliMUONTrackLight.cxx:159 AliMUONTrackLight.cxx:160 AliMUONTrackLight.cxx:161 AliMUONTrackLight.cxx:162 AliMUONTrackLight.cxx:163 AliMUONTrackLight.cxx:164 AliMUONTrackLight.cxx:165 AliMUONTrackLight.cxx:166 AliMUONTrackLight.cxx:167 AliMUONTrackLight.cxx:168 AliMUONTrackLight.cxx:169 AliMUONTrackLight.cxx:170 AliMUONTrackLight.cxx:171 AliMUONTrackLight.cxx:172 AliMUONTrackLight.cxx:173 AliMUONTrackLight.cxx:174 AliMUONTrackLight.cxx:175 AliMUONTrackLight.cxx:176 AliMUONTrackLight.cxx:177 AliMUONTrackLight.cxx:178 AliMUONTrackLight.cxx:179 AliMUONTrackLight.cxx:180 AliMUONTrackLight.cxx:181 AliMUONTrackLight.cxx:182 AliMUONTrackLight.cxx:183 AliMUONTrackLight.cxx:184 AliMUONTrackLight.cxx:185 AliMUONTrackLight.cxx:186 AliMUONTrackLight.cxx:187 AliMUONTrackLight.cxx:188 AliMUONTrackLight.cxx:189 AliMUONTrackLight.cxx:190 AliMUONTrackLight.cxx:191 AliMUONTrackLight.cxx:192 AliMUONTrackLight.cxx:193 AliMUONTrackLight.cxx:194 AliMUONTrackLight.cxx:195 AliMUONTrackLight.cxx:196 AliMUONTrackLight.cxx:197 AliMUONTrackLight.cxx:198 AliMUONTrackLight.cxx:199 AliMUONTrackLight.cxx:200 AliMUONTrackLight.cxx:201 AliMUONTrackLight.cxx:202 AliMUONTrackLight.cxx:203 AliMUONTrackLight.cxx:204 AliMUONTrackLight.cxx:205 AliMUONTrackLight.cxx:206 AliMUONTrackLight.cxx:207 AliMUONTrackLight.cxx:208 AliMUONTrackLight.cxx:209 AliMUONTrackLight.cxx:210 AliMUONTrackLight.cxx:211 AliMUONTrackLight.cxx:212 AliMUONTrackLight.cxx:213 AliMUONTrackLight.cxx:214 AliMUONTrackLight.cxx:215 AliMUONTrackLight.cxx:216 AliMUONTrackLight.cxx:217 AliMUONTrackLight.cxx:218 AliMUONTrackLight.cxx:219 AliMUONTrackLight.cxx:220 AliMUONTrackLight.cxx:221 AliMUONTrackLight.cxx:222 AliMUONTrackLight.cxx:223 AliMUONTrackLight.cxx:224 AliMUONTrackLight.cxx:225 AliMUONTrackLight.cxx:226 AliMUONTrackLight.cxx:227 AliMUONTrackLight.cxx:228 AliMUONTrackLight.cxx:229 AliMUONTrackLight.cxx:230 AliMUONTrackLight.cxx:231 AliMUONTrackLight.cxx:232 AliMUONTrackLight.cxx:233 AliMUONTrackLight.cxx:234 AliMUONTrackLight.cxx:235 AliMUONTrackLight.cxx:236 AliMUONTrackLight.cxx:237 AliMUONTrackLight.cxx:238 AliMUONTrackLight.cxx:239 AliMUONTrackLight.cxx:240 AliMUONTrackLight.cxx:241 AliMUONTrackLight.cxx:242 AliMUONTrackLight.cxx:243 AliMUONTrackLight.cxx:244 AliMUONTrackLight.cxx:245 AliMUONTrackLight.cxx:246 AliMUONTrackLight.cxx:247 AliMUONTrackLight.cxx:248 AliMUONTrackLight.cxx:249 AliMUONTrackLight.cxx:250 AliMUONTrackLight.cxx:251 AliMUONTrackLight.cxx:252 AliMUONTrackLight.cxx:253 AliMUONTrackLight.cxx:254 AliMUONTrackLight.cxx:255 AliMUONTrackLight.cxx:256 AliMUONTrackLight.cxx:257 AliMUONTrackLight.cxx:258 AliMUONTrackLight.cxx:259 AliMUONTrackLight.cxx:260 AliMUONTrackLight.cxx:261 AliMUONTrackLight.cxx:262 AliMUONTrackLight.cxx:263 AliMUONTrackLight.cxx:264 AliMUONTrackLight.cxx:265 AliMUONTrackLight.cxx:266 AliMUONTrackLight.cxx:267 AliMUONTrackLight.cxx:268 AliMUONTrackLight.cxx:269 AliMUONTrackLight.cxx:270 AliMUONTrackLight.cxx:271 AliMUONTrackLight.cxx:272 AliMUONTrackLight.cxx:273 AliMUONTrackLight.cxx:274 AliMUONTrackLight.cxx:275 AliMUONTrackLight.cxx:276 AliMUONTrackLight.cxx:277 AliMUONTrackLight.cxx:278 AliMUONTrackLight.cxx:279 AliMUONTrackLight.cxx:280 AliMUONTrackLight.cxx:281 AliMUONTrackLight.cxx:282 AliMUONTrackLight.cxx:283 AliMUONTrackLight.cxx:284 AliMUONTrackLight.cxx:285 AliMUONTrackLight.cxx:286 AliMUONTrackLight.cxx:287 AliMUONTrackLight.cxx:288 AliMUONTrackLight.cxx:289 AliMUONTrackLight.cxx:290 AliMUONTrackLight.cxx:291 AliMUONTrackLight.cxx:292 AliMUONTrackLight.cxx:293 AliMUONTrackLight.cxx:294 AliMUONTrackLight.cxx:295 AliMUONTrackLight.cxx:296 AliMUONTrackLight.cxx:297 AliMUONTrackLight.cxx:298 AliMUONTrackLight.cxx:299 AliMUONTrackLight.cxx:300 AliMUONTrackLight.cxx:301 AliMUONTrackLight.cxx:302 AliMUONTrackLight.cxx:303 AliMUONTrackLight.cxx:304 AliMUONTrackLight.cxx:305 AliMUONTrackLight.cxx:306 AliMUONTrackLight.cxx:307 AliMUONTrackLight.cxx:308 AliMUONTrackLight.cxx:309 AliMUONTrackLight.cxx:310 AliMUONTrackLight.cxx:311 AliMUONTrackLight.cxx:312 AliMUONTrackLight.cxx:313 AliMUONTrackLight.cxx:314 AliMUONTrackLight.cxx:315 AliMUONTrackLight.cxx:316 AliMUONTrackLight.cxx:317 AliMUONTrackLight.cxx:318 AliMUONTrackLight.cxx:319 AliMUONTrackLight.cxx:320 AliMUONTrackLight.cxx:321 AliMUONTrackLight.cxx:322 AliMUONTrackLight.cxx:323 AliMUONTrackLight.cxx:324 AliMUONTrackLight.cxx:325 AliMUONTrackLight.cxx:326 AliMUONTrackLight.cxx:327 AliMUONTrackLight.cxx:328 AliMUONTrackLight.cxx:329 AliMUONTrackLight.cxx:330 AliMUONTrackLight.cxx:331 AliMUONTrackLight.cxx:332 AliMUONTrackLight.cxx:333 AliMUONTrackLight.cxx:334 AliMUONTrackLight.cxx:335 AliMUONTrackLight.cxx:336 AliMUONTrackLight.cxx:337 AliMUONTrackLight.cxx:338 AliMUONTrackLight.cxx:339 AliMUONTrackLight.cxx:340 AliMUONTrackLight.cxx:341 AliMUONTrackLight.cxx:342 AliMUONTrackLight.cxx:343 AliMUONTrackLight.cxx:344 AliMUONTrackLight.cxx:345 AliMUONTrackLight.cxx:346 AliMUONTrackLight.cxx:347 AliMUONTrackLight.cxx:348 AliMUONTrackLight.cxx:349 AliMUONTrackLight.cxx:350 AliMUONTrackLight.cxx:351 AliMUONTrackLight.cxx:352 AliMUONTrackLight.cxx:353 AliMUONTrackLight.cxx:354 AliMUONTrackLight.cxx:355 AliMUONTrackLight.cxx:356 AliMUONTrackLight.cxx:357 AliMUONTrackLight.cxx:358 AliMUONTrackLight.cxx:359 AliMUONTrackLight.cxx:360 AliMUONTrackLight.cxx:361 AliMUONTrackLight.cxx:362 AliMUONTrackLight.cxx:363 AliMUONTrackLight.cxx:364 AliMUONTrackLight.cxx:365 AliMUONTrackLight.cxx:366 AliMUONTrackLight.cxx:367 AliMUONTrackLight.cxx:368 AliMUONTrackLight.cxx:369 AliMUONTrackLight.cxx:370 AliMUONTrackLight.cxx:371 AliMUONTrackLight.cxx:372 AliMUONTrackLight.cxx:373 AliMUONTrackLight.cxx:374 AliMUONTrackLight.cxx:375 AliMUONTrackLight.cxx:376 AliMUONTrackLight.cxx:377 AliMUONTrackLight.cxx:378 AliMUONTrackLight.cxx:379 AliMUONTrackLight.cxx:380 AliMUONTrackLight.cxx:381 AliMUONTrackLight.cxx:382 AliMUONTrackLight.cxx:383 AliMUONTrackLight.cxx:384 AliMUONTrackLight.cxx:385 AliMUONTrackLight.cxx:386 AliMUONTrackLight.cxx:387 AliMUONTrackLight.cxx:388 AliMUONTrackLight.cxx:389 AliMUONTrackLight.cxx:390 AliMUONTrackLight.cxx:391 AliMUONTrackLight.cxx:392 AliMUONTrackLight.cxx:393 AliMUONTrackLight.cxx:394 AliMUONTrackLight.cxx:395 AliMUONTrackLight.cxx:396 AliMUONTrackLight.cxx:397 AliMUONTrackLight.cxx:398 AliMUONTrackLight.cxx:399 AliMUONTrackLight.cxx:400 AliMUONTrackLight.cxx:401 AliMUONTrackLight.cxx:402 AliMUONTrackLight.cxx:403 AliMUONTrackLight.cxx:404 AliMUONTrackLight.cxx:405 AliMUONTrackLight.cxx:406 AliMUONTrackLight.cxx:407 AliMUONTrackLight.cxx:408 AliMUONTrackLight.cxx:409 AliMUONTrackLight.cxx:410 AliMUONTrackLight.cxx:411 AliMUONTrackLight.cxx:412 AliMUONTrackLight.cxx:413 AliMUONTrackLight.cxx:414 AliMUONTrackLight.cxx:415 AliMUONTrackLight.cxx:416 AliMUONTrackLight.cxx:417 AliMUONTrackLight.cxx:418 AliMUONTrackLight.cxx:419 AliMUONTrackLight.cxx:420 AliMUONTrackLight.cxx:421 AliMUONTrackLight.cxx:422 AliMUONTrackLight.cxx:423 AliMUONTrackLight.cxx:424 AliMUONTrackLight.cxx:425