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

          Line data    Source code
       1             : //-*- Mode: C++ -*-
       2             : // $Id$
       3             : 
       4             : #ifndef ALIHLTQADATAMAKERREC_H
       5             : #define ALIHLTQADATAMAKERREC_H
       6             : //* This file is property of and copyright by the ALICE HLT Project        * 
       7             : //* ALICE Experiment at CERN, All rights reserved.                         *
       8             : //* See cxx source for full Copyright notice                               *
       9             : 
      10             : /** @file   AliHLTQADataMakerRec.h
      11             :     @author Matthias Richter
      12             :     @date   2010-03-10
      13             :     @brief  Steering class for the HLT offline QA
      14             : */
      15             : 
      16             : #include "AliHLTQADataMakerBase.h"
      17             : #include "TList.h"
      18             : 
      19             : /**
      20             :  * @class AliHLTQADataMakerRec
      21             :  * Steering class for HLT QA for reconstruction.
      22             :  *
      23             :  * HLT QA allows to define multiple HLT detector QA plugins. Each plugin
      24             :  * inherits through AliHLTQADataMakerBase from AliQADataMakerRec. Currently only
      25             :  * the AliQADataMakerRec interface is supported in the HLT QA. It seems that
      26             :  * AliQADataMakerSim is not relevant for HLT QA. However if so and at some
      27             :  * point it is required please inform the author of this class.
      28             :  *
      29             :  * AliHLTQADataMakerRec keeps a list of detector plugins and redirects the
      30             :  * different QA calls to all the plugins. At EndOfDetectorCycle all histograms
      31             :  * are collected from the plugins after EndOfDetectorCycle has been invoked
      32             :  * for every plugin.
      33             :  *
      34             :  * Detector plugins are added via the AliHLTModuleAgent. The optional function
      35             :  * AliHLTModuleAgent::GetQAPlugins() has to return a string of blank separated
      36             :  * class names.
      37             :  * 
      38             :  * HLT QA requires access to both the Esd and HLTEsd objects. Therefore the
      39             :  * Exec function is overloaded in AliHLTQADataMakerRec. A specific hnadling
      40             :  * in AliQAManager::RunOneEvent makes sure that an array of those objects
      41             :  * is passed, the call is then redirected to 
      42             :  * MakeESDs(AliESDEvent*, AliESDEvent*). Please note that the standard function
      43             :  * MakeESDs(AliESDEvent*) is usually not the place for HLT QA.
      44             :  */
      45             : class AliHLTQADataMakerRec: public AliHLTQADataMakerBase {
      46             : 
      47             : public:
      48             : 
      49             :   AliHLTQADataMakerRec();
      50             :   virtual ~AliHLTQADataMakerRec();
      51             : 
      52             : protected:
      53             :   virtual void StartOfDetectorCycle();
      54             :   virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray** list);
      55             :   virtual void MakeRaws(AliRawReader * rawReader);
      56             :   virtual void MakeESDs(AliESDEvent * esd, AliESDEvent* hltesd);
      57             : 
      58             :   /// iterate over available agents and query class names of plugins
      59             :   int LoadAgents();
      60             : 
      61             :   /// load plugins from list of blank separated class names
      62             :   int LoadPlugins(const char* plugins=NULL);
      63             : 
      64             :   enum {
      65             :     kDigitsListInit    = 0x1,
      66             :     kESDsListInit      = 0x2,
      67             :     kRawsListInit      = 0x4,
      68             :     kRecPointsListInit = 0x8
      69             :   };
      70             : 
      71             : private:
      72             :   /** copy constructor prohibited */
      73             :   AliHLTQADataMakerRec(const AliHLTQADataMakerRec&);   
      74             :   /** assignment operator prohibited */
      75             :   AliHLTQADataMakerRec& operator = (const AliHLTQADataMakerRec&);
      76             : 
      77             :   TList fPlugins; //! list of HLT module QA plugins
      78             :   unsigned fFlags; //!
      79             : 
      80          10 :   ClassDef(AliHLTQADataMakerRec,0)  // HLT Quality Assurance Data Maker for reconstruction
      81             : };
      82             : 
      83             : #endif // ALIHLTQADATAMAKERREC_H

Generated by: LCOV version 1.11