]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_shin_pPbTRD.C
TRD trig. analysis
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_shin_pPbTRD.C
1 AliAnalysisTask *AddTask_shin_pPbTRD(){\r
2   //get the current analysis manager\r
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
4   if (!mgr) {\r
5     Error("AddTask_sweber_JPsi_pPb_TRDtrigger", "No analysis manager found.");\r
6     return 0;\r
7   }\r
8 \r
9 \r
10   //Do we have an MC handler?\r
11   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);\r
12   \r
13   //Get the current train configuration\r
14   //  TString trainConfig=gSystem->Getenv("CONFIG_FILE");\r
15   \r
16   //set config file name\r
17   TString configBasePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/");\r
18   TString configFile("Config_shin_pPbTRD.C");\r
19   TString configFilePath(configBasePath+configFile);\r
20 \r
21 \r
22 \r
23 \r
24   // TString list=gSystem->Getenv("LIST");\r
25   //create task and add it to the manager\r
26   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieDataTRDtrigger");\r
27   if (!hasMC ) task->UsePhysicsSelection();//taking out for testing\r
28   task->SetTriggerMask(AliVEvent::kTRD); \r
29   task->SetFiredTriggerName("CINT7WUHJT-B-NOPF-CENT",kTRUE);\r
30   //task->SetTRDtrigger(3);\r
31   //  task->SetFiredTriggerName("HQU",kFALSE);//take not kTRUE in order not to get both triggers, exclude (since not yet otherwise possible)\r
32   //\r
33   //not yet implemented to get a logical or of 2 different trigger classes, therefore exclude HJT, not exactly what I want...   \r
34   //   if (list.Contains("LHC11d")) task->SetTriggerMask(AliVEvent::kEMCEJE+AliVEvent::kEMC7+AliVEvent::kEMCEGA);\r
35   //if (list.Contains("LHC12h")) task->SetTRDtrigger(1+2);\r
36   mgr->AddTask(task);\r
37 \r
38   \r
39   //load dielectron configuration file\r
40   gROOT->LoadMacro(configFilePath.Data());\r
41   \r
42   //add dielectron analysis with different cuts to the task\r
43    for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file\r
44     AliDielectron *dile=Config_shin_pPbTRD(i);\r
45     if (!dile) continue;\r
46     task->AddDielectron(dile);\r
47   }\r
48   \r
49   //Add event filter\r
50   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");\r
51   eventCuts->SetRequireVertex();//NOTE: all of these cuts can for some reasons not be applied to self-filtered AODs by mwinn in \r
52   //(list/hera/alice/mwinn/mwinn/train/lists/...)\r
53   eventCuts->SetMinVtxContributors(1);\r
54   eventCuts->SetVertexZ(-10.,10.);\r
55   task->SetEventFilter(eventCuts);\r
56 \r
57   \r
58   //create output container\r
59   TString containerName = "hayashi_lowmass.root";\r
60   AliAnalysisDataContainer *coutput1 =\r
61     mgr->CreateContainer("tree_lowmass",\r
62                          TTree::Class(),\r
63                          AliAnalysisManager::kExchangeContainer,\r
64                          containerName.Data());\r
65   \r
66   AliAnalysisDataContainer *cOutputHist1 =\r
67     mgr->CreateContainer("Histos_diel_lowmass",\r
68                          TList::Class(),\r
69                          AliAnalysisManager::kOutputContainer,\r
70                          containerName.Data());\r
71 \r
72   AliAnalysisDataContainer *cOutputHist2 =\r
73     mgr->CreateContainer("CF_diel_lowmass",\r
74                          TList::Class(),\r
75                          AliAnalysisManager::kOutputContainer,\r
76                          containerName.Data());\r
77   \r
78   AliAnalysisDataContainer *cOutputHist3 =\r
79     mgr->CreateContainer("sweber_EventStat",\r
80                          TH1D::Class(),\r
81                          AliAnalysisManager::kOutputContainer,\r
82                          containerName.Data());\r
83   \r
84   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());\r
85   mgr->ConnectOutput(task, 0, coutput1 );\r
86   mgr->ConnectOutput(task, 1, cOutputHist1);\r
87   mgr->ConnectOutput(task, 2, cOutputHist2);\r
88   mgr->ConnectOutput(task, 3, cOutputHist3);\r
89   \r
90   return task;\r
91 }\r