]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/QA/AliHLTQADataMakerRec.h
AliHLTJET module
[u/mrichter/AliRoot.git] / HLT / QA / AliHLTQADataMakerRec.h
CommitLineData
72eec123 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 */
45class AliHLTQADataMakerRec: public AliHLTQADataMakerBase {
46
47public:
48
49 AliHLTQADataMakerRec();
50 virtual ~AliHLTQADataMakerRec();
51
52protected:
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
71private:
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 ClassDef(AliHLTQADataMakerRec,0) // HLT Quality Assurance Data Maker for reconstruction
81};
82
83#endif // ALIHLTQADATAMAKERREC_H