]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_tbroeker_lowmasspPb.C
update from pr task : sjena
[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->SelectCollisionCandidates(AliVEvent::kINT7); //kINT7
51   taskMB->SetTriggerMask(AliVEvent::kINT7);
52 //taskMB->SetRejectPileup();
53
54   //Add event filter
55   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
56   eventCuts->SetRequireVertex();
57   eventCuts->SetVertexZ(-10.,10.);
58   eventCuts->SetMinVtxContributors(1);
59
60   taskMB->SetEventFilter(eventCuts);
61   mgr->AddTask(taskMB);
62
63
64   //add dielectron analysis with different cuts to the task
65   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
66     //MB
67     AliDielectron *diel_lowMB = Config_lowmasspPb(i);
68     if(!diel_lowMB)continue;
69     diel_lowMB->SetNoPairing(kFALSE);
70     taskMB->AddDielectron(diel_lowMB);
71
72   }//loop
73
74   //create output container
75   AliAnalysisDataContainer *coutput1 =
76     mgr->CreateContainer("tree_lowmass",
77                          TTree::Class(),
78                          AliAnalysisManager::kExchangeContainer,
79                          "default");
80   
81   AliAnalysisDataContainer *cOutputHist1 =
82     mgr->CreateContainer("Histos_diel_lowmass",
83                          TList::Class(),
84                          AliAnalysisManager::kOutputContainer,
85                          "LMEEoutput.root");
86
87   AliAnalysisDataContainer *cOutputHist2 =
88     mgr->CreateContainer("CF_diel_lowmass",
89                          TList::Class(),
90                          AliAnalysisManager::kOutputContainer,
91                          "LMEEoutput.root");
92
93   AliAnalysisDataContainer *cOutputHist3 =
94     mgr->CreateContainer("tbroeker_lowmass_EventStat",
95                          TList::Class(),
96                          AliAnalysisManager::kOutputContainer,
97                          "LMEEoutput.root");
98
99   mgr->ConnectInput(taskMB,  0, mgr->GetCommonInputContainer());
100   mgr->ConnectOutput(taskMB, 0, coutput1 );
101   mgr->ConnectOutput(taskMB, 1, cOutputHist1);
102   mgr->ConnectOutput(taskMB, 2, cOutputHist2);
103   mgr->ConnectOutput(taskMB, 3, cOutputHist3);
104   
105
106
107     return taskMB;
108
109 }