]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added task to copy ESD header information to the AOD header.
authorcholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Jul 2011 09:12:21 +0000 (09:12 +0000)
committercholm <cholm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Jul 2011 09:12:21 +0000 (09:12 +0000)
Also make sure that scripts are installed

PWG2/CMakelibPWG2forward2.pkg
PWG2/FORWARD/analysis2/AddTaskCopyHeader.C
PWG2/FORWARD/analysis2/AliCopyHeaderTask.cxx [new file with mode: 0644]
PWG2/FORWARD/analysis2/AliCopyHeaderTask.h [new file with mode: 0644]
PWG2/PWG2forward2LinkDef.h

index 031ebc51a52a1cffa88ccda7106382f30df95565..904116dc05803d0863945185d2fd5c50bc48bdec 100644 (file)
@@ -68,6 +68,7 @@ set ( SRCS
   FORWARD/analysis2/AliFMDMultCuts.cxx
   FORWARD/analysis2/AliPoissonCalculator.cxx
   FORWARD/analysis2/AliForwardQATask.cxx
+  FORWARD/analysis2/AliCopyHeaderTask.cxx
 )
 
 string ( REPLACE ".cxx" ".h" HDRS "${SRCS}" )
@@ -118,6 +119,18 @@ install ( DIRECTORY FORWARD/analysis2/scripts
          PATTERN ".d"  EXCLUDE 
          PATTERN ".so" EXCLUDE)
 
+# install QA scripts 
+install ( DIRECTORY FORWARD/analysis2/qa
+         DESTINATION PWG2/FORWARD/analysis2 
+         PATTERN ".d"  EXCLUDE 
+         PATTERN ".so" EXCLUDE)
+
+# install correction scripts 
+install ( DIRECTORY FORWARD/analysis2/corrs
+         DESTINATION PWG2/FORWARD/analysis2 
+         PATTERN ".d"  EXCLUDE 
+         PATTERN ".so" EXCLUDE)
+
 # install trains 
 install ( DIRECTORY FORWARD/analysis2/trains 
          DESTINATION PWG2/FORWARD/analysis2 
index 9be71974329f094585aa7985943ce4c10bae3f32..ec0cc95a698b18f0994541492d19d3597bbb8b38 100644 (file)
  * 
  * @ingroup pwg2_forward_scripts_tasks
  */
-#include "AliAnalysisTaskSE.h"
-#include "AliInputEventHandler.h"
-#include "AliESDEvent.h"
-#include "AliAODEvent.h"
-#include "AliCentrality.h"
-#include "AliAnalysisManager.h"
-#include <TROOT.h>
-
-/**
- * Task to copy header from ESD to AOD 
- * 
- * @ingroup pwg2_forward_scripts_tasks
- * @ingroup pwg2_forward_aod
- */
-class CopyHeaderTask : public AliAnalysisTaskSE
-{
-public:
-  CopyHeaderTask(const char* name="header") 
-    : AliAnalysisTaskSE(name)
-  {}
-  CopyHeaderTask(const CopyHeaderTask& other) 
-    : AliAnalysisTaskSE(other)
-  {}
-  virtual ~CopyHeaderTask() {}
-  CopyHeaderTask& operator=(const CopyHeaderTask& other) 
-  {
-    AliAnalysisTaskSE::operator=(other);
-    return *this;
-  }
-  /** 
-   * @{ 
-   * @name Implementation of interface methods
-   */
-  virtual void   UserCreateOutputObjects() {}
-  virtual void   Init() {}
-  virtual void   LocalInit() {Init();}
-  virtual void   UserExec(Option_t *option);
-  virtual void   Terminate(Option_t *option);
-  /* @} */
-
-  ClassDef(CopyHeaderTask,1);
-};
-
-void
-CopyHeaderTask::UserExec(Option_t*)
-{
-  AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
-  AliAODEvent* aod = dynamic_cast<AliAODEvent*>(AODEvent());
-
-  if (!esd) { 
-    AliWarning("Missing ESD event");
-    return;
-  }
-  if (!aod) { 
-    AliWarning("Missing AOD event");
-    return;
-  }
-  
-  AliAODHeader* aodHeader = aod->GetHeader();
-  if (!aodHeader) { 
-    AliWarning("Missing AOD header");
-    return;
-  }
-
-  aodHeader->SetRunNumber(esd->GetRunNumber());
-  aodHeader->SetOfflineTrigger(fInputHandler->IsEventSelected());
-  aodHeader->SetBunchCrossNumber(esd->GetBunchCrossNumber());
-  aodHeader->SetOrbitNumber(esd->GetOrbitNumber());
-  aodHeader->SetPeriodNumber(esd->GetPeriodNumber());
-  aodHeader->SetEventType(esd->GetEventType());
-  aodHeader->SetEventNumberESDFile(esd->GetHeader()->GetEventNumberInFile());
-  if(esd->GetCentrality())
-    aodHeader->SetCentrality(new AliCentrality(*(esd->GetCentrality())));
-  else
-    aodHeader->SetCentrality(0);
-
-  aodHeader->SetFiredTriggerClasses(esd->GetFiredTriggerClasses());
-  aodHeader->SetTriggerMask(esd->GetTriggerMask()); 
-  aodHeader->SetTriggerCluster(esd->GetTriggerCluster());
-  aodHeader->SetL0TriggerInputs(esd->GetHeader()->GetL0TriggerInputs());    
-  aodHeader->SetL1TriggerInputs(esd->GetHeader()->GetL1TriggerInputs());    
-  aodHeader->SetL2TriggerInputs(esd->GetHeader()->GetL2TriggerInputs());    
-  
-  aodHeader->SetMagneticField(esd->GetMagneticField());
-  aodHeader->SetMuonMagFieldScale(esd->GetCurrentDip()/6000.);
-  aodHeader->SetZDCN1Energy(esd->GetZDCN1Energy());
-  aodHeader->SetZDCP1Energy(esd->GetZDCP1Energy());
-  aodHeader->SetZDCN2Energy(esd->GetZDCN2Energy());
-  aodHeader->SetZDCP2Energy(esd->GetZDCP2Energy());
-  aodHeader->SetZDCEMEnergy(esd->GetZDCEMEnergy(0),esd->GetZDCEMEnergy(1));
-}
-
-void
-CopyHeaderTask::Terminate(Option_t*)
-{}
-
 /** 
- * 
+ * Script to add task to copy header from ESD to AOD 
  * 
  * @ingroup pwg2_forward_aod
  */
 void
 AddTaskCopyHeader()
 {
+  // --- Load libraries ----------------------------------------------
+  gROOT->LoadClass("AliAODForwardMult", "libPWG2forward2");
+
+  // --- Get analysis manager ----------------------------------------
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
     Error("AddTaskCopyHeader", "No analysis manager to connect to.");
     return;
   }   
-  
-  gROOT->Macro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
-  
-  CopyHeaderTask* task = new CopyHeaderTask;
+
+  // --- Create task -------------------------------------------------
+  AliCopyHeaderTask* task = new AliCopyHeaderTask;
   mgr->AddTask(task);
   
-  // AliAnalysisDataContainer* histOut = 
-  //   mgr->CreateContainer("Forward", TList::Class(), 
-  //            AliAnalysisManager::kOutputContainer,outputfile);
+  // --- Connect input -----------------------------------------------
   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
-  // mgr->ConnectOutput(task, 1, histOut);
 }
 //
 // EOF
diff --git a/PWG2/FORWARD/analysis2/AliCopyHeaderTask.cxx b/PWG2/FORWARD/analysis2/AliCopyHeaderTask.cxx
new file mode 100644 (file)
index 0000000..a5f6546
--- /dev/null
@@ -0,0 +1,88 @@
+/**
+ * @file   AliCopyHeaderTask.cxx
+ * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
+ * @date   Tue Jul 12 10:59:32 2011
+ * 
+ * @brief  Task to copy ESD header to AOD 
+ * 
+ * @ingroup pwg2_forward_tasks 
+ */
+
+#include "AliCopyHeaderTask.h"
+#include "AliESDEvent.h"
+#include "AliAODEvent.h"
+#include "AliCentrality.h"
+#include "AliInputEventHandler.h"
+
+ClassImp(AliCopyHeaderTask)
+#if 0 
+; // for emacs - do not remove 
+#endif
+
+void
+AliCopyHeaderTask::UserExec(Option_t*)
+{
+  // 
+  // Called at every event 
+  //
+  // Copies information from ESD header to AOD header
+  // 
+  AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
+  AliAODEvent* aod = dynamic_cast<AliAODEvent*>(AODEvent());
+
+  if (!esd) { 
+    AliWarning("Missing ESD event");
+    return;
+  }
+  if (!aod) { 
+    AliWarning("Missing AOD event");
+    return;
+  }
+  
+  AliAODHeader* aodHeader = aod->GetHeader();
+  if (!aodHeader) { 
+    AliWarning("Missing AOD header");
+    aodHeader = new AliAODHeader(esd->GetRunNumber(),
+                                esd->GetBunchCrossNumber(),
+                                esd->GetOrbitNumber(),
+                                esd->GetPeriodNumber());
+    aod->AddHeader(aodHeader);
+  }
+
+  aodHeader->SetRunNumber(esd->GetRunNumber());
+  aodHeader->SetOfflineTrigger(fInputHandler->IsEventSelected());
+  aodHeader->SetBunchCrossNumber(esd->GetBunchCrossNumber());
+  aodHeader->SetOrbitNumber(esd->GetOrbitNumber());
+  aodHeader->SetPeriodNumber(esd->GetPeriodNumber());
+  aodHeader->SetEventType(esd->GetEventType());
+  aodHeader->SetEventNumberESDFile(esd->GetHeader()->GetEventNumberInFile());
+  if(esd->GetCentrality())
+    aodHeader->SetCentrality(new AliCentrality(*(esd->GetCentrality())));
+  else
+    aodHeader->SetCentrality(0);
+
+  aodHeader->SetFiredTriggerClasses(esd->GetFiredTriggerClasses());
+  aodHeader->SetTriggerMask(esd->GetTriggerMask()); 
+  aodHeader->SetTriggerCluster(esd->GetTriggerCluster());
+  aodHeader->SetL0TriggerInputs(esd->GetHeader()->GetL0TriggerInputs());    
+  aodHeader->SetL1TriggerInputs(esd->GetHeader()->GetL1TriggerInputs());    
+  aodHeader->SetL2TriggerInputs(esd->GetHeader()->GetL2TriggerInputs());    
+  
+  aodHeader->SetMagneticField(esd->GetMagneticField());
+  aodHeader->SetMuonMagFieldScale(esd->GetCurrentDip()/6000.);
+  aodHeader->SetZDCN1Energy(esd->GetZDCN1Energy());
+  aodHeader->SetZDCP1Energy(esd->GetZDCP1Energy());
+  aodHeader->SetZDCN2Energy(esd->GetZDCN2Energy());
+  aodHeader->SetZDCP2Energy(esd->GetZDCP2Energy());
+  aodHeader->SetZDCEMEnergy(esd->GetZDCEMEnergy(0),esd->GetZDCEMEnergy(1));
+}
+
+void
+AliCopyHeaderTask::Terminate(Option_t*)
+{
+  // Called at the end of the job  - does nothing 
+}
+
+//
+// EOF
+//
diff --git a/PWG2/FORWARD/analysis2/AliCopyHeaderTask.h b/PWG2/FORWARD/analysis2/AliCopyHeaderTask.h
new file mode 100644 (file)
index 0000000..3fcebe2
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef ALICOPYHEADERTASK_H
+#define ALICOPYHEADERTASK_H
+/**
+ * @file   AliCopyHeaderTask.h
+ * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
+ * @date   Tue Jul 12 10:56:38 2011
+ * 
+ * @brief  A task to copy the ESD header to AOD
+ * 
+ * @ingroup pwg2_forward_tasks 
+ */
+#include <AliAnalysisTaskSE.h>
+
+/**
+ * Task to copy header from ESD to AOD 
+ * 
+ * @ingroup pwg2_forward_scripts_tasks
+ * @ingroup pwg2_forward_aod
+ */
+class AliCopyHeaderTask : public AliAnalysisTaskSE
+{
+public:
+  AliCopyHeaderTask(const char* name="header") 
+    : AliAnalysisTaskSE(name)
+  {}
+  AliCopyHeaderTask(const AliCopyHeaderTask& other) 
+    : AliAnalysisTaskSE(other)
+  {}
+  virtual ~AliCopyHeaderTask() {}
+  AliCopyHeaderTask& operator=(const AliCopyHeaderTask& other) 
+  {
+    AliAnalysisTaskSE::operator=(other);
+    return *this;
+  }
+  /** 
+   * @{ 
+   * @name Implementation of interface methods
+   */
+  virtual void   UserCreateOutputObjects() {}
+  virtual void   Init() {}
+  virtual void   LocalInit() {Init();}
+  virtual void   UserExec(Option_t *option);
+  virtual void   Terminate(Option_t *option);
+  /* @} */
+
+  ClassDef(AliCopyHeaderTask,1);
+};
+
+#endif
+/* 
+ * Local Variables:
+ *  mode: C++ 
+ * End:
+ */
index ddfd405f70f9067ffd684e9aee64368bad13abee..99514c092b671fb9afc08ffba75df561fbf843df 100644 (file)
@@ -87,6 +87,7 @@
 #pragma link C++ class AliFMDMultCuts+;
 #pragma link C++ class AliPoissonCalculator+;
 #pragma link C++ class AliForwardQATask+;
+#pragma link C++ class AliCopyHeaderTask+;
 
 #else
 # error Not for compilation