LCOV - code coverage report
Current view: top level - HLT/MUON/OfflineInterface - AliHLTMUONRootifierComponent.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             : #ifndef ALIHLTMUONROOTIFIERCOMPONENT_H
       2             : #define ALIHLTMUONROOTIFIERCOMPONENT_H
       3             : /* This file is property of and copyright by the ALICE HLT Project        *
       4             :  * ALICE Experiment at CERN, All rights reserved.                         *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : // $Id$
       8             : 
       9             : ///
      10             : /// @file   AliHLTMUONRootifierComponent.h
      11             : /// @author Artur Szostak <artursz@iafrica.com>
      12             : /// @date   29 Sep 2007
      13             : /// @brief  Component for converting dHLT raw data into ROOT objects.
      14             : ///
      15             : 
      16             : #include "AliHLTMUONProcessor.h"
      17             : 
      18             : class AliHLTMUONEvent;
      19             : class AliHLTMUONMansoTrack;
      20             : class AliHLTMUONTrack;
      21             : extern "C" struct AliHLTMUONMansoTrackStruct;
      22             : 
      23             : /**
      24             :  * \class AliHLTMUONRootifierComponent
      25             :  * \brief Converts dHLT raw data blocks into ROOT objects.
      26             :  *
      27             :  * This component class is used to convert all internal raw dHLT data blocks into
      28             :  * ROOT object that can be stored in '.root' files in a platform independant manner.
      29             :  * This can also make some of the analysis easier because the dHLT internal data
      30             :  * will be available in TObjects.
      31             :  *
      32             :  * <h2>General properties:</h2>
      33             :  *
      34             :  * Component ID: \b MUONRootifier <br>
      35             :  * Library: \b libAliHLTMUON.so <br>
      36             :  * Input Data Types:  kAliHLTAnyDataType = "*******:***" <br>
      37             :  * Output Data Types: AliHLTMUONConstants::RootifiedEventDataType() = "ROOTEVNT:MUON" <br>
      38             :  *
      39             :  * <h2>Mandatory arguments:</h2>
      40             :  * None.
      41             :  *
      42             :  * <h2>Optional arguments:</h2>
      43             :  * \li -warn_on_unexpected_block <br>
      44             :  *      This will cause the component to generate warnings when it receives data block
      45             :  *      types it does not know how to handle. Without this option the component only
      46             :  *      generates debug messages when they are compiled in. <br>
      47             :  * \li -dumponerror <br>
      48             :  *      This flag will cause the component to dump the data blocks it received if
      49             :  *      an error occurs during the processing of an event. <br>
      50             :  * \li -dumppath <i>path</i> <br>
      51             :  *      Allows one to specify the path in which to dump the received data blocks
      52             :  *      if an error occurs. <br>
      53             :  *
      54             :  * <h2>Standard configuration:</h2>
      55             :  * There is no special configuration for this component.
      56             :  *
      57             :  * <h2>Default CDB entries:</h2>
      58             :  * None.
      59             :  *
      60             :  * <h2>Performance:</h2>
      61             :  * A few milliseconds per event.
      62             :  *
      63             :  * <h2>Memory consumption:</h2>
      64             :  * A few MBytes.
      65             :  *
      66             :  * <h2>Output size:</h2>
      67             :  * A few kBytes.
      68             :  *
      69             :  * @ingroup alihlt_muon_components
      70             :  */
      71             : class AliHLTMUONRootifierComponent : public AliHLTMUONProcessor
      72             : {
      73             : public:
      74             : 
      75             :         AliHLTMUONRootifierComponent();
      76             :         virtual ~AliHLTMUONRootifierComponent();
      77             :         
      78             :         virtual const char* GetComponentID();
      79             : 
      80             :         virtual void GetInputDataTypes(AliHLTComponentDataTypeList& list);
      81             :         virtual AliHLTComponentDataType GetOutputDataType();
      82             :         virtual int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
      83             :         virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
      84             : 
      85             :         virtual AliHLTComponent* Spawn();
      86             : 
      87             : protected:
      88             : 
      89             :         virtual int DoInit(int argc, const char** argv);
      90             :         virtual int DoDeinit();
      91             :         virtual int DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
      92             :         virtual bool IgnoreArgument(const char* arg) const;
      93             :         using AliHLTProcessor::DoEvent;
      94             :         
      95             : private:
      96             : 
      97             :         // Prevent copying of these objects.
      98             :         AliHLTMUONRootifierComponent(const AliHLTMUONRootifierComponent& /*object*/);
      99             :         AliHLTMUONRootifierComponent& operator = (const AliHLTMUONRootifierComponent& /*object*/);
     100             :         
     101             :         /**
     102             :          * This method creates a AliHLTMUONMansoTrack object from the track structure
     103             :          * and adds it to the dHLT event object.
     104             :          * \param event  The dHLT event object.
     105             :          * \param track  The track structure to convert and add to the event.
     106             :          */
     107             :         AliHLTMUONMansoTrack* AddTrack(AliHLTMUONEvent& event, const AliHLTMUONMansoTrackStruct& track);
     108             :         
     109             :         /**
     110             :          * This method creates a AliHLTMUONTrack object from the given track structure
     111             :          * and adds it to the dHLT event object.
     112             :          * \param event  The dHLT event object.
     113             :          * \param track  The track structure to convert and add to the event.
     114             :          */
     115             :         AliHLTMUONTrack* AddTrack(AliHLTMUONEvent& event, const AliHLTMUONTrackStruct& track);
     116             :         
     117             :         bool fWarnForUnexpecedBlock;  /// Flag indicating if we should log a warning if we got a block of an unexpected type.
     118             : 
     119           6 :         ClassDef(AliHLTMUONRootifierComponent, 0); // Converter component of dHLT raw data.
     120             : };
     121             : 
     122             : #endif // ALIHLTMUONROOTIFIERCOMPONENT_H

Generated by: LCOV version 1.11