activating individual HLT simulations from digits and raw data
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTEsdManagerImplementation.h
index 1a79ff6..77d57b8 100644 (file)
@@ -7,17 +7,17 @@
 //* ALICE Experiment at CERN, All rights reserved.                         *
 //* See cxx source for full Copyright notice                               *
 
-/** @file   AliHLTEsdManagerImplementation.h
-    @author Matthias Richter
-    @date   
-    @brief  Implementation of the AliHLTEsdManager
-*/
+/// @file   AliHLTEsdManagerImplementation.h
+/// @author Matthias Richter
+/// @date   
+/// @brief  Implementation of the AliHLTEsdManager
+///         This is an implementation of the abstract interface AliHLTEsdManager
 
 #include "AliHLTEsdManager.h"
+#include "AliESDEvent.h"
 #include "TString.h"
 #include <vector>
 
-class AliESDEvent;
 class TTree;
 class TFile;
 
@@ -98,6 +98,19 @@ class AliHLTEsdManagerImplementation : public AliHLTEsdManager {
    */
   static TTree* EmbedIntoTree(AliESDEvent* pESD, const char* name="esdTree", const char* title="Tree with HLT ESD objects");
 
+  class AliHLTESDEventHelper : public AliESDEvent {
+  public:
+    static bool IsStdContent(const char* key);
+  };
+
+  int CheckClassConditions() const;
+
+  AliESDEvent* CreateEsdEvent(bool bCreateStdContent=false) const;
+
+  int AddObject(AliESDEvent* pESD, const TObject* pObject, const char* branchname) const;
+
+  int ResetEsdEvent(AliESDEvent* pESD) const;
+
  protected:
 
  private:
@@ -130,9 +143,9 @@ class AliHLTEsdManagerImplementation : public AliHLTEsdManager {
     void SetDirectory(const char* directory);
 
     /**
-     * Delete the ESD file.
+     * Set the tree name
      */
-    void Delete();
+    void SetTreeName(const char* treename) {fTreeName=treename;}
 
     /**
      * Get name of the ESD file.
@@ -154,15 +167,6 @@ class AliHLTEsdManagerImplementation : public AliHLTEsdManager {
     /** assignment operator prohibited */
     AliHLTEsdListEntry& operator=(const AliHLTEsdListEntry& src);
 
-    /**
-     * Write ESD to temporary file.
-     * The ESD is embedded into a tree and saved to a temporary file.
-     * The file name is retrieved by TSystem::GetTempFileName and returned
-     * on success.
-     * @return file name, empty on failure
-     */
-    TString WriteTempFile(AliESDEvent* pESD) const;
-
     /** root file name */
     TString fName; //!transient
     /** target directory */
@@ -177,6 +181,8 @@ class AliHLTEsdManagerImplementation : public AliHLTEsdManager {
     AliESDEvent* fpEsd; //!transient
     /** Prefix for generated ESD objects in the master ESD */
     TString fPrefix; //!transient
+    /** name of the tree to be created */
+    TString fTreeName; //!transient
   };
 
   typedef vector<AliHLTEsdListEntry*> AliHLTEsdPList;
@@ -191,10 +197,12 @@ class AliHLTEsdManagerImplementation : public AliHLTEsdManager {
 
   /** target directory */
   TString fDirectory; //!transient
+  /** target directory */
+  TString fTreeName; //!transient
   /** write local files */
   bool fWriteLocal; //!transient
 
-  ClassDef(AliHLTEsdManagerImplementation, 2)
+  ClassDef(AliHLTEsdManagerImplementation, 3)
 };
 
 #endif