//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: AtlEvtWriterBase.h,v 1.4 2016/11/29 18:06:32 kind Exp $
// Copyright: 2013 (C) Oliver Maria Kind
//
#ifndef ATLAS_AtlEvtWriterBase
#define ATLAS_AtlEvtWriterBase
#ifndef ROOT_TObject
#include <TObject.h>
#endif
#ifndef ATLAS_AtlEvent
#include <AtlEvent.h>
#endif
#ifndef ROOT_TTree
#include <TTree.h>
#endif

class AtlEvtWriterBase : public TObject {

protected:
    TTree    *fTree;  // Output tree
    AtlEvent *fEvent; // Event object
    
public:
    AtlEvtWriterBase();
    virtual ~AtlEvtWriterBase();
    virtual void BookTree(TTree *tree, AtlEvent *evt) = 0;
    virtual void WriteEvent() = 0;
    virtual TTree* CreateTree(const char* name, const char* title,
			      TTree *InputTree);
    virtual const char* GetNameOfType() { return ""; }
    virtual void Terminate() {;}
    
    ClassDef(AtlEvtWriterBase,0) // Abstract base class for writing events
};
#endif

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