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

          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 ALIHLTPHOSDIGITMAKERCOMPONENT_H
      19             : #define ALIHLTPHOSDIGITMAKERCOMPONENT_H
      20             : 
      21             : /** @file   AliHLTPHOSDigitMakerComponent.h
      22             :     @author Oystein Djuvsland
      23             :     @date   
      24             :     @brief  A digit maker component for PHOS 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             : 
      34             : #include "AliHLTPHOSDefinitions.h" // PTH
      35             : #include "AliHLTCaloProcessor.h"
      36             : #include "AliHLTCaloConstantsHandler.h"
      37             : 
      38             : 
      39             : class AliHLTCaloDigitMaker;
      40             : struct AliHLTCaloDigitContainerDataStruct;
      41             : class AliPHOSEmcBadChannelsMap;
      42             : class AliPHOSEmcCalibData;
      43             : /**
      44             :  * @class AliHLTPHOSDigitMakerComponent
      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 libAliHLTPHOS.so     <br>
      53             :  * Input Data Types: @ref AliHLTPHOSDefinitions::fkgChannelDataType<br>
      54             :  * Output Data Types: @ref AliHLTPHOSDefinitions::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_phos
      88             :  */ 
      89             : 
      90             : class AliHLTPHOSDigitMakerComponent : public AliHLTCaloProcessor, public AliHLTCaloConstantsHandler
      91             : {
      92             : public:
      93             : 
      94             :   /** Constructor */
      95             :   AliHLTPHOSDigitMakerComponent();
      96             : 
      97             :   /** Destructor */ 
      98             :   virtual ~AliHLTPHOSDigitMakerComponent();
      99             :   
     100             :   /** interface function, see @ref AliHLTComponent for description */
     101             :   const char* GetComponentID();
     102             : 
     103             :   /** interface function, see @ref AliHLTComponent for description */
     104             :   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
     105             : 
     106             :   /** interface function, see @ref AliHLTComponent for description */
     107             :   AliHLTComponentDataType GetOutputDataType();
     108             : 
     109             :   /** interface function, see @ref AliHLTComponent for description */
     110             :   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
     111             : 
     112             :   /** interface function, see @ref AliHLTComponent for description */
     113             :   int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
     114             :               AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
     115             :               std::vector<AliHLTComponentBlockData>& outputBlocks);
     116             :   
     117             :   /** interface function, see @ref AliHLTComponent for description */
     118             :   AliHLTComponent* Spawn();
     119             :   
     120             : protected:
     121             : 
     122             :   /** interface function, see @ref AliHLTComponent for description */
     123             :   int DoInit(int argc, const char** argv);
     124             : 
     125             :   using AliHLTCaloProcessor::DoEvent;
     126             : 
     127             :   /** interface function, see @ref AliHLTComponent for description */
     128             :   virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
     129             : 
     130             :   /** Get bad channel map from CDB */
     131             :   virtual int GetBCMFromCDB();
     132             :   
     133             :   /** Get the ADC <-> Energy (GeV) gain factors */
     134             :   virtual int GetGainsFromCDB();
     135             :   
     136             :   
     137             : private:
     138             :    
     139             :    /** Copy constructor, prohibited */  
     140             :   AliHLTPHOSDigitMakerComponent(const AliHLTPHOSDigitMakerComponent &); 
     141             :   
     142             :   /** Assignment operator, prohibited */
     143             :   AliHLTPHOSDigitMakerComponent & operator = (const AliHLTPHOSDigitMakerComponent);
     144             :   
     145             :   /** Pointer to the digit maker itself */
     146             :   AliHLTCaloDigitMaker *fDigitMakerPtr;                    //! transient
     147             : 
     148             :   /** The output of the component, digits in a container */
     149             :   AliHLTCaloDigitContainerDataStruct *fDigitContainerPtr;  //! transient
     150             :   
     151             :   /** Bad channel map */
     152             :   AliPHOSEmcBadChannelsMap *fBadChannelMap; //! transient
     153             :    
     154             : //  /** Temporary holder for bad channel map */
     155             :   //Bool_t ***fBadChannelMap; //! transient
     156             : 
     157             :   /** Calibration data */
     158             :   AliPHOSEmcCalibData *fCalibData; //! transient
     159             :    
     160             : 
     161             :   /** Is the bad map initialised? */
     162             :   Bool_t fBCMInitialised; //! transient
     163             : 
     164             :    /** Are the gains initialised? */
     165             :   Bool_t fGainsInitialised; //! transient
     166             :   
     167           6 :   ClassDef(AliHLTPHOSDigitMakerComponent, 0);
     168             : 
     169             : };
     170             : #endif
     171             :  

Generated by: LCOV version 1.11