]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_oezdemir_LOWMASS.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_oezdemir_LOWMASS.C
1 AliAnalysisTask *AddTask_oezdemir_LOWMASS(Bool_t getFromAlien=kFALSE){
2
3
4   //get the current analysis manager
5   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6   if (!mgr) {
7     Error("AddTask_oezdemir_LOWMASS", "No analysis manager found.");
8     return 0;
9   }
10
11 //Get the current train configuration
12   TString trainConfig=gSystem->Getenv("CONFIG_FILE");
13   TString configBasePath("$TRAIN_ROOT/oezdemir_LOWMASS/");
14   TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
15   if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
16
17   if (getFromAlien &&
18       (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLowMassDiEOezdemir.C"))
19      ) {
20         configBasePath=Form("%s/",gSystem->pwd());
21   }
22
23   TString configFile("ConfigLowMassDiEOezdemir.C");
24
25   TString configFilePath(configBasePath+configFile);
26
27   //Do we have an MC handler?
28   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
29   
30   
31   //create task and add it to the manager
32   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
33   if (!hasMC) task->UsePhysicsSelection();
34
35 //Add event filter
36 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
37 eventCuts->SetRequireVertex();
38 eventCuts->SetVertexZ(-10.,10.);
39 eventCuts->SetMinVtxContributors(1);
40
41   task->SetEventFilter(eventCuts);
42   //2010/2011   Min Bias?
43   task->SetTriggerMask(AliVEvent::kINT7+AliVEvent::kMB+AliVEvent::kINT8);
44
45   mgr->AddTask(task);
46
47
48   //load dielectron configuration file
49   gROOT->LoadMacro(configFilePath.Data());
50
51   //If MC available decide which pdg codes are tested:
52
53   AliDielectron *lowmass0=ConfigLowMassDiEOezdemir(0,hasMC);
54   task->AddDielectron(lowmass0);
55   printf("add: %s\n",lowmass0->GetName());
56
57         //create output container
58   AliAnalysisDataContainer *coutput1 =
59     mgr->CreateContainer("oezdemir_LOWMASS_tree",
60                          TTree::Class(),
61                          AliAnalysisManager::kExchangeContainer,
62                          "LMEEoutput.root");
63   
64   AliAnalysisDataContainer *cOutputHist1 =
65     mgr->CreateContainer("oezdemir_LOWMASS_out",
66                          TList::Class(),
67                          AliAnalysisManager::kOutputContainer,
68                          "LMEEoutput.root");
69
70   AliAnalysisDataContainer *cOutputHist2 =
71     mgr->CreateContainer("oezdemir_LOWMASS_CF",
72                          TList::Class(),
73                          AliAnalysisManager::kOutputContainer,
74                          "LMEEoutput.root");
75 //                         "oezdemir_LOWMASS_CF.root");
76
77   AliAnalysisDataContainer *cOutputHist3 =
78     mgr->CreateContainer("oezdemir_EventStat",
79                          TH1D::Class(),
80                          AliAnalysisManager::kOutputContainer,
81                          "LMEEoutput.root");
82
83   
84   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
85   mgr->ConnectOutput(task, 0, coutput1 );
86   mgr->ConnectOutput(task, 1, cOutputHist1);
87   mgr->ConnectOutput(task, 2, cOutputHist2);
88   mgr->ConnectOutput(task, 3, cOutputHist3);
89
90   return task;
91 }