]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/shuttle/AliHLTPreprocessor.h
initializing variables that were declare without a value
[u/mrichter/AliRoot.git] / HLT / shuttle / AliHLTPreprocessor.h
CommitLineData
12ec5482 1//-*- Mode: C++ -*-
8a6d545f 2// $Id: AliHLTPreprocessor.h 23318 2008-01-14 12:43:28Z hristov $
12ec5482 3
4#ifndef ALIHLTPREPROCESSOR_H
5#define ALIHLTPREPROCESSOR_H
23bd5d2a 6//* This file is property of and copyright by the *
12ec5482 7//* ALICE Experiment at CERN, All rights reserved. *
8//* See cxx source for full Copyright notice *
9
23bd5d2a 10/// @file AliHLTPreprocessor.h
11/// @author Matthias Richter
12/// @date 2008-01-22
13/// @brief Container for HLT module preprocessors, acts to the outside as
14/// HLT preprocessor used by the Offline Shuttle
15///
12ec5482 16
17#include "TList.h"
18#include "AliPreprocessor.h"
310c7637 19#include "AliHLTShuttleInterface.h"
12ec5482 20
21/**
22 * @class AliHLTPreprocessor
23 * Implementation of the HLT version for the Shuttle Preprocessor.
24 * Since HLT requires a more modular concept of the pre-processors, this
25 * class acts as HLT pre-processor to the outside and container class for
26 * the specific HLT module pre-processors to the inside.
27 *
28 * The base class for HLT module preprocessors is provided by the
29 * AliHLTModulePreprocessor class, which implements the same interface as
30 * the AliPreprocessor.
31 *
32 * The main purpose of the container class is to loop over all module
33 * preprocessors and to make the AliPreprocessor interface methods
34 * publicly available.
35 */
310c7637 36class AliHLTPreprocessor : public AliPreprocessor , public AliHLTShuttleInterface
12ec5482 37{
38 public:
39 /**
40 * Constructor for AliHLTPreprocessor
41 *
42 * @param shuttle pointer to the hosting shuttle
43 */
44 AliHLTPreprocessor(AliShuttleInterface* shuttle);
45 /** Destructor */
46 virtual ~AliHLTPreprocessor();
47
48 /**
49 * Initialize the Preprocessor.
50 *
51 * @param run run number
52 * @param startTime start time of data
53 * @param endTime end time of data
54 */
55 virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);
56
57 /**
58 * Function to process data. Inside the preparation and storing to OCDB
59 * should be handled.
60 *
61 * @param dcsAliasMap the map containing aliases and corresponding DCS
62 * values and timestamps
63 *
64 * @return 0 on success; a value greater than 0 refers to an error
65 */
66 virtual UInt_t Process(TMap* dcsAliasMap);
67
68 /**
69 * Indicates if DCS data can be processed.
70 *
71 * @return true if DCS data can be processed, else false.
72 */
23bd5d2a 73 virtual Bool_t ProcessDCS() {return kFALSE;}
12ec5482 74
75 /** Define for name of the HLT Preproc */
76 static const char* fgkHLTPreproc; // see above
77
78 /** Get the run no which has been previously initialized */
310c7637 79 Int_t PreprocessorGetRun() {return fRun;}
12ec5482 80
81 /** Get the start time no which has been previously initialized */
310c7637 82 UInt_t PreprocessorGetStartTime() {return fStartTime;}
12ec5482 83
84 /** Get the end time no which has been previously initialized */
310c7637 85 UInt_t PreprocessorGetEndTime() {return fEndTime;}
12ec5482 86
12ec5482 87 // AliPreprocessor methods made publicly available
8a6d545f 88 // the subsequent functions map the AliPreprocessor interface functions in order
89 // to be used by the module proprocessors.
310c7637 90 Bool_t PreprocessorStore(const char* pathLevel2, const char* pathLevel3, TObject* object,
12ec5482 91 AliCDBMetaData* metaData, Int_t validityStart = 0, Bool_t validityInfinite = kFALSE) {
92 return AliPreprocessor::Store(pathLevel2, pathLevel3, object, metaData, validityStart, validityInfinite);
93 }
94
310c7637 95 Bool_t PreprocessorStoreReferenceData(const char* pathLevel2, const char* pathLevel3, TObject* object,
12ec5482 96 AliCDBMetaData* metaData) {
97 return AliPreprocessor::StoreReferenceData(pathLevel2, pathLevel3, object, metaData);
98 }
99
310c7637 100 Bool_t PreprocessorStoreReferenceFile(const char* localFile, const char* gridFileName) {
12ec5482 101 return AliPreprocessor::StoreReferenceFile(localFile, gridFileName);
102 }
103
310c7637 104 Bool_t PreprocessorStoreRunMetadataFile(const char* localFile, const char* gridFileName) {
12ec5482 105 return AliPreprocessor::StoreRunMetadataFile(localFile, gridFileName);
106 }
107
310c7637 108 const char* PreprocessorGetFile(Int_t system, const char* id, const char* source) {
12ec5482 109 return AliPreprocessor::GetFile(system, id, source);
110 }
111
310c7637 112 TList* PreprocessorGetFileSources(Int_t system, const char* id = 0) {
12ec5482 113 return AliPreprocessor::GetFileSources(system, id);
114 }
115
310c7637 116 TList* PreprocessorGetFileIDs(Int_t system, const char* source) {
12ec5482 117 return AliPreprocessor::GetFileIDs(system, source);
118 }
119
310c7637 120 const char* PreprocessorGetRunParameter(const char* param) {
12ec5482 121 return AliPreprocessor::GetRunParameter(param);
122 }
123
310c7637 124 AliCDBEntry* PreprocessorGetFromOCDB(const char* pathLevel2, const char* pathLevel3) {
12ec5482 125 return AliPreprocessor::GetFromOCDB(pathLevel2, pathLevel3);
126 }
127
310c7637 128 const char* PreprocessorGetRunType() {
12ec5482 129 return AliPreprocessor::GetRunType();
130 }
131
310c7637 132 void PreprocessorLog(const char* message) {
12ec5482 133 AliPreprocessor::Log(message);
134 }
135
136 protected:
137
138 private:
139 /** copy constructor prohibited */
140 AliHLTPreprocessor(const AliHLTPreprocessor& preproc);
141 /** assignment operator prohibited */
142 AliHLTPreprocessor& operator=(const AliHLTPreprocessor& rhs);
143
144 /** list of HLT module processors */
145 TList fProcessors; //!transient
146
d83b59c6 147 /** determine which which detectors were active */
148 Int_t fActiveDetectors; // bit array of active detectors
149
12ec5482 150 /** array of default libraries */
151 static const char* fgkHLTDefaultShuttleLibs[]; //!transient
152
d83b59c6 153 ClassDef(AliHLTPreprocessor, 1);
12ec5482 154};
155#endif
156
157