]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TRD/AliHLTTRDTrackHistoComponent.cxx
correcting small memory leak, removing unnecessary pointer checks (Theo)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTrackHistoComponent.cxx
index a4052ce65a4d010cb828fc357e5966f0519391fe..4ae2fcc3a28e0414da51e5b70fbe633d8ed87666 100644 (file)
@@ -50,9 +50,14 @@ ClassImp(AliHLTTRDTrackHistoComponent)
 AliHLTTRDTrackHistoComponent::AliHLTTRDTrackHistoComponent()
 : AliHLTProcessor(),
   fOutputSize(100000),
+  fSpec(0),
   fTracksArray(NULL),
   fClPerTrkl(NULL),
-  fTrklPerTrk(NULL)
+  fTrklPerTrk(NULL),
+  fEvSize(NULL),
+  fEtaDistrib(NULL),
+  fPhiDistrib(NULL),
+  fPtDistrib(NULL)
 {
   // see header file for class documentation
   // or
@@ -123,9 +128,12 @@ int AliHLTTRDTrackHistoComponent::DoInit(int argc, const char** argv)
 
   fTracksArray = new TClonesArray("AliTRDtrackV1");
 
-  fClPerTrkl = new TH1F("fClPerTrkl","Clusters per Tracklet", AliTRDseedV1::kNtb, -0.5, AliTRDseedV1::kNtb - 0.5);
-  fTrklPerTrk = new TH1F("fTrklPerTrk","Tracklets per Track", 7, -0.5, 6.5);
-  
+  fClPerTrkl = new TH1F("TrdClPerTrkl","Clusters per Tracklet", AliTRDseedV1::kNtb, -0.5, AliTRDseedV1::kNtb - 0.5);
+  fTrklPerTrk = new TH1F("TrdTrklPerTrk","Tracklets per Track", 7, -0.5, 6.5);
+  fEvSize = new TH1F("TrdTrEvSize", "Tracks size per event per ddl in kbyte", 512, 0, 512);
+  fEtaDistrib = new TH1F("TrdTrEtaDistrib", "Eta distribution of tracks", 51, -1, 1);
+  fPhiDistrib = new TH1F("TrdTrPhiDistrib", "Phi distribution of tracks", 63, 0, 6.3);
+  fPtDistrib = new TH1F("TrdTrPtDistrib", "Pt distribution of tracks", 101, 0, 10);
   return 0;
 }
   
@@ -162,23 +170,31 @@ int AliHLTTRDTrackHistoComponent::DoEvent(const AliHLTComponentEventData& /*evtD
   //     return 0;
   //   }
 
-  if (GetFirstInputBlock(kAliHLTDataTypeSOR) || GetFirstInputBlock(kAliHLTDataTypeEOR)) return 0;
+  if(!IsDataEvent())return 0;
 
   const AliHLTComponentBlockData* iter = NULL;
+  Bool_t gotData = kFALSE;
   
   for(iter = GetFirstInputBlock(AliHLTTRDDefinitions::fgkTracksDataType); 
        iter != NULL; iter = GetNextInputBlock() ) {
     
+    fEvSize->Fill((iter->fSize+0.5f)/1024);
     AliHLTTRDUtils::ReadTracks(fTracksArray, iter->fPtr, iter->fSize);
-    HLTDebug("TClonesArray of clusters: nbEntries = %i", fTracksArray->GetEntriesFast());
-    
+    HLTDebug("TClonesArray of tracks: nbEntries = %i", fTracksArray->GetEntriesFast());
+    gotData=kTRUE;
+    fSpec |= iter->fSpecification;
   }
   
+  if(!gotData) return 0;
+  
   AliTRDtrackV1 *trk;
   
   // loop over tracks
   for(int i=0;i<fTracksArray->GetEntriesFast();i++) {
     trk=(AliTRDtrackV1*)fTracksArray->At(i);
+    fEtaDistrib->Fill(trk->Eta());
+    fPhiDistrib->Fill(trk->Phi());
+    fPtDistrib->Fill(trk->Pt());
     Int_t nrOfTrkls=0;
     for(int seedNr=0; seedNr<6; seedNr++){
       AliTRDseedV1* seed = trk->GetTracklet(seedNr);
@@ -194,8 +210,12 @@ int AliHLTTRDTrackHistoComponent::DoEvent(const AliHLTComponentEventData& /*evtD
   
   fTracksArray->Delete();
   
-  PushBack((TObject*)fClPerTrkl, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, 0);   
-  PushBack((TObject*)fTrklPerTrk, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, 0);  
+  PushBack((TObject*)fClPerTrkl, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);   
+  PushBack((TObject*)fTrklPerTrk, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);  
+  PushBack((TObject*)fEvSize, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+  PushBack((TObject*)fEtaDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);   
+  PushBack((TObject*)fPhiDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);  
+  PushBack((TObject*)fPtDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
   
   return 0;
 }