const AliHLTComponentDataType
AliHLTMUONConstants::fgkESDDataType = kAliHLTDataTypeESDObject | kAliHLTDataOriginMUON;
+const AliHLTComponentDataType
+AliHLTMUONConstants::fgkClusterStoreDataType = (AliHLTComponentDataType){
+ sizeof(AliHLTComponentDataType),
+ {'C','L','U','S','T','O','R','E'},
+ kAliHLTDataOriginAny
+} | kAliHLTDataOriginMUON;
+
const char* AliHLTMUONConstants::fgkRecHitsSourceId = "MUONRecHitsSource";
const char* AliHLTMUONConstants::fgkTriggerRecordsSourceId = "MUONTriggerRecordsSource";
const char* AliHLTMUONConstants::fgkRootifierComponentId = "MUONRootifier";
const char* AliHLTMUONConstants::fgkEmptyEventFilterComponentId = "MUONEmptyEventFilter";
const char* AliHLTMUONConstants::fgkDataCheckerComponentId = "MUONDataChecker";
+const char* AliHLTMUONConstants::fgkClusterFinderId = "MUONClusterFinder";
const char* AliHLTMUONConstants::fgkTriggerReconstructorCDBPath = "HLT/ConfigMUON/TriggerReconstructor";
const char* AliHLTMUONConstants::fgkHitReconstructorCDBPath = "HLT/ConfigMUON/HitReconstructor";
{
return fgkESDDataType;
}
+
+ static const AliHLTComponentDataType& ClusterStoreDataType()
+ {
+ return fgkClusterStoreDataType;
+ }
static const char* RecHitsSourceId()
{
return fgkDataCheckerComponentId;
}
+ static const char* ClusterFinderId()
+ {
+ return fgkClusterFinderId;
+ }
+
static const char* TriggerReconstructorCDBPath()
{
return fgkTriggerReconstructorCDBPath;
static const AliHLTComponentDataType fgkSinglesDecisionBlockDataType; // Trigger decision block type for single track decisions.
static const AliHLTComponentDataType fgkPairsDecisionBlockDataType; // Trigger decision block type for pairs of particles.
static const AliHLTComponentDataType fgkESDDataType; // The ESD data type with origin equal to MUON.
+ static const AliHLTComponentDataType fgkClusterStoreDataType; // Offline algorithm cluster store object.
// Component ID names:
static const char* fgkRecHitsSourceId; // Name of source component for reconstructed hits for debugging.
static const char* fgkRootifierComponentId; // The name of the event filter debugging component.
static const char* fgkEmptyEventFilterComponentId; // The name of the event filter debugging component.
static const char* fgkDataCheckerComponentId; // Name of data checking component for debugging.
+ static const char* fgkClusterFinderId; // Name of cluster finder implementing offline algorithms.
// CDB path entries to configuration information.
static const char* fgkTriggerReconstructorCDBPath; // Path to CDB entry for the trigger reconstruction component.
///
#include "AliHLTMUONProcessor.h"
+#include "AliMUONRecoParam.h"
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
return 0;
}
+
+
+int AliHLTMUONProcessor::LoadRecoParamsFromCDB(AliMUONRecoParam*& params) const
+{
+ /// Fetches the reconstruction parameters object from the CDB for MUON.
+ /// [out] \param params This will be filled with the reconstruction
+ /// parameters object found if a successful status code is returned.
+ /// Otherwise it will be unchanged.
+ /// \return Zero if the object could be found. Otherwise an error code,
+ /// which is compatible with the HLT framework, is returned.
+
+ assert(AliCDBManager::Instance() != NULL);
+
+ const char* pathToEntry = "MUON/Calib/RecoParam";
+ AliCDBEntry* entry = AliCDBManager::Instance()->Get(pathToEntry);
+ if (entry == NULL)
+ {
+ HLTError("Could not get the CDB entry for \"%s\".", pathToEntry);
+ return -EIO;
+ }
+
+ TObject* obj = entry->GetObject();
+ if (obj == NULL)
+ {
+ HLTError("Reconstruction parameters object for \"%s\" is missing.", pathToEntry);
+ return -ENOENT;
+ }
+
+ TObjArray* objarr = dynamic_cast<TObjArray*>(obj);
+ if (objarr != NULL)
+ {
+ obj = objarr->Last();
+ }
+
+ AliMUONRecoParam* par = dynamic_cast<AliMUONRecoParam*>(obj);
+ if (par == NULL)
+ {
+ HLTError("No AliMUONRecoParam class found for entry \"%s\". Found a %s class instead.",
+ pathToEntry, obj->ClassName()
+ );
+ return -EPROTO;
+ }
+
+ params = par;
+ return 0;
+}
+
#include "AliHLTMUONUtils.h"
class TMap;
+class AliMUONRecoParam;
/**
* @class AliHLTMUONProcessor
const char* pathToEntry = NULL, const char* prettyName = NULL
) const;
+ /**
+ * Fetches the reconstruction parameters object from the CDB for MUON.
+ * [out] \param params This will be filled with the reconstruction
+ * parameters object found if a successful status code is returned.
+ * Otherwise it will be unchanged.
+ * \return Zero if the object could be found. Otherwise an error code,
+ * which is compatible with the HLT framework, is returned.
+ */
+ int LoadRecoParamsFromCDB(AliMUONRecoParam*& params) const;
+
private:
// Do not allow copying of this class.
#pragma link C++ class AliHLTMUONRootifierComponent+;
#pragma link C++ class AliHLTMUONEmptyEventFilterComponent+;
#pragma link C++ class AliHLTMUONDataCheckerComponent+;
+#pragma link C++ class AliHLTMUONClusterFinderComponent+;
#endif // __CINT__
#include "AliHLTMUONESDMaker.h"
#include "AliHLTMUONEmptyEventFilterComponent.h"
#include "AliHLTMUONDataCheckerComponent.h"
+#include "AliHLTMUONClusterFinderComponent.h"
#include "AliHLTOUTHandlerChain.h"
#include "AliRawReader.h"
#include "AliRunLoader.h"
pHandler->AddComponent(new AliHLTMUONESDMaker);
pHandler->AddComponent(new AliHLTMUONEmptyEventFilterComponent);
pHandler->AddComponent(new AliHLTMUONDataCheckerComponent);
+ pHandler->AddComponent(new AliHLTMUONClusterFinderComponent);
return 0;
}
OnlineAnalysis/AliHLTMUONHitReconstructorComponent.h \
OnlineAnalysis/AliHLTMUONMansoTrackerFSMComponent.h \
OnlineAnalysis/AliHLTMUONDecisionComponent.h \
+ OnlineAnalysis/AliHLTMUONClusterFinderComponent.h \
utils/AliHLTMUONEmptyEventFilterComponent.h \
utils/AliHLTMUONDataCheckerComponent.h \
AliHLTMUONProcessor.h \