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.
28 #include "AliHLTReconstructorBase.h"
34 * @class AliHLTSimulation
35 * Base class of HLT data processing simulations.
37 class AliHLTSimulation : public TObject, public AliHLTReconstructorBase {
39 /** create an instance of the class */
40 static AliHLTSimulation* CreateInstance();
42 /** delete an instance */
43 static int DeleteInstance(AliHLTSimulation* pSim);
45 /** init simulation */
46 int Init(AliRunLoader* pRunLoader, const char* options);
48 /** run simulation with an instance of the run loader */
49 int Run(AliRunLoader* pRunLoader);
52 /** standard constructor */
54 /** copy constructor prohibited */
55 AliHLTSimulation(const AliHLTSimulation&);
56 /** assignment operator prohibited */
57 AliHLTSimulation& operator=(const AliHLTSimulation&);
58 /** standard destructor */
62 TString fOptions; //!transient
64 /* RAW reader instance for chains which need RAW data as input */
65 AliRawReader* fpRawReader; //!transient
67 ClassDef(AliHLTSimulation, 2)
70 #define ALIHLTSIMULATION_LIBRARY "libHLTsim.so"
71 #define ALIHLTSIMULATION_LIBRARY_VERSION 0
72 #define ALIHLTSIMULATION_CREATE_INSTANCE "AliHLTSimulationCreateInstance"
73 #define ALIHLTSIMULATION_DELETE_INSTANCE "AliHLTSimulationDeleteInstance"
74 #define ALIHLTSIMULATION_INIT "AliHLTSimulationInit"
75 #define ALIHLTSIMULATION_RUN "AliHLTSimulationRun"
76 #define ALIHLTSIMULATION_GET_LIBRARY_VERSION "AliHLTSimulationGetLibraryVersion"
81 typedef AliHLTSimulation* (*AliHLTSimulationCreateInstance_t)();
82 typedef int (*AliHLTSimulationDeleteInstance_t)(AliHLTSimulation* pSim);
83 typedef int (*AliHLTSimulationInit_t)(AliHLTSimulation* pSim, AliRunLoader* pRunLoader, const char* options);
84 typedef int (*AliHLTSimulationRun_t)(AliHLTSimulation* pSim, AliRunLoader* pRunLoader);
85 typedef int (*AliHLTSimulationGetLibraryVersion_t)();
88 * Create an instance of the AliHLTSimulation class
90 AliHLTSimulation* AliHLTSimulationCreateInstance();
92 * Delete an instance of the AliHLTSimulation class
94 int AliHLTSimulationDeleteInstance(AliHLTSimulation* pSim);
96 * Set options for an instance
98 int AliHLTSimulationInit(AliHLTSimulation* pSim, AliRunLoader* pRunLoader, const char* options);
100 * Run simulation for an instance and run loader
102 int AliHLTSimulationRun(AliHLTSimulation* pSim, AliRunLoader* pRunLoader);
104 * Get version no of the library/class interface
106 int AliHLTSimulationGetLibraryVersion();