HMPID performance task and centrality task added to the train
authorgvolpe <gvolpe@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 4 Aug 2011 10:25:17 +0000 (10:25 +0000)
committergvolpe <gvolpe@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 4 Aug 2011 10:25:17 +0000 (10:25 +0000)
HMPID/AddTaskHMPIDPerformance.C [new file with mode: 0644]
HMPID/AnalysisTrainHMPID.C

diff --git a/HMPID/AddTaskHMPIDPerformance.C b/HMPID/AddTaskHMPIDPerformance.C
new file mode 100644 (file)
index 0000000..e5d853e
--- /dev/null
@@ -0,0 +1,43 @@
+AliHMPIDPerformanceTask *AddTaskHMPIDPerformance(Bool_t useMC=kTRUE)
+{
+// Creates a HMPID task, configures it and adds it to the analysis manager.
+
+   // Get the pointer to the existing analysis manager via the static access method.
+   //==============================================================================
+   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+   if (!mgr) {
+      ::Error("AddTaskHMPIDPerformance", "No analysis manager to connect to.");
+      return NULL;
+   }
+
+   // Check the analysis type using the event handlers connected to the analysis manager.
+   //==============================================================================
+   if (!mgr->GetInputEventHandler()) {
+      ::Error("AddTaskHMPIDPerformance", "This task requires an input event handler");
+      return NULL;
+   }
+
+   // Create the task and configure it.
+   //===========================================================================
+
+   AliHMPIDPerformanceTask *hmpTaskPerformance = new AliHMPIDPerformanceTask("HMPIDPerformanceTask");
+   hmpTaskPerformance->SetDebugLevel(0);
+   hmpTaskPerformance->SelectCollisionCandidates();
+   hmpTaskPerformance->SetUseMC(useMC);
+   mgr->AddTask(hmpTaskPerformance);
+
+   AliAnalysisDataContainer *cout_hmpid= mgr->CreateContainer("HmpidOutput", TList::Class(),AliAnalysisManager::kOutputContainer,
+                                           AliAnalysisManager::GetCommonFileName());
+   AliAnalysisDataContainer *cout_tree = mgr->CreateContainer("HmpidTree", TTree::Class(),AliAnalysisManager::kOutputContainer,
+                                           AliAnalysisManager::GetCommonFileName());
+
+   // Create ONLY the output containers for the data produced by the task.
+   // Get and connect other common input/output containers via the manager as below
+   //==============================================================================
+   mgr->ConnectInput  (hmpTaskPerformance, 0, mgr->GetCommonInputContainer());
+   mgr->ConnectOutput (hmpTaskPerformance, 0, mgr->GetCommonOutputContainer());
+   mgr->ConnectOutput (hmpTaskPerformance, 1, cout_hmpid);
+   mgr->ConnectOutput (hmpTaskPerformance, 2, cout_tree);
+
+   return hmpTaskPerformance;
+}
index ec43333..0c22cd1 100644 (file)
@@ -24,6 +24,7 @@ Bool_t      kFillAOD           = kFALSE;  // switch of AOD filling for on the fl
 Int_t       iAODhandler        = 1;      // Analysis produces an AOD or dAOD's
 Int_t       iESDfilter         = 0;      // ESD to AOD filter (barrel + muon tracks)
 Int_t       iPhysicsSelection  = 1;      // Physics selection task
+Int_t       iCentrality        = 0;      // Physics selection task
 Bool_t      kUseKinefilter     = kFALSE; // use Kinematics filter
 Bool_t      kUseMuonfilter     = kFALSE; // use muon filter
 TString     kCommonOutputFileName = "HmpidOutput.root";
@@ -36,14 +37,15 @@ TString     kCommonOutputFileName = "HmpidOutput.root";
 Bool_t      kSkipTerminate      = kFALSE; // Do not call Teminate
 Bool_t      kDebugLevel         = kTRUE; // activate debugging
 Int_t       kUseSysInfo         = 0; // activate debugging
-Bool_t      kUseMC              = kTRUE;  // use MC info
-Bool_t      kIsMC               = kTRUE;  // is MC info, if false it overwrites Use(AOD)MC
+Bool_t      kUseMC              = kFALSE;  // use MC info
+Bool_t      kIsMC               = kFALSE;  // is MC info, if false it overwrites Use(AOD)MC
 Bool_t      kUseESDTags         = kTRUE; // use ESD tags for selection
 Bool_t      kUseTR              = kFALSE;  // use track references
 
 // ### Analysis modules to be included. Some may not be yet fully implemented.
 //==============================================================================
-Int_t       iHMPID             = 1;      // Basic HMPID analysis task
+Int_t       iHMPID             = 0;      // Basic HMPID analysis task
+Int_t       iHMPIDperf         = 1;      // Basic HMPID performance task
 Int_t       iJETAN             = 0;      // Jet analysis (PWG4) // 1 write standard 2 write non-standard jets
 Int_t       iJETANLib          = 0;
 Int_t       kHighPtFilterMask  = 16;     // change depending on the used AOD Filter
@@ -69,23 +71,23 @@ Int_t       kProofOffset = 0;
 //== grid plugin setup variables
 Bool_t      kPluginUse         = kTRUE;   // do not change
 Bool_t      kPluginUseProductionMode  = kFALSE;   // use the plugin in production mode
-TString     kPluginRootVersion       = "v5-27-06b";  // *CHANGE ME IF MORE RECENT IN GRID*
-TString     kPluginAliRootVersion    = "v4-21-05-AN";  // *CHANGE ME IF MORE RECENT IN GRID*                                          
+TString     kPluginRootVersion       = "v5-28-00d";  // *CHANGE ME IF MORE RECENT IN GRID*
+TString     kPluginAliRootVersion    = "v4-21-25-AN";  // *CHANGE ME IF MORE RECENT IN GRID*                                          
 Bool_t      kPluginMergeViaJDL       = kTRUE;  // merge via JDL
 Bool_t      kPluginFastReadOption    = kFALSE;  // use xrootd flags to reduce timeouts
 Bool_t      kPluginOverwriteMode     = kTRUE;  // overwrite existing collections
 Int_t       kPluginOutputToRunNumber = 1;     // write the output to subdirs named after run number
-TString kPluginExecutableCommand = "root -b -q";
+TString kPluginExecutableCommand = "aliroot -b -q";
 
 // == grid plugin input and output variables
-TString     kGridDatadir      = "/alice/sim/LHC10d4a";
+TString     kGridDatadir      = "/alice/data/2010/LHC10e";
 TString     kGridLocalRunList = "";
 TString     kGridWorkDir      = "HmpidAnalysis/LHC10d4a";   // Alien working directory
 TString     kGridOutdir       = ""; // AliEn output directory. If blank will become output_<kTrainName>
 TString     kGridDataSet      = ""; // sub working directory not to confuse different run xmls 
-Int_t       kGridRunRange[2]       = {120820, 120820}; // Set the run range
+Int_t       kGridRunRange[2]       = {128260,128260}; // Set the run range
 TString     kGridRunPattern        = "%03d"; // important for leading zeroes!!
-TString     kGridPassPattern       = "";
+TString     kGridPassPattern       = "/ESDs/pass2";
 TString     kGridExtraFiles        = ""; // files that will be added to the input list in the JDL...
 Int_t       kGridMaxMergeFiles      = 12; // Number of files merged in a chunk grid run range
 TString     kGridMergeExclude       = "AliAOD.root"; // Files that should not be merged
@@ -178,7 +180,7 @@ void AnalysisTrainHMPID(const char *analysis_mode="local", const char *plugin_mo
    // ESD input handler
    AliESDInputHandler *esdHandler = new AliESDInputHandler();
    if (kUseESDTags) esdHandler->SetReadTags();
-   esdHandler->SetReadFriends(kFALSE);
+   esdHandler->SetReadFriends(kTRUE);
    mgr->SetInputEventHandler(esdHandler);       
 
    // Monte Carlo handler
@@ -225,6 +227,12 @@ void AnalysisTrainHMPID(const char *analysis_mode="local", const char *plugin_mo
      gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
      AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kIsMC,kTRUE,kTRUE); // last flag also adds information on  
    }
+   
+   if(iCentrality){
+     gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
+     AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
+     taskCentrality->SetPass(2); // remember to set the pass you are processing!!!   
+   }     
 
    if (iESDfilter) {
       //  ESD filter task configuration.
@@ -248,9 +256,15 @@ void AnalysisTrainHMPID(const char *analysis_mode="local", const char *plugin_mo
    if(iHMPID){
      gROOT->LoadMacro("$ALICE_ROOT/HMPID/AddTaskHMPID.C");
      AliHMPIDAnalysisTask *taskHmpid = AddTaskHMPID(kUseMC);
-     if (!taskHmpid) ::Warning("AnalysisTrainHMPID", "AliAnalysisTaskHMPID cannot run for this train conditions - EXCLUDED");
+     if (!taskHmpid) ::Warning("AnalysisTrainHMPID", "AliHMPIDAnalysisTask cannot run for this train conditions - EXCLUDED");
    }
-
+   
+   if(iHMPIDperf){
+     gROOT->LoadMacro("$ALICE_ROOT/HMPID/AddTaskHMPIDPerformance.C");
+     AliHMPIDPerformanceTask *taskHmpidPerformance = AddTaskHMPIDPerformance(kUseMC);
+     if (!taskHmpidPerformance) ::Warning("AnalysisTrainHMPID", "AliHMPIDPerformanceTask cannot run for this train conditions - EXCLUDED");
+   }
+      
    if (kPluginUse) {
       AliAnalysisGrid *alienHandler = CreateAlienHandler(plugin_mode);
       AliAnalysisManager::GetAnalysisManager()->SetGridHandler(alienHandler);
@@ -537,6 +551,10 @@ Bool_t LoadAnalysisLibraries(const char *mode)
    if(iHMPID){
      if (!LoadSource(Form("%s/HMPID/AliHMPIDAnalysisTask.cxx",gSystem->ExpandPathName("$ALICE_ROOT")), mode, kTRUE))return kFALSE;
    }
+   
+   if(iHMPIDperf){
+     if (!LoadSource(Form("%s/HMPID/AliHMPIDPerformanceTask.cxx",gSystem->ExpandPathName("$ALICE_ROOT")), mode, kTRUE))return kFALSE;
+   }   
 
    if (iJETANLib) {
      if (!LoadLibrary("JETAN", mode, kTRUE)) return kFALSE;
@@ -804,6 +822,7 @@ AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode)
 // Set data search pattern
    plugin->SetDataPattern(Form(" %s/*/*ESDs.root",kGridPassPattern.Data()));
 // ...then add run numbers to be considered
+   plugin->SetRunPrefix("000"); // if real data
    plugin->SetRunRange(kGridRunRange[0], kGridRunRange[1]);
 
    if(kGridLocalRunList.Length()>0){