]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_Asako_LMEEPbPb2011AODSemi1.C
update from Asako's tasks
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_Asako_LMEEPbPb2011AODSemi1.C
1 AliAnalysisTask *AddTask_Asako_LMEEPbPb2011AODSemi1(Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE){\r
2 \r
3   Bool_t bESDANA=kFALSE; //Autodetect via InputHandler\r
4   //get the current analysis manager\r
5   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
6   if (!mgr) {\r
7         Error("AddTask_Asako_LMEEPbPb2011AODSemi1", "No analysis manager found.");\r
8         return 0;\r
9   }\r
10 \r
11 \r
12 //  create task and add it to the manager\r
13 //      gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");\r
14 \r
15 \r
16   TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");\r
17   TString trainRoot=gSystem->Getenv("TRAIN_ROOT");\r
18 \r
19       if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";\r
20           // if (trainRoot.IsNull()) configBasePath= "/home/tsuji/nfs/AliceAna/pol2/Semi1/";\r
21 \r
22   if (getFromAlien &&\r
23       (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigAsakoLMEEPbPb2011AOD.C .")) &&\r
24       (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAsako.C ."))\r
25      ) {\r
26         configBasePath=Form("%s/",gSystem->pwd());\r
27   }\r
28 \r
29   TString configFile("ConfigAsakoLMEEPbPb2011AOD.C");\r
30   TString configLMEECutLib("LMEECutLibAsako.C");\r
31 \r
32   TString configFilePath(configBasePath+configFile);\r
33   TString configLMEECutLibPath(configBasePath+configLMEECutLib);\r
34 \r
35   //AOD Usage currently tested with separate task, to be merged\r
36   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){\r
37         ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");\r
38   }\r
39   else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){\r
40         ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");\r
41         bESDANA=kTRUE;\r
42   }\r
43 \r
44 \r
45   //Do we have an MC handler?\r
46   Bool_t hasMC=setMC;\r
47   if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)\r
48         hasMC=kTRUE;\r
49 \r
50 \r
51 \r
52   if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))\r
53         gROOT->LoadMacro(configLMEECutLibPath.Data());\r
54   if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))\r
55         gROOT->LoadMacro(configFilePath.Data());\r
56 \r
57 \r
58   LMEECutLibAsako* cutlib = new LMEECutLibAsako();\r
59   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");\r
60   if (!hasMC) task->UsePhysicsSelection();\r
61   task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);\r
62 //  task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);\r
63 //  task->SetRejectPileup();\r
64   task->SelectCollisionCandidates(AliVEvent::kAny);  \r
65   task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibAsako::kPbPb2011TPCandTOF)); //\r
66         \r
67 \r
68   //load dielectron configuration file\r
69 \r
70   //add dielectron analysis with different cuts to the task\r
71 \r
72   \r
73   AliDielectron *lowmass2=ConfigAsakoLMEEPbPb2011AOD(2,hasMC,bESDANA);\r
74   task->AddDielectron(lowmass2);\r
75   printf("add: %s\n",lowmass2->GetName());\r
76   \r
77    AliDielectron *lowmass6=ConfigAsakoLMEEPbPb2011AOD(6,hasMC,bESDANA);\r
78    task->AddDielectron(lowmass6);\r
79    printf("add: %s\n",lowmass6->GetName());\r
80   \r
81   \r
82   AliDielectron *lowmass10=ConfigAsakoLMEEPbPb2011AOD(10,hasMC,bESDANA);\r
83   task->AddDielectron(lowmass10);\r
84   printf("add: %s\n",lowmass10->GetName());\r
85   \r
86 \r
87   mgr->AddTask(task);\r
88 \r
89   //create output container\r
90   AliAnalysisDataContainer *coutput1 =\r
91         mgr->CreateContainer("asako_LMEEPbPb2011Semi1_tree",\r
92                 TTree::Class(),\r
93                 AliAnalysisManager::kExchangeContainer,\r
94                 "LMEEoutput.root");\r
95 \r
96   AliAnalysisDataContainer *cOutputHist1 =\r
97         mgr->CreateContainer("asako_LMEEPbPb2011Semi1_out",\r
98                 TList::Class(),\r
99                 AliAnalysisManager::kOutputContainer,\r
100                 "LMEEoutput.root");\r
101 \r
102   /*  AliAnalysisDataContainer *cOutputHist2 =\r
103           mgr->CreateContainer("cbaumann_lowmass_CF",\r
104           TList::Class(),\r
105           AliAnalysisManager::kOutputContainer,\r
106           "cbaumann_lowmass_CF.root");\r
107           */\r
108   AliAnalysisDataContainer *cOutputHist2 =\r
109         mgr->CreateContainer("asako_LMEEPbPb2011Semi1_CF",\r
110                 TList::Class(),\r
111                 AliAnalysisManager::kOutputContainer,\r
112                 "LMEEoutput.root");\r
113 \r
114   AliAnalysisDataContainer *cOutputHist3 =\r
115         mgr->CreateContainer("asako_EventStatPbPb2011Semi1",\r
116                 TH1D::Class(),\r
117                 AliAnalysisManager::kOutputContainer,\r
118                 "LMEEoutput.root");\r
119 \r
120 \r
121   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());\r
122   mgr->ConnectOutput(task, 0, coutput1 );\r
123   mgr->ConnectOutput(task, 1, cOutputHist1);\r
124   mgr->ConnectOutput(task, 2, cOutputHist2);\r
125   mgr->ConnectOutput(task, 3, cOutputHist3);\r
126 \r
127   return task;\r
128 }\r