#ifndef __TQEventlistAnalysisJob__
#define __TQEventlistAnalysisJob__
#include "QFramework/TQAnalysisJob.h"
#include "QFramework/TQObservable.h"
#include "QFramework/TQTable.h"
#include "TObject.h"
#include "TList.h"
#include "QFramework/TQMessageStream.h"
#include <vector>
class TQCounter;
class TQSample;
class TQEventlistAnalysisJob : public TQAnalysisJob {
protected:
std::vector<TString> fTitles;
std::vector<TString> fExpressions;
std::vector<TQObservable*> fObservables;
int nFormulas;
TQTable * fEventlist;
Long64_t fEventIndex;
bool showWeightColumn;
static TQMessageStream f_ErrMsg;
int f_Verbose;
void setErrorMessage(TString message);
public:
TQEventlistAnalysisJob();
TQEventlistAnalysisJob(const TString& name_);
virtual void reset() override;
void addColumn(const TString& expression, const TString& label = "");
void setWeightColumn(bool weight = true);
static TString getErrorMessage();
static void clearMessages();
virtual TObjArray * getBranchNames() override;
virtual TQEventlistAnalysisJob* getClone() override;
virtual bool initializeSelf() override;
virtual bool finalizeSelf() override;
int nColumns() const;
static int importJobsFromTextFiles(const TString& files, TQCut* basecut, const TString& channelFilter="*", bool verbose=false);
static int importJobsFromTextFiles(const std::vector<TString>& filenames, TQCut* basecut, const TString& channelFilter="*", bool verbose=false);
static int importJobsFromTextFiles(const TString& files, TQCut* basecut, TQTaggable* aliases, const TString& channelFilter="*", bool verbose=false);
static int importJobsFromTextFiles(const std::vector<TString>& filenames, TQCut* basecut, TQTaggable* aliases, const TString& channelFilter="*", bool verbose=false);
virtual bool execute(double weight) override;
virtual ~TQEventlistAnalysisJob();
ClassDefOverride(TQEventlistAnalysisJob, 0);
};
#endif
TQEventlistAnalysisJob.h:1 TQEventlistAnalysisJob.h:2 TQEventlistAnalysisJob.h:3 TQEventlistAnalysisJob.h:4 TQEventlistAnalysisJob.h:5 TQEventlistAnalysisJob.h:6 TQEventlistAnalysisJob.h:7 TQEventlistAnalysisJob.h:8 TQEventlistAnalysisJob.h:9 TQEventlistAnalysisJob.h:10 TQEventlistAnalysisJob.h:11 TQEventlistAnalysisJob.h:12 TQEventlistAnalysisJob.h:13 TQEventlistAnalysisJob.h:14 TQEventlistAnalysisJob.h:15 TQEventlistAnalysisJob.h:16 TQEventlistAnalysisJob.h:17 TQEventlistAnalysisJob.h:18 TQEventlistAnalysisJob.h:19 TQEventlistAnalysisJob.h:20 TQEventlistAnalysisJob.h:21 TQEventlistAnalysisJob.h:22 TQEventlistAnalysisJob.h:23 TQEventlistAnalysisJob.h:24 TQEventlistAnalysisJob.h:25 TQEventlistAnalysisJob.h:26 TQEventlistAnalysisJob.h:27 TQEventlistAnalysisJob.h:28 TQEventlistAnalysisJob.h:29 TQEventlistAnalysisJob.h:30 TQEventlistAnalysisJob.h:31 TQEventlistAnalysisJob.h:32 TQEventlistAnalysisJob.h:33 TQEventlistAnalysisJob.h:34 TQEventlistAnalysisJob.h:35 TQEventlistAnalysisJob.h:36 TQEventlistAnalysisJob.h:37 TQEventlistAnalysisJob.h:38 TQEventlistAnalysisJob.h:39 TQEventlistAnalysisJob.h:40 TQEventlistAnalysisJob.h:41 TQEventlistAnalysisJob.h:42 TQEventlistAnalysisJob.h:43 TQEventlistAnalysisJob.h:44 TQEventlistAnalysisJob.h:45 TQEventlistAnalysisJob.h:46 TQEventlistAnalysisJob.h:47 TQEventlistAnalysisJob.h:48 TQEventlistAnalysisJob.h:49 TQEventlistAnalysisJob.h:50 TQEventlistAnalysisJob.h:51 TQEventlistAnalysisJob.h:52 TQEventlistAnalysisJob.h:53 TQEventlistAnalysisJob.h:54 TQEventlistAnalysisJob.h:55 TQEventlistAnalysisJob.h:56 TQEventlistAnalysisJob.h:57 TQEventlistAnalysisJob.h:58 TQEventlistAnalysisJob.h:59 TQEventlistAnalysisJob.h:60 TQEventlistAnalysisJob.h:61 TQEventlistAnalysisJob.h:62 TQEventlistAnalysisJob.h:63 TQEventlistAnalysisJob.h:64 TQEventlistAnalysisJob.h:65 TQEventlistAnalysisJob.h:66 TQEventlistAnalysisJob.h:67 TQEventlistAnalysisJob.h:68 TQEventlistAnalysisJob.h:69