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

#include "QFramework/TQObservable.h"

class TQConstObservable : public TQObservable {

protected:
  TString fExpression = "";
  double fValue = 0;

  virtual bool initializeSelf() override;
  virtual bool finalizeSelf() override;

  virtual Long64_t getCurrentEntry() const override;

public:

  TQConstObservable();
  TQConstObservable(const TString& expression);

  virtual double getValue() const override;
 
  virtual TObjArray* getBranchNames() const override;
 
  virtual bool hasExpression() const override;

  virtual const TString& getExpression() const override;
  virtual void setExpression(const TString& expr) override;

  virtual ~TQConstObservable();

  DECLARE_OBSERVABLE_FACTORY(TQConstObservable,TString expression)
  
  ClassDefOverride(TQConstObservable, 0); // observable for constant values
 
};

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