Include binning component in the global analysis framework
authormfasel <mfasel@lbl.gov>
Sun, 7 Dec 2014 18:18:28 +0000 (10:18 -0800)
committermfasel <mfasel@lbl.gov>
Fri, 12 Dec 2014 01:12:31 +0000 (17:12 -0800)
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskPtEMCalTriggerV1.cxx
PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskPtEMCalTriggerV1.h
PWGJE/EMCALJetTasks/UserTasks/AliEMCalTriggerTaskGroup.cxx
PWGJE/EMCALJetTasks/UserTasks/AliEMCalTriggerTaskGroup.h
PWGJE/EMCALJetTasks/UserTasks/AliEMCalTriggerTracksAnalysisComponent.cxx
PWGJE/EMCALJetTasks/UserTasks/AliEMCalTriggerTracksAnalysisComponent.h

index cb975d8..080fe9b 100644 (file)
@@ -22,6 +22,7 @@
  */
 #include "AliJetContainer.h"
 #include "AliParticleContainer.h"
+#include "AliEMCalTriggerBinningComponent.h"
 #include "AliEMCalTriggerEventData.h"
 #include "AliEMCalTriggerTaskGroup.h"
 #include "AliAnalysisTaskPtEMCalTriggerV1.h"
@@ -35,6 +36,7 @@ namespace EMCalTriggerPtAnalysis {
 AliAnalysisTaskPtEMCalTriggerV1::AliAnalysisTaskPtEMCalTriggerV1() :
     AliAnalysisTaskEmcalJet(),
     fTaskGroups(NULL),
+    fBinning(NULL),
     fMCJetContainer(),
     fDataJetContainer()
 {
@@ -47,6 +49,7 @@ AliAnalysisTaskPtEMCalTriggerV1::AliAnalysisTaskPtEMCalTriggerV1() :
 AliAnalysisTaskPtEMCalTriggerV1::AliAnalysisTaskPtEMCalTriggerV1(const char* name) :
     AliAnalysisTaskEmcalJet(name, kTRUE),
     fTaskGroups(NULL),
+    fBinning(NULL),
     fMCJetContainer(),
     fDataJetContainer()
 {
@@ -63,6 +66,8 @@ AliAnalysisTaskPtEMCalTriggerV1::~AliAnalysisTaskPtEMCalTriggerV1() {
   /*
    * Destructor
    */
+  delete fTaskGroups;
+  delete fBinning;
 }
 
 //______________________________________________________________________________
@@ -77,6 +82,7 @@ void AliAnalysisTaskPtEMCalTriggerV1::UserCreateOutputObjects() {
   TList *outputList = new TList;
   outputList->SetName(Form("histos%s", GetName()));
   while((mygroup = dynamic_cast<AliEMCalTriggerTaskGroup *>(groupIter()))){
+    mygroup->SetGlobalBinning(fBinning);
     TList *ltmp = mygroup->InitialiseAnalysisComponents();
     // Collect output list and append it to the global output list
     TIter listIter(ltmp);
@@ -108,6 +114,18 @@ Bool_t AliAnalysisTaskPtEMCalTriggerV1::Run() {
 }
 
 //______________________________________________________________________________
+void AliAnalysisTaskPtEMCalTriggerV1::SetBinning(const char* dimname, int nbins, double* binning) {
+  /*
+   * Set binning for a give dimension
+   *
+   * @param dimname: name of the axis
+   * @param nbins: number of bins
+   * @param binning: the bin limits
+   */
+  fBinning->SetBinning(dimname, nbins, binning);
+}
+
+//______________________________________________________________________________
 AliEMCalTriggerEventData* AliAnalysisTaskPtEMCalTriggerV1::BuildEvent() const {
   /*
    * Build event structure. Take the information about the different containers
index 8674812..ec8f420 100644 (file)
@@ -10,7 +10,7 @@
 
 namespace EMCalTriggerPtAnalysis {
 
-class AliEMCalTriggerEventBuilderComponent;
+class AliEMCalTriggerBinningComponent;
 class AliEMCalTriggerEventData;
 class AliEMCalTriggerTaskGroup;
 
@@ -26,11 +26,13 @@ public:
 
   void SetMCJetContainerName(const char *name)          { fMCJetContainer = name; }
   void SetDataJetContainerName(const char *name)        { fDataJetContainer = name; }
+  void SetBinning(const char *dimname, int nbins, double *binning);
 
 protected:
   AliEMCalTriggerEventData *BuildEvent() const;
 
-  TObjArray                            *fTaskGroups;        // grouped analysis components
+  TObjArray                           *fTaskGroups;         // grouped analysis components
+  AliEMCalTriggerBinningComponent     *fBinning;            // Global binning component
   TString                              fMCJetContainer;     // Name of the Monte-Carlo jet container
   TString                              fDataJetContainer;   // Data jet container name
 
index 4260820..aea3187 100644 (file)
@@ -34,7 +34,8 @@ namespace EMCalTriggerPtAnalysis {
 AliEMCalTriggerTaskGroup::AliEMCalTriggerTaskGroup() :
     TNamed(),
     fAnalysisComponents(NULL),
-    fEventSelection(NULL)
+    fEventSelection(NULL),
+    fBinning(NULL)
 {
   /*
    * Dummy constructor, not to be used
@@ -45,7 +46,8 @@ AliEMCalTriggerTaskGroup::AliEMCalTriggerTaskGroup() :
 AliEMCalTriggerTaskGroup::AliEMCalTriggerTaskGroup(const char* name) :
     TNamed(name, ""),
     fAnalysisComponents(NULL),
-    fEventSelection(NULL)
+    fEventSelection(NULL),
+    fBinning(NULL)
 {
   /*
    * Main constructor: to be used by the users
@@ -77,6 +79,7 @@ TList *AliEMCalTriggerTaskGroup::InitialiseAnalysisComponents() {
   TObject *htmp(NULL);
   while((ana = dynamic_cast<AliEMCalTriggerTracksAnalysisComponent *>(compIter()))){
     ana->CreateHistos();
+    ana->SetBinning(fBinning);
     TList *ltmp = ana->GetHistList();
     TIter hiter(ltmp);
     while((htmp = hiter())) histlist->Add(htmp);
index e4eac61..df78f46 100644 (file)
@@ -9,6 +9,7 @@
 
 namespace EMCalTriggerPtAnalysis {
 
+class AliEMCalTriggerBinningComponent;
 class AliEMCalTriggerEventSelection;
 class AliEMCalTriggerTracksAnalysisComponent;
 
@@ -19,6 +20,7 @@ public:
   virtual ~AliEMCalTriggerTaskGroup();
 
   void SetEventSelection(const AliEMCalTriggerEventSelection *sel){ fEventSelection = sel; }
+  void SetGlobalBinning(const AliEMCalTriggerBinningComponent *const binning) { fBinning = binning; }
   void AddAnalysisComponent(AliEMCalTriggerTracksAnalysisComponent * const analysis);
 
   TList * InitialiseAnalysisComponents();
@@ -27,6 +29,7 @@ public:
 protected:
   TObjArray                                   *fAnalysisComponents;
   const AliEMCalTriggerEventSelection         *fEventSelection;
+  const AliEMCalTriggerBinningComponent       *fBinning;
 
   ClassDef(AliEMCalTriggerTaskGroup, 1);    // Group of analysis components with common event selection
 };
index 891cdc4..347bad9 100644 (file)
@@ -1,21 +1,37 @@
+/**************************************************************************
+ * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
 /*
- * AliEmcalTriggerTracksAnalysisComponent.cxx
+ * Base class for anaysis components. Inheriting classes have to implement the
+ * functions CreateHistos and Process.
  *
- *  Created on: 03.12.2014
- *      Author: markusfasel
+ *   Author: Markus Fasel
  */
+#include "AliEMCalTriggerTracksAnalysisComponent.h"
 
-#include <AliEMCalTriggerTracksAnalysisComponent.h>
+ClassImp(EMCalTriggerPtAnalysis::AliEMCalTriggerTracksAnalysisComponent)
 
 namespace EMCalTriggerPtAnalysis {
 
-AliEMCalTriggerTracksAnalysisComponent::AliEMCalTriggerTracksAnalysisComponent() {
-  // TODO Auto-generated constructor stub
-
-}
-
-AliEMCalTriggerTracksAnalysisComponent::~AliEMCalTriggerTracksAnalysisComponent() {
-  // TODO Auto-generated destructor stub
+AliEMCalTriggerTracksAnalysisComponent::AliEMCalTriggerTracksAnalysisComponent() :
+  TObject(),
+  fHistos(NULL),
+  fBinning(NULL)
+{
+  /*
+   * Default constructor
+   */
 }
 
 } /* namespace EMCalTriggerPtAnalysis */
index fe29b55..0e35bf5 100644 (file)
@@ -9,21 +9,24 @@
 
 namespace EMCalTriggerPtAnalysis {
 
+class AliEMCalTriggerBinningComponent;
 class AliEMCalTriggerEventData;
 
 class AliEMCalTriggerTracksAnalysisComponent : public TObject {
 public:
   AliEMCalTriggerTracksAnalysisComponent();
   AliEMCalTriggerTracksAnalysisComponent(const char *name);
-  virtual ~AliEMCalTriggerTracksAnalysisComponent();
+  virtual ~AliEMCalTriggerTracksAnalysisComponent() {}
 
   virtual void CreateHistos();
   virtual void Process(const AliEMCalTriggerEventData * const data) = 0;
 
   THashList *GetHistList() const { return fHistos->GetListOfHistograms(); }
+  void SetBinning(const AliEMCalTriggerBinningComponent * const binning) { fBinning = binning; }
 
 protected:
-  AliEMCalHistoContainer *fHistos;
+  AliEMCalHistoContainer                      *fHistos;
+  const AliEMCalTriggerBinningComponent       *fBinning;
 
   ClassDef(AliEMCalTriggerTracksAnalysisComponent, 1)
 };