]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/AliHLTModulePreprocessor.h
- workaround for copying and merging of ESDs: The HLTOUT contains ESDs for every...
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTModulePreprocessor.h
CommitLineData
12ec5482 1//-*- Mode: C++ -*-
2// @(#) $Id: AliHLTModulePreprocessor.h 23318 2008-01-14 12:43:28Z hristov $
3
4#ifndef ALIHLTMODULEPREPROCESSOR_H
5#define ALIHLTMODULEPREPROCESSOR_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/**
11 * @file AliHLTModulePreprocessor.h
12 * @author Matthias Richter
13 * @date 2008-01-22
14 * @brief Base class for HLT module preprocessors
15 */
16
17// see below for class documentation
18// or
19// refer to README to build package
20// or
21// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22
23#include "TObject.h"
24
25class AliHLTPreprocessor;
26class TMap;
27class AliCDBMetaData;
28class AliCDBEntry;
310c7637 29class AliHLTShuttleInterface;
12ec5482 30
31/**
32 * @class AliHLTModulePreprocessor
33 * Implementation of the HLT version for the Shuttle Preprocessor.
34 * This class implements the same interface as the AliPreprocessor and
35 * allows multiple preprocessors for the HLT. All methods are redirected
36 * to the AliHLTPreprocessor, which acts as the HLT preprocessor
37 * to the outside, and a container for all module preprocessors to the
38 * inside.
39 *
40 * @author Matthias Richter
41 */
42class AliHLTModulePreprocessor : public TObject
43{
44public:
45 /** Constructor*/
46 AliHLTModulePreprocessor();
47 /** Destructor */
48 virtual ~AliHLTModulePreprocessor();
49
50 /**
51 * Set the container class which is the gateway to the shuttle.
52 */
310c7637 53 void SetShuttleInterface(AliHLTShuttleInterface* pInterface);
12ec5482 54
55 /**
56 * Initialize the Preprocessor.
57 *
58 * @param run run number
59 * @param startTime start time of data
60 * @param endTime end time of data
61 */
62 virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime) = 0;
63
64 /**
65 * Function to process data. Inside the preparation and storing to OCDB
66 * should be handled.
67 *
68 * @param dcsAliasMap the map containing aliases and corresponding DCS
69 * values and timestamps
70 *
71 * @return 0 on success; error code otherwise
72 */
73 virtual UInt_t Process(TMap* dcsAliasMap) = 0;
74
75 /** Get the run no */
76 Int_t GetRun();
77
78 /** Get the start time */
79 UInt_t GetStartTime();
80
81 /** Get the end time */
82 UInt_t GetEndTime();
83
84protected:
85 // the AliPreprocessor interface, all functions redirected via the
310c7637 86 // AliHLTShuttleInterface to the AliHLTPreprocessor
12ec5482 87 Bool_t Store(const char* pathLevel2, const char* pathLevel3, TObject* object,
88 AliCDBMetaData* metaData, Int_t validityStart = 0, Bool_t validityInfinite = kFALSE);
89 Bool_t StoreReferenceData(const char* pathLevel2, const char* pathLevel3, TObject* object,
90 AliCDBMetaData* metaData);
91 Bool_t StoreReferenceFile(const char* localFile, const char* gridFileName);
92
93 Bool_t StoreRunMetadataFile(const char* localFile, const char* gridFileName);
94
95 const char* GetFile(Int_t system, const char* id, const char* source);
96
97 TList* GetFileSources(Int_t system, const char* id = 0);
98
99 TList* GetFileIDs(Int_t system, const char* source);
100
101 const char* GetRunParameter(const char* param);
102
103 AliCDBEntry* GetFromOCDB(const char* pathLevel2, const char* pathLevel3);
104
105 const char* GetRunType();
106
107 void Log(const char* message);
108
109private:
110 /** copy constructor prohibited */
111 AliHLTModulePreprocessor(const AliHLTModulePreprocessor& preproc);
112 /** assignment operator prohibited */
113 AliHLTModulePreprocessor& operator=(const AliHLTModulePreprocessor& rhs);
114
310c7637 115 /** the interface class which is the gateway to the shuttle */
116 AliHLTShuttleInterface* fpInterface; //! transient
12ec5482 117
118 ClassDef(AliHLTModulePreprocessor, 0);
119};
12ec5482 120#endif