]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosJPSI/AddTask_mfigueredo_JPsi.C
-updates by marcel
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_mfigueredo_JPsi.C
1 AliAnalysisTask *AddTask_mfigueredo_JPsi(){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     ::Error("AddTask_mfigueredo_JPsi", "No analysis manager found.");
6     return NULL;
7   }
8   if (!mgr->GetInputEventHandler()) {
9     ::Error("AddTask_mfigueredo_JPsi", "This task requires an input event handler");
10     return NULL;
11   }
12
13      
14     //Do we have an MC handler?
15   Bool_t hasMC = kFALSE;
16   TString list = gSystem->Getenv("LIST");
17   //if( list.IsNull()) list=prod;
18   if( list.Contains("LHC10h")   || list.Contains("LHC11h")   ) hasMC=kFALSE;
19   if( list.Contains("LHC11a10") || list.Contains("LHC12a17") ) hasMC=kTRUE;
20   
21   TString configFile("");
22   printf("%s \n",gSystem->pwd());
23   
24
25   if(!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/m/mfiguere/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mf_PbPb.C ."))
26     configFile=Form("%s/ConfigJpsi_mf_PbPb.C",gSystem->pwd());                        // alien config                                                                                            
27   else
28     configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mf_PbPb.C"; // aliroot config                                               
29   
30   Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
31
32   //create task and add it to the manager
33   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDie");
34   mgr->AddTask(task);
35   
36   //load dielectron configuration file
37   TString checkconfig="ConfigJpsi_mf_pp";
38   if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
39     gROOT->LoadMacro(configFile.Data());
40   
41   //add dielectron analysis with different cuts to the task
42   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
43     AliDielectron *jpsi; 
44     jpsi=ConfigJpsi_mf_PbPb(i,isAOD);
45     if (jpsi) task->AddDielectron(jpsi);
46   }
47
48   //Add event filter
49   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
50   if(isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
51   eventCuts->SetRequireVertex();
52   eventCuts->SetMinVtxContributors(1);
53   eventCuts->SetVertexZ(-10.,10.);
54   eventCuts->SetCentralityRange(0.0,90.0);
55   // add event filter
56   task->SetEventFilter(eventCuts);
57
58   // pileup rejection
59 //   task->SetRejectPileup();
60    if(!hasMC)  task->SetTriggerMask(AliVEvent::kEMCEGA);
61    task->UsePhysicsSelection();
62   //----------------------
63   //create data containers
64   //----------------------
65   
66   TString containerName = mgr->GetCommonFileName();
67   containerName += ":PWGDQ_dielectron";
68     
69   //create output container
70   
71   AliAnalysisDataContainer *cOutputHist1 =
72     mgr->CreateContainer("mfigueredo_QA", TList::Class(), AliAnalysisManager::kOutputContainer,
73                          containerName.Data());
74   
75   AliAnalysisDataContainer *cOutputHist2 =
76     mgr->CreateContainer("mfigueredo_CF", TList::Class(), AliAnalysisManager::kOutputContainer,
77                          containerName.Data());
78
79   AliAnalysisDataContainer *cOutputHist3 =
80     mgr->CreateContainer("mfigueredo_EventStat", TH1D::Class(), AliAnalysisManager::kOutputContainer,
81                          containerName.Data());
82   
83   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
84   mgr->ConnectOutput(task, 1, cOutputHist1);
85   mgr->ConnectOutput(task, 2, cOutputHist2);
86   mgr->ConnectOutput(task, 3, cOutputHist3);
87   
88   return task;
89 }