4 #ifndef ALIHLTSIMULATION_H
5 #define ALIHLTSIMULATION_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 AliHLTSimulation.h
11 @author Matthias Richter
13 @brief Binding class for HLT simulation in AliRoot
15 // see below for class documentation
17 // refer to README to build package
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22 * @defgroup alihlt_simulation HLT simulation in AliRoot
23 * This section describes the the simulation of the HLT in AliRoot.
33 * @class AliHLTSimulation
34 * Base class of HLT data processing simulations.
36 class AliHLTSimulation : public TObject {
38 /** create an instance of the class */
39 static AliHLTSimulation* CreateInstance();
41 /** delete an instance */
42 static int DeleteInstance(AliHLTSimulation* pSim);
44 /** init simulation */
45 int Init(AliRunLoader* pRunLoader, const char* options);
47 /** run simulation with an instance of the run loader */
48 int Run(AliRunLoader* pRunLoader);
51 /** standard constructor */
53 /** copy constructor prohibited */
54 AliHLTSimulation(const AliHLTSimulation&);
55 /** assignment operator prohibited */
56 AliHLTSimulation& operator=(const AliHLTSimulation&);
57 /** standard destructor */
61 TString fOptions; //!transient
63 /* HLT steering object */
64 AliHLTSystem* fpSystem; //!transient
66 /* RAW reader instance for chains which need RAW data as input */
67 AliRawReader* fpRawReader; //!transient
69 ClassDef(AliHLTSimulation, 1)
72 #define ALIHLTSIMULATION_LIBRARY "libHLTsim.so"
73 #define ALIHLTSIMULATION_LIBRARY_VERSION 0
74 #define ALIHLTSIMULATION_CREATE_INSTANCE "AliHLTSimulationCreateInstance"
75 #define ALIHLTSIMULATION_DELETE_INSTANCE "AliHLTSimulationDeleteInstance"
76 #define ALIHLTSIMULATION_INIT "AliHLTSimulationInit"
77 #define ALIHLTSIMULATION_RUN "AliHLTSimulationRun"
78 #define ALIHLTSIMULATION_GET_LIBRARY_VERSION "AliHLTSimulationGetLibraryVersion"
83 typedef AliHLTSimulation* (*AliHLTSimulationCreateInstance_t)();
84 typedef int (*AliHLTSimulationDeleteInstance_t)(AliHLTSimulation* pSim);
85 typedef int (*AliHLTSimulationInit_t)(AliHLTSimulation* pSim, AliRunLoader* pRunLoader, const char* options);
86 typedef int (*AliHLTSimulationRun_t)(AliHLTSimulation* pSim, AliRunLoader* pRunLoader);
87 typedef int (*AliHLTSimulationGetLibraryVersion_t)();
90 * Create an instance of the AliHLTSimulation class
92 AliHLTSimulation* AliHLTSimulationCreateInstance();
94 * Delete an instance of the AliHLTSimulation class
96 int AliHLTSimulationDeleteInstance(AliHLTSimulation* pSim);
98 * Set options for an instance
100 int AliHLTSimulationInit(AliHLTSimulation* pSim, AliRunLoader* pRunLoader, const char* options);
102 * Run simulation for an instance and run loader
104 int AliHLTSimulationRun(AliHLTSimulation* pSim, AliRunLoader* pRunLoader);
106 * Get version no of the library/class interface
108 int AliHLTSimulationGetLibraryVersion();