//* ALICE Experiment at CERN, All rights reserved. *
//* See cxx source for full Copyright notice *
-/** @file AliHLTITSClusterFinderComponent.cxx
- @author Gaute Øvrebekk <st05886@alf.uib.no>
- @date
- @brief Component to run the offline clusterfinder.
-*/
+/// @file AliHLTITSClusterFinderComponent.cxx
+/// @author Gaute Ovrebekk <st05886@alf.uib.no>
+/// @date
+/// @brief Component to run the offline clusterfinder.
+///
#include "AliHLTProcessor.h"
#include "AliRawReaderMemory.h"
#include "TClonesArray.h"
#include "AliHLTDataTypes.h"
#include "TTree.h"
+#include "AliHLTComponentBenchmark.h"
+#include "AliITSRecPoint.h"
class AliHLTITSClusterFinderSPD;
class AliHLTITSClusterFinderSSD;
-
+class AliHLTITSClusterData;
+class AliLoader;
/**
* @class AliHLTITSClusterFinderComponent
* a configuration argument without parameters
*
* <h2>Default CDB entries:</h2>
- * TODO
+ * ITS/Calib/SPDNoisy
+ * ITS/Calib/SPDDead
+ * TRIGGER/SPD/PITConditions
+ * ITS/Calib/CalibSDD
+ * ITS/Calib/RespSDD
+ * ITS/Calib/DriftSpeedSDD
+ * ITS/Calib/DDLMapSDD
+ * ITS/Calib/MapsTimeSDD
+ * ITS/Calib/NoiseSSD
+ * ITS/Calib/GainSSD
+ * ITS/Calib/BadChannelsSSD
+ * GRP/CTP/Scalers
*
* <h2>Performance:</h2>
* TODO
* <h2>Output size:</h2>
* TODO
*
+ * <h2>Pending issues:</h2>
+ * There is a general problem with the streaming of the digit tree. A description
+ * is in the GetEvent function. For many events the hotfix for that caused bug
+ * https://savannah.cern.ch/bugs/?72815
+ * This has been fixed by accessing the AliLoader in the CF component via the
+ * global AliRunLoader. This breaks the idea of components, however it's used in
+ * simulation inside AliRoot only.
+ *
* @ingroup alihlt_its_components
*/
class AliHLTITSClusterFinderComponent : public AliHLTProcessor
/** interface function, see @ref AliHLTComponent for description */
virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
+ /** interface function, see @ref AliHLTComponent for description */
+ void GetOCDBObjectDescription( TMap* const targetMap);
+
/** interface function, see @ref AliHLTComponent for description */
AliHLTComponent* Spawn();
//Int_t DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/);
int Reconfigure(const char* cdbEntry, const char* chainId);
-
+
using AliHLTProcessor::DoEvent;
///////////////////////////////////////////////////////////////////////////////////
int Configure(const char* arguments);
void RecPointToSpacePoint(AliHLTUInt8_t* outputPtr,AliHLTUInt32_t& size);
+ void RecpointToOutput(AliHLTITSClusterData *outputClusters, AliITSRecPoint *recpoint, int &clustIdx);
/*
* ---------------------------------------------------------------------------------
* Members - private
Int_t fId; // ddl offset
Int_t fNddl; // number of ddl's
- TClonesArray** fClusters; //!transient
-
/** the reader object for data decoding */
AliRawReaderMemory* fRawReader; //!transient
TTree *tD; //!transient
TTree *tR; //!transient
+ Int_t fSPDNModules; //!transient
+ Int_t fSDDNModules; //!transient
+ Int_t fSSDNModules; //!transient
+
+ Int_t fFirstModule; //!transient
+ Int_t fLastModule; //!transient
+ Int_t fnClusters; //!transient
+
std::vector<AliITSRecPoint> fclusters; //!transient
- /*
- int fStatNEv;
- double fStatTime;
- double fStatTimeAll;
- double fStatTimeC;
- double fStatTimeAllC;
- */
+
+ AliHLTComponentBenchmark fBenchmark;// benchmark
+
+ unsigned long fOutputSizeOffset; //! const offset for output size estimation
+ // 2011-01-27: the transport of digits via the AliLoaderPublisher is
+ // not working stably at the moment. In particular the size of the
+ // streamed digit tree seems not to be correlated with the content
+ // furthermore the CF implements a hotfix accessing the root file
+ // directly. The variable fInputMultiplierDigits will be used for a
+ // dynamic adaption of the buffer size. The component will then return
+ // -ENOSPC and AliHLTTask carries out the event processing once again
+ // with adjusted buffer size
+ float fInputMultiplierDigits; //! variable input multiplier for CF type digits
+ AliLoader* fpLoader; //! ITS loader for getting digit tree
ClassDef(AliHLTITSClusterFinderComponent, 0)