* @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;
*/
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();
+ /*
* @}
*/
/**
* @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
*
* @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
*
/**
* @}
*/
+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