]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/FORWARD/analysis2/AliForwardMCMultiplicityTask.h
Merge branch 'workdir'
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliForwardMCMultiplicityTask.h
index d6bfe08b9d622b947932ecc333ae8248efd93c51..bba25528815b108c6cf15c379b6b8d89843516e5 100644 (file)
  * @ingroup pwglf_forward_aod
  */
 #include "AliForwardMultiplicityBase.h"
-#include "AliForwardUtil.h"
 #include "AliFMDMCEventInspector.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;
@@ -62,42 +59,23 @@ public:
    * Constructor
    */
   AliForwardMCMultiplicityTask();
-  /** 
-   * Copy constructor 
-   * 
-   * @param o Object to copy from 
-   */
-  AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
-  /** 
-   * Assignment operator 
-   * 
-   * @param o Object to assign from 
-   * 
-   * @return Reference to this object 
-   */
-  AliForwardMCMultiplicityTask& 
-  operator=(const AliForwardMCMultiplicityTask& o);
   /** 
    * @{ 
    * @name Interface methods 
    */
   /** 
-   * 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);
-  /** 
-   * End of job
-   * 
-   * @param option Not used 
-   */
-  virtual void Terminate(Option_t* option);
+  virtual Bool_t Event(AliESDEvent& esd);
   /** 
    * @} 
    */
@@ -186,29 +164,46 @@ public:
   /** 
    * @} 
    */
+protected: 
+  /** 
+   * Copy constructor 
+   * 
+   * @param o Object to copy from 
+   */
+  AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
   /** 
-   * Set debug level 
+   * Assignment operator 
    * 
-   * @param dbg debug level
+   * @param o Object to assign from 
+   * 
+   * @return Reference to this object 
    */
-  void SetDebug(Int_t dbg);
-protected: 
+  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.
    * 
-   * @return false on errors
+   * @param pe @f$\eta@f$ axis
+   * @param pv Interaction point Z-coordinate axis 
+   */
+  virtual void InitMembers(const TAxis& pe, const TAxis& pv);
+  /**
+   * Create output branches - called from UserCreateOutputObjects
    */
-  virtual Bool_t SetupForData();
+  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 
 
@@ -219,10 +214,7 @@ protected:
   AliFMDHistCollector       fHistCollector;     // Algorithm
   AliFMDEventPlaneFinder    fEventPlaneFinder;  // Algorithm
 
-  TList* fList; // Output list 
-  TList* fListVertexBins; // list of the signal  in vertex bin 
-
-  ClassDef(AliForwardMCMultiplicityTask,3) // Forward multiplicity class
+  ClassDef(AliForwardMCMultiplicityTask,4) // Forward multiplicity class
 };
 
 #endif