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

#include "TObject.h"
#include "TString.h"
#include "QFramework/TQCompiledCut.h"
#include "TList.h"

class TQCutFactory : public TObject {

protected:

  TList * fCuts;

  TList * fTreeObservableTemplates;

public:

  static TString evaluate(const TString& input, const TString& parameter = "");
  static TString evaluateSubExpression(const TString& input, const TString& parameter = "");



  TQCutFactory();

  void setTreeObservableTemplates(TList * treeObservableTemplates);

  void addCut(TString definition);

  TString findCut(TString name);
  TString removeCut(TString name);

  void print();

  bool isEmpty();

  void orderCutDefs();
  TQCompiledCut * compileCutsWithoutEvaluation();
  TQCompiledCut * compileCuts(TString parameter = "");
 
  virtual ~TQCutFactory();
 
  ClassDefOverride(TQCutFactory, 1); // deprecated

};

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