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 *
10 /** @file AliHLTQADataMakerRec.h
11 @author Matthias Richter
13 @brief Steering class for the HLT offline QA
16 #include "AliHLTQADataMakerBase.h"
20 * @class AliHLTQADataMakerRec
21 * Steering class for HLT QA for reconstruction.
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.
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
34 * Detector plugins are added via the AliHLTModuleAgent. The optional function
35 * AliHLTModuleAgent::GetQAPlugins() has to return a string of blank separated
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.
45 class AliHLTQADataMakerRec: public AliHLTQADataMakerBase {
49 AliHLTQADataMakerRec();
50 virtual ~AliHLTQADataMakerRec();
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);
58 /// iterate over available agents and query class names of plugins
61 /// load plugins from list of blank separated class names
62 int LoadPlugins(const char* plugins=NULL);
65 kDigitsListInit = 0x1,
68 kRecPointsListInit = 0x8
72 /** copy constructor prohibited */
73 AliHLTQADataMakerRec(const AliHLTQADataMakerRec&);
74 /** assignment operator prohibited */
75 AliHLTQADataMakerRec& operator = (const AliHLTQADataMakerRec&);
77 TList fPlugins; //! list of HLT module QA plugins
80 ClassDef(AliHLTQADataMakerRec,0) // HLT Quality Assurance Data Maker for reconstruction
83 #endif // ALIHLTQADATAMAKERREC_H