]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/macros/AddTaskUE.C
Corrected call of output container for proper runnning in the PWG4 train.
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskUE.C
index 7025006d5a8788778eeb42218d4bf0192acb916e..f58c79a87e540f2cf9f82a2e99919ad6a8774270 100644 (file)
@@ -1,7 +1,12 @@
 \r
-void ConfigTaskUE(AliAnalysisTaskUE * ueana); // common config, extend with different cases\r
-                  \r
-AliAnalysisTaskUE *AddTaskUE(char *jetBranch = "")\r
+\r
+void ConfigTaskUE(AliAnalysisTaskUE * ueana );          // common config, extend with different cases\r
+void SetTrackCuts(AliAnalysisTaskUE * ueana, Char_t *ct);      //can be extended\r
+void SetAnaTopology(AliAnalysisTaskUE * ueana, Char_t *at);    //can be extended                  \r
+void SetRegionType(AliAnalysisTaskUE * ueana, Char_t *rt);     //can be extended        \r
+void SetSorting(AliAnalysisTaskUE * ueana, Char_t *sort);\r
+\r
+AliAnalysisTaskUE *AddTaskUE(Char_t *jetBranch = "jets",Char_t *cuts = "ALICE", Char_t *anaTopology="LJ", Char_t *regionType="TRANSV", Char_t *sortBy="MSP")\r
 {\r
 // Creates a jet fider task, configures it and adds it to the analysis manager.\r
 \r
@@ -23,15 +28,33 @@ AliAnalysisTaskUE *AddTaskUE(char *jetBranch = "")
    // Create the task and configure it.\r
    //===========================================================================\r
    \r
-   AliAnalysisTaskUE* ueana = new  AliAnalysisTaskUE("Underlying Event");\r
+   TString jb(jetBranch);\r
+   TString ct(cuts);\r
+   TString at(anaTopology);\r
+   TString rt(regionType);\r
+   TString sort(sortBy);\r
+   TString name(Form("%s_%s_%s_%s_%s",jb.Data(),ct.Data(),at.Data(),rt.Data(),sort.Data()));\r
+   \r
+   AliAnalysisTaskUE* ueana = new  AliAnalysisTaskUE(Form("UEAnalysis_%s",name.Data()));\r
+   ueana->SelectAODBranch(jb.Data());\r
    ConfigTaskUE(ueana);\r
+   SetTrackCuts(ueana,cuts);\r
+   SetAnaTopology(ueana,anaTopology);\r
+   SetRegionType(ueana,regionType);\r
+   SetSorting(ueana,sortBy);\r
 \r
-   TString jb(jetBranch);\r
+   if( jb.Contains("ICDF") ) { // Use internal "Charged Particle Jet CDF" instead of jets from AOD\r
+      ueana->SetUseChPartJet( kTRUE );\r
+      ueana->SetPtMinChPartJet(0.5);\r
+   }\r
 \r
+   //  ***** to be fixed *******\r
+   /*\r
    if(jb.Length()>0){\r
      ueana->ReadDeltaAOD(kTRUE);\r
      ueana->SelectDeltaAODBranch(jb.Data());\r
    }\r
+   */\r
 \r
    mgr->AddTask(ueana);\r
    \r
@@ -40,7 +63,7 @@ AliAnalysisTaskUE *AddTaskUE(char *jetBranch = "")
    //==============================================================================\r
    AliAnalysisDataContainer *coutput1_UE = 0;\r
    if(jb.Length()==0)coutput1_UE = mgr->CreateContainer("histosUE", TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_UE",AliAnalysisManager::GetCommonFileName()));\r
-   else coutput1_UE = mgr->CreateContainer(Form("histosUE_%s",jb.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_UE_%s",AliAnalysisManager::GetCommonFileName(),jb.Data()));\r
+   else coutput1_UE = mgr->CreateContainer(Form("histosUE_%s",name.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWG4_UE_%s",AliAnalysisManager::GetCommonFileName(),name.Data()));\r
    \r
    mgr->ConnectInput  (ueana, 0, mgr->GetCommonInputContainer());\r
    mgr->ConnectOutput (ueana,     0, coutput1_UE );\r
@@ -49,23 +72,121 @@ AliAnalysisTaskUE *AddTaskUE(char *jetBranch = "")
 }\r
 \r
 void ConfigTaskUE(AliAnalysisTaskUE * ueana){\r
-  // common config, extend with different cases\r
-  Int_t anaType =1; \r
-  Int_t regType =1;\r
-  Double_t jetEtaCut=0.2;\r
-  Double_t trackPtCut=0.5; \r
-  Double_t trackEtaCut= 0.9; \r
-  Double_t rad=0.7; \r
-  Double_t deltaPhiCut = 2.616;\r
-  \r
+  // common config,\r
   ueana->SetDebugLevel(0); \r
-  ueana->SetPtRangeInHist(25, 0., 250.);\r
-  ueana->SetAnaTopology(anaType);      \r
-  ueana->SetRegionType(regType);        \r
-  ueana->SetJet1EtaCut(jetEtaCut);     \r
-  ueana->SetTrackPtCut(trackPtCut); \r
-  ueana->SetPtSumOrdering(2);\r
-  ueana->SetConeRadius(rad);   \r
-  ueana->SetTrackEtaCut(trackEtaCut);\r
-  ueana->SetJet2DeltaPhiCut(deltaPhiCut);\r
+  ueana->SetPtRangeInHist(100, 0., 100.);\r
+}\r
+\r
+//------------------------------------------------------------------------\r
+SetTrackCuts(AliAnalysisTaskUE * ueana, Char_t *ct){\r
+  \r
+  ueana->SetFilterBit(16); // ITS refit\r
+\r
+  switch (ct) {\r
+       case "ALICE":\r
+       ueana->SetTrackPtCut(0.1);\r
+       ueana->SetTrackEtaCut(0.9);\r
+       break;\r
+  \r
+       case "CDF":\r
+       ueana->SetTrackPtCut(0.5);\r
+       ueana->SetTrackEtaCut(0.9); // meaningful only for pure MC\r
+       break;\r
+\r
+       default:\r
+       Printf("\n >>>>>>> AddTaskUE Error Wrong Set of Track Cuts selected\n");\r
+       break;\r
+  }\r
+}\r
+\r
+//------------------------------------------------------------------------\r
+//------------------------------------------------------------------------\r
+SetAnaTopology(AliAnalysisTaskUE * ueana, Char_t *at){\r
+\r
+  switch (at) {\r
+       case "LJ":  // leading jet\r
+        ueana->SetAnaTopology(1);\r
+        ueana->SetJet1EtaCut(0.5);\r
+       break;\r
+\r
+       case "LJCC":  // leading jet with charged cluster\r
+        ueana->SetAnaTopology(1);\r
+        ueana->SetJet1EtaCut(0.9);  // CDF allow jet radius extend ouside |eta|<1\r
+       break;\r
+  \r
+       case "BB":  // back-to-back\r
+        ueana->SetAnaTopology(2);\r
+        ueana->SetJet1EtaCut(0.5);\r
+        ueana->SetJet2DeltaPhiCut(2.616);\r
+       break;\r
+\r
+       case "BE":  // back-to-back exclusive\r
+        ueana->SetAnaTopology(3);\r
+        ueana->SetJet1EtaCut(0.5);\r
+        ueana->SetJet2DeltaPhiCut(2.616);\r
+        ueana->SetJet3PtCut(10.);\r
+       break;\r
+\r
+       case "MP_eta05":\r
+        ueana->SetAnaTopology(4);\r
+        ueana->SetJet1EtaCut(0.9);\r
+       break;\r
+\r
+       case "MP_eta09":  // max Pt charged particle\r
+         ueana->SetAnaTopology(4);\r
+         ueana->SetJet1EtaCut(0.9);\r
+       break;\r
+\r
+\r
+       default:\r
+       Printf("\n >>>>>>> AddTaskUE Error Wrong Analysis Topology selected\n");\r
+       break;\r
+  }\r
+\r
+}\r
+\r
+//------------------------------------------------------------------------\r
+SetRegionType(AliAnalysisTaskUE * ueana, Char_t *rt){\r
+\r
+  switch (rt) {\r
+       case "TRANSV":  \r
+        ueana->SetRegionType(1);        \r
+       break;\r
+  \r
+       case "CONE":\r
+        ueana->SetRegionType(2);        \r
+        ueana->SetConeRadius(0.4);   \r
+       break;\r
+\r
+       default:\r
+       Printf("\n >>>>>>> AddTaskUE Error Wrong Region Type selected\n");\r
+       break;\r
+  }\r
+}  \r
+\r
+//------------------------------------------------------------------------\r
+SetSorting(AliAnalysisTaskUE * ueana, Char_t *sort){\r
+   \r
+   switch (sort){\r
+      // Minimum zone is selected per quantity type\r
+      case "MQA":\r
+       ueana->SetPtSumOrdering(1);             \r
+      break;\r
+      \r
+      // Minimum Zone is selected at the region having lowest pt summation of all tracks \r
+      case "MSP":\r
+       ueana->SetPtSumOrdering(2);\r
+      break;\r
+      \r
+      // Minimum Zone is selected at the region having lowest average pt per track\r
+      case "MAP":\r
+       ueana->SetPtSumOrdering(3);\r
+      break;\r
+      \r
+      default:\r
+       Printf("\n >>>>>>> AddTaskUE Error Wrong Sorting selected\n");     \r
+       Printf("\n >>>>>>> AddTaskUE Sort by Set to MSP \n");\r
+       ueana->SetPtSumOrdering(2);\r
+      break;\r
+   }\r
 }\r