Project
Loading...
Searching...
No Matches
FairRun.h
Go to the documentation of this file.
1/********************************************************************************
2 * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3 * *
4 * This software is distributed under the terms of the *
5 * GNU Lesser General Public Licence (LGPL) version 3, *
6 * copied verbatim in the file "LICENSE" *
7 ********************************************************************************/
8// Modified for ALICE O2 in 2026: parts not used by O2 were removed (see README.md in this directory).
9#ifndef FAIRRUN_H
10#define FAIRRUN_H
11
13#include "FairRootManager.h"
14
15#include <Rtypes.h> // for Int_t, Bool_t, etc
16#include <TMCtls.h> // for multi-threading
17#include <TNamed.h> // for TNamed
18#include <TString.h>
19#include <map>
20#include <string>
21
22class FairEventHeader;
23class FairFileHeader;
24class FairSink;
25class FairTask;
26class TFile;
27class FairField;
28class TGeoHMatrix;
29
37class FairRun : public TNamed
38{
39 friend class FairMCApplication;
40
41 public:
45 FairRun(Bool_t isMaster = kTRUE);
49 virtual ~FairRun();
53 static FairRun* Instance();
57 virtual void AddTask(FairTask* t);
58 virtual void StoreTaskNames(const FairTask* t);
59 virtual void SetTask(FairTask* t);
63 virtual void Init() = 0;
64 /*
65 * Get the magnetic field *
66 */
67 virtual FairField* GetField() = 0;
71 virtual void Run(Int_t NStart = 0, Int_t NStop = 0) = 0;
76 void SetEventHeader(FairEventHeader* EvHeader) { fEvtHeader = EvHeader; }
83 void SetSink(FairSink* tempSink)
84 {
85 fSink = tempSink;
86 fRootManager->SetSink(tempSink);
88 }
92 FairSink* GetSink() { return fSink; }
96 Int_t GetRunId() { return (static_cast<Int_t>(fRunId)); }
97
101 void SetRunId(UInt_t runId) { fRunId = runId; }
102
108 Bool_t IsAna() { return fAna; }
113 FairTask* GetTask(const char* taskName);
121 Int_t GetNTasks() { return fNTasks; }
122
124 void CreateGeometryFile(const char* geofile);
125
126 //** Set if RunInfo file should be written */
127 void SetWriteRunInfoFile(Bool_t write);
128
129 //** Set if RunInfo should be generated */
130 void SetGenerateRunInfo(Bool_t write) { fGenerateRunInfo = write; }
131
132 //** Get info if RunInfo file is written */
133 Bool_t GetWriteRunInfoFile();
134
135 //** Get info if RunInfo file is written */
137
138 //** Switches the use of FairLinks */
139 void SetUseFairLinks(Bool_t val);
140
141 //** Get info if run on master */
142 Bool_t GetIsMaster() const { return fIsMaster; }
143
144 //** Mark/Unmark event to be filled into output. Default is TRUE. */
145 void MarkFill(Bool_t flag) { fMarkFill = flag; }
146
147 //** Get option string */
148 TString GetOptions() { return fOptions; };
149
150 //** Set option string */
151 void SetOptions(const TString& s) { fOptions = s; };
152
153 // vvvvvvvvvv depracted functions, replaced by FairSink vvvvvvvvvv
157 virtual void SetOutputFile(const char* fname);
161 virtual void SetOutputFile(TFile* f);
165 void SetOutputFileName(const TString& name);
166 TFile* GetOutputFile();
167 // ^^^^^^^^^^ depracted functions, replaced by FairSink ^^^^^^^^^^
168
173 void SetUserOutputFileName(const TString& name);
174 TString GetUserOutputFileName() const;
175
176 void AddAlignmentMatrices(const std::map<std::string, TGeoHMatrix>& alignmentMatrices, bool invertMatrices = false);
177
178 private:
179 FairRun(const FairRun& M);
180 FairRun& operator=(const FairRun&) { return *this; }
182 Int_t fNTasks;
183
184 protected:
186 static TMCThreadLocal FairRun* fRunInstance;
197 TString fOptions;
199 UInt_t fRunId;
201 Bool_t fAna;
209 Bool_t fIsMaster;
210
211 Bool_t fMarkFill;
212
214
215 void AlignGeometry() const;
216
218};
219#endif // FAIRRUN_H
void SetSink(FairSink *tempSink)
TString fUserOutputFileName
Definition FairRun.h:195
void SetRunId(UInt_t runId)
Definition FairRun.h:101
Int_t GetRunId()
Definition FairRun.h:96
ClassDef(FairRun, 5)
void AddAlignmentMatrices(const std::map< std::string, TGeoHMatrix > &alignmentMatrices, bool invertMatrices=false)
Definition FairRun.cxx:181
void MarkFill(Bool_t flag)
Definition FairRun.h:145
void CreateGeometryFile(const char *geofile)
Definition FairRun.cxx:101
virtual void StoreTaskNames(const FairTask *t)
Definition FairRun.cxx:74
void SetWriteRunInfoFile(Bool_t write)
Definition FairRun.cxx:120
TString GetUserOutputFileName() const
Definition FairRun.cxx:177
virtual void SetTask(FairTask *t)
Definition FairRun.cxx:89
static FairRun * Instance()
Definition FairRun.cxx:31
virtual void Init()=0
void SetOptions(const TString &s)
Definition FairRun.h:151
TString GetOptions()
Definition FairRun.h:148
static TMCThreadLocal FairRun * fRunInstance
Definition FairRun.h:186
TFile * GetOutputFile()
Definition FairRun.cxx:166
FairEventHeader * GetEventHeader()
Definition FairRun.cxx:110
Bool_t IsAna()
Definition FairRun.h:108
virtual void Run(Int_t NStart=0, Int_t NStop=0)=0
FairRootManager * fRootManager
Definition FairRun.h:191
void SetEventHeader(FairEventHeader *EvHeader)
Definition FairRun.h:76
Bool_t fMarkFill
Definition FairRun.h:211
FairTask * GetMainTask()
Definition FairRun.h:117
FairSink * GetSink()
Definition FairRun.h:92
Bool_t GetWriteRunInfoFile()
Definition FairRun.cxx:129
FairTask * GetTask(const char *taskName)
Definition FairRun.cxx:103
virtual void SetOutputFile(const char *fname)
Definition FairRun.cxx:138
Bool_t fAna
Definition FairRun.h:201
Bool_t GetIsMaster() const
Definition FairRun.h:142
void SetUseFairLinks(Bool_t val)
Definition FairRun.cxx:118
Int_t GetNTasks()
Definition FairRun.h:121
FairTask * fTask
Definition FairRun.h:189
void SetUserOutputFileName(const TString &name)
Definition FairRun.cxx:175
FairSink * fSink
Definition FairRun.h:193
Bool_t fIsMaster
Definition FairRun.h:209
Bool_t IsRunInfoGenerated()
Definition FairRun.h:136
void SetSink(FairSink *tempSink)
Definition FairRun.h:83
TString fOptions
Definition FairRun.h:197
virtual ~FairRun()
Definition FairRun.cxx:59
FairEventHeader * fEvtHeader
Definition FairRun.h:203
virtual FairField * GetField()=0
void SetGenerateRunInfo(Bool_t write)
Definition FairRun.h:130
UInt_t fRunId
Definition FairRun.h:199
virtual void AddTask(FairTask *t)
Definition FairRun.cxx:68
void SetOutputFileName(const TString &name)
Definition FairRun.cxx:157
FairFileHeader * fFileHeader
Definition FairRun.h:205
Bool_t fGenerateRunInfo
Definition FairRun.h:207
FairAlignmentHandler fAlignmentHandler
Definition FairRun.h:213
void AlignGeometry() const
Definition FairRun.cxx:179
virtual TString GetFileName()
Definition FairSink.h:50
GLuint const GLchar * name
Definition glcorearb.h:781
GLdouble f
Definition glcorearb.h:310
GLuint GLfloat * val
Definition glcorearb.h:1582