]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
new flag for HLT tracking
authorabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Aug 2008 15:56:21 +0000 (15:56 +0000)
committerabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Aug 2008 15:56:21 +0000 (15:56 +0000)
TRD/AliTRDReconstructor.cxx
TRD/AliTRDReconstructor.h
TRD/AliTRDtrackerV1.cxx

index 9468547462e8bd7ce1e18b3044373fa258429692..4076b24e28c6ec81f5836dbffc08e371fbcd8851 100644 (file)
@@ -84,6 +84,7 @@ void AliTRDReconstructor::Init(){
   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]);
 }
@@ -197,6 +198,7 @@ void AliTRDReconstructor::SetOption(Option_t *opt)
 // PID method in reconstruction (NN) [nn] = true
 // write online tracklets [tw] = false
 // drift gas [ar] = false
+// HLT tracking [hlt] = false
 //
   fSteerParam = 0x00000007;
 
@@ -219,6 +221,9 @@ void AliTRDReconstructor::SetOption(Option_t *opt)
     } 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;
index d390eb0dad3993a87170b247e054a3005bb0fc95..86538ee31f9c2302f3c5c5cbc2e49fc2d385cb93 100644 (file)
@@ -26,6 +26,7 @@ public:
     ,kSteerPID       = BIT(2)
     ,kWriteTracklets = BIT(3)
     ,kDriftGas       = BIT(4)
+    ,kHLT            = BIT(5)
   };
   enum AliTRDReconstructorTask {
     kClusterizer = 0
@@ -63,6 +64,7 @@ public:
   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;
index 418afdb907c80e92ab0af7b3331447ae12e08814..d130faeac58ce942b5e131f748dac23dd4df1f5c 100644 (file)
@@ -2094,6 +2094,8 @@ Int_t AliTRDtrackerV1::Clusters2TracksStack(AliTRDtrackingChamber **stack, TClon
 
     // increment counters
     ntracks2 += ntracks1;
+
+    if(fReconstructor->IsHLT()) break;
     fSieveSeeding++;
 
     // Rebuild plane configurations and indices taking only unused clusters into account
@@ -2375,13 +2377,25 @@ Int_t AliTRDtrackerV1::MakeSeeds(AliTRDtrackingChamber **stack, AliTRDseedV1 *ss
         // 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);