]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/exa/HOMERManager.C
adding more flexible hanlding of different JFs
[u/mrichter/AliRoot.git] / HLT / exa / HOMERManager.C
index 455b9d38d30031cc235585cbe9e51dd97b6b84c7..b5730a474705188c15b576e3cfcc7c8b7f2b9135 100644 (file)
@@ -26,8 +26,9 @@
  * @ingroup alihlt_homer
  */
 
-Int_t HOMERManager() {
 
+Int_t HOMERManager() {
+  
   Int_t iResult = 0;
 
   // -- Create new hM object
@@ -45,41 +46,76 @@ Int_t HOMERManager() {
 
   printf( "== CONNECT HOMER ==\n" );
   
-  iResult = hM->ConnectHOMER("TRD");
+  iResult = hM->ConnectHOMER(); 
   if (iResult) return iResult;
   
   printf( "== NEXT EVENT ==\n" );
   
   iResult = hM->NextEvent();
   if (iResult) return iResult;
-
+  
   printf( "== LOOP OVER BLOCKS ==\n" );
 
-  TObject * object =  NULL;  
-
-  //  TList* bl = hM->GetBlockList();
-  //bl->Dump();
+  if ( hM->GetBlockList() == NULL )
+    return -1;
 
+  if ( hM->GetBlockList()->IsEmpty() )
+    return -2;
 
   TIter next(hM->GetBlockList());
   AliHLTHOMERBlockDesc* block = NULL;
 
+  AliESDEvent* esd = NULL;
+  
   while ((block = (AliHLTHOMERBlockDesc*)next())) {
    
-    printf ( "Detector : %s\n" ,block->GetDetector().Data() );
-    printf ( "Datatype : %s\n" ,block->GetDataType().Data() );
+    //printf ( "Detector : %s\n" ,block->GetDetector().Data() );
+    //printf ( "Datatype : %s\n" ,block->GetDataType().Data() );
     
-    if ( block->IsTObject() ) {
-      object = block->GetTObject();
-      
-        printf("ClassName %s\n", block->GetClassName().Data() );
+    if ( block->IsTObject() ) { 
+      TObject*     object = block->GetTObject();
+      // printf("ClassName %s\n", block->GetClassName().Data() );
     }
-  }
 
+    // ++ HLT BLOCK
+    // +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+    if ( ! block->GetDetector().CompareTo("HLT") ) {
+
+      // -- ESDTREE
+      if ( ! block->GetDataType().CompareTo("ALIESDV0") ) {
+       esd = static_cast<AliESDEvent*> ( block->GetTObject() );
+       esd->GetStdContent();
+       
+       printf( "Number of ESD Tracks : %d \n", esd->GetNumberOfTracks());
+      } //if ( ! block->GetDataType().CompareTo("ALIESDV0") ) {
+    } // if ( ! block->GetDetector().CompareTo("HLT") ) {
+
+    else if ( ! block->GetDetector().CompareTo("TPC") ) {
+      // -- Process TPC Clusters
+      if ( ! block->GetDataType().CompareTo("CLUSTERS") ) {
+
+       Int_t   slice = block->GetSubDetector();
+       Int_t   patch = block->GetSubSubDetector();
+       //      Float_t phi   = ( slice + 0.5 ) * TMath::Pi() / 9.0;  
+       //      Float_t cos   = TMath::Cos( phi );
+       //      Float_t sin   = TMath::Sin( phi );
+
+       Int_t ddl = slice*6 + patch;
+
+       // cout << slice << " -- " << patch << " -- " << ddl << endl;
+       
+       //      AliHLTTPCClusterData *cd = reinterpret_cast<AliHLTTPCClusterData*> (block->GetData());
+       //      UChar_t *data            = reinterpret_cast<UChar_t*> (cd->fSpacePoints);
+
+      } // if ( ! block->GetDataType().CompareTo("CLUSTERS") ) {
+    } //     else if ( ! block->GetDetector().CompareTo("TPC") ) {
+    
+  } // while ((block = (AliHLTHOMERBlockDesc*)next())) {
+  
   // -- Destroy hM object
   if (hM)
     delete hM;
   hM = NULL;
-
-  return iResult;;
+  
+  return iResult;
 }