]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosJPSI/AddTask_mwinn_JPsiMCcontrol.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_mwinn_JPsiMCcontrol.C
1 AliAnalysisTask *AddTask_mwinn_JPsiMCcontrol(){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTask_mwinn_JPsiMCcontrol", "No analysis manager found.");
6     return 0;
7   }
8
9
10   //Do we have an MC handler?
11   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
12   
13   //Get the current train configuration
14   TString trainConfig=gSystem->Getenv("CONFIG_FILE");
15   
16   //set config file name
17   TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_pPb_MC.C");
18   //TString configFile("$TRAIN_ROOT/jpsi_JPSI/ConfigJpsiStandard.C");
19   if ( trainConfig.Contains("PbPb") ) configFile="$TRAIN_ROOT/jpsi_JPSI/ConfigJpsi2eePbPb.C";
20   
21   //if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
22   //  ::Info("AddTaskJPSI", "Using AOD configuration");
23   //  configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigJpsi2eeDataAOD.C";
24   // }
25
26   TString list=gSystem->Getenv("LIST");
27   //create task and add it to the manager
28   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieData");
29   if (!hasMC&&(!list.Contains("LHC12h")) ) task->UsePhysicsSelection();//taking out for testing
30   if (list.Contains("LHC13b"))task->SetTriggerMask(AliVEvent::kINT7); //kINT7?, MB-trigger for MB pPb
31   if (list.Contains("LHC13c"))task->SetTriggerMask(AliVEvent::kINT7); //kINT7?, MB-trigger for MB pPb
32   if (list.Contains("LHC13d"))task->SetTriggerMask(AliVEvent::kTRD); //TRD trigger
33   if (list.Contains("LHC13e"))task->SetTriggerMask(AliVEvent::kTRD); //TRD trigger
34   if (list.Contains("LHC11d")) task->SetTriggerMask(AliVEvent::kEMCEJE+AliVEvent::kEMC7+AliVEvent::kEMCEGA);
35   //if (list.Contains("LHC12h")) task->SetTRDtrigger(1+2);
36   mgr->AddTask(task);
37
38   
39   //load dielectron configuration file
40   gROOT->LoadMacro(configFile.Data());
41   
42   //add dielectron analysis with different cuts to the task
43   cout << "!!!!!!!!!!!! nDie = " << nDie << endl;
44   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
45     AliDielectron *jpsi=ConfigJpsi_mw_pPb_MC(i);
46     if (!jpsi) continue;
47     task->AddDielectron(jpsi);
48 //    printf("add: %s\n",jpsi->GetName());
49   }
50   
51   //Add event filter
52   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
53   eventCuts->SetRequireVertex();//NOTE: all of these cuts can for some reasons not be applied to self-filtered AODs by mwinn in 
54   //(list/hera/alice/mwinn/mwinn/train/lists/...)
55   eventCuts->SetRequire2013vertexandevent();
56   eventCuts->SetMinVtxContributors(1);
57   eventCuts->SetVertexZ(-10.,10.);
58   //  eventCuts->Print();
59 //   eventCuts->SetVertexType(AliDielectronEventCuts::kVtxTracksOrSPD);
60 //   eventCuts->SetRequireV0and();
61 //   if ( trainConfig=="PbPb" ){
62 //     eventCuts->SetCutOnMultipicityITSTPC();
63 //   }
64    task->SetEventFilter(eventCuts);
65
66 //   task->SetTriggerOnV0AND();
67   if ( trainConfig=="pp" ) task->SetRejectPileup();
68   
69   //create output container
70   TString containerName= "JPSI.root";
71   AliAnalysisDataContainer *coutput1 =
72     mgr->CreateContainer("mwinnMCcontrol_tree",
73                          TTree::Class(),
74                          AliAnalysisManager::kExchangeContainer,
75                          containerName.Data());
76   
77   AliAnalysisDataContainer *cOutputHist1 =
78     mgr->CreateContainer("mwinnMCcontrol_QA",
79                          TList::Class(),
80                          AliAnalysisManager::kOutputContainer,
81                          containerName.Data());
82
83   AliAnalysisDataContainer *cOutputHist2 =
84     mgr->CreateContainer("mwinnMCcontrol_CF",
85                          TList::Class(),
86                          AliAnalysisManager::kOutputContainer,
87                          containerName.Data());
88   
89   AliAnalysisDataContainer *cOutputHist3 =
90     mgr->CreateContainer("mwinnMCcontrol_EventStat",
91                          TH1D::Class(),
92                          AliAnalysisManager::kOutputContainer,
93                          containerName.Data());
94   
95   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
96   mgr->ConnectOutput(task, 0, coutput1 );
97   mgr->ConnectOutput(task, 1, cOutputHist1);
98   mgr->ConnectOutput(task, 2, cOutputHist2);
99   mgr->ConnectOutput(task, 3, cOutputHist3);
100   
101   return task;
102 }