track.SetKink(Bool_t(seed->GetKinkIndex(0)));
expectedClr = FollowBackProlongation(track);
// check if track entered the TRD fiducial volume
- if(track.GetTrackLow()){
+ if(track.GetTrackIn()){
seed->UpdateTrackParams(&track, AliESDtrack::kTRDin);
nTRDseeds++;
}
Bool_t kUPDATE = kFALSE;
Double_t xTPC = 250.0;
if(FollowProlongation(track)){
- // Prolongate to TPC
- if (PropagateToX(track, xTPC, fgkMaxStep)) { // -with update
- seed->UpdateTrackParams(&track, AliESDtrack::kTRDrefit);
- found++;
- kUPDATE = kTRUE;
- }
-
// Update the friend track
if (fkRecoParam->GetStreamLevel(AliTRDrecoParam::kTracker) > 0 && fkRecoParam->IsOverPtThreshold(track.Pt())){
TObject *o = NULL; Int_t ic = 0;
AliTRDtrackV1 *calibTrack = NULL;
while((o = seed->GetCalibObject(ic++))){
if(!(calibTrack = dynamic_cast<AliTRDtrackV1*>(o))) continue;
- calibTrack->SetTrackHigh(track.GetTrackHigh());
+ calibTrack->SetTrackOut(&track);
}
}
+
+ // Prolongate to TPC
+ if (PropagateToX(track, xTPC, fgkMaxStep)) { // -with update
+ seed->UpdateTrackParams(&track, AliESDtrack::kTRDrefit);
+ found++;
+ kUPDATE = kTRUE;
+ }
}
// Prolongate to TPC without update
// Debug level 2
//
- Bool_t kStoreIn = kTRUE;
Int_t nClustersExpected = 0;
for (Int_t iplane = kNPlanes; iplane--;) {
Int_t index(-1);
t.PropagateTo(x, xx0, xrho);
if (!AdjustSector(&t)) break;
}
- if(kStoreIn){
- t.SetTrackHigh();
- kStoreIn = kFALSE;
- }
Double_t cov[3]; tracklet->GetCovAt(x, cov);
Double_t p[2] = { tracklet->GetY(), tracklet->GetZ()};
}
// mark track as entering the FIDUCIAL volume of TRD
if(kStoreIn){
- t.SetTrackLow();
+ t.SetTrackIn();
kStoreIn = kFALSE;
}
break;
}
if(kPropagateIn){
- t.SetTrackLow();
+ t.SetTrackIn();
kPropagateIn = kFALSE;
}
Double_t cov[3]; ptrTracklet->GetCovAt(x, cov);
if(!tracklets[ilr].IsUsable(itb)) continue;
cl = tracklets[ilr].GetClusters(itb);
if(!cl->IsInChamber()) continue;
+ if(cl->GetSigmaY2()<1.e-6 || cl->GetSigmaZ2()<1.e-6){
+ if(AliLog::GetDebugLevel("TRD", "AliTRDtrackerV1")>1) printf("D-AliTRDtrackerV1::FitTiltedRiemanConstraint: Cluster error parameterization missing. This should appear only in HLT tests.");
+ continue;
+ }
x = cl->GetX();
y = cl->GetY();
z = cl->GetZ();
for(Int_t itb = 0; itb < AliTRDseedV1::kNclusters; itb++){
if(!(cl = tracklets[ipl].GetClusters(itb))) continue;
if(!cl->IsInChamber()) continue;
- //if (!tracklets[ipl].IsUsable(itb)) continue;
+ if (!tracklets[ipl].IsUsable(itb)) continue;
x = cl->GetX();
y = cl->GetY();
z = cl->GetZ();
+ if(cl->GetSigmaY2()<1.e-6 || cl->GetSigmaZ2()<1.e-6){
+ if(AliLog::GetDebugLevel("TRD", "AliTRDtrackerV1")>1) printf("D-AliTRDtrackerV1::FitTiltedRieman: Cluster error parameterization missing. This should appear only in HLT tests.");
+ tracklets[ipl].Print("a");
+ continue;
+ }
dx = x - xref;
// Transformation
t = 1./(x*x + y*y);
{
// Building tracking containers for clusters
- Int_t nin =0, icl = fClusters->GetEntriesFast();
- while (icl--) {
- AliTRDcluster *c = (AliTRDcluster *) fClusters->UncheckedAt(icl);
+ Int_t nin(0), ncl(fClusters->GetEntriesFast());
+ while (ncl--) {
+ AliTRDcluster *c = (AliTRDcluster *) fClusters->UncheckedAt(ncl);
if(c->IsInChamber()) nin++;
if(fkReconstructor->IsHLT()) c->SetRPhiMethod(AliTRDcluster::kCOG);
Int_t detector = c->GetDetector();
Int_t stack = fGeom->GetStack(detector);
Int_t layer = fGeom->GetLayer(detector);
- fTrSec[sector].GetChamber(stack, layer, kTRUE)->InsertCluster(c, icl);
+ fTrSec[sector].GetChamber(stack, layer, kTRUE)->InsertCluster(c, ncl, fkReconstructor->IsHLT());
}
- const AliTRDCalDet *cal = AliTRDcalibDB::Instance()->GetT0Det();
for(int isector =0; isector<AliTRDgeometry::kNsector; isector++){
if(!fTrSec[isector].GetNChambers()) continue;
- fTrSec[isector].Init(fkReconstructor, cal);
+ fTrSec[isector].Init(fkReconstructor);
}
return nin;
// 8. Build ESD track and register it to the output list
//
- const AliTRDCalDet *cal = AliTRDcalibDB::Instance()->GetT0Det();
AliTRDtrackingChamber *chamber = NULL;
AliTRDtrackingChamber **ci = NULL;
AliTRDseedV1 sseed[kMaxTracksStack*6]; // to be initialized
for(Int_t ip = 0; ip < kNPlanes; ip++){
if(!(chamber = stack[ip])) continue;
- chamber->Build(fGeom, cal);//Indices(fSieveSeeding);
+ chamber->Build(fGeom);//Indices(fSieveSeeding);
}
if(fkRecoParam->GetStreamLevel(AliTRDrecoParam::kTracker) > 10){
if(!cseed[jLayer].AttachClusters(chamber, kTRUE)) continue;
cseed[jLayer].Fit();
}
+ FitTiltedRiemanConstraint(&cseed[0], GetZ());
fTrackQuality[ntracks] = 1.; // dummy value
ntracks++;
if(ntracks == kMaxTracksStack) return ntracks;