]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/global/AliHLTGlobalHistoComponent.cxx
patch
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalHistoComponent.cxx
index 745343712d4c1f7dbac1307ad5dc63c7eea6fd84..78f5e59fb01335e94191497339e90f078edac250 100644 (file)
@@ -186,10 +186,10 @@ int AliHLTGlobalHistoComponent::FillTree(TTree* pTree, const AliHLTComponentEven
   // fetch ESD from input stream
   const TObject *obj = GetFirstInputObject(kAliHLTAllDataTypes, "AliESDEvent");
   AliESDEvent *esd = dynamic_cast<AliESDEvent*>(const_cast<TObject*>(obj));
+  if(!esd) return 0;
   esd->GetStdContent();
 
   // fill track variables
-  fNofTracks       = esd->GetNumberOfTracks();
   fVertexX         = esd->GetPrimaryVertexTracks()->GetX();
   fVertexY         = esd->GetPrimaryVertexTracks()->GetY();
   fVertexZ         = esd->GetPrimaryVertexTracks()->GetZ();
@@ -200,8 +200,10 @@ int AliHLTGlobalHistoComponent::FillTree(TTree* pTree, const AliHLTComponentEven
   if(fFillV0==kTRUE && (fNofV0s > fMaxV0Count)){
      HLTWarning("Found V0s are %d, while component argument is %d, the respective TTree branch is not filled properly. Need to reconfigure.\n", fNofV0s, fMaxV0Count);
   }
-  
-  for(int i=0; i<fNofTracks; i++){    
+
+  Int_t nTracks = 0;
+
+  for(int i=0; i<esd->GetNumberOfTracks(); i++){    
       AliESDtrack *esdTrack = esd->GetTrack(i);
       if (!esdTrack) continue;
       
@@ -220,9 +222,14 @@ int AliHLTGlobalHistoComponent::FillTree(TTree* pTree, const AliHLTComponentEven
       fTrackVariables.Fill("Track_DCAr"      , DCAr                               );
       fTrackVariables.Fill("Track_DCAz"      , DCAz                               );   
       fTrackVariables.Fill("Track_dEdx"      , esdTrack->GetTPCsignal()           );   
-      fTrackVariablesInt.Fill("Track_status" , esdTrack->GetStatus()              );      
+      fTrackVariablesInt.Fill("Track_status" , esdTrack->GetStatus()              );   
+      
+      // selection of TPC tracks, the condition rejects e.g. TRD tracklets which would appear with 0 TPC clusters
+      if( esdTrack->GetTPCNcls()>0 ) nTracks++;
   }
   
+  fNofTracks = nTracks; 
+    
   if(fFillV0==kTRUE){
      for(int i=0; i<fNofV0s; i++){     
         AliESDv0 *esdV0 = esd->GetV0(i);
@@ -240,13 +247,13 @@ int AliHLTGlobalHistoComponent::FillTree(TTree* pTree, const AliHLTComponentEven
        //fV0Variables.Fill("r", r); 
          
      } // end of loop over V0s
-  }
-  
+  } 
+  /* 
   if(iResult<0){
     // fill an empty event
     ResetVariables();
   }
-  
+  */  
   fEvent++;
   pTree->Fill();
   return iResult;