//this file looks like plain C, but it's actually -*- c++ -*-
#ifndef __TQAnalysisJob__
#define __TQAnalysisJob__

#include "TNamed.h"

class TQSample;
class TQSampleFolder;
class TQCut;

class TQAnalysisJob : public TNamed {
 friend TQCut; //allow TQCut to use "copyTransientMembersFrom" when cloning AnalysisJobs for variants
protected:
 
  TQCut * fCut; //!
 
  TQSample * fSample; //!
 
  void copyTransientMembersFrom(TQAnalysisJob* other);

public:

  TQAnalysisJob();
  TQAnalysisJob(const TString& name_);
 
  virtual void reset();

  virtual void print(const TString& options = "");
  
  virtual bool initializeSampleFolder(TQSampleFolder* sf);
  virtual bool finalizeSampleFolder (TQSampleFolder* sf);
 
  virtual TQAnalysisJob * getClone();

  virtual TString getDescription();

  void setCut(TQCut * cut_);
  TQCut * getCut();
  int addToCuts(TList* cuts, const TString& cutname = "*");
 
  virtual TObjArray * getBranchNames();
 
  bool initialize(TQSample * sample);
  bool finalize();

  virtual bool initializeSelf() = 0;
  virtual bool finalizeSelf() = 0;
 
  virtual bool execute(double weight);

  virtual bool isPooling() const;
 
  virtual ~TQAnalysisJob();
 
  ClassDefOverride(TQAnalysisJob, 1); // analysis job to be run during the event loop on every event

};

#endif
 TQAnalysisJob.h:1
 TQAnalysisJob.h:2
 TQAnalysisJob.h:3
 TQAnalysisJob.h:4
 TQAnalysisJob.h:5
 TQAnalysisJob.h:6
 TQAnalysisJob.h:7
 TQAnalysisJob.h:8
 TQAnalysisJob.h:9
 TQAnalysisJob.h:10
 TQAnalysisJob.h:11
 TQAnalysisJob.h:12
 TQAnalysisJob.h:13
 TQAnalysisJob.h:14
 TQAnalysisJob.h:15
 TQAnalysisJob.h:16
 TQAnalysisJob.h:17
 TQAnalysisJob.h:18
 TQAnalysisJob.h:19
 TQAnalysisJob.h:20
 TQAnalysisJob.h:21
 TQAnalysisJob.h:22
 TQAnalysisJob.h:23
 TQAnalysisJob.h:24
 TQAnalysisJob.h:25
 TQAnalysisJob.h:26
 TQAnalysisJob.h:27
 TQAnalysisJob.h:28
 TQAnalysisJob.h:29
 TQAnalysisJob.h:30
 TQAnalysisJob.h:31
 TQAnalysisJob.h:32
 TQAnalysisJob.h:33
 TQAnalysisJob.h:34
 TQAnalysisJob.h:35
 TQAnalysisJob.h:36
 TQAnalysisJob.h:37
 TQAnalysisJob.h:38
 TQAnalysisJob.h:39
 TQAnalysisJob.h:40
 TQAnalysisJob.h:41
 TQAnalysisJob.h:42
 TQAnalysisJob.h:43
 TQAnalysisJob.h:44
 TQAnalysisJob.h:45
 TQAnalysisJob.h:46
 TQAnalysisJob.h:47
 TQAnalysisJob.h:48
 TQAnalysisJob.h:49
 TQAnalysisJob.h:50
 TQAnalysisJob.h:51
 TQAnalysisJob.h:52
 TQAnalysisJob.h:53
 TQAnalysisJob.h:54
 TQAnalysisJob.h:55
 TQAnalysisJob.h:56
 TQAnalysisJob.h:57
 TQAnalysisJob.h:58
 TQAnalysisJob.h:59