+// $Id$
+
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
**************************************************************************/
#include <iostream>
-
+#include "AliHLTPHOSDefinitions.h" // PTH
#include "AliHLTPHOSMonitorTriggerComponent.h"
-#include "AliHLTPHOSCaloClusterContainerStruct.h"
-#include "AliHLTPHOSCaloClusterDataStruct.h"
+#include "AliHLTCaloClusterDataStruct.h"
#include "AliHLTDataTypes.h"
/** @file AliHLTPHOSMonitorTriggerComponent.h
AliHLTPHOSMonitorTriggerComponent::AliHLTPHOSMonitorTriggerComponent():
- AliHLTPHOSProcessor(),
+ AliHLTCaloProcessor(),
fCheckClusterEnergy(false),
fCheckClusterMultiplicities(false),
fClusterEnergyThreshold(1),
fMultiplicityThreshold(5),
fMultEnergyThreshold(0.5),
fDigitMultiplicityThreshold(16),
- fMultDigitMultiplicityThreshold(9)
+ fMultDigitMultiplicityThreshold(9),
+ fLowerCentrality(0.5),
+ fUpperCentrality(0.9)
{
//See headerfile for documentation
}
int
AliHLTPHOSMonitorTriggerComponent::DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
- AliHLTComponentTriggerData& /*trigData*/, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
- std::vector<AliHLTComponentBlockData>& outputBlocks)
+ AliHLTComponentTriggerData& /*trigData*/, AliHLTUInt8_t* /*outputPtr*/, AliHLTUInt32_t& /*size*/,
+ std::vector<AliHLTComponentBlockData>& /*outputBlocks*/)
{
//See headerfile for documentation
}
specification |= iter->fSpecification;
- monitorflag += CheckClusters(reinterpret_cast<AliHLTPHOSCaloClusterContainerStruct*>(iter->fPtr));
+ monitorflag += CheckClusters(reinterpret_cast<AliHLTCaloClusterHeaderStruct*>(iter->fPtr));
}
eddWord = blockCount;
PushEventDoneData( eddWord );
- Int_t blockIndex = 0;
+ //Int_t blockIndex = 0;
// low data type
eddWord = 0;
}
Bool_t
-AliHLTPHOSMonitorTriggerComponent::CheckClusters(AliHLTPHOSCaloClusterContainerStruct* clusterContainer)
+AliHLTPHOSMonitorTriggerComponent::CheckClusters(AliHLTCaloClusterHeaderStruct* clusterHeaderPtr)
{
//See headerfile for documentation
+
+ UInt_t nClusters = clusterHeaderPtr->fNClusters;
+// Float_t* ampFracPtr = 0;
- Int_t nClusters = 0;
-
- AliHLTPHOSCaloClusterDataStruct* clusterPtr = 0;
+ AliHLTCaloClusterDataStruct* clusterPtr = 0;
+ clusterPtr = reinterpret_cast<AliHLTCaloClusterDataStruct*>(clusterHeaderPtr + sizeof(AliHLTCaloClusterHeaderStruct));
- for(UInt_t n = 0; n < clusterContainer->fNCaloClusters; n++)
+ for(UInt_t n = 0; n < nClusters; n++)
{
- clusterPtr = &(clusterContainer->fCaloClusterArray[n]);
if(fCheckClusterEnergy == true && clusterPtr->fEnergy > fClusterEnergyThreshold && clusterPtr->fNCells > fDigitMultiplicityThreshold)
{
- return true;
+/* ampFracPtr = &(clusterPtr->fCellsAmpFraction);
+ for(UInt_t i = 0; i < clusterPtr->fNCells; i++)
+ {
+ if(*ampFracPtr > fLowerCentrality && *ampFracPtr < fUpperCentrality) return true;
+ ampFracPtr += 6; // 6 = sizeof(Short_t) + sizeof(Float_t)
+ }*/
}
if(fCheckClusterMultiplicities == true && clusterPtr->fEnergy > fMultEnergyThreshold && clusterPtr->fNCells > fMultDigitMultiplicityThreshold)
{
return true;
}
}
+ clusterPtr += sizeof(AliHLTCaloClusterDataStruct) + 5*clusterPtr->fNCells; //5 = sizeof(Short_t) + sizeof(Float_t) - 1(pair already included)
}
return false;
{
//See headerfile for documentation
-
for (int i = 0; i < argc; i++)
{
if(!strcmp("-checkenergy", argv[i]))
fClusterEnergyThreshold = atof(argv[i+1]);
fCheckClusterEnergy = true;
}
+ if(!strcmp("-multiplicityinclusterE", argv[i]))
+ {
+ fDigitMultiplicityThreshold = atoi(argv[i+1]);
+ }
if(!strcmp("-multiplicitythreshold", argv[i]))
{
fMultiplicityThreshold = atoi(argv[i+1]);
fCheckClusterMultiplicities = true;
}
-
+ if(!strcmp("-multiplicityinclusterMult", argv[i]))
+ {
+ fMultDigitMultiplicityThreshold = atoi(argv[i+1]);
+ }
+ if(!strcmp("-centralitylimits", argv[i]))
+ {
+ fLowerCentrality = atof(argv[i+1]);
+ fUpperCentrality = atof(argv[i+2]);
+ }
}
return 0;
}