AliHLTCaloClusterizerComponent::AliHLTCaloClusterizerComponent(TString det):
AliHLTCaloProcessor(),
AliHLTCaloConstantsHandler(det),
+ fDataOrigin('\0'),
+ fAnalyserPtr(0),
fDigitsPointerArray(0),
+ fOutputDigitsArray(0),
fClusterizerPtr(0),
- fAnalyserPtr(0),
fDigitCount(0)
{
//See headerfile for documentation
AliHLTCaloClusterizerComponent::~AliHLTCaloClusterizerComponent()
{
//See headerfile for documentation
-
+delete fAnalyserPtr;
if(fClusterizerPtr)
{
delete fClusterizerPtr;
{
//See headerfile for documentation
- if (fClusterizerPtr)
+if (fClusterizerPtr)
{
delete fClusterizerPtr;
fClusterizerPtr = 0;
return 0;
}
-// void
-// AliHLTCaloClusterizerComponent::GetInputDataTypes( vector<AliHLTComponentDataType>& list)
-// {
-// //See headerfile for documentation
-// list.clear();
-// list.push_back(AliHLTCaloDefinitions::fgkDigitDataType|kAliHLTDataOriginPHOS);
-// }
-
-// AliHLTComponentDataType
-// AliHLTCaloClusterizerComponent::GetOutputDataType()
-// {
-// //See headerfile for documentation
-// return AliHLTCaloDefinitions::fgkRecPointDataType|kAliHLTDataOriginPHOS;
-// }
-
-// void
-// AliHLTCaloClusterizerComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier )
-
-// {
-// //See headerfile for documentation
-// constBase = sizeof(AliHLTCaloRecPointHeaderStruct) + sizeof(AliHLTCaloRecPointDataStruct) + (sizeof(AliHLTCaloDigitDataStruct) << 7); //Reasonable estimate... ;
-// inputMultiplier = 1.5;
-// }
-
int
AliHLTCaloClusterizerComponent::DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
AliHLTComponentTriggerData& /*trigData*/, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
AliHLTCaloDigitDataStruct *digitDataPtr = 0;
-// delete fAnalyserPtr;
-// fAnalyserPtr = new AliHLTCaloClusterAnalyser();
-//
// Adding together all the digits, should be put in standalone method
for ( ndx = 0; ndx < evtData.fBlockCnt; ndx++ )
{
if (iter->fDataType == (AliHLTCaloDefinitions::fgkDigitDataType|fDataOrigin))
{
-// fDigitsPointerArray[digCount] = reinterpret_cast<AliHLTCaloDigitDataStruct*>(iter->fPtr);
-
- //cout << "Digits pointer array [" << digCount << "]: " << fDigitsPointerArray[digCount] << endl;
// Update the number of digits
nDigits = iter->fSize/sizeof(AliHLTCaloDigitDataStruct);;
-// digCount += nDigits;
- // HLTError("Got %d digits", nDigits);
availableSize -= iter->fSize;
AliHLTCaloClusterHeaderStruct* caloClusterHeaderPtr = reinterpret_cast<AliHLTCaloClusterHeaderStruct*>(outBPtr);
caloClusterHeaderPtr->fNDigits = digCount;
+ outBPtr += sizeof(AliHLTCaloClusterHeaderStruct);
+ mysize += sizeof(AliHLTCaloClusterHeaderStruct);
+
// Sort the digit pointers
qsort(fDigitsPointerArray, digCount, sizeof(AliHLTCaloDigitDataStruct*), CompareDigits);
memcpy(outBPtr, fDigitsPointerArray[n], sizeof(AliHLTCaloDigitDataStruct));
//fOutputDigitsArray[n] = reinterpret_cast<AliHLTCaloDigitDataStruct*>(outBPtr);
outBPtr = outBPtr + sizeof(AliHLTCaloDigitDataStruct);
- printf("CL: digit energy: %f, ID: %d\n", fOutputDigitsArray[n].fEnergy, fOutputDigitsArray[n].fID);
}
mysize += digCount*sizeof(AliHLTCaloDigitDataStruct);
-// AliHLTComponentBlockData bdDigits;
-// FillBlockData( bdDigits );
-// bdDigits.fOffset = offset;
-// bdDigits.fSize = mysize;
-// bdDigits.fDataType = iter->fDataType;
-// bdDigits.fSpecification = specification;
-// outputBlocks.push_back( bdDigits );
-
//HLTDebug("Total number of digits: %d", digCount );
nRecPoints = fClusterizerPtr->ClusterizeEvent(digCount);
- //fClusterizerPtr->CheckDigits();
+
//HLTDebug("Number of rec points found: %d", nRecPoints);
- fAnalyserPtr->SetCaloClusterData(reinterpret_cast<AliHLTCaloClusterDataStruct*>(outBPtr + sizeof(AliHLTCaloClusterHeaderStruct)));
+ fAnalyserPtr->SetCaloClusterData(reinterpret_cast<AliHLTCaloClusterDataStruct*>(outBPtr));
- //fClusterizerPtr->CheckDigits(fClusterizerPtr->GetRecPoints(), fOutputDigitsArray, nRecPoints);
-
fAnalyserPtr->SetRecPointArray(fClusterizerPtr->GetRecPoints(), nRecPoints);
- //fClusterizerPtr->CheckDigits(fClusterizerPtr->GetRecPoints(), fOutputDigitsArray, nRecPoints);
-
fAnalyserPtr->SetDigitDataArray(fOutputDigitsArray);
- fClusterizerPtr->CheckDigits(fClusterizerPtr->GetRecPoints(), fOutputDigitsArray, nRecPoints);
-
- fAnalyserPtr->CreateClusters(nRecPoints, size, mysize);
-
- mysize += sizeof(AliHLTCaloRecPointHeaderStruct);
+ Int_t nClusters = fAnalyserPtr->CreateClusters(nRecPoints, size, mysize);
- // HLTError("Number of clusters: %d", nRecPoints);
-
+ caloClusterHeaderPtr->fNClusters = nClusters;
+
+ //HLTDebug("Number of clusters: %d", nRecPoints);
+
AliHLTComponentBlockData bd;
FillBlockData( bd );
bd.fOffset = offset;
bd.fSize = mysize;
- bd.fDataType = AliHLTCaloDefinitions::fgkClusterDataType|fDataOrigin;
+ bd.fDataType = kAliHLTDataTypeCaloCluster | kAliHLTDataOriginPHOS;
bd.fSpecification = specification;
outputBlocks.push_back( bd );
}