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

#include "QFramework/TQSample.h"

class TQSampleInitializerBase : public TQTaggable {

protected: 
 
  TQFolder* fPaths = NULL;
  virtual bool getTreeInformation(TQSample* sample, const TString& filename, TString& treeName, double& sumOfWeights, int& nEvents, int& nEntries, TString& message);
  virtual bool initializeSample(TQSample* sample, const TString& fullpath, TString& message);
  virtual bool setSampleNormalization(TQSample* sample,double samplefraction = 1.);

  TQSampleInitializerBase();
  
public:

  static TQFolder* extractCounters(TFile* file,double scale=1);
  static bool extractCountersFromSample(TQSample* sf);
  static bool extractCounters(TFile* file, TQFolder* cutflow, double scale=1);
  
  virtual void reset();
  
  void readDirectory(const TString& path, int maxdepth=999);
  void printDirectory(const TString& opts = "");
  TQFolder* getDirectory();
  bool readInputFilesList(const TString& path = "input.txt", bool verbose = false, bool reset = true);

  virtual ~TQSampleInitializerBase();
 
  ClassDefOverride(TQSampleInitializerBase, 0); // base class for sample initializers

};

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