]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/ITS/AliHLTITSClusterFinderComponent.h
Fix for IsTriggerInputFired,GetFiredTriggerInputs
[u/mrichter/AliRoot.git] / HLT / ITS / AliHLTITSClusterFinderComponent.h
index de879b9a947783dfc1b172f16ddc30f4b9c4d6ff..7a7e0699c716eed35b107687bf9ffddff36a742c 100644 (file)
@@ -7,11 +7,11 @@
 //* 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
@@ -54,7 +57,18 @@ class AliHLTITSClusterFinderSSD;
  *      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
@@ -65,6 +79,14 @@ class AliHLTITSClusterFinderSSD;
  * <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
@@ -112,6 +134,9 @@ 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();
 
@@ -144,7 +169,7 @@ class AliHLTITSClusterFinderComponent : public AliHLTProcessor
   //Int_t DoEvent( const AliHLTComponentEventData& /*evtData*/, AliHLTComponentTriggerData& /*trigData*/);
 
   int Reconfigure(const char* cdbEntry, const char* chainId);
-               
+
   using AliHLTProcessor::DoEvent;
  
   ///////////////////////////////////////////////////////////////////////////////////
@@ -164,6 +189,7 @@ class AliHLTITSClusterFinderComponent : public AliHLTProcessor
   int Configure(const char* arguments);
 
   void RecPointToSpacePoint(AliHLTUInt8_t* outputPtr,AliHLTUInt32_t& size);
+  void RecpointToOutput(AliHLTITSClusterData *outputClusters, AliITSRecPoint *recpoint, int &clustIdx);
   /*
    * ---------------------------------------------------------------------------------
    *                             Members - private
@@ -186,8 +212,6 @@ class AliHLTITSClusterFinderComponent : public AliHLTProcessor
   Int_t fId;                   // ddl offset
   Int_t fNddl;                 // number of ddl's
   
-   TClonesArray** fClusters;                                  //!transient
-  
   /** the reader object for data decoding */
 
   AliRawReaderMemory* fRawReader;                             //!transient
@@ -201,14 +225,29 @@ class AliHLTITSClusterFinderComponent : public AliHLTProcessor
   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)