8 #ifndef __KVDATAANALYSER_H
9 #define __KVDATAANALYSER_H
14 #include "KVBatchSystem.h"
16 #include "KVNumberList.h"
19 #include "KVUnownedList.h"
103 UserClass fUserClass;
106 KVString fUserClassAlternativeBaseClass;
110 std::unique_ptr<TEnv> fBatchEnv;
115 static Bool_t fCleanAbort;
116 Bool_t fUseBaseClassSubmitTask;
122 void ScanWorkingDirectory(
TList**);
123 void CopyAnalysisResultsToLaunchDirectory();
125 virtual Bool_t CheckIfUserClassIsValid(
const KVString& alternative_base_class =
"");
126 TObject* GetInstanceOfUserClass(
const KVString& alternative_base_class =
"");
128 const Char_t* GetACliCMode();
130 void OpenBatchInfoFile(
const TString& filename)
136 if (!fBatchEnv || filename != fBatchEnv->GetRcName()) {
137 fBatchEnv.reset(
new TEnv(filename));
140 TEnv* GetBatchInfoFile()
const
142 return fBatchEnv.get();
144 virtual Bool_t PreSubmitCheck()
148 virtual void PostRunReset();
149 virtual Bool_t NeedToChooseWhatToDo()
const
153 virtual Bool_t NeedToChooseWhatToAnalyse()
const
158 virtual void ChooseWhatToAnalyse()
161 virtual void ChooseWhatToDo()
164 virtual Bool_t CheckWhatToAnalyseAndHow();
166 virtual void set_up_analyser_for_task(
KVDataAnalyser* the_analyser);
202 return fUserClass.name;
210 return fUserClassIsOK;
236 fBatchName = batchname;
240 return fBatchName.
Data();
245 fChoseRunMode =
kTRUE;
246 if (bs) fBatchSystem->
cd();
266 fStatusUpdateInterval = t;
270 return fStatusUpdateInterval;
302 Info(
"SetNbEventToRead",
"called with %lld", nb);
308 return nbEventToRead;
321 virtual void Reset();
358 fUserClassOptions = o;
362 return fUserClassOptions;
403 fUseBaseClassSubmitTask =
kTRUE;
#define ClassDef(name, id)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Relativistic binary kinematics calculator.
Base class for interface to a batch job management system.
void cd()
Make this the default batch system.
A single raw data file associated with an experimental run ,,.
Description of an experimental run in database ,,.
Database class used to store information on different colliding systems studied during an experiment....
Manager class which sets up and runs data analysis tasks.
virtual void SetTriggerConditionsForRun(int)
virtual void SetAnalysedTree(TTree *)
virtual void postEndRun()
virtual TTree * GetAnalysedTree() const
Double_t GetStatusUpdateInterval() const
virtual KVDBRun * GetAnalysedRun() const
const UserClass & GetUserClass() const
void UseBaseClassSubmitTask()
void DoStatusUpdate(Long64_t nevents) const
Print infos on events treated, disk usage, memory usage.
virtual void SetFileList(const KVUnownedList &)
virtual TString ExpandAutoBatchName(const Char_t *format) const
void SetParent(KVDataAnalyser *da)
const KVString & GetUserLibraries() const
virtual void Run()
Check all task variables, then run analyser.
virtual void AddJobDescriptionList(TList *)
virtual void WriteBatchEnvFile(const TString &, Bool_t sav=kTRUE)
void SetBatchSystem(KVBatchSystem *bs)
void ChooseNbEventToRead()
Ask user to set number of events to read.
virtual void preInitAnalysis()
void SetUserClassOptions(const Char_t *o="")
Bool_t RunningInLaunchDirectory()
virtual const KVBatchSystem * GetBatchSystem()
virtual void postAnalysis()
void SetBatchMode(Bool_t on=kTRUE)
const KVString & GetDataType() const
void SetUserLibraries(const Char_t *libs=0)
static void SetAbortProcessingLoop(Bool_t now=kTRUE)
KVDataAnalyser * GetParent() const
void SetBatchName(const Char_t *batchname)
TString GetPathToFileInLaunchDirectory(const TString &) const
KVString GetUserClassName()
void WriteBatchInfo(TTree *)
virtual const KV2Body * GetKinematics() const
virtual void RunMenus()
Run data analyser in menu-driven mode.
virtual Bool_t CheckTaskVariables()
void SetSubmit(Bool_t yes=kTRUE)
Bool_t DoUserClassFilesExist()
const Char_t * GetBatchName()
const Char_t * GetLaunchDirectory() const
virtual void SetAuxFileList(const KVUnownedList &)
virtual TString GetAnalyserClassNameForBatchJob()
void SetAnalysisTask(KVDataAnalysisTask *at)
void SetProofMode(EProofMode e)
const KVString & GetUserIncludes() const
virtual const Char_t * GetRecognisedAutoBatchNameKeywords() const
virtual Bool_t CheckStatusUpdateInterval(Long64_t nevents) const
void SetQuit(Bool_t yes=kTRUE)
virtual void SubmitTask()
void SetUserClass(const UserClass &kvs, Bool_t check=kTRUE)
const Char_t * GetBatchStatusFileName() const
Returns full path to file used to store status of running batch jobs.
virtual void preAnalysis()
virtual Long64_t GetTotalEntriesToRead() const
KVDataAnalyser()
Default constructor.
virtual Int_t GetNumberOfFilesToAnalyse() const
const KVString & GetUserClassOptions() const
static KVDataAnalyser * GetAnalyser(const Char_t *plugin)
virtual KVDBRunFile * GetAnalysedRunFile() const
EProofMode GetProofMode() const
static Bool_t IsRunningBatchAnalysis()
void SetDataType(const Char_t *name)
virtual KVString GetRootDirectoryOfDataToAnalyse() const
virtual ~KVDataAnalyser()
Default destructor.
virtual void postInitRun()
static void RunAnalyser(const Char_t *plugin="")
void ChooseUserClass()
Choose the user's analysis class.
static Bool_t AbortProcessingLoop()
Long64_t GetNbEventToRead(void) const
virtual void postEndAnalysis()
virtual void preEndAnalysis()
void SetMenus(Bool_t on=kTRUE)
virtual Bool_t ReadBatchEnvFile(const TString &)
void DeleteBatchStatusFile() const
Delete batch status file (and backup - '.bak') for batch job.
void SetStatusUpdateInterval(double t)
virtual void preInitRun()
virtual void RegisterUserClass(TObject *)
void SetUserIncludes(const Char_t *incDirs=0)
Bool_t IsUserClassValid() const
KVDataAnalysisTask * GetAnalysisTask() const
virtual void postInitAnalysis()
virtual KVDBSystem * GetAnalysedSystem() const
void UpdateBatchStatusFile(Int_t totev, Int_t evread, TString disk) const
Update infos in batch status file.
void SetNbEventToRead(Long64_t nb=0)
Define and manage data analysis tasks.
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Extended TList class which does not own its objects by default.
void AbstractMethod(const char *method) const
virtual void Info(const char *method, const char *msgfmt,...) const
const char * Data() const
Bool_t with_files() const
KVString full_path_dec(const KVString &other_dir="") const
KVString get_full_path(const KVString &, const KVString &="") const
KVString full_path_imp(const KVString &other_dir="") const