Patch for jet analysis
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 23 Aug 2012 14:46:12 +0000 (14:46 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 23 Aug 2012 14:46:12 +0000 (14:46 +0000)
Salvatore Aiola

PWG/EMCAL/macros/AddTaskEmcalEsdTpcTrack.C
PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C
PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C
PWGJE/EMCALJetTasks/macros/AddTaskJetRespPtHard.C
PWGJE/EMCALJetTasks/macros/AddTaskJetResponseMaker.C

index e022a08..2c927d4 100644 (file)
@@ -1,7 +1,6 @@
 // $Id$
 
-AliEmcalEsdTpcTrackTask* AddTaskEmcalEsdTpcTrack(
-                                                const char *name       = "TpcSpdVertexConstrainedTracks",
+AliEmcalEsdTpcTrackTask* AddTaskEmcalEsdTpcTrack(const char *name       = "TpcSpdVertexConstrainedTracks",
                                                 const char *trackCuts  = "Hybrid_LHC11h"
                                                 )
 { 
@@ -48,20 +47,24 @@ AliEmcalEsdTpcTrackTask* AddTaskEmcalEsdTpcTrack(
   // Get the pointer to the existing analysis manager via the static access method.
   //==============================================================================
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
-  if (!mgr)
-  {
+  if (!mgr) {
     ::Error("AddTaskEmcalEsdTpcTrack", "No analysis manager to connect to.");
     return NULL;
   }  
   
   // Check the analysis type using the event handlers connected to the analysis manager.
   //==============================================================================
-  if (!mgr->GetInputEventHandler())
-  {
+  AliVEventHandler *evhand = mgr->GetInputEventHandler();
+  if (!evhand) {
     ::Error("AddTaskEmcalEsdTpcTrack", "This task requires an input event handler");
     return NULL;
   }
   
+  if (!evhand->InheritsFrom("AliESDInputHandler")) {
+    ::Info("AddTaskEmcalEsdTpcTrack", "This task is only needed for ESD analysis. No task added.");
+    return NULL;
+  }
+  
   //-------------------------------------------------------
   // Init the task and do settings
   //-------------------------------------------------------
index 0c4fe6f..f66433f 100644 (file)
@@ -2,7 +2,7 @@
 
 AliEmcalParticleMaker* AddTaskEmcalParticleMaker(
   const char *tracksName          = "PicoTracks",
-  const char *clustersName        = "CaloClusters",
+  char *clustersName              = 0,
   const char *tracksOutName       = "EmcalTracks",
   const char *clustersOutName     = "EmcalClusters",
   const char *taskName            = "AliEmcalParticleMaker"
@@ -19,11 +19,24 @@ AliEmcalParticleMaker* AddTaskEmcalParticleMaker(
   
   // Check the analysis type using the event handlers connected to the analysis manager.
   //==============================================================================
-  if (!mgr->GetInputEventHandler())
-  {
+  AliVEventHandler *evhand = mgr->GetInputEventHandler();
+  if (!evhand) {
     ::Error("AddTaskEmcalParticleMaker", "This task requires an input event handler");
     return NULL;
   }
+
+  if (!clustersName) {
+    clustersName = new char[100];
+
+    if (evhand->InheritsFrom("AliESDInputHandler")) {
+      ::Info("AddTaskEmcalParticleMaker", "ESD analysis, clustersName = \"CaloClusters\"");
+      strcpy(clustersName,"CaloClusters");
+    }
+    else {
+      ::Info("AddTaskEmcalParticleMaker", "AOD analysis, clustersName = \"caloClusters\"");
+      strcpy(clustersName,"caloClusters");
+    }
+  }
   
   //-------------------------------------------------------
   // Init the task and do settings
index 1fb21e5..e9b6fb5 100644 (file)
@@ -9,20 +9,24 @@ AliEmcalTrackPropagatorTask* AddTaskEmcalTrackPropagator(
   // Get the pointer to the existing analysis manager via the static access method.
   //==============================================================================
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
-  if (!mgr)
-  {
+  if (!mgr) {
     ::Error("AddTaskEmcalTrackPropagator", "No analysis manager to connect to.");
     return NULL;
   }  
   
   // Check the analysis type using the event handlers connected to the analysis manager.
   //==============================================================================
-  if (!mgr->GetInputEventHandler())
-  {
+  AliVEventHandler *evhand = mgr->GetInputEventHandler();
+  if (!evhand) {
     ::Error("AddTaskEmcalTrackPropagator", "This task requires an input event handler");
     return NULL;
   }
   
+  if (!evhand->InheritsFrom("AliESDInputHandler")) {
+    ::Info("AddTaskEmcalTrackPropagator", "This task is only needed for ESD analysis. No task added.");
+    return NULL;
+  }
+
   //-------------------------------------------------------
   // Init the task and do settings
   //-------------------------------------------------------
index d5187ab..e9810d5 100644 (file)
@@ -13,19 +13,25 @@ AliJetResponseMaker* AddTaskJetRespPtHard(const char *ntracks            = "Trac
                                          Double_t    jetBiasClus        = 10,
                                          Double_t    maxDistance        = 0.25,
                                          UInt_t      type               = AliAnalysisTaskEmcal::kTPC,
-                                         Int_t minPtBin                 = 1, 
-                                         Int_t maxPtBin                 = 11,
+                                         Int_t       minPtBin           = 1, 
+                                         Int_t       maxPtBin           = 10,
+                                         Bool_t      domatch            = kTRUE,
+                                         Bool_t      biggerMatrix       = kFALSE,
                                          const char *taskname           = "AliJetResponseMaker"
+                                         
 )
 {  
   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskJetResponseMaker.C");
   
-  AliJetResponseMaker *jetTask = 0;
+  AliJetResponseMaker *jetTask = new AliJetResponseMaker[maxPtBin - minPtBin + 1];
 
   for (Int_t i = minPtBin; i <= maxPtBin; i++) {
-    jetTask = AddTaskJetResponseMaker(ntracks, nclusters, njets, nmcjets, nmctracks, 
-                                     jetradius, jetptcut, jetareacut, ptcut, jetBiasTrack, 
-                                     jetBiasClus, maxDistance, type, i, taskname);
+    AddTaskJetResponseMaker(ntracks, nclusters, njets, nmcjets, nmctracks, 
+                           jetradius, jetptcut, jetareacut, ptcut, jetBiasTrack, 
+                           jetBiasClus, maxDistance, type, i, taskname, jetTask + i - minPtBin);
+    jetTask[i - minPtBin].SetDoMatching(domatch);
+    if (biggerMatrix) 
+      jetTask[i - minPtBin].SetHistoBins(1000,0,500);
   }
   
   return jetTask;
index 1421270..cf2b42d 100644 (file)
@@ -15,7 +15,8 @@ AliJetResponseMaker* AddTaskJetResponseMaker(
   Double_t    maxDistance        = 0.25,
   UInt_t      type               = AliAnalysisTaskEmcal::kTPC,
   Int_t       ptHardBin          = -999,
-  const char *taskname           = "AliJetResponseMaker"
+  const char *taskname           = "AliJetResponseMaker",
+  AliJetResponseMaker* address   = 0
 )
 {  
   // Get the pointer to the existing analysis manager via the static access method.
@@ -64,7 +65,12 @@ AliJetResponseMaker* AddTaskJetResponseMaker(
     name += ptHardBin;
   }
 
-  AliJetResponseMaker* jetTask = new AliJetResponseMaker(name);
+  AliJetResponseMaker* jetTask = address;
+  if (jetTask)
+    new (jetTask) AliJetResponseMaker(name);
+  else
+    jetTask = new AliJetResponseMaker(name);
+
   jetTask->SetAnaType(type);
   jetTask->SetTracksName(ntracks);
   jetTask->SetClusName(nclusters);