]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
TRD trig. analysis
authortgunji <tgunji@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Oct 2013 08:54:55 +0000 (08:54 +0000)
committertgunji <tgunji@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Oct 2013 08:54:55 +0000 (08:54 +0000)
PWGDQ/dielectron/macrosLMEE/AddTask_shin_pPbTRD.C [new file with mode: 0644]

diff --git a/PWGDQ/dielectron/macrosLMEE/AddTask_shin_pPbTRD.C b/PWGDQ/dielectron/macrosLMEE/AddTask_shin_pPbTRD.C
new file mode 100644 (file)
index 0000000..0b35154
--- /dev/null
@@ -0,0 +1,91 @@
+AliAnalysisTask *AddTask_shin_pPbTRD(){\r
+  //get the current analysis manager\r
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
+  if (!mgr) {\r
+    Error("AddTask_sweber_JPsi_pPb_TRDtrigger", "No analysis manager found.");\r
+    return 0;\r
+  }\r
+\r
+\r
+  //Do we have an MC handler?\r
+  Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);\r
+  \r
+  //Get the current train configuration\r
+  //  TString trainConfig=gSystem->Getenv("CONFIG_FILE");\r
+  \r
+  //set config file name\r
+  TString configBasePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/");\r
+  TString configFile("Config_shin_pPbTRD.C");\r
+  TString configFilePath(configBasePath+configFile);\r
+\r
+\r
+\r
+\r
+  // TString list=gSystem->Getenv("LIST");\r
+  //create task and add it to the manager\r
+  AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieDataTRDtrigger");\r
+  if (!hasMC ) task->UsePhysicsSelection();//taking out for testing\r
+  task->SetTriggerMask(AliVEvent::kTRD); \r
+  task->SetFiredTriggerName("CINT7WUHJT-B-NOPF-CENT",kTRUE);\r
+  //task->SetTRDtrigger(3);\r
+  //  task->SetFiredTriggerName("HQU",kFALSE);//take not kTRUE in order not to get both triggers, exclude (since not yet otherwise possible)\r
+  //\r
+  //not yet implemented to get a logical or of 2 different trigger classes, therefore exclude HJT, not exactly what I want...  \r
+  //   if (list.Contains("LHC11d")) task->SetTriggerMask(AliVEvent::kEMCEJE+AliVEvent::kEMC7+AliVEvent::kEMCEGA);\r
+  //if (list.Contains("LHC12h")) task->SetTRDtrigger(1+2);\r
+  mgr->AddTask(task);\r
+\r
+  \r
+  //load dielectron configuration file\r
+  gROOT->LoadMacro(configFilePath.Data());\r
+  \r
+  //add dielectron analysis with different cuts to the task\r
+   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file\r
+    AliDielectron *dile=Config_shin_pPbTRD(i);\r
+    if (!dile) continue;\r
+    task->AddDielectron(dile);\r
+  }\r
+  \r
+  //Add event filter\r
+  AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");\r
+  eventCuts->SetRequireVertex();//NOTE: all of these cuts can for some reasons not be applied to self-filtered AODs by mwinn in \r
+  //(list/hera/alice/mwinn/mwinn/train/lists/...)\r
+  eventCuts->SetMinVtxContributors(1);\r
+  eventCuts->SetVertexZ(-10.,10.);\r
+  task->SetEventFilter(eventCuts);\r
+\r
+  \r
+  //create output container\r
+  TString containerName = "hayashi_lowmass.root";\r
+  AliAnalysisDataContainer *coutput1 =\r
+    mgr->CreateContainer("tree_lowmass",\r
+                         TTree::Class(),\r
+                         AliAnalysisManager::kExchangeContainer,\r
+                         containerName.Data());\r
+  \r
+  AliAnalysisDataContainer *cOutputHist1 =\r
+    mgr->CreateContainer("Histos_diel_lowmass",\r
+                         TList::Class(),\r
+                         AliAnalysisManager::kOutputContainer,\r
+                         containerName.Data());\r
+\r
+  AliAnalysisDataContainer *cOutputHist2 =\r
+    mgr->CreateContainer("CF_diel_lowmass",\r
+                         TList::Class(),\r
+                         AliAnalysisManager::kOutputContainer,\r
+                         containerName.Data());\r
+  \r
+  AliAnalysisDataContainer *cOutputHist3 =\r
+    mgr->CreateContainer("sweber_EventStat",\r
+                         TH1D::Class(),\r
+                         AliAnalysisManager::kOutputContainer,\r
+                         containerName.Data());\r
+  \r
+  mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());\r
+  mgr->ConnectOutput(task, 0, coutput1 );\r
+  mgr->ConnectOutput(task, 1, cOutputHist1);\r
+  mgr->ConnectOutput(task, 2, cOutputHist2);\r
+  mgr->ConnectOutput(task, 3, cOutputHist3);\r
+  \r
+  return task;\r
+}\r