]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_tbroeker_lowmasspPb.C
Updated AddTask for pPb
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_tbroeker_lowmasspPb.C
1 AliAnalysisTask *AddTask_tbroeker_lowmasspPb(Bool_t getFromAlien=kFALSE){
2
3
4   //get the current analysis manager
5   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6   if (!mgr) {
7     Error("AddTask_lowmass", "No analysis manager found.");
8     return 0;
9   }
10
11   //Do we have an MC handler?
12   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
13
14   //Get the current train configuration
15   
16   //Directories for GSI train: 
17 //        TString configBasePath("$TRAIN_ROOT/tbroeker_dca_broken/");
18
19   TString configBasePath("$TRAIN_ROOT/tbroeker_dca/");
20   TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
21
22   //Base Directory for GRID / LEGO Train
23   if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
24
25
26
27   if (getFromAlien &&
28       (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/t/tbroker/PWGDQ/dielectron/macrosLMEE/Config_lowmasspPb.C .")) 
29      ) {
30         configBasePath=Form("%s/",gSystem->pwd());
31   }
32
33
34
35
36   TString configFile("Config_lowmasspPb.C");
37 //  TString configFile("CutHistConf_lowmasspPb.C");
38
39   TString configFilePath(configBasePath+configFile);
40
41
42   if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
43           gROOT->LoadMacro(configFilePath.Data());
44
45
46   //create task and add it to the manager (MB)
47   AliAnalysisTaskMultiDielectron *taskMB = new AliAnalysisTaskMultiDielectron("MultiDieMB");
48   if (!hasMC) taskMB->UsePhysicsSelection();
49   taskMB->SelectCollisionCandidates(AliVEvent::kMB);
50 //taskMB->SetRejectPileup();
51
52   //Add event filter
53   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
54   eventCuts->SetRequireVertex();
55   eventCuts->SetVertexZ(-10.,10.);
56   eventCuts->SetMinVtxContributors(1);
57
58   taskMB->SetEventFilter(eventCuts);
59   mgr->AddTask(taskMB);
60
61
62   //add dielectron analysis with different cuts to the task
63   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
64     //MB
65     AliDielectron *diel_lowMB = Config_lowmasspPb(i);
66     if(!diel_lowMB)continue;
67     diel_lowMB->SetNoPairing(kFALSE);
68     taskMB->AddDielectron(diel_lowMB);
69
70   }//loop
71
72   //create output container
73   AliAnalysisDataContainer *coutput1 =
74     mgr->CreateContainer("tree_lowmass",
75                          TTree::Class(),
76                          AliAnalysisManager::kExchangeContainer,
77                          "default");
78   
79   AliAnalysisDataContainer *cOutputHist1 =
80     mgr->CreateContainer("Histos_diel_lowmass",
81                          TList::Class(),
82                          AliAnalysisManager::kOutputContainer,
83                          "tbroeker_lowmass.root");
84
85   AliAnalysisDataContainer *cOutputHist2 =
86     mgr->CreateContainer("CF_diel_lowmass",
87                          TList::Class(),
88                          AliAnalysisManager::kOutputContainer,
89                          "tbroeker_lowmass.root");
90
91   AliAnalysisDataContainer *cOutputHist3 =
92     mgr->CreateContainer("tbroeker_lowmass_EventStat",
93                          TList::Class(),
94                          AliAnalysisManager::kOutputContainer,
95                          "tbroeker_lowmass.root");
96
97   mgr->ConnectInput(taskMB,  0, mgr->GetCommonInputContainer());
98   mgr->ConnectOutput(taskMB, 0, coutput1 );
99   mgr->ConnectOutput(taskMB, 1, cOutputHist1);
100   mgr->ConnectOutput(taskMB, 2, cOutputHist2);
101   mgr->ConnectOutput(taskMB, 3, cOutputHist3);
102   
103
104
105     return taskMB;
106
107 }