printf("\tWrite Online Tracklets [tw] : %s\n", fSteerParam&kWriteTracklets?"yes":"no");
printf("\tDrift Gas Argon [ar] : %s\n", fSteerParam&kDriftGas?"yes":"no");
printf("\tStand Alone Tracking [sa] : %s\n", fSteerParam&kSeeding?"yes":"no");
+ printf("\tHLT Tracking [hlt] : %s\n", fSteerParam&kHLT?"yes":"no");
printf("\tNN PID [nn] : %s\n", fSteerParam&kSteerPID?"yes":"no");
printf("\tStreaming Levels : Clusterizer[%d] Tracker[%d] PID[%d]\n", fStreamLevel[kClusterizer], fStreamLevel[kTracker], fStreamLevel[kPID]);
}
// PID method in reconstruction (NN) [nn] = true
// write online tracklets [tw] = false
// drift gas [ar] = false
+// HLT tracking [hlt] = false
//
fSteerParam = 0x00000007;
} else if(sopt.Contains("ar")){
if(!sopt.Contains("!")) fSteerParam |= kDriftGas;
continue;
+ } else if(sopt.Contains("hlt")){
+ if(!sopt.Contains("!")) fSteerParam |= kHLT;
+ continue;
} else if(sopt.Contains("sl")){
TObjArray *stl = sopt.Tokenize("_");
if(stl->GetEntriesFast() < 3) continue;
,kSteerPID = BIT(2)
,kWriteTracklets = BIT(3)
,kDriftGas = BIT(4)
+ ,kHLT = BIT(5)
};
enum AliTRDReconstructorTask {
kClusterizer = 0
virtual Bool_t HasDigitConversion() const { return kFALSE; };
Bool_t IsWritingClusters() const { return fSteerParam&kWriteClusters;}
Bool_t IsWritingTracklets() const { return fSteerParam&kWriteTracklets;}
+ Bool_t IsHLT() const { return fSteerParam&kHLT;}
Bool_t IsSeeding() const { return fSteerParam&kSeeding;}
virtual void Reconstruct(AliRawReader *rawReader, TTree *clusterTree) const;
// increment counters
ntracks2 += ntracks1;
+
+ if(fReconstructor->IsHLT()) break;
fSieveSeeding++;
// Rebuild plane configurations and indices taking only unused clusters into account
// try attaching clusters to tracklets
Int_t nUsedCl = 0;
Int_t mlayers = 0;
- for(int iLayer=0; iLayer<kNSeedPlanes; iLayer++){
+ Int_t kLayers = fReconstructor->IsHLT() ? kNPlanes : kNSeedPlanes;
+ for(int iLayer=0; iLayer<kLayers; iLayer++){
Int_t jLayer = planes[iLayer];
if(!cseed[jLayer].AttachClustersIter(stack[jLayer], 5., kFALSE, c[iLayer])) continue;
nUsedCl += cseed[jLayer].GetNUsed();
if(nUsedCl > 25) break;
mlayers++;
}
+ if(fReconstructor->IsHLT()){
+ fTrackQuality[ntracks] = 1.; // dummy value
+ ntracks++;
+ if(ntracks == kMaxTracksStack){
+ AliWarning(Form("Number of seeds reached maximum allowed (%d) in stack.", kMaxTracksStack));
+ return ntracks;
+ }
+ cseed += 6;
+ continue;
+ }
+
if(mlayers < kNSeedPlanes){
//AliInfo(Form("Failed updating all seeds %d [%d].", mlayers, kNSeedPlanes));
AliTRDtrackerDebug::SetCandidateNumber(AliTRDtrackerDebug::GetCandidateNumber() + 1);