/// @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()
if(fEveClusters)
delete fEveClusters;
fEveClusters = NULL;
+
+ fClusterArray->Delete();
+ delete fClusterArray;
+ fClusterArray = NULL;
}
if(!fEveColClusters){
fEveColClusters = CreatePointSetArray();
- fEventManager->GetEveManager()->AddElement(fEveColClusters);
+ AddElement(fEveColClusters);
}
ProcessClusters(block, fEveColClusters);
if(!fCanvas) {
fCanvas = CreateCanvas("TRD QA", "TRD QA");
- fCanvas->Divide(3, 2);
+ fCanvas->Divide(3, 3);
}
AddHistogramsToCanvas(block, fCanvas, fHistoCount);
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;
-
-
}