LCOV - code coverage report
Current view: top level - HLT/ITS - AliHLTITSVertexerSPDComponent.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2016-06-14 17:26:59 Functions: 1 5 20.0 %

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // $Id$
       3             : // ************************************************************************
       4             : // This file is property of and copyright by the ALICE HLT Project        *
       5             : // ALICE Experiment at CERN, All rights reserved.                         *
       6             : // See cxx source for full Copyright notice                               *
       7             : //                                                                        *
       8             : //*************************************************************************
       9             : 
      10             : ///  @file   AliHLTITSVertexerSPDComponent.h
      11             : ///  @author Sergey Gorbunov <sergey.gorbunov@kip.uni-heidelberg.de>
      12             : ///  @date   Nov 2009
      13             : ///  @brief  An ITS pixel vertexer component for the HLT
      14             : 
      15             : #ifndef ALIHLTITSVERTEXERSPDCOMPONENT_H
      16             : #define ALIHLTITSVERTEXERSPDCOMPONENT_H
      17             : 
      18             : #include "AliHLTProcessor.h"
      19             : #include "AliHLTDataTypes.h"
      20             : 
      21             : 
      22             : /**
      23             :  * @class AliHLTITSVertexerSPDComponent
      24             :  * The HLT ITS SPD z-vertexer component.
      25             :  * The vertexer uses approximate XY position of the beam
      26             :  * It can treat initial beam offset up to 1.5 cm in XY
      27             :  * The component does a calibration of the beam position 
      28             :  * every n==fAutoCalibration events
      29             :  * 
      30             :  *
      31             :  * <h2>General properties:</h2>
      32             :  *
      33             :  * Component ID: \b ITSVertexerSPD                            <br>
      34             :  * Library: \b libAliHLTITS.so                              <br>
      35             :  * Input Data Types:                                        <br> 
      36             :  *    kAliHLTDataTypeClusters|kAliHLTDataOriginITSSPD       <br>
      37             :  *      
      38             :  * Output Data Types:                                       <br>
      39             :  *    kAliHLTDataTypeESDVertex|kAliHLTDataOriginITS            <br>
      40             :  *
      41             :  * <h2>Mandatory arguments:</h2>
      42             :  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
      43             :  *
      44             :  * <h2>Optional arguments:</h2>
      45             :  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
      46             :  *
      47             :  * <h2>Configuration:</h2>
      48             :  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
      49             :  * \li -config1      <i> teststring   </i> <br>
      50             :  *      a configuration argument with one parameter
      51             :  * \li -config2                            <br>
      52             :  *      a configuration argument without parameters
      53             :  *
      54             :  * <h2>Default CDB entries:</h2>
      55             :  * TODO
      56             :  *
      57             :  * <h2>Performance:</h2>
      58             :  * TODO
      59             :  *
      60             :  * <h2>Memory consumption:</h2>
      61             :  * TODO
      62             :  *
      63             :  * <h2>Output size:</h2>
      64             :  * TODO
      65             :  * 
      66             :  * @ingroup alihlt_its_components
      67             :  */
      68             : class AliHLTITSVertexerSPDComponent : public AliHLTProcessor
      69             : {
      70             :   public:
      71             :     /** standard constructor */
      72             :     AliHLTITSVertexerSPDComponent();
      73             : 
      74             :     /** dummy copy constructor, defined according to effective C++ style */
      75             :     AliHLTITSVertexerSPDComponent( const AliHLTITSVertexerSPDComponent& );
      76             : 
      77             :     /** dummy assignment op, but defined according to effective C++ style */
      78             :     AliHLTITSVertexerSPDComponent& operator=( const AliHLTITSVertexerSPDComponent& );
      79             : 
      80             :     /** standard destructor */
      81             :     virtual ~AliHLTITSVertexerSPDComponent();
      82             : 
      83             :     // Public functions to implement AliHLTComponent's interface.
      84             :     // These functions are required for the registration process
      85             : 
      86             :     /** @see component interface @ref AliHLTComponent::GetComponentID */
      87             :     const char* GetComponentID() ;
      88             : 
      89             :     /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
      90             :     void GetInputDataTypes( vector<AliHLTComponentDataType>& list )  ;
      91             : 
      92             :     /** @see component interface @ref AliHLTComponent::GetOutputDataType */
      93             :     AliHLTComponentDataType GetOutputDataType() ;
      94             : 
      95             :     /** @see component interface @ref AliHLTComponent::GetOutputDataTypes */
      96             :     int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
      97             : 
      98             :     /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
      99             :     virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
     100             : 
     101             :     /** @see component interface @ref AliHLTComponent::Spawn */
     102             :     AliHLTComponent* Spawn() ;
     103             : 
     104             :   protected:
     105             : 
     106             :     // Protected functions to implement AliHLTComponent's interface.
     107             :     // These functions provide initialization as well as the actual processing
     108             :     // capabilities of the component.
     109             : 
     110             :     /** @see component interface @ref AliHLTComponent::DoInit */
     111             :     int DoInit( int argc, const char** argv );
     112             : 
     113             :     /** @see component interface @ref AliHLTComponent::DoDeinit */
     114             :     int DoDeinit();
     115             : 
     116             :     /** reconfigure **/
     117             :     int Reconfigure( const char* cdbEntry, const char* chainId );
     118             : 
     119             :     /** @see component interface @ref AliHLTProcessor::DoEvent */
     120             :     int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
     121             :                  AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
     122             :                  AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
     123             : 
     124             :   private:
     125             : 
     126             :   struct AliHLTITSVZCluster{
     127             :     float fX, fY, fZ;
     128             :   };
     129             :   
     130             :   Double_t fZRange;// Z range for the vertex seearch
     131             :   Double_t fZBinSize; // size of the Z bin [cm] 
     132             :   double fRunVtx[3];// default vertex position
     133             :   double fFullTime; //* total time for DoEvent() [s]
     134             :   double fRecoTime; //* total reconstruction time [s]
     135             :   Long_t fNEvents;  //* number of reconstructed events
     136             :   double *fSum[9]; // coefficients for the LSM method
     137             :   double *fSumW; // sum of weights per Z bin 
     138             :   int *fSumN; // N entries per Z bin
     139             :   double fZMin; // Z of the first bin ( == -fZRange)
     140             :   int fNZBins; // N of bins
     141             : 
     142             :   /** set configuration parameters **/
     143             :   void SetDefaultConfiguration();
     144             :   int ReadConfigurationString(  const char* arguments );
     145             :   int ReadCDBEntry( const char* cdbEntry, const char* chainId );
     146             :   int Configure( const char* cdbEntry, const char* chainId, const char *commandLine  );
     147             :   
     148           6 :   ClassDef( AliHLTITSVertexerSPDComponent, 0 );
     149             :   
     150             : };
     151             : #endif

Generated by: LCOV version 1.11