#include <TH1.h>
#include <AliESDEvent.h>
#include <AliExternalTrackParam.h>
#include "AliESDtrack.h"
#include "AliESDTrdTrack.h"
#include <AliGeomManager.h>
#include "AliTRDgeometry.h"
#include "AliTRDpadPlane.h"
#include "AliTRDonlineTrackMatching.h"
const Float_t AliTRDonlineTrackMatching::fgkSaveInnerRadius = 290.5;
const Float_t AliTRDonlineTrackMatching::fgkSaveOuterRadius = 364.5;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMinTPCrows = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMinRatioRowsFindableClusters = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMaxChi2TPCclusters = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMaxChi2ITSclusters = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMaxDCAtoVertexXY = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutMaxDCAtoVertexZ = 0.;
UShort_t AliTRDonlineTrackMatching::fEsdTrackCutsITSlayerMask = 0;
Float_t AliTRDonlineTrackMatching::fEsdTrackVCutsChi2TPCconstrainedVsGlobal = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutPtDCAOfs = 0.;
Float_t AliTRDonlineTrackMatching::fEsdTrackCutPtDCACoeff = 0.;
Bool_t AliTRDonlineTrackMatching::fEsdTrackCutMinimal = kFALSE;
Bool_t AliTRDonlineTrackMatching::fEsdTrackCutRequireTPCrefit = kTRUE;
Bool_t AliTRDonlineTrackMatching::fEsdTrackCutRequireITSrefit = kFALSE;
Bool_t AliTRDonlineTrackMatching::fEsdTrackCutPrim = kFALSE;
AliTRDonlineTrackMatching::AliTRDonlineTrackMatching() :
TObject(),
fTRDgeo(NULL),
fMinMatchRating(0.25),
fHistMatchRating(NULL)
{
SetEsdTrackDefaultCuts("minimal");
}
AliTRDonlineTrackMatching::AliTRDonlineTrackMatching(const AliTRDonlineTrackMatching &c) :
TObject(c),
fTRDgeo(c.fTRDgeo),
fMinMatchRating(c.fMinMatchRating),
fHistMatchRating(c.fHistMatchRating)
{
}
AliTRDonlineTrackMatching::~AliTRDonlineTrackMatching() {
delete fTRDgeo;
fTRDgeo = NULL;
}
Short_t AliTRDonlineTrackMatching::EstimateSector(const Double_t globalCoords[3]) {
if ((TMath::Abs(globalCoords[0]) > 600) || (TMath::Abs(globalCoords[0]) > 600) || (TMath::Sqrt(globalCoords[0]*globalCoords[0] + globalCoords[1]*globalCoords[1]) < 0.01)){
return -1;
} else {
Double_t ang = TMath::ATan2(globalCoords[1], globalCoords[0]);
if (ang > 0){
#ifdef TRD_TM_DEBUG
printf(" es: %.2f/%.2f -> phi: %.2fdeg -> Sec %02d (A)\n",
globalCoords[0], globalCoords[1], TMath::ATan2(globalCoords[1], globalCoords[0])*180./TMath::Pi(),
TMath::FloorNint(ang/(20./180.*TMath::Pi())));
#endif
return TMath::FloorNint(ang/(20./180.*TMath::Pi()));
} else {
#ifdef TRD_TM_DEBUG
printf(" es: %.2f/%.2f -> phi: %.2fdeg -> Sec %02d (B)\n",
globalCoords[0], globalCoords[1], TMath::ATan2(globalCoords[1], globalCoords[0])*180./TMath::Pi(),
17 - TMath::FloorNint(TMath::Abs(ang)/(20./180.*TMath::Pi())));
#endif
return 17 - TMath::FloorNint(TMath::Abs(ang)/(20./180.*TMath::Pi()));
}
}
}
Short_t AliTRDonlineTrackMatching::EstimateLayer(Double_t radius) {
const Float_t rBoundaries[7] = {290.80, 302.20, 315.06, 327.55, 340.3, 352.80, 364.15};
const Short_t rLayers[7] = {-1, 0, 1, 2, 3, 4, 5};
for (UShort_t i = 0; i < 7; ++i){
if (radius < rBoundaries[i])
return rLayers[i];
}
return -2;
}
Short_t AliTRDonlineTrackMatching::EstimateLocalStack(const Double_t globalCoords[3]) {
Double_t absZ = TMath::Abs(globalCoords[2]);
Short_t signZ = (globalCoords[2] > 0.) ? 1 : -1;
Double_t r = TMath::Sqrt(globalCoords[0]*globalCoords[0] + globalCoords[1]*globalCoords[1]);
Short_t layer = EstimateLayer(r);
#ifdef TRD_TM_DEBUG
printf("EstimateLocalStack A r: %.2f x: %.2f/%.2f/%.2f -> layer: %i absZ = %.2f\n",
r, globalCoords[0], globalCoords[1], globalCoords[2], layer, absZ);
#endif
if (layer < 0)
return -1;
Double_t innerStackHalfLength = AliTRDgeometry::GetChamberLength(0, 2) / 2.;
if (absZ < innerStackHalfLength)
return 2;
Double_t outerStackLength = AliTRDgeometry::GetChamberLength(layer, 1);
absZ -= innerStackHalfLength;
#ifdef TRD_TM_DEBUG
printf("EstimateLocalStack B r: %.2f x: %.2f/%.2f/%.2f -> layer: %i absZ = %.2f il: %.2f ol: %.2f\n",
r, globalCoords[0], globalCoords[1], globalCoords[2], layer, absZ, 2.*innerStackHalfLength, outerStackLength);
#endif
if (absZ > 2.05*outerStackLength)
return (signZ > 0) ? -2 : -1;
if (absZ < outerStackLength)
return (signZ > 0) ? 1 : 3;
else
return (signZ > 0) ? 0 : 4;
}
Short_t AliTRDonlineTrackMatching::EstimateStack(const Double_t globalCoords[3]) {
Short_t sec = EstimateSector(globalCoords);
Short_t st = EstimateLocalStack(globalCoords);
#ifdef TRD_TM_DEBUG
printf("EstimateStack sec %d st %d\n", sec, st);
#endif
if ((sec < 0) || (st < 0))
return -1;
else
return 5*sec + st;
}
Bool_t AliTRDonlineTrackMatching::StackToTrack(const AliExternalTrackParam *track, Short_t &stack, UShort_t &layersWithTracklet, Double_t magFieldinKiloGauss){
stack = -1;
layersWithTracklet = 0;
UInt_t stackHits[fgkTrdStacks];
Double_t x[3] = { 0. };
memset(stackHits, 0, fgkTrdStacks*sizeof(UInt_t));
#ifdef TRD_TM_DEBUG
printf("STACK-TO-TRACK\n");
#endif
Double_t r = fgkSaveInnerRadius;
while (r < fgkSaveOuterRadius){
if (track->GetXYZAt(r, magFieldinKiloGauss, x)) {
stack = EstimateStack(x);
if (stack >= 0){
stackHits[stack]++;
if (stackHits[stack] > 16)
break;
#ifdef TRD_TM_DEBUG
printf(" r=%.3fcm %.2f/%.2f - %d hits for stack %d S%02d-%d (mag=%.1f)\n",
r, x[0], x[1], stackHits[stack], stack, stack/5, stack%5, magFieldinKiloGauss);
#endif
}
}
r += 1.;
}
UInt_t bestHits = 0;
for (UShort_t iStack = 0; iStack < fgkTrdStacks; ++iStack){
if (stackHits[iStack] == 0)
continue;
#ifdef TRD_TM_DEBUG
printf(" finally %d hits in stack S%02d-%d\n", stackHits[iStack], iStack/5, iStack%5);
#endif
if (stackHits[iStack] > bestHits){
bestHits = stackHits[iStack];
stack = iStack;
}
}
if (stack >= 0){
#ifdef TRD_TM_DEBUG
printf("best stack: S%02d-%d\n", TrdLsiSec(stack), TrdLsiSi(stack));
#endif
return kTRUE;
}
return kFALSE;
}
Bool_t AliTRDonlineTrackMatching::StackToTrack(const AliESDtrack* track, Short_t &stack, UShort_t &layersWithTracklet, Double_t magFieldinKiloGauss){
if (track->GetOuterParam())
return StackToTrack(track->GetOuterParam(), stack, layersWithTracklet, magFieldinKiloGauss);
else if (track->GetInnerParam())
return StackToTrack(track->GetInnerParam(), stack, layersWithTracklet, magFieldinKiloGauss);
else
return StackToTrack(track, stack, layersWithTracklet, magFieldinKiloGauss);
}
Bool_t AliTRDonlineTrackMatching::AcceptTrack(const AliESDtrack* esdTrack, const AliESDEvent* esdEvent){
if (!esdTrack)
return kFALSE;
UInt_t status = esdTrack->GetStatus();
if (fEsdTrackCutMinimal){
return ((status & AliESDtrack::kTPCout) > 0);
}
if ((fEsdTrackCutRequireTPCrefit) && (!(status & AliESDtrack::kTPCrefit)))
return kFALSE;
if ((fEsdTrackCutRequireITSrefit) && (!(status & AliESDtrack::kITSrefit)))
return kFALSE;
Float_t nCrossedRowsTPC = esdTrack->GetTPCCrossedRows();
Float_t ratioCrossedRowsOverFindableClustersTPC =
(esdTrack->GetTPCNclsF() > 0) ? (nCrossedRowsTPC / esdTrack->GetTPCNclsF()) : 1.0;
Float_t chi2PerClusterTPC =
(esdTrack->GetTPCclusters(0) > 0) ? (esdTrack->GetTPCchi2()/Float_t(esdTrack->GetTPCclusters(0))) : 100.;
if (
(nCrossedRowsTPC < fEsdTrackCutMinTPCrows) ||
(ratioCrossedRowsOverFindableClustersTPC < fEsdTrackCutMinRatioRowsFindableClusters) ||
(chi2PerClusterTPC > fEsdTrackCutMaxChi2TPCclusters)
)
return kFALSE;
Float_t chi2PerClusterITS = (esdTrack->GetITSclusters(0) > 0) ? esdTrack->GetITSchi2()/Float_t(esdTrack->GetITSclusters(0)) : 1000.;
UShort_t clustersInAnyITSlayer = kFALSE;
for (UShort_t layer = 0; layer < 6; ++layer)
clustersInAnyITSlayer += (esdTrack->HasPointOnITSLayer(layer) & ((fEsdTrackCutsITSlayerMask >> layer) & 1));
if ((fEsdTrackCutsITSlayerMask != 0) &&
((clustersInAnyITSlayer == 0) || (chi2PerClusterITS >= fEsdTrackCutMaxChi2ITSclusters))
)
return kFALSE;
Float_t impactPos[2], impactCov[3];
esdTrack->GetImpactParameters(impactPos, impactCov);
if (TMath::Abs(impactPos[0]) > fEsdTrackCutMaxDCAtoVertexXY)
return kFALSE;
if (TMath::Abs(impactPos[1]) > fEsdTrackCutMaxDCAtoVertexZ)
return kFALSE;
if (fEsdTrackCutPrim){
const AliESDVertex* vertex = esdEvent->GetPrimaryVertexTracks();
if ((!vertex) || (!vertex->GetStatus()))
vertex = esdEvent->GetPrimaryVertexSPD();
Float_t chi2TPCConstrainedVsGlobal =
(vertex->GetStatus()) ? esdTrack->GetChi2TPCConstrainedVsGlobal(vertex) : (fEsdTrackVCutsChi2TPCconstrainedVsGlobal + 10.);
if (chi2TPCConstrainedVsGlobal > fEsdTrackVCutsChi2TPCconstrainedVsGlobal)
return kFALSE;
Float_t cutDCAToVertexXYPtDep =
fEsdTrackCutPtDCAOfs + fEsdTrackCutPtDCACoeff/((TMath::Abs(esdTrack->Pt()) > 0.0001) ? esdTrack->Pt() : 0.0001);
if (TMath::Abs(impactPos[0]) >= cutDCAToVertexXYPtDep)
return kFALSE;
}
return kTRUE;
}
Bool_t AliTRDonlineTrackMatching::ProcessEvent(AliESDEvent *esdEvent, Bool_t updateRef, Int_t label) {
UInt_t numTrdTracks = esdEvent->GetNumberOfTrdTracks();
if (numTrdTracks <= 0)
return kTRUE;
if (!AliGeomManager::GetGeometry()){
AliError("Geometry not available! Skipping TRD track matching.");
return kFALSE;
}
if (!fTRDgeo){
fTRDgeo = new AliTRDgeometry();
}
UInt_t esdTracksByStack[fgkTrdStacks][fgkMaxEsdTracksPerStack];
UInt_t esdTrackNumByStack[fgkTrdStacks];
memset(esdTrackNumByStack, 0, fgkTrdStacks*sizeof(UInt_t));
UInt_t numEsdTracks = esdEvent->GetNumberOfTracks();
#ifdef TRD_TM_DEBUG
UInt_t numEsdTracksAccepted = 0;
#endif
Short_t stack;
UShort_t layers;
AliESDtrack* esdTrack;
for (UInt_t iEsdTrack = 0; iEsdTrack < numEsdTracks; ++iEsdTrack){
esdTrack = esdEvent->GetTrack(iEsdTrack);
if (!esdTrack){
AliError("invalid ESD track!");
continue;
}
if (!AcceptTrack(esdTrack, esdEvent))
continue;
#ifdef TRD_TM_DEBUG
else
numEsdTracksAccepted++;
#endif
if (StackToTrack(esdTrack, stack, layers, esdEvent->GetMagneticField())){
if (stack < 0){
#ifdef TRD_TM_DEBUG
printf("#TRACKMATCHING - invalid stack for ESD track\n");
#endif
continue;
}
Int_t stacksForReg[9] = {-1, -1, -1, -1, -1, -1, -1, -1, -1};
stacksForReg[0] = stack;
stacksForReg[1] = (stack + 5) % 90;
stacksForReg[2] = (stack - 5);
if (stacksForReg[2] < 0)
stacksForReg[2] += 90;
switch(TrdLsiSi(stack)){
case 0:
stacksForReg[3] = stack + 1;
stacksForReg[4] = stacksForReg[1] + 1;
stacksForReg[5] = stacksForReg[2] + 1;
break;
case 1:
case 2:
case 3:
stacksForReg[3] = stack + 1;
stacksForReg[4] = stacksForReg[1] + 1;
stacksForReg[5] = stacksForReg[2] + 1;
stacksForReg[6] = stack - 1;
stacksForReg[7] = stacksForReg[1] - 1;
stacksForReg[8] = stacksForReg[2] - 1;
break;
case 4:
stacksForReg[3] = stack - 1;
stacksForReg[4] = stacksForReg[1] - 1;
stacksForReg[5] = stacksForReg[2] - 1;
break;
default:
break;
}
#ifdef TRD_TM_DEBUG
printf("#TRACKMATCHING - assigned ESD track %d to following TRD stacks:", iEsdTrack);
#endif
for (UShort_t iReg = 0; iReg < 9; ++iReg){
if (stacksForReg[iReg] < 0)
break;
if (stacksForReg[iReg] >= 90){
AliError(Form("invalid stack for registration: %i", stacksForReg[iReg]));
continue;
}
if (esdTrackNumByStack[stacksForReg[iReg]] < fgkMaxEsdTracksPerStack - 1)
esdTracksByStack[stacksForReg[iReg]][esdTrackNumByStack[stacksForReg[iReg]]++] = iEsdTrack;
#ifdef TRD_TM_DEBUG
else
printf("#TRACKMATCHING - maximum number (%d) of ESD tracks per stack reached for S%02d-%d (%d tracks total). Skipping track!\n",
fgkMaxEsdTracksPerStack, TrdLsiSec(stacksForReg[iReg]), TrdLsiSi(stacksForReg[iReg]), numEsdTracks);
printf(" S%02d-%d", TrdLsiSec(stacksForReg[iReg]), TrdLsiSi(stacksForReg[iReg]));
#endif
}
#ifdef TRD_TM_DEBUG
printf(" (ESD-ASSIGN)\n");
#endif
}
}
#ifdef TRD_TM_DEBUG
printf("#TRACKMATCHING - %d ESD tracks accepted, %d rejected\n",
numEsdTracksAccepted, numEsdTracks - numEsdTracksAccepted);
#endif
AliESDTrdTrack* trdTrack;
Double_t trdPt;
AliESDtrack* matchCandidate;
AliESDtrack* matchTrack;
Int_t matchEsdTrackIndexInStack;
Double_t matchRating;
Int_t matchCandidateCount;
Double_t distY, distZ;
for (UInt_t iTrdTrack = 0; iTrdTrack < numTrdTracks; ++iTrdTrack){
trdTrack = esdEvent->GetTrdTrack(iTrdTrack);
if ((label != -1) &&
(trdTrack->GetLabel() != label))
continue;
if ((trdTrack->GetSector() < 0) || (trdTrack->GetSector() > 17) ||
(trdTrack->GetStack() < 0) || (trdTrack->GetStack() > 4))
continue;
stack = TrdSecSiLsi(trdTrack->GetSector(), trdTrack->GetStack());
trdPt = (esdEvent->GetMagneticField() > 0.) ? (-1.*trdTrack->Pt()) : trdTrack->Pt();
matchTrack = NULL;
matchEsdTrackIndexInStack = -1;
matchRating = 0.;
matchCandidateCount = 0;
#ifdef TRD_TM_DEBUG
printf("#TRACKMATCHING - trying to match TRD online track %d in S%02d-%d\n",
iTrdTrack, trdTrack->GetSector(), trdTrack->GetStack());
#endif
for (UInt_t iEsdTrack = 0; iEsdTrack < esdTrackNumByStack[stack]; ++iEsdTrack){
matchCandidate = esdEvent->GetTrack(esdTracksByStack[stack][iEsdTrack]);
if (EstimateTrackDistance(matchCandidate, trdTrack, esdEvent->GetMagneticField(), &distY, &distZ) == 0){
Double_t rating = RateTrackMatch(distY, distZ, matchCandidate->GetSignedPt(), trdPt);
#ifdef TRD_TM_DEBUG
printf("#TRACKMATCHING S%02d-%d trd %d - esd %d dy: %.3f dz: %.3f r: %.3f pt e: %.2f t: %.2f match: %d\n",
trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, iEsdTrack,
distY, distZ, rating, matchCandidate->GetSignedPt(), trdPt,
(rating >= fMinMatchRating) ? 1 : 0);
#endif
if (rating > 0.){
matchCandidateCount++;
if ((matchTrack == NULL) || (rating > matchRating)){
matchTrack = matchCandidate;
matchEsdTrackIndexInStack = iEsdTrack;
matchRating = rating;
}
}
} else {
#ifdef TRD_TM_DEBUG
printf("TRACKMATCHING S%02d-%d trd %d - esd %d failed\n",
trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, iEsdTrack);
#endif
}
}
if (fHistMatchRating){
fHistMatchRating->Fill(matchRating);
}
if ((matchTrack) && (matchRating >= fMinMatchRating)){
AliDebug(1, Form("S%02d-%d trd %d - esd %d match! pt: %.2f %.2f",
trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, matchEsdTrackIndexInStack,
trdPt, matchTrack->GetSignedPt()));
#ifdef TRD_TM_DEBUG
printf("#TRACKMATCHING S%02d-%d trd %d - esd %d match! pt: %.2f %.2f\n",
trdTrack->GetSector(), trdTrack->GetStack(), iTrdTrack, matchEsdTrackIndexInStack,
trdPt, matchTrack->GetSignedPt());
#endif
if (updateRef)
trdTrack->SetTrackMatchReference(matchTrack);
} else {
if (updateRef)
trdTrack->SetTrackMatchReference(NULL);
}
}
return kTRUE;
}
Bool_t AliTRDonlineTrackMatching::TrackPlaneIntersect(AliExternalTrackParam *trk, Double_t pnt[3], Double_t norm[3], Double_t mag){
UInt_t its = 0;
Double_t r = 290.;
Double_t step = 10.;
Int_t flag = 0;
Double_t dist = 0, dist_prev = 0;
Double_t x[3] = {0., 0., 0.};
dist = (x[0] - pnt[0]) * norm[0] + (x[1] - pnt[1]) *norm[1] + (x[2] - pnt[2]) * norm[2];
while(TMath::Abs(dist) > 0.1) {
trk->GetXYZAt(r, mag, x);
if ((x[0] * x[0] + x[1] * x[1]) < 100.)
return kFALSE;
dist_prev = TMath::Abs(dist);
dist = (x[0] - pnt[0]) * norm[0] + (x[1] - pnt[1]) * norm[1];
if ((flag) && (TMath::Abs(dist) > dist_prev)){
step /= -2.;
}
flag=1;
r += step;
its++;
if ((r > 380.) || (r < 100.) || (its > 100) || (TMath::Abs(step) < 0.00001)){
break;
}
}
for (Int_t i=0; i<3; i++)
pnt[i] = x[i];
return kTRUE;
}
Int_t AliTRDonlineTrackMatching::EstimateTrackDistance(AliESDtrack *esd_track, AliESDTrdTrack* gtu_track, Double_t mag, Double_t *ydist, Double_t *zdist){
if ((!esd_track) || (!gtu_track))
return -3;
if (!fTRDgeo)
fTRDgeo = new AliTRDgeometry();
Float_t diff_y = 0;
Float_t diff_z = 0;
Int_t nLayers = 0;
Double_t xtrkl[3];
Double_t ptrkl[3];
Double_t ptrkl2[3];
UInt_t trklDet;
UShort_t trklLayer;
UInt_t stack_gtu;
UShort_t stackInSector;
for (UShort_t iLayer = 0; iLayer < 6; iLayer++){
AliESDTrdTracklet* trkl = gtu_track->GetTracklet(iLayer);
if (trkl){
trklDet = trkl->GetDetector();
trklLayer = TrdDetLyr(trklDet);
stack_gtu = TrdDetLsi(trklDet);
stackInSector = TrdDetSi(trklDet);
xtrkl[0] = AliTRDgeometry::AnodePos();
xtrkl[1] = trkl->GetLocalY();
if(stackInSector == 2){
xtrkl[2] = fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowPos(trkl->GetBinZ()) -
(fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowSize(trkl->GetBinZ()))/2. -
fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowPos(6);
} else {
xtrkl[2] = fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowPos(trkl->GetBinZ()) -
(fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowSize(trkl->GetBinZ()))/2. -
fTRDgeo->GetPadPlane(trklLayer, stackInSector)->GetRowPos(8);
}
TGeoHMatrix *matrix = fTRDgeo->GetClusterMatrix(trklDet);
if (!matrix){
if ((stack_gtu != 13*5+2) && (stack_gtu != 14*5+2) && (stack_gtu != 15*5+2))
AliDebug(1, Form("invalid TRD cluster matrix in EstimateTrackDistance for detector %i", trklDet));
return -5;
}
matrix->LocalToMaster(xtrkl, ptrkl);
fTRDgeo->RotateBack(gtu_track->GetSector() * 30, ptrkl, ptrkl2);
Double_t layer_zero_local[3] = {0., 0., 0.};
Double_t layer_zero_global[3], layer_zero_global2[3];
matrix->LocalToMaster(layer_zero_local, layer_zero_global);
fTRDgeo->RotateBack(trklDet, layer_zero_global, layer_zero_global2);
Double_t layer_ref_local[3] = {AliTRDgeometry::AnodePos(), 0., 0.};
Double_t layer_ref_global[3], layer_ref_global2[3];
matrix->LocalToMaster(layer_ref_local, layer_ref_global);
fTRDgeo->RotateBack(trklDet, layer_ref_global, layer_ref_global2);
Double_t n0[3] = {layer_ref_global2[0]-layer_zero_global2[0],
layer_ref_global2[1]-layer_zero_global2[1],
layer_ref_global2[2]-layer_zero_global2[2]};
Double_t n_len = TMath::Sqrt(n0[0]*n0[0] + n0[1]*n0[1] + n0[2]*n0[2]);
if (n_len == 0.){
AliError("divison by zero in estimate_track_distance!");
n_len = 1.;
}
Double_t n[3] = {n0[0]/n_len, n0[1]/n_len, n0[2]/n_len};
const AliExternalTrackParam *trackParam = esd_track->GetOuterParam();
if (!trackParam) {
trackParam = esd_track->GetInnerParam();
if (!trackParam)
trackParam = esd_track;
}
AliExternalTrackParam *outerTPC = new AliExternalTrackParam(*trackParam);
Bool_t isects = TrackPlaneIntersect(outerTPC, layer_ref_global2, n, mag);
delete outerTPC;
outerTPC = NULL;
if (isects == kFALSE){
return -1;
}
Double_t m[2] = {ptrkl2[0] - layer_ref_global2[0], ptrkl2[1] - layer_ref_global2[1]};
Double_t len_m = TMath::Sqrt(m[0]*m[0] + m[1]*m[1]);
diff_y += len_m;
diff_z += TMath::Abs(ptrkl2[2] - layer_ref_global2[2]);
nLayers++;
}
}
if (nLayers > 0){
*ydist = diff_y / nLayers;
*zdist = diff_z / nLayers;
return 0;
}
else
return -4;
}
Double_t AliTRDonlineTrackMatching::PtDiffRel(Double_t refPt, Double_t gtuPt){
if (TMath::Abs(refPt) > 0.000001){
return (gtuPt - refPt) / refPt;
} else
return 0.;
}
Double_t AliTRDonlineTrackMatching::RateTrackMatch(Double_t distY, Double_t distZ, Double_t rpt, Double_t gpt){
if ((distY > 5.) || (distZ > 20.))
return 0.;
if ((rpt * gpt) < 0.)
return 0.;
Double_t rating_distY = -0.1 * distY + 1.;
Double_t rating_distZ = -0.025 * distZ + 1.;
Double_t rating_ptDiff = 1. - TMath::Abs(PtDiffRel(rpt, gpt));
if (rating_ptDiff < 0.)
rating_ptDiff = 0.2;
Double_t total = rating_distY * rating_distZ * rating_ptDiff;
#ifdef TRD_TM_DEBUG
if (total > 1.){
printf("<ERROR> track match rating exceeds limit of 1.0: %.3f", total);
}
#endif
return total;
}
void AliTRDonlineTrackMatching::SetEsdTrackDefaultCuts(const char* cutIdent) {
if (strcmp(cutIdent, "strict") == 0){
#ifdef TRD_TM_DEBUG
printf("AliTRDonlineTrackMatching -- default track cuts selected");
#endif
fEsdTrackCutMinimal = kFALSE;
fEsdTrackCutPrim = kFALSE;
fEsdTrackCutMinTPCrows = 70;
fEsdTrackCutRequireTPCrefit = kTRUE;
fEsdTrackCutMinRatioRowsFindableClusters = 0.8;
fEsdTrackCutMaxChi2TPCclusters = 4.;
fEsdTrackVCutsChi2TPCconstrainedVsGlobal = 36.;
fEsdTrackCutRequireITSrefit = kFALSE;
fEsdTrackCutMaxChi2ITSclusters = 36.;
fEsdTrackCutMaxDCAtoVertexXY = 1000.;
fEsdTrackCutMaxDCAtoVertexZ = 2.;
fEsdTrackCutsITSlayerMask = 0x0;
fEsdTrackCutPtDCAOfs = 0.0105;
fEsdTrackCutPtDCACoeff = 0.0350;
} else if (strcmp(cutIdent, "minimal") == 0){
#ifdef TRD_TM_DEBUG
printf("AliTRDonlineTrackMatching -- minimal track cuts selected\n");
#endif
fEsdTrackCutMinimal = kFALSE;
fEsdTrackCutPrim = kFALSE;
fEsdTrackCutMinTPCrows = 70;
fEsdTrackCutRequireTPCrefit = kTRUE;
fEsdTrackCutMinRatioRowsFindableClusters = 0.;
fEsdTrackCutMaxChi2TPCclusters = 100.;
fEsdTrackVCutsChi2TPCconstrainedVsGlobal = 1000.;
fEsdTrackCutRequireITSrefit = kFALSE;
fEsdTrackCutMaxChi2ITSclusters = 0.;
fEsdTrackCutMaxDCAtoVertexXY = 1000.;
fEsdTrackCutMaxDCAtoVertexZ = 1000.;
fEsdTrackCutsITSlayerMask = 0x0;
} else
AliErrorClass("invalid cut set");
}
AliTRDonlineTrackMatching.cxx:1 AliTRDonlineTrackMatching.cxx:2 AliTRDonlineTrackMatching.cxx:3 AliTRDonlineTrackMatching.cxx:4 AliTRDonlineTrackMatching.cxx:5 AliTRDonlineTrackMatching.cxx:6 AliTRDonlineTrackMatching.cxx:7 AliTRDonlineTrackMatching.cxx:8 AliTRDonlineTrackMatching.cxx:9 AliTRDonlineTrackMatching.cxx:10 AliTRDonlineTrackMatching.cxx:11 AliTRDonlineTrackMatching.cxx:12 AliTRDonlineTrackMatching.cxx:13 AliTRDonlineTrackMatching.cxx:14 AliTRDonlineTrackMatching.cxx:15 AliTRDonlineTrackMatching.cxx:16 AliTRDonlineTrackMatching.cxx:17 AliTRDonlineTrackMatching.cxx:18 AliTRDonlineTrackMatching.cxx:19 AliTRDonlineTrackMatching.cxx:20 AliTRDonlineTrackMatching.cxx:21 AliTRDonlineTrackMatching.cxx:22 AliTRDonlineTrackMatching.cxx:23 AliTRDonlineTrackMatching.cxx:24 AliTRDonlineTrackMatching.cxx:25 AliTRDonlineTrackMatching.cxx:26 AliTRDonlineTrackMatching.cxx:27 AliTRDonlineTrackMatching.cxx:28 AliTRDonlineTrackMatching.cxx:29 AliTRDonlineTrackMatching.cxx:30 AliTRDonlineTrackMatching.cxx:31 AliTRDonlineTrackMatching.cxx:32 AliTRDonlineTrackMatching.cxx:33 AliTRDonlineTrackMatching.cxx:34 AliTRDonlineTrackMatching.cxx:35 AliTRDonlineTrackMatching.cxx:36 AliTRDonlineTrackMatching.cxx:37 AliTRDonlineTrackMatching.cxx:38 AliTRDonlineTrackMatching.cxx:39 AliTRDonlineTrackMatching.cxx:40 AliTRDonlineTrackMatching.cxx:41 AliTRDonlineTrackMatching.cxx:42 AliTRDonlineTrackMatching.cxx:43 AliTRDonlineTrackMatching.cxx:44 AliTRDonlineTrackMatching.cxx:45 AliTRDonlineTrackMatching.cxx:46 AliTRDonlineTrackMatching.cxx:47 AliTRDonlineTrackMatching.cxx:48 AliTRDonlineTrackMatching.cxx:49 AliTRDonlineTrackMatching.cxx:50 AliTRDonlineTrackMatching.cxx:51 AliTRDonlineTrackMatching.cxx:52 AliTRDonlineTrackMatching.cxx:53 AliTRDonlineTrackMatching.cxx:54 AliTRDonlineTrackMatching.cxx:55 AliTRDonlineTrackMatching.cxx:56 AliTRDonlineTrackMatching.cxx:57 AliTRDonlineTrackMatching.cxx:58 AliTRDonlineTrackMatching.cxx:59 AliTRDonlineTrackMatching.cxx:60 AliTRDonlineTrackMatching.cxx:61 AliTRDonlineTrackMatching.cxx:62 AliTRDonlineTrackMatching.cxx:63 AliTRDonlineTrackMatching.cxx:64 AliTRDonlineTrackMatching.cxx:65 AliTRDonlineTrackMatching.cxx:66 AliTRDonlineTrackMatching.cxx:67 AliTRDonlineTrackMatching.cxx:68 AliTRDonlineTrackMatching.cxx:69 AliTRDonlineTrackMatching.cxx:70 AliTRDonlineTrackMatching.cxx:71 AliTRDonlineTrackMatching.cxx:72 AliTRDonlineTrackMatching.cxx:73 AliTRDonlineTrackMatching.cxx:74 AliTRDonlineTrackMatching.cxx:75 AliTRDonlineTrackMatching.cxx:76 AliTRDonlineTrackMatching.cxx:77 AliTRDonlineTrackMatching.cxx:78 AliTRDonlineTrackMatching.cxx:79 AliTRDonlineTrackMatching.cxx:80 AliTRDonlineTrackMatching.cxx:81 AliTRDonlineTrackMatching.cxx:82 AliTRDonlineTrackMatching.cxx:83 AliTRDonlineTrackMatching.cxx:84 AliTRDonlineTrackMatching.cxx:85 AliTRDonlineTrackMatching.cxx:86 AliTRDonlineTrackMatching.cxx:87 AliTRDonlineTrackMatching.cxx:88 AliTRDonlineTrackMatching.cxx:89 AliTRDonlineTrackMatching.cxx:90 AliTRDonlineTrackMatching.cxx:91 AliTRDonlineTrackMatching.cxx:92 AliTRDonlineTrackMatching.cxx:93 AliTRDonlineTrackMatching.cxx:94 AliTRDonlineTrackMatching.cxx:95 AliTRDonlineTrackMatching.cxx:96 AliTRDonlineTrackMatching.cxx:97 AliTRDonlineTrackMatching.cxx:98 AliTRDonlineTrackMatching.cxx:99 AliTRDonlineTrackMatching.cxx:100 AliTRDonlineTrackMatching.cxx:101 AliTRDonlineTrackMatching.cxx:102 AliTRDonlineTrackMatching.cxx:103 AliTRDonlineTrackMatching.cxx:104 AliTRDonlineTrackMatching.cxx:105 AliTRDonlineTrackMatching.cxx:106 AliTRDonlineTrackMatching.cxx:107 AliTRDonlineTrackMatching.cxx:108 AliTRDonlineTrackMatching.cxx:109 AliTRDonlineTrackMatching.cxx:110 AliTRDonlineTrackMatching.cxx:111 AliTRDonlineTrackMatching.cxx:112 AliTRDonlineTrackMatching.cxx:113 AliTRDonlineTrackMatching.cxx:114 AliTRDonlineTrackMatching.cxx:115 AliTRDonlineTrackMatching.cxx:116 AliTRDonlineTrackMatching.cxx:117 AliTRDonlineTrackMatching.cxx:118 AliTRDonlineTrackMatching.cxx:119 AliTRDonlineTrackMatching.cxx:120 AliTRDonlineTrackMatching.cxx:121 AliTRDonlineTrackMatching.cxx:122 AliTRDonlineTrackMatching.cxx:123 AliTRDonlineTrackMatching.cxx:124 AliTRDonlineTrackMatching.cxx:125 AliTRDonlineTrackMatching.cxx:126 AliTRDonlineTrackMatching.cxx:127 AliTRDonlineTrackMatching.cxx:128 AliTRDonlineTrackMatching.cxx:129 AliTRDonlineTrackMatching.cxx:130 AliTRDonlineTrackMatching.cxx:131 AliTRDonlineTrackMatching.cxx:132 AliTRDonlineTrackMatching.cxx:133 AliTRDonlineTrackMatching.cxx:134 AliTRDonlineTrackMatching.cxx:135 AliTRDonlineTrackMatching.cxx:136 AliTRDonlineTrackMatching.cxx:137 AliTRDonlineTrackMatching.cxx:138 AliTRDonlineTrackMatching.cxx:139 AliTRDonlineTrackMatching.cxx:140 AliTRDonlineTrackMatching.cxx:141 AliTRDonlineTrackMatching.cxx:142 AliTRDonlineTrackMatching.cxx:143 AliTRDonlineTrackMatching.cxx:144 AliTRDonlineTrackMatching.cxx:145 AliTRDonlineTrackMatching.cxx:146 AliTRDonlineTrackMatching.cxx:147 AliTRDonlineTrackMatching.cxx:148 AliTRDonlineTrackMatching.cxx:149 AliTRDonlineTrackMatching.cxx:150 AliTRDonlineTrackMatching.cxx:151 AliTRDonlineTrackMatching.cxx:152 AliTRDonlineTrackMatching.cxx:153 AliTRDonlineTrackMatching.cxx:154 AliTRDonlineTrackMatching.cxx:155 AliTRDonlineTrackMatching.cxx:156 AliTRDonlineTrackMatching.cxx:157 AliTRDonlineTrackMatching.cxx:158 AliTRDonlineTrackMatching.cxx:159 AliTRDonlineTrackMatching.cxx:160 AliTRDonlineTrackMatching.cxx:161 AliTRDonlineTrackMatching.cxx:162 AliTRDonlineTrackMatching.cxx:163 AliTRDonlineTrackMatching.cxx:164 AliTRDonlineTrackMatching.cxx:165 AliTRDonlineTrackMatching.cxx:166 AliTRDonlineTrackMatching.cxx:167 AliTRDonlineTrackMatching.cxx:168 AliTRDonlineTrackMatching.cxx:169 AliTRDonlineTrackMatching.cxx:170 AliTRDonlineTrackMatching.cxx:171 AliTRDonlineTrackMatching.cxx:172 AliTRDonlineTrackMatching.cxx:173 AliTRDonlineTrackMatching.cxx:174 AliTRDonlineTrackMatching.cxx:175 AliTRDonlineTrackMatching.cxx:176 AliTRDonlineTrackMatching.cxx:177 AliTRDonlineTrackMatching.cxx:178 AliTRDonlineTrackMatching.cxx:179 AliTRDonlineTrackMatching.cxx:180 AliTRDonlineTrackMatching.cxx:181 AliTRDonlineTrackMatching.cxx:182 AliTRDonlineTrackMatching.cxx:183 AliTRDonlineTrackMatching.cxx:184 AliTRDonlineTrackMatching.cxx:185 AliTRDonlineTrackMatching.cxx:186 AliTRDonlineTrackMatching.cxx:187 AliTRDonlineTrackMatching.cxx:188 AliTRDonlineTrackMatching.cxx:189 AliTRDonlineTrackMatching.cxx:190 AliTRDonlineTrackMatching.cxx:191 AliTRDonlineTrackMatching.cxx:192 AliTRDonlineTrackMatching.cxx:193 AliTRDonlineTrackMatching.cxx:194 AliTRDonlineTrackMatching.cxx:195 AliTRDonlineTrackMatching.cxx:196 AliTRDonlineTrackMatching.cxx:197 AliTRDonlineTrackMatching.cxx:198 AliTRDonlineTrackMatching.cxx:199 AliTRDonlineTrackMatching.cxx:200 AliTRDonlineTrackMatching.cxx:201 AliTRDonlineTrackMatching.cxx:202 AliTRDonlineTrackMatching.cxx:203 AliTRDonlineTrackMatching.cxx:204 AliTRDonlineTrackMatching.cxx:205 AliTRDonlineTrackMatching.cxx:206 AliTRDonlineTrackMatching.cxx:207 AliTRDonlineTrackMatching.cxx:208 AliTRDonlineTrackMatching.cxx:209 AliTRDonlineTrackMatching.cxx:210 AliTRDonlineTrackMatching.cxx:211 AliTRDonlineTrackMatching.cxx:212 AliTRDonlineTrackMatching.cxx:213 AliTRDonlineTrackMatching.cxx:214 AliTRDonlineTrackMatching.cxx:215 AliTRDonlineTrackMatching.cxx:216 AliTRDonlineTrackMatching.cxx:217 AliTRDonlineTrackMatching.cxx:218 AliTRDonlineTrackMatching.cxx:219 AliTRDonlineTrackMatching.cxx:220 AliTRDonlineTrackMatching.cxx:221 AliTRDonlineTrackMatching.cxx:222 AliTRDonlineTrackMatching.cxx:223 AliTRDonlineTrackMatching.cxx:224 AliTRDonlineTrackMatching.cxx:225 AliTRDonlineTrackMatching.cxx:226 AliTRDonlineTrackMatching.cxx:227 AliTRDonlineTrackMatching.cxx:228 AliTRDonlineTrackMatching.cxx:229 AliTRDonlineTrackMatching.cxx:230 AliTRDonlineTrackMatching.cxx:231 AliTRDonlineTrackMatching.cxx:232 AliTRDonlineTrackMatching.cxx:233 AliTRDonlineTrackMatching.cxx:234 AliTRDonlineTrackMatching.cxx:235 AliTRDonlineTrackMatching.cxx:236 AliTRDonlineTrackMatching.cxx:237 AliTRDonlineTrackMatching.cxx:238 AliTRDonlineTrackMatching.cxx:239 AliTRDonlineTrackMatching.cxx:240 AliTRDonlineTrackMatching.cxx:241 AliTRDonlineTrackMatching.cxx:242 AliTRDonlineTrackMatching.cxx:243 AliTRDonlineTrackMatching.cxx:244 AliTRDonlineTrackMatching.cxx:245 AliTRDonlineTrackMatching.cxx:246 AliTRDonlineTrackMatching.cxx:247 AliTRDonlineTrackMatching.cxx:248 AliTRDonlineTrackMatching.cxx:249 AliTRDonlineTrackMatching.cxx:250 AliTRDonlineTrackMatching.cxx:251 AliTRDonlineTrackMatching.cxx:252 AliTRDonlineTrackMatching.cxx:253 AliTRDonlineTrackMatching.cxx:254 AliTRDonlineTrackMatching.cxx:255 AliTRDonlineTrackMatching.cxx:256 AliTRDonlineTrackMatching.cxx:257 AliTRDonlineTrackMatching.cxx:258 AliTRDonlineTrackMatching.cxx:259 AliTRDonlineTrackMatching.cxx:260 AliTRDonlineTrackMatching.cxx:261 AliTRDonlineTrackMatching.cxx:262 AliTRDonlineTrackMatching.cxx:263 AliTRDonlineTrackMatching.cxx:264 AliTRDonlineTrackMatching.cxx:265 AliTRDonlineTrackMatching.cxx:266 AliTRDonlineTrackMatching.cxx:267 AliTRDonlineTrackMatching.cxx:268 AliTRDonlineTrackMatching.cxx:269 AliTRDonlineTrackMatching.cxx:270 AliTRDonlineTrackMatching.cxx:271 AliTRDonlineTrackMatching.cxx:272 AliTRDonlineTrackMatching.cxx:273 AliTRDonlineTrackMatching.cxx:274 AliTRDonlineTrackMatching.cxx:275 AliTRDonlineTrackMatching.cxx:276 AliTRDonlineTrackMatching.cxx:277 AliTRDonlineTrackMatching.cxx:278 AliTRDonlineTrackMatching.cxx:279 AliTRDonlineTrackMatching.cxx:280 AliTRDonlineTrackMatching.cxx:281 AliTRDonlineTrackMatching.cxx:282 AliTRDonlineTrackMatching.cxx:283 AliTRDonlineTrackMatching.cxx:284 AliTRDonlineTrackMatching.cxx:285 AliTRDonlineTrackMatching.cxx:286 AliTRDonlineTrackMatching.cxx:287 AliTRDonlineTrackMatching.cxx:288 AliTRDonlineTrackMatching.cxx:289 AliTRDonlineTrackMatching.cxx:290 AliTRDonlineTrackMatching.cxx:291 AliTRDonlineTrackMatching.cxx:292 AliTRDonlineTrackMatching.cxx:293 AliTRDonlineTrackMatching.cxx:294 AliTRDonlineTrackMatching.cxx:295 AliTRDonlineTrackMatching.cxx:296 AliTRDonlineTrackMatching.cxx:297 AliTRDonlineTrackMatching.cxx:298 AliTRDonlineTrackMatching.cxx:299 AliTRDonlineTrackMatching.cxx:300 AliTRDonlineTrackMatching.cxx:301 AliTRDonlineTrackMatching.cxx:302 AliTRDonlineTrackMatching.cxx:303 AliTRDonlineTrackMatching.cxx:304 AliTRDonlineTrackMatching.cxx:305 AliTRDonlineTrackMatching.cxx:306 AliTRDonlineTrackMatching.cxx:307 AliTRDonlineTrackMatching.cxx:308 AliTRDonlineTrackMatching.cxx:309 AliTRDonlineTrackMatching.cxx:310 AliTRDonlineTrackMatching.cxx:311 AliTRDonlineTrackMatching.cxx:312 AliTRDonlineTrackMatching.cxx:313 AliTRDonlineTrackMatching.cxx:314 AliTRDonlineTrackMatching.cxx:315 AliTRDonlineTrackMatching.cxx:316 AliTRDonlineTrackMatching.cxx:317 AliTRDonlineTrackMatching.cxx:318 AliTRDonlineTrackMatching.cxx:319 AliTRDonlineTrackMatching.cxx:320 AliTRDonlineTrackMatching.cxx:321 AliTRDonlineTrackMatching.cxx:322 AliTRDonlineTrackMatching.cxx:323 AliTRDonlineTrackMatching.cxx:324 AliTRDonlineTrackMatching.cxx:325 AliTRDonlineTrackMatching.cxx:326 AliTRDonlineTrackMatching.cxx:327 AliTRDonlineTrackMatching.cxx:328 AliTRDonlineTrackMatching.cxx:329 AliTRDonlineTrackMatching.cxx:330 AliTRDonlineTrackMatching.cxx:331 AliTRDonlineTrackMatching.cxx:332 AliTRDonlineTrackMatching.cxx:333 AliTRDonlineTrackMatching.cxx:334 AliTRDonlineTrackMatching.cxx:335 AliTRDonlineTrackMatching.cxx:336 AliTRDonlineTrackMatching.cxx:337 AliTRDonlineTrackMatching.cxx:338 AliTRDonlineTrackMatching.cxx:339 AliTRDonlineTrackMatching.cxx:340 AliTRDonlineTrackMatching.cxx:341 AliTRDonlineTrackMatching.cxx:342 AliTRDonlineTrackMatching.cxx:343 AliTRDonlineTrackMatching.cxx:344 AliTRDonlineTrackMatching.cxx:345 AliTRDonlineTrackMatching.cxx:346 AliTRDonlineTrackMatching.cxx:347 AliTRDonlineTrackMatching.cxx:348 AliTRDonlineTrackMatching.cxx:349 AliTRDonlineTrackMatching.cxx:350 AliTRDonlineTrackMatching.cxx:351 AliTRDonlineTrackMatching.cxx:352 AliTRDonlineTrackMatching.cxx:353 AliTRDonlineTrackMatching.cxx:354 AliTRDonlineTrackMatching.cxx:355 AliTRDonlineTrackMatching.cxx:356 AliTRDonlineTrackMatching.cxx:357 AliTRDonlineTrackMatching.cxx:358 AliTRDonlineTrackMatching.cxx:359 AliTRDonlineTrackMatching.cxx:360 AliTRDonlineTrackMatching.cxx:361 AliTRDonlineTrackMatching.cxx:362 AliTRDonlineTrackMatching.cxx:363 AliTRDonlineTrackMatching.cxx:364 AliTRDonlineTrackMatching.cxx:365 AliTRDonlineTrackMatching.cxx:366 AliTRDonlineTrackMatching.cxx:367 AliTRDonlineTrackMatching.cxx:368 AliTRDonlineTrackMatching.cxx:369 AliTRDonlineTrackMatching.cxx:370 AliTRDonlineTrackMatching.cxx:371 AliTRDonlineTrackMatching.cxx:372 AliTRDonlineTrackMatching.cxx:373 AliTRDonlineTrackMatching.cxx:374 AliTRDonlineTrackMatching.cxx:375 AliTRDonlineTrackMatching.cxx:376 AliTRDonlineTrackMatching.cxx:377 AliTRDonlineTrackMatching.cxx:378 AliTRDonlineTrackMatching.cxx:379 AliTRDonlineTrackMatching.cxx:380 AliTRDonlineTrackMatching.cxx:381 AliTRDonlineTrackMatching.cxx:382 AliTRDonlineTrackMatching.cxx:383 AliTRDonlineTrackMatching.cxx:384 AliTRDonlineTrackMatching.cxx:385 AliTRDonlineTrackMatching.cxx:386 AliTRDonlineTrackMatching.cxx:387 AliTRDonlineTrackMatching.cxx:388 AliTRDonlineTrackMatching.cxx:389 AliTRDonlineTrackMatching.cxx:390 AliTRDonlineTrackMatching.cxx:391 AliTRDonlineTrackMatching.cxx:392 AliTRDonlineTrackMatching.cxx:393 AliTRDonlineTrackMatching.cxx:394 AliTRDonlineTrackMatching.cxx:395 AliTRDonlineTrackMatching.cxx:396 AliTRDonlineTrackMatching.cxx:397 AliTRDonlineTrackMatching.cxx:398 AliTRDonlineTrackMatching.cxx:399 AliTRDonlineTrackMatching.cxx:400 AliTRDonlineTrackMatching.cxx:401 AliTRDonlineTrackMatching.cxx:402 AliTRDonlineTrackMatching.cxx:403 AliTRDonlineTrackMatching.cxx:404 AliTRDonlineTrackMatching.cxx:405 AliTRDonlineTrackMatching.cxx:406 AliTRDonlineTrackMatching.cxx:407 AliTRDonlineTrackMatching.cxx:408 AliTRDonlineTrackMatching.cxx:409 AliTRDonlineTrackMatching.cxx:410 AliTRDonlineTrackMatching.cxx:411 AliTRDonlineTrackMatching.cxx:412 AliTRDonlineTrackMatching.cxx:413 AliTRDonlineTrackMatching.cxx:414 AliTRDonlineTrackMatching.cxx:415 AliTRDonlineTrackMatching.cxx:416 AliTRDonlineTrackMatching.cxx:417 AliTRDonlineTrackMatching.cxx:418 AliTRDonlineTrackMatching.cxx:419 AliTRDonlineTrackMatching.cxx:420 AliTRDonlineTrackMatching.cxx:421 AliTRDonlineTrackMatching.cxx:422 AliTRDonlineTrackMatching.cxx:423 AliTRDonlineTrackMatching.cxx:424 AliTRDonlineTrackMatching.cxx:425 AliTRDonlineTrackMatching.cxx:426 AliTRDonlineTrackMatching.cxx:427 AliTRDonlineTrackMatching.cxx:428 AliTRDonlineTrackMatching.cxx:429 AliTRDonlineTrackMatching.cxx:430 AliTRDonlineTrackMatching.cxx:431 AliTRDonlineTrackMatching.cxx:432 AliTRDonlineTrackMatching.cxx:433 AliTRDonlineTrackMatching.cxx:434 AliTRDonlineTrackMatching.cxx:435 AliTRDonlineTrackMatching.cxx:436 AliTRDonlineTrackMatching.cxx:437 AliTRDonlineTrackMatching.cxx:438 AliTRDonlineTrackMatching.cxx:439 AliTRDonlineTrackMatching.cxx:440 AliTRDonlineTrackMatching.cxx:441 AliTRDonlineTrackMatching.cxx:442 AliTRDonlineTrackMatching.cxx:443 AliTRDonlineTrackMatching.cxx:444 AliTRDonlineTrackMatching.cxx:445 AliTRDonlineTrackMatching.cxx:446 AliTRDonlineTrackMatching.cxx:447 AliTRDonlineTrackMatching.cxx:448 AliTRDonlineTrackMatching.cxx:449 AliTRDonlineTrackMatching.cxx:450 AliTRDonlineTrackMatching.cxx:451 AliTRDonlineTrackMatching.cxx:452 AliTRDonlineTrackMatching.cxx:453 AliTRDonlineTrackMatching.cxx:454 AliTRDonlineTrackMatching.cxx:455 AliTRDonlineTrackMatching.cxx:456 AliTRDonlineTrackMatching.cxx:457 AliTRDonlineTrackMatching.cxx:458 AliTRDonlineTrackMatching.cxx:459 AliTRDonlineTrackMatching.cxx:460 AliTRDonlineTrackMatching.cxx:461 AliTRDonlineTrackMatching.cxx:462 AliTRDonlineTrackMatching.cxx:463 AliTRDonlineTrackMatching.cxx:464 AliTRDonlineTrackMatching.cxx:465 AliTRDonlineTrackMatching.cxx:466 AliTRDonlineTrackMatching.cxx:467 AliTRDonlineTrackMatching.cxx:468 AliTRDonlineTrackMatching.cxx:469 AliTRDonlineTrackMatching.cxx:470 AliTRDonlineTrackMatching.cxx:471 AliTRDonlineTrackMatching.cxx:472 AliTRDonlineTrackMatching.cxx:473 AliTRDonlineTrackMatching.cxx:474 AliTRDonlineTrackMatching.cxx:475 AliTRDonlineTrackMatching.cxx:476 AliTRDonlineTrackMatching.cxx:477 AliTRDonlineTrackMatching.cxx:478 AliTRDonlineTrackMatching.cxx:479 AliTRDonlineTrackMatching.cxx:480 AliTRDonlineTrackMatching.cxx:481 AliTRDonlineTrackMatching.cxx:482 AliTRDonlineTrackMatching.cxx:483 AliTRDonlineTrackMatching.cxx:484 AliTRDonlineTrackMatching.cxx:485 AliTRDonlineTrackMatching.cxx:486 AliTRDonlineTrackMatching.cxx:487 AliTRDonlineTrackMatching.cxx:488 AliTRDonlineTrackMatching.cxx:489 AliTRDonlineTrackMatching.cxx:490 AliTRDonlineTrackMatching.cxx:491 AliTRDonlineTrackMatching.cxx:492 AliTRDonlineTrackMatching.cxx:493 AliTRDonlineTrackMatching.cxx:494 AliTRDonlineTrackMatching.cxx:495 AliTRDonlineTrackMatching.cxx:496 AliTRDonlineTrackMatching.cxx:497 AliTRDonlineTrackMatching.cxx:498 AliTRDonlineTrackMatching.cxx:499 AliTRDonlineTrackMatching.cxx:500 AliTRDonlineTrackMatching.cxx:501 AliTRDonlineTrackMatching.cxx:502 AliTRDonlineTrackMatching.cxx:503 AliTRDonlineTrackMatching.cxx:504 AliTRDonlineTrackMatching.cxx:505 AliTRDonlineTrackMatching.cxx:506 AliTRDonlineTrackMatching.cxx:507 AliTRDonlineTrackMatching.cxx:508 AliTRDonlineTrackMatching.cxx:509 AliTRDonlineTrackMatching.cxx:510 AliTRDonlineTrackMatching.cxx:511 AliTRDonlineTrackMatching.cxx:512 AliTRDonlineTrackMatching.cxx:513 AliTRDonlineTrackMatching.cxx:514 AliTRDonlineTrackMatching.cxx:515 AliTRDonlineTrackMatching.cxx:516 AliTRDonlineTrackMatching.cxx:517 AliTRDonlineTrackMatching.cxx:518 AliTRDonlineTrackMatching.cxx:519 AliTRDonlineTrackMatching.cxx:520 AliTRDonlineTrackMatching.cxx:521 AliTRDonlineTrackMatching.cxx:522 AliTRDonlineTrackMatching.cxx:523 AliTRDonlineTrackMatching.cxx:524 AliTRDonlineTrackMatching.cxx:525 AliTRDonlineTrackMatching.cxx:526 AliTRDonlineTrackMatching.cxx:527 AliTRDonlineTrackMatching.cxx:528 AliTRDonlineTrackMatching.cxx:529 AliTRDonlineTrackMatching.cxx:530 AliTRDonlineTrackMatching.cxx:531 AliTRDonlineTrackMatching.cxx:532 AliTRDonlineTrackMatching.cxx:533 AliTRDonlineTrackMatching.cxx:534 AliTRDonlineTrackMatching.cxx:535 AliTRDonlineTrackMatching.cxx:536 AliTRDonlineTrackMatching.cxx:537 AliTRDonlineTrackMatching.cxx:538 AliTRDonlineTrackMatching.cxx:539 AliTRDonlineTrackMatching.cxx:540 AliTRDonlineTrackMatching.cxx:541 AliTRDonlineTrackMatching.cxx:542 AliTRDonlineTrackMatching.cxx:543 AliTRDonlineTrackMatching.cxx:544 AliTRDonlineTrackMatching.cxx:545 AliTRDonlineTrackMatching.cxx:546 AliTRDonlineTrackMatching.cxx:547 AliTRDonlineTrackMatching.cxx:548 AliTRDonlineTrackMatching.cxx:549 AliTRDonlineTrackMatching.cxx:550 AliTRDonlineTrackMatching.cxx:551 AliTRDonlineTrackMatching.cxx:552 AliTRDonlineTrackMatching.cxx:553 AliTRDonlineTrackMatching.cxx:554 AliTRDonlineTrackMatching.cxx:555 AliTRDonlineTrackMatching.cxx:556 AliTRDonlineTrackMatching.cxx:557 AliTRDonlineTrackMatching.cxx:558 AliTRDonlineTrackMatching.cxx:559 AliTRDonlineTrackMatching.cxx:560 AliTRDonlineTrackMatching.cxx:561 AliTRDonlineTrackMatching.cxx:562 AliTRDonlineTrackMatching.cxx:563 AliTRDonlineTrackMatching.cxx:564 AliTRDonlineTrackMatching.cxx:565 AliTRDonlineTrackMatching.cxx:566 AliTRDonlineTrackMatching.cxx:567 AliTRDonlineTrackMatching.cxx:568 AliTRDonlineTrackMatching.cxx:569 AliTRDonlineTrackMatching.cxx:570 AliTRDonlineTrackMatching.cxx:571 AliTRDonlineTrackMatching.cxx:572 AliTRDonlineTrackMatching.cxx:573 AliTRDonlineTrackMatching.cxx:574 AliTRDonlineTrackMatching.cxx:575 AliTRDonlineTrackMatching.cxx:576 AliTRDonlineTrackMatching.cxx:577 AliTRDonlineTrackMatching.cxx:578 AliTRDonlineTrackMatching.cxx:579 AliTRDonlineTrackMatching.cxx:580 AliTRDonlineTrackMatching.cxx:581 AliTRDonlineTrackMatching.cxx:582 AliTRDonlineTrackMatching.cxx:583 AliTRDonlineTrackMatching.cxx:584 AliTRDonlineTrackMatching.cxx:585 AliTRDonlineTrackMatching.cxx:586 AliTRDonlineTrackMatching.cxx:587 AliTRDonlineTrackMatching.cxx:588 AliTRDonlineTrackMatching.cxx:589 AliTRDonlineTrackMatching.cxx:590 AliTRDonlineTrackMatching.cxx:591 AliTRDonlineTrackMatching.cxx:592 AliTRDonlineTrackMatching.cxx:593 AliTRDonlineTrackMatching.cxx:594 AliTRDonlineTrackMatching.cxx:595 AliTRDonlineTrackMatching.cxx:596 AliTRDonlineTrackMatching.cxx:597 AliTRDonlineTrackMatching.cxx:598 AliTRDonlineTrackMatching.cxx:599 AliTRDonlineTrackMatching.cxx:600 AliTRDonlineTrackMatching.cxx:601 AliTRDonlineTrackMatching.cxx:602 AliTRDonlineTrackMatching.cxx:603 AliTRDonlineTrackMatching.cxx:604 AliTRDonlineTrackMatching.cxx:605 AliTRDonlineTrackMatching.cxx:606 AliTRDonlineTrackMatching.cxx:607 AliTRDonlineTrackMatching.cxx:608 AliTRDonlineTrackMatching.cxx:609 AliTRDonlineTrackMatching.cxx:610 AliTRDonlineTrackMatching.cxx:611 AliTRDonlineTrackMatching.cxx:612 AliTRDonlineTrackMatching.cxx:613 AliTRDonlineTrackMatching.cxx:614 AliTRDonlineTrackMatching.cxx:615 AliTRDonlineTrackMatching.cxx:616 AliTRDonlineTrackMatching.cxx:617 AliTRDonlineTrackMatching.cxx:618 AliTRDonlineTrackMatching.cxx:619 AliTRDonlineTrackMatching.cxx:620 AliTRDonlineTrackMatching.cxx:621 AliTRDonlineTrackMatching.cxx:622 AliTRDonlineTrackMatching.cxx:623 AliTRDonlineTrackMatching.cxx:624 AliTRDonlineTrackMatching.cxx:625 AliTRDonlineTrackMatching.cxx:626 AliTRDonlineTrackMatching.cxx:627 AliTRDonlineTrackMatching.cxx:628 AliTRDonlineTrackMatching.cxx:629 AliTRDonlineTrackMatching.cxx:630 AliTRDonlineTrackMatching.cxx:631 AliTRDonlineTrackMatching.cxx:632 AliTRDonlineTrackMatching.cxx:633 AliTRDonlineTrackMatching.cxx:634 AliTRDonlineTrackMatching.cxx:635 AliTRDonlineTrackMatching.cxx:636 AliTRDonlineTrackMatching.cxx:637 AliTRDonlineTrackMatching.cxx:638 AliTRDonlineTrackMatching.cxx:639 AliTRDonlineTrackMatching.cxx:640 AliTRDonlineTrackMatching.cxx:641 AliTRDonlineTrackMatching.cxx:642 AliTRDonlineTrackMatching.cxx:643 AliTRDonlineTrackMatching.cxx:644 AliTRDonlineTrackMatching.cxx:645 AliTRDonlineTrackMatching.cxx:646 AliTRDonlineTrackMatching.cxx:647 AliTRDonlineTrackMatching.cxx:648 AliTRDonlineTrackMatching.cxx:649 AliTRDonlineTrackMatching.cxx:650 AliTRDonlineTrackMatching.cxx:651 AliTRDonlineTrackMatching.cxx:652 AliTRDonlineTrackMatching.cxx:653 AliTRDonlineTrackMatching.cxx:654 AliTRDonlineTrackMatching.cxx:655 AliTRDonlineTrackMatching.cxx:656 AliTRDonlineTrackMatching.cxx:657 AliTRDonlineTrackMatching.cxx:658 AliTRDonlineTrackMatching.cxx:659 AliTRDonlineTrackMatching.cxx:660 AliTRDonlineTrackMatching.cxx:661 AliTRDonlineTrackMatching.cxx:662 AliTRDonlineTrackMatching.cxx:663 AliTRDonlineTrackMatching.cxx:664 AliTRDonlineTrackMatching.cxx:665 AliTRDonlineTrackMatching.cxx:666 AliTRDonlineTrackMatching.cxx:667 AliTRDonlineTrackMatching.cxx:668 AliTRDonlineTrackMatching.cxx:669 AliTRDonlineTrackMatching.cxx:670 AliTRDonlineTrackMatching.cxx:671 AliTRDonlineTrackMatching.cxx:672 AliTRDonlineTrackMatching.cxx:673 AliTRDonlineTrackMatching.cxx:674 AliTRDonlineTrackMatching.cxx:675 AliTRDonlineTrackMatching.cxx:676 AliTRDonlineTrackMatching.cxx:677 AliTRDonlineTrackMatching.cxx:678 AliTRDonlineTrackMatching.cxx:679 AliTRDonlineTrackMatching.cxx:680 AliTRDonlineTrackMatching.cxx:681 AliTRDonlineTrackMatching.cxx:682 AliTRDonlineTrackMatching.cxx:683 AliTRDonlineTrackMatching.cxx:684 AliTRDonlineTrackMatching.cxx:685 AliTRDonlineTrackMatching.cxx:686 AliTRDonlineTrackMatching.cxx:687 AliTRDonlineTrackMatching.cxx:688 AliTRDonlineTrackMatching.cxx:689 AliTRDonlineTrackMatching.cxx:690 AliTRDonlineTrackMatching.cxx:691 AliTRDonlineTrackMatching.cxx:692 AliTRDonlineTrackMatching.cxx:693 AliTRDonlineTrackMatching.cxx:694 AliTRDonlineTrackMatching.cxx:695 AliTRDonlineTrackMatching.cxx:696 AliTRDonlineTrackMatching.cxx:697 AliTRDonlineTrackMatching.cxx:698 AliTRDonlineTrackMatching.cxx:699 AliTRDonlineTrackMatching.cxx:700 AliTRDonlineTrackMatching.cxx:701 AliTRDonlineTrackMatching.cxx:702 AliTRDonlineTrackMatching.cxx:703 AliTRDonlineTrackMatching.cxx:704 AliTRDonlineTrackMatching.cxx:705 AliTRDonlineTrackMatching.cxx:706 AliTRDonlineTrackMatching.cxx:707 AliTRDonlineTrackMatching.cxx:708 AliTRDonlineTrackMatching.cxx:709 AliTRDonlineTrackMatching.cxx:710 AliTRDonlineTrackMatching.cxx:711 AliTRDonlineTrackMatching.cxx:712 AliTRDonlineTrackMatching.cxx:713 AliTRDonlineTrackMatching.cxx:714 AliTRDonlineTrackMatching.cxx:715 AliTRDonlineTrackMatching.cxx:716 AliTRDonlineTrackMatching.cxx:717 AliTRDonlineTrackMatching.cxx:718 AliTRDonlineTrackMatching.cxx:719 AliTRDonlineTrackMatching.cxx:720 AliTRDonlineTrackMatching.cxx:721 AliTRDonlineTrackMatching.cxx:722 AliTRDonlineTrackMatching.cxx:723 AliTRDonlineTrackMatching.cxx:724 AliTRDonlineTrackMatching.cxx:725 AliTRDonlineTrackMatching.cxx:726 AliTRDonlineTrackMatching.cxx:727 AliTRDonlineTrackMatching.cxx:728 AliTRDonlineTrackMatching.cxx:729 AliTRDonlineTrackMatching.cxx:730 AliTRDonlineTrackMatching.cxx:731 AliTRDonlineTrackMatching.cxx:732 AliTRDonlineTrackMatching.cxx:733 AliTRDonlineTrackMatching.cxx:734 AliTRDonlineTrackMatching.cxx:735 AliTRDonlineTrackMatching.cxx:736 AliTRDonlineTrackMatching.cxx:737 AliTRDonlineTrackMatching.cxx:738 AliTRDonlineTrackMatching.cxx:739 AliTRDonlineTrackMatching.cxx:740 AliTRDonlineTrackMatching.cxx:741 AliTRDonlineTrackMatching.cxx:742 AliTRDonlineTrackMatching.cxx:743 AliTRDonlineTrackMatching.cxx:744 AliTRDonlineTrackMatching.cxx:745 AliTRDonlineTrackMatching.cxx:746 AliTRDonlineTrackMatching.cxx:747 AliTRDonlineTrackMatching.cxx:748 AliTRDonlineTrackMatching.cxx:749 AliTRDonlineTrackMatching.cxx:750 AliTRDonlineTrackMatching.cxx:751 AliTRDonlineTrackMatching.cxx:752 AliTRDonlineTrackMatching.cxx:753 AliTRDonlineTrackMatching.cxx:754 AliTRDonlineTrackMatching.cxx:755 AliTRDonlineTrackMatching.cxx:756 AliTRDonlineTrackMatching.cxx:757 AliTRDonlineTrackMatching.cxx:758 AliTRDonlineTrackMatching.cxx:759 AliTRDonlineTrackMatching.cxx:760 AliTRDonlineTrackMatching.cxx:761 AliTRDonlineTrackMatching.cxx:762 AliTRDonlineTrackMatching.cxx:763 AliTRDonlineTrackMatching.cxx:764 AliTRDonlineTrackMatching.cxx:765 AliTRDonlineTrackMatching.cxx:766 AliTRDonlineTrackMatching.cxx:767 AliTRDonlineTrackMatching.cxx:768 AliTRDonlineTrackMatching.cxx:769 AliTRDonlineTrackMatching.cxx:770 AliTRDonlineTrackMatching.cxx:771 AliTRDonlineTrackMatching.cxx:772 AliTRDonlineTrackMatching.cxx:773 AliTRDonlineTrackMatching.cxx:774 AliTRDonlineTrackMatching.cxx:775 AliTRDonlineTrackMatching.cxx:776 AliTRDonlineTrackMatching.cxx:777 AliTRDonlineTrackMatching.cxx:778 AliTRDonlineTrackMatching.cxx:779 AliTRDonlineTrackMatching.cxx:780 AliTRDonlineTrackMatching.cxx:781 AliTRDonlineTrackMatching.cxx:782 AliTRDonlineTrackMatching.cxx:783 AliTRDonlineTrackMatching.cxx:784 AliTRDonlineTrackMatching.cxx:785 AliTRDonlineTrackMatching.cxx:786 AliTRDonlineTrackMatching.cxx:787 AliTRDonlineTrackMatching.cxx:788 AliTRDonlineTrackMatching.cxx:789 AliTRDonlineTrackMatching.cxx:790 AliTRDonlineTrackMatching.cxx:791 AliTRDonlineTrackMatching.cxx:792 AliTRDonlineTrackMatching.cxx:793 AliTRDonlineTrackMatching.cxx:794 AliTRDonlineTrackMatching.cxx:795 AliTRDonlineTrackMatching.cxx:796 AliTRDonlineTrackMatching.cxx:797 AliTRDonlineTrackMatching.cxx:798 AliTRDonlineTrackMatching.cxx:799 AliTRDonlineTrackMatching.cxx:800 AliTRDonlineTrackMatching.cxx:801 AliTRDonlineTrackMatching.cxx:802 AliTRDonlineTrackMatching.cxx:803 AliTRDonlineTrackMatching.cxx:804