]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/macros/AddTaskUE.C
- new clesses added
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskUE.C
index c623f406e7fa0bac44b9679e567bcd83e5e07ac1..f58c79a87e540f2cf9f82a2e99919ad6a8774270 100644 (file)
@@ -1,7 +1,12 @@
 \r
-void ConfigTaskUE(AliAnalysisTaskUE * ueana); // common config, extend with different cases\r
-                  \r
-AliAnalysisTaskUE *AddTaskUE()\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,14 +28,42 @@ AliAnalysisTaskUE *AddTaskUE()
    // 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
+   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
    // Create ONLY the output containers for the data produced by the task.\r
    // Get and connect other common input/output containers via the manager as below\r
    //==============================================================================\r
-   AliAnalysisDataContainer *coutput1_UE = mgr->CreateContainer("histosUE", TList::Class(),AliAnalysisManager::kOutputContainer,"pwg4UE.root");\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",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
@@ -38,60 +71,122 @@ AliAnalysisTaskUE *AddTaskUE()
    return ueana;\r
 }\r
 \r
-AliAnalysisTaskUE *AddTaskUE(AliAnalysisManager* mgr,AliAnalysisDataContainer *cinput)\r
-{\r
-  // This is only for running on PROOF with the old root version 5-22-00 \r
-  // and the older version of the AF\r
+void ConfigTaskUE(AliAnalysisTaskUE * ueana){\r
+  // common config,\r
+  ueana->SetDebugLevel(0); \r
+  ueana->SetPtRangeInHist(100, 0., 100.);\r
+}\r
 \r
-   // Get the pointer to the existing analysis manager via the static access method.\r
-   //==============================================================================\r
-   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
-   if (!mgr) {\r
-      ::Error("AddTaskJets", "No analysis manager to connect to.");\r
-      return NULL;\r
-   }  \r
-   \r
-   // Check the analysis type using the event handlers connected to the analysis manager.\r
-   //==============================================================================\r
-   if (!mgr->GetInputEventHandler()) {\r
-      ::Error("AddTaskUE", "This task requires an input event handler");\r
-      return NULL;\r
-   }\r
+//------------------------------------------------------------------------\r
+SetTrackCuts(AliAnalysisTaskUE * ueana, Char_t *ct){\r
+  \r
+  ueana->SetFilterBit(16); // ITS refit\r
 \r
-   // Create the task and configure it.\r
-   //===========================================================================\r
\r
-   AliAnalysisTaskUE* ueana = new  AliAnalysisTaskUE("Underlying Event");\r
-   ConfigTaskUE(ueana);\r
-   \r
-   AliAnalysisDataContainer *coutput1_UE = mgr->CreateContainer("histosUE", TList::Class(),AliAnalysisManager::kOutputContainer,"pwg4UE.root");\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
-   mgr->ConnectInput  (ueana,  0, cinput);    \r
-   mgr->ConnectOutput (ueana,     0, coutput1_UE );\r
-   \r
-   return ueana;\r
+       default:\r
+       Printf("\n >>>>>>> AddTaskUE Error Wrong Set of Track Cuts selected\n");\r
+       break;\r
+  }\r
+}\r
 \r
-}  \r
+//------------------------------------------------------------------------\r
+//------------------------------------------------------------------------\r
+SetAnaTopology(AliAnalysisTaskUE * ueana, Char_t *at){\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
+  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
-  ueana->SetDebugLevel(10); \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
+       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