#include "AliHLTTPCClusterMCData.h"
#include "AliHLTTPCTransform.h"
+#include "AliSysInfo.h"
+
/** ROOT macro for the implementation of ROOT specific class methods */
ClassImp(AliHLTGlobalFlatEsdConverterComponent)
// refer to README to build package
// or
// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
+
}
AliHLTGlobalFlatEsdConverterComponent::~AliHLTGlobalFlatEsdConverterComponent()
AliHLTComponentTriggerData& /*trigData*/,
AliHLTUInt8_t* outputPtr,
AliHLTUInt32_t& size,
- AliHLTComponentBlockDataList& outputBlocks )
+ AliHLTComponentBlockDataList& outputBlocks)
{
+
// see header file for class documentation
+
+
+AliSysInfo::AddStamp("DoEvent.Start");
+
+
int iResult=0;
+ bool benchmark = true;
if (!IsDataEvent()) return iResult;
fBenchmark.StartNewEvent();
fBenchmark.Start(0);
+
+
size_t maxOutputSize = size;
size = 0;
for (const AliHLTComponentBlockData* pBlock=GetFirstInputBlock(AliHLTTPCDefinitions::fgkClustersDataType| kAliHLTDataOriginTPC);
pBlock!=NULL; pBlock=GetNextInputBlock()) {
- //fBenchmark.AddInput(pBlock->fSize);
+ fBenchmark.AddInput(pBlock->fSize);
UInt_t slice = AliHLTTPCDefinitions::GetMinSliceNr(*pBlock);
UInt_t patch = AliHLTTPCDefinitions::GetMinPatchNr(*pBlock);
if( slice >= kNSlices || patch>= kNPatches ){
for (const AliHLTComponentBlockData* pBlock=GetFirstInputBlock(AliHLTTPCDefinitions::fgkAliHLTDataTypeClusterMCInfo| kAliHLTDataOriginTPC);
pBlock!=NULL; pBlock=GetNextInputBlock()) {
- //fBenchmark.AddInput(pBlock->fSize);
+ fBenchmark.AddInput(pBlock->fSize);
UInt_t slice = AliHLTTPCDefinitions::GetMinSliceNr(*pBlock);
UInt_t patch = AliHLTTPCDefinitions::GetMinPatchNr(*pBlock);
if( slice >= kNSlices || patch>= kNPatches ){
const AliESDVertex *primaryVertexSPD = dynamic_cast<const AliESDVertex*>( GetFirstInputObject( kAliHLTDataTypeESDVertex|kAliHLTDataOriginITS ) );
const AliESDVertex *primaryVertexTracks = dynamic_cast<const AliESDVertex*>( GetFirstInputObject( kAliHLTDataTypeESDVertex|kAliHLTDataOriginOut ) );
- cout<<endl<<" Primary vertex Tracks: "<<primaryVertexTracks<<", SPD: "<< primaryVertexSPD <<endl<<endl;
+ // cout<<endl<<" Primary vertex Tracks: "<<primaryVertexTracks<<", SPD: "<< primaryVertexSPD <<endl<<endl;
flatEsd->FillPrimaryVertices( primaryVertexSPD, primaryVertexTracks );
}
AliFlatESDTrack *flatTrack = flatEsd->GetNextTrackPointer();
+ new(flatTrack) AliFlatESDTrack;
+ //cout<<"flatTrack: "<<flatTrack<<endl;
+
+ //cout<<"GetNumberOfTPCClusters before: "<<flatTrack->GetNumberOfTPCClusters()<<endl;
UInt_t nClustersTPC = tpcTrack->GetNumberOfPoints();
UInt_t nClustersITS = itsRefit ?itsRefit->GetNumberOfPoints() :0;
flatTrack->SetNumberOfITSClusters( nClustersITS );
+ //flatTrack->SetNumberOfTPCClusters(0);
+
+ //cout<<"GetNumberOfTPCClusters: "<<flatTrack->GetNumberOfTPCClusters()<<endl;
if( flatEsd->GetSize() + flatTrack->EstimateSize( kTRUE, nClustersTPC ) >= maxOutputSize ){
cout<<endl<<endl<<"NOT ENOUGH MEMORY!!!!"<<endl<<endl;
continue;
}
const AliHLTTPCSpacePointData &cIn = clusterBlock->fSpacePoints[iCluster];
- AliFlatTPCCluster *c= flatTrack->GetNextTPCClusterPointer();
+
+ AliFlatTPCCluster *c= flatTrack->GetTPCCluster( flatTrack->GetNumberOfTPCClusters() );;
c->fX = cIn.GetX();
c->fY = cIn.GetY();
c->fZ = cIn.GetZ();
}
}
+ // cout<<"number of tpc clusters: "<<flatTrack->GetNumberOfTPCClusters()<<endl;
+ //cout<<"number of its clusters: "<<flatTrack->GetNumberOfITSClusters()<<endl;
flatEsd->StoreLastTrack();
// Fill v0's
- {
int nV0s =0;
+ {
const AliHLTComponentBlockData* pP = GetFirstInputBlock(kAliHLTDataTypeGlobalVertexer|kAliHLTDataOriginOut);
if (pP && pP->fSize && pP->fPtr) {
+ fBenchmark.AddInput(pP->fSize);
const AliHLTGlobalVertexerComponent::AliHLTGlobalVertexerData *data = reinterpret_cast<AliHLTGlobalVertexerComponent::AliHLTGlobalVertexerData*>(pP->fPtr);
const int* v0s = data->fTrackIndices + data->fNPrimTracks;
nV0s = data->fNV0s;
flatEsd->StoreLastV0();
}
} else {
- HLTWarning("xxx No V0 data block");
+ HLTWarning(" No V0 data block");
}
- cout<<"\nxxxx Found "<<nV0s<<" V0's\n"<<endl;
}
// Get ITS SPD vertex
for( const AliHLTComponentBlockData *i= GetFirstInputBlock(kAliHLTDataTypeESDVertex|kAliHLTDataOriginITS); i!=NULL; i=GetNextInputBlock() ){
fBenchmark.AddInput(i->fSize);
}
+ // Get Track vertex
+ for( const AliHLTComponentBlockData *i= GetFirstInputBlock(kAliHLTDataTypeESDVertex|kAliHLTDataOriginOut); i!=NULL; i=GetNextInputBlock() ){
+ fBenchmark.AddInput(i->fSize);
+ }
+
+
/*
for ( const TObject *iter = GetFirstInputObject(kAliHLTDataTypeESDVertex|kAliHLTDataOriginITS); iter != NULL; iter = GetNextInputObject() ) {
fBenchmark.Stop(0);
HLTWarning( fBenchmark.GetStatistics() );
-
+
+
+
+ if(benchmark){
+
+ Double_t statistics[10];
+ TString names[10];
+ fBenchmark.GetStatisticsData(statistics, names);
+ // statistics[5] = tracksTPC.size();
+ // statistics[7] = nV0s;
+
+ // FillBenchmarkHistos( statistics, names);
+ fBenchmark.Reset();
+
+ AliSysInfo::AddStamp("DoEvent.Stop", (int)(statistics[1]), (int)(statistics[2]) );
+
+ }
return iResult;
+
+
+
+
}
+