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

#include "QFramework/TQNFBase.h"
#include <iostream>
#ifdef __CINT__ 
#define override
#endif
class TQNFUncertaintyScaler : public TQNFBase {
public:
  
protected:
  int status;

  TList* configs;

  bool initializeSelf() override;
  bool finalizeSelf() override;
  
  int deployNF(const TString& name, const std::vector<TString>& startAtCutNames, const std::vector<TString>& stopAtCutNames, TQFolder* config, bool applyToStopCut=true);
  int deployNF(const TString& name, const TString& cutName, TQFolder* config, bool applyToStopCut=true);

public:
  
  int deployResult(const std::vector<TString>& startCutNames, const std::vector<TString>& stopAtCut, int overwrite, bool applyToStopCut) override;

  bool success() override;
  int execute(int itrNumber = -1) override;
  void clear();
  
  TString getStatusMessage() override; 
  int getStatus() override; 

  void printStatus();

  bool readConfiguration(TQFolder* f) override;

  TQNFUncertaintyScaler(TQSampleFolder* f = NULL);
  TQNFUncertaintyScaler(TQSampleDataReader* rd);
  virtual ~TQNFUncertaintyScaler();

  ClassDefOverride(TQNFUncertaintyScaler,1) // helper class allowing to scale normalization factor uncertainties following the TQNFBase interface

};

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