LCOV - code coverage report
Current view: top level - HLT/EMCAL - AliHLTEMCALDigitMakerComponent.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 2 50.0 %
Date: 2016-06-14 17:26:59 Functions: 1 6 16.7 %

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // $Id$
       3             : 
       4             : /**************************************************************************
       5             :  * This file is property of and copyright by the ALICE HLT Project        *
       6             :  * All rights reserved.                                                   *
       7             :  *                                                                        *
       8             :  * Primary Authors: Oystein Djuvsland                                     *
       9             :  *                                                                        *
      10             :  * Permission to use, copy, modify and distribute this software and its   *
      11             :  * documentation strictly for non-commercial purposes is hereby granted   *
      12             :  * without fee, provided that the above copyright notice appears in all   *
      13             :  * copies and that both the copyright notice and this permission notice   *
      14             :  * appear in the supporting documentation. The authors make no claims     *
      15             :  * about the suitability of this software for any purpose. It is          *
      16             :  * provided "as is" without express or implied warranty.                  *
      17             :  **************************************************************************/
      18             : #ifndef ALIHLTEMCALDIGITMAKERCOMPONENT_H
      19             : #define ALIHLTEMCALDIGITMAKERCOMPONENT_H
      20             : 
      21             : /** @file   AliHLTEMCALDigitMakerComponent.h
      22             :     @author Oystein Djuvsland
      23             :     @date   
      24             :     @brief  A digit maker component for EMCAL HLT
      25             : */
      26             : 
      27             : // see below for class documentation
      28             : // or
      29             : // refer to README to build package
      30             : // or
      31             : // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
      32             : 
      33             : #include "AliHLTCaloProcessor.h"
      34             : 
      35             : //#include "AliHLTCaloConstantsHandler.h"
      36             : 
      37             : class AliEMCALCalibData;
      38             : class AliCaloCalibPedestal;
      39             : 
      40             : class AliHLTCaloDigitMaker;
      41             : class AliHLTCaloDigitContainerDataStruct;
      42             : 
      43             : /**
      44             :  * @class AliHLTEMCALDigitMakerComponent
      45             :  * 
      46             :  * Creates the digit used for the clusterizer. Digits are equivalent to the ones in 
      47             :  * offline reconstruction
      48             :  *
      49             :  * <h2>General properties:</h2>
      50             :  *
      51             :  * Component ID: \b PhosDigitMaker <br>
      52             :  * Library: \b libAliHLTEMCAL.so     <br>
      53             :  * Input Data Types: @ref AliHLTEMCALDefinitions::fkgChannelDataType<br>
      54             :  * Output Data Types: @ref AliHLTEMCALDefinitions::fgkDigitDataType<br>
      55             :  *
      56             :  * <h2>Mandatory arguments:</h2>
      57             :  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
      58             :  * \li No mandatory arguments for component                           <br>
      59             :  *
      60             :  * <h2>Optional arguments:</h2>
      61             :  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
      62             :  * \li -lowgainfactor      <i> value </i> <br>
      63             :  *      sets a global low gain factor 
      64             :  * \li -highgainfactor <i> value </i> <br>
      65             :  *      sets a global high gain factor
      66             :  * \li -reverseorder <br>
      67             :  *      set if one expects the low gain channels to come before the high gain ones
      68             :  *
      69             :  * <h2>Configuration:</h2>
      70             :  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
      71             :  * \li No configuration arguments 
      72             :  *
      73             :  * <h2>Default CDB entries:</h2>
      74             :  * \li No CDB entry yet, will come.
      75             :  *
      76             :  * <h2>Performance:</h2>
      77             :  * Pretty good
      78             :  *
      79             :  * <h2>Memory consumption:</h2>
      80             :  * Pretty low
      81             :  *
      82             :  * <h2>Output size:</h2>
      83             :  * Depends on the event...
      84             :  *
      85             :  * More detailed description. (Soon)
      86             :  *
      87             :  * @ingroup alihlt_emcal
      88             :  */ 
      89             : 
      90             : //class AliHLTEMCALDigitMakerComponent : public AliHLTCaloProcessor, public AliHLTCaloConstantsHandler
      91             : class AliHLTEMCALDigitMakerComponent : public AliHLTCaloProcessor
      92             : {
      93             : public:
      94             : 
      95             :   /** Constructor */
      96             :   AliHLTEMCALDigitMakerComponent();
      97             : 
      98             :   /** Destructor */ 
      99             :   virtual ~AliHLTEMCALDigitMakerComponent();
     100             : 
     101             :   /** interface function, see @ref AliHLTComponent for description */
     102             :   const char* GetComponentID();
     103             : 
     104             :   /** interface function, see @ref AliHLTComponent for description */
     105             :   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
     106             : 
     107             :   /** interface function, see @ref AliHLTComponent for description */
     108             :   AliHLTComponentDataType GetOutputDataType();
     109             : 
     110             :   /** interface function, see @ref AliHLTComponent for description */
     111             :   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
     112             : 
     113             :   /// inherited from AliHLTComponent, scan one argument and
     114             :   /// its parameters
     115             :   //  int ScanConfigurationArgument(int argc, const char** argv);
     116             : 
     117             : 
     118             :   /** interface function, see @ref AliHLTComponent for description */
     119             :   int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
     120             :               AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
     121             :               std::vector<AliHLTComponentBlockData>& outputBlocks);
     122             :   
     123             :   /** interface function, see @ref AliHLTComponent for description */
     124             :   AliHLTComponent* Spawn();
     125             :   
     126             : protected:
     127             : 
     128             :   /** interface function, see @ref AliHLTComponent for description */
     129             :   virtual int DoInit(int argc, const char** argv);
     130             : 
     131             :   using AliHLTCaloProcessor::DoEvent;
     132             : 
     133             :   /** interface function, see @ref AliHLTComponent for description */
     134             :   virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTEMCALModuleProcessor
     135             :   
     136             : //  virtual int DoInit(int, const char**) {;}
     137           0 :   virtual int DoDeinit(){return 0;}
     138             : 
     139             :   /** Get bad channel map from CDB */
     140             :   virtual int GetBCMFromCDB();
     141             :   
     142             :   /** Get the ADC <-> Energy (GeV) gain factors */
     143             :   virtual int GetGainsFromCDB();
     144             : 
     145             :   
     146             : private:
     147             : 
     148             :    /** Copy constructor, prohibited */  
     149             :   AliHLTEMCALDigitMakerComponent(const AliHLTEMCALDigitMakerComponent &);
     150             :    
     151             :   /** Assignment operator, prohibited */
     152             :   AliHLTEMCALDigitMakerComponent & operator = (const AliHLTEMCALDigitMakerComponent);
     153             : 
     154             :   /** Pointer to the digit maker itself, one per module */
     155             :   AliHLTCaloDigitMaker *fDigitMakerPtr[20];                //! transient
     156             : 
     157             :   /** The output of the component, digits in a container */
     158             :   AliHLTCaloDigitContainerDataStruct *fDigitContainerPtr;  //! transient
     159             : 
     160             :    /** Pedestal data (contains BCM) */
     161             :   AliCaloCalibPedestal *fPedestalData; 
     162             :   
     163             :   /** Calib data (contains gain factors) */
     164             :   AliEMCALCalibData *fCalibData;
     165             : 
     166             :   /** Is the bad map initialised? */
     167             :   Bool_t fBCMInitialised[20]; //! transient
     168             : 
     169             :    /** Are the gains initialised? */
     170             :   Bool_t fGainsInitialised[20]; //! transient
     171             : 
     172           6 :   ClassDef(AliHLTEMCALDigitMakerComponent, 1);
     173             : 
     174             : };
     175             : #endif
     176             :  

Generated by: LCOV version 1.11