]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/FORWARD/analysis2/AliForwardMCMultiplicityTask.h
flat friend update
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliForwardMCMultiplicityTask.h
index ca2d20a22ebf4ee4dd3fbdd4f936b4ad411b93c0..89a0e61b06fa211e372abb98aa11268c82ec4ad4 100644 (file)
  * @ingroup pwglf_forward_aod
  */
 #include "AliForwardMultiplicityBase.h"
-#include "AliForwardUtil.h"
 #include "AliFMDMCEventInspector.h"
+#include "AliFMDESDFixer.h"
 #include "AliFMDMCSharingFilter.h"
 #include "AliFMDMCDensityCalculator.h"
 #include "AliFMDMCCorrector.h"
 #include "AliFMDHistCollector.h"
-#include "AliAODForwardMult.h"
-#include "AliAODForwardEP.h"
-#include "AliFMDEnergyFitter.h"
+// #include "AliFMDEnergyFitter.h"
 #include "AliFMDEventPlaneFinder.h"
 #include <AliESDFMD.h>
 class AliESDEvent;
@@ -63,42 +61,42 @@ public:
    */
   AliForwardMCMultiplicityTask();
   /** 
-   * Copy constructor 
-   * 
-   * @param o Object to copy from 
+   * @{ 
+   * @name Interface methods 
    */
-  AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
   /** 
-   * Assignment operator 
-   * 
-   * @param o Object to assign from 
+   * Book output objects. Derived class should define this to book
+   * output objects on the processing output list @c fList before the
+   * actual event processing.  This is called on the master and on
+   * each slave.
    * 
-   * @return Reference to this object 
-   */
-  AliForwardMCMultiplicityTask& 
-  operator=(const AliForwardMCMultiplicityTask& o);
-  /** 
-   * @{ 
-   * @name Interface methods 
+   * If this member function returns false, the execution is stopped
+   * with a fatal signal.
+   *
+   * @return true on success. 
    */
+  virtual Bool_t Book();
   /** 
-   * Create output objects 
+   * Called before processing a single event - should not do anything
+   * but clear data, etc.
    * 
+   * @return true on success
    */
-  virtual void UserCreateOutputObjects();
+  virtual Bool_t PreEvent();
   /** 
    * Process each event 
    *
-   * @param option Not used
+   * @param esd ESD event
    */  
-  virtual void UserExec(Option_t* option);
+  virtual Bool_t Event(AliESDEvent& esd);
   /** 
-   * End of job
+   * Called after processing a single event - should not do anything
+   * but clear data, etc.
    * 
-   * @param option Not used 
+   * @return true on success
    */
-  virtual void Terminate(Option_t* option);
-  /** 
+  virtual Bool_t PostEvent();
+  /* 
    * @} 
    */
   /** 
@@ -117,6 +115,12 @@ public:
    * @return Reference to AliFMDEventInspector object 
    */
   AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
+  /**
+   * Get reference to the ESDFixer algorithm 
+   * 
+   * @return Reference to AliFMDESDFixer object 
+   */
+  AliFMDESDFixer& GetESDFixer() { return fESDFixer; }
   /**
    * Get reference to the SharingFilter algorithm 
    * 
@@ -147,6 +151,12 @@ public:
    * @return Reference to AliFMDEventInspector object 
    */
   const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
+  /**
+   * Get reference to the ESDFixer algorithm 
+   * 
+   * @return Reference to AliFMDESDFixer object 
+   */
+  const AliFMDESDFixer& GetESDFixer() const { return fESDFixer; }
   /**
    * Get reference to the SharingFilter algorithm 
    * 
@@ -186,41 +196,58 @@ public:
   /** 
    * @} 
    */
+protected: 
   /** 
-   * Set debug level 
+   * Copy constructor 
    * 
-   * @param dbg debug level
+   * @param o Object to copy from 
    */
-  void SetDebug(Int_t dbg);
-protected: 
+  AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
+  /** 
+   * Assignment operator 
+   * 
+   * @param o Object to assign from 
+   * 
+   * @return Reference to this object 
+   */
+  AliForwardMCMultiplicityTask& 
+  operator=(const AliForwardMCMultiplicityTask& o);
   /** 
-   * Initialise the sub objects and stuff.  Called on first event 
+   * Initialize members based on eta and vertex axis - only available
+   * after first event - called from SetupForData.
    * 
+   * @param pe @f$\eta@f$ axis
+   * @param pv Interaction point Z-coordinate axis 
    */
-  virtual void   InitializeSubs();
+  virtual void InitMembers(const TAxis& pe, const TAxis& pv);
+  /**
+   * Create output branches - called from UserCreateOutputObjects
+   */
+  virtual void CreateBranches(AliAODHandler* ah);
+  /** 
+   * Do estimates of @f$dN/d\eta@f$ - called at Terminate
+   * 
+   * @param input  Input list
+   * @param output Output list
+   */
+  virtual void EstimatedNdeta(const TList* input, TList* output) const;
 
-  TH2D*                  fHData;        // Summed 1/Nd^2N_{ch}/dphideta
   AliESDFMD              fESDFMD;       // Sharing corrected ESD object
-  AliForwardUtil::Histos fHistos;       // Cache histograms 
-  AliAODForwardMult      fAODFMD;       // Output object
-  AliAODForwardEP        fAODEP;       // Output object
   AliESDFMD              fMCESDFMD;     // MC 'Sharing corrected' ESD object
   AliForwardUtil::Histos fMCHistos;     // MC Cache histograms 
   AliAODForwardMult      fMCAODFMD;     // MC Output object
-  AliForwardUtil::Histos fRingSums;     // Cache histograms 
   AliForwardUtil::Histos fMCRingSums;   // Cache histograms 
   TH2D*                  fPrimary;      // Per event primary particles 
 
   AliFMDMCEventInspector    fEventInspector;    // Algorithm
+  AliFMDESDFixer            fESDFixer;          // Algorithm
   AliFMDMCSharingFilter     fSharingFilter;     // Algorithm
   AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
   AliFMDMCCorrector         fCorrections;       // Algorithm
   AliFMDHistCollector       fHistCollector;     // Algorithm
   AliFMDEventPlaneFinder    fEventPlaneFinder;  // Algorithm
 
-  TList* fList; // Output list 
-
-  ClassDef(AliForwardMCMultiplicityTask,1) // Forward multiplicity class
+  ClassDef(AliForwardMCMultiplicityTask,4) // Forward multiplicity class
 };
 
 #endif