/// @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);
}
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;
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(){
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;
-
-
}