]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/EVE/AliHLTEveTRD.cxx
HLT CALO, EMCAL, EVE, Comp
[u/mrichter/AliRoot.git] / HLT / EVE / AliHLTEveTRD.cxx
index 4c0c94963ad9ed0802350debd876393c667048f8..eb60c73857b6323b39f6c68409cea34d15665a0a 100644 (file)
 /// @author Svein Lindal <slindal@fys.uio.no>
 /// @brief  TPC processor for the HLT EVE display
 
+#include "TClonesArray.h"
 #include "AliHLTEveTRD.h"
 #include "AliHLTHOMERBlockDesc.h"
 #include "TCanvas.h"
 #include "AliHLTEveBase.h"
-#include "AliEveHOMERManager.h"
+#include "AliEveHLTEventManager.h"
 #include "TEveManager.h"
 #include "TEvePointSet.h"
 #include "TColor.h"
 #include "TMath.h"
 #include "TH1F.h"
-#include "AliHLTTRDCluster.h"
+#include "AliHLTTRDUtils.h"
 #include "AliTRDcluster.h"
 
 ClassImp(AliHLTEveTRD)
 
 AliHLTEveTRD::AliHLTEveTRD() : 
-  AliHLTEveBase(), 
+  AliHLTEveBase("TRD"), 
   fEveClusters(NULL),
   fEveColClusters(NULL),
-  fNColorBins(15)
+  fNColorBins(15),
+  fClusterArray(NULL)
 {
   // Constructor.
-
+  fClusterArray = new TClonesArray("AliTRDcluster");
 }
 
 AliHLTEveTRD::~AliHLTEveTRD()
@@ -53,6 +55,10 @@ AliHLTEveTRD::~AliHLTEveTRD()
   if(fEveClusters)
     delete fEveClusters;
   fEveClusters = NULL;
+
+  fClusterArray->Delete();
+  delete fClusterArray;
+  fClusterArray = NULL;
 }
 
 
@@ -63,7 +69,7 @@ void AliHLTEveTRD::ProcessBlock(AliHLTHOMERBlockDesc * block) {
     
     if(!fEveColClusters){
       fEveColClusters = CreatePointSetArray();
-      fEventManager->GetEveManager()->AddElement(fEveColClusters);
+      AddElement(fEveColClusters);
     } 
     
     ProcessClusters(block, fEveColClusters);
@@ -72,7 +78,7 @@ void AliHLTEveTRD::ProcessBlock(AliHLTHOMERBlockDesc * block) {
   
     if(!fCanvas) {
       fCanvas = CreateCanvas("TRD QA", "TRD QA");
-      fCanvas->Divide(3, 2);
+      fCanvas->Divide(3, 3);
     }
 
     AddHistogramsToCanvas(block, fCanvas, fHistoCount);
@@ -117,17 +123,28 @@ TEvePointSet * AliHLTEveTRD::CreatePointSet() {
 }
 
 TEvePointSetArray * AliHLTEveTRD::CreatePointSetArray(){
+
+  Int_t i = 0;
+
+  cout << i++ << endl;
   //See header file for documentation
   TEvePointSetArray * cc = new TEvePointSetArray("TRD Clusters Colorized");
+  cout << i++ << endl;
   cc->SetMainColor(kRed);
+  cout << i++ << endl;
   cc->SetMarkerStyle(4); // antialiased circle
+  cout << i++ << endl;
   cc->SetMarkerSize(0.4);
+  cout << i++ << endl;
   cc->InitBins("Cluster Charge", fNColorBins, 0., fNColorBins*100.);
+  cout << i++ << endl;
   
   const Int_t nCol = TColor::GetNumberOfColors();
+  cout << i++ << endl;
   for (Int_t ii = 0; ii < fNColorBins + 1; ++ii) {
     cc->GetBin(ii)->SetMainColor(TColor::GetColorPalette(ii * nCol / (fNColorBins+2)));
   }
+  cout << i++ << endl;
 
   return cc;
      
@@ -139,10 +156,11 @@ void AliHLTEveTRD::UpdateElements() {
   if(fCanvas) fCanvas->Update();
   // if(fEveClusters) fEveClusters->ResetBBox();
 
-  for (Int_t ib = 0; ib <= fNColorBins + 1; ++ib) {
-    fEveColClusters->GetBin(ib)->ResetBBox();
+  if(fEveColClusters) {
+    for (Int_t ib = 0; ib <= fNColorBins + 1; ++ib) {
+      fEveColClusters->GetBin(ib)->ResetBBox();
+    }
   }
-
 }
 
 void AliHLTEveTRD::ResetElements(){
@@ -172,32 +190,19 @@ Int_t AliHLTEveTRD::ProcessClusters( AliHLTHOMERBlockDesc * block, TEvePointSetA
   
   Byte_t* ptrData = reinterpret_cast<Byte_t*>(block->GetData());
   UInt_t ptrSize = block->GetSize();
+  Int_t unused;
 
-  for (UInt_t size = 0; size+sizeof(AliHLTTRDCluster) <= ptrSize; size+=sizeof(AliHLTTRDCluster) ) {
-    AliHLTTRDCluster *cluster = reinterpret_cast<AliHLTTRDCluster*>(&(ptrData[size]));
-   
-    AliTRDcluster *trdCluster = new AliTRDcluster;
-    cluster->ExportTRDCluster( trdCluster );
-   
+  AliHLTTRDUtils::ReadClusters(fClusterArray, ptrData, ptrSize, &unused);
+
+  for(int num=fClusterArray->GetEntriesFast(); num--;){
+    AliTRDcluster* trdCluster = (AliTRDcluster*)fClusterArray->At(num);
     contCol->Fill(cos*trdCluster->GetX() - sin*trdCluster->GetY(), 
-                  sin*trdCluster->GetX() + cos*trdCluster->GetY(), 
-                  trdCluster->GetZ(),
-                  trdCluster->GetQ() );    
-    
-    //cont->SetNextPoint(cos*trdCluster->GetX() - sin*trdCluster->GetY(), 
-    //        sin*trdCluster->GetX() + cos*trdCluster->GetY(), trdCluster->GetZ());
+                 sin*trdCluster->GetX() + cos*trdCluster->GetY(), 
+                 trdCluster->GetZ(),
+                 trdCluster->GetQ() );  
   }
   
   return iResult;
-
-
-
-
-
-  return 0;  
-
-
 }