]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosJPSI/AddTask_mwinn_JPsiCent.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_mwinn_JPsiCent.C
1 AliAnalysisTask *AddTask_mwinn_JPsiCent(){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTask_jpsi_JPsi", "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("$TRAIN_ROOT/mwinn_jpsiCorr/ConfigJpsi2eeDataCent_light.C");
18   TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_pPbCENT.C");
19   //  TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_pPbcent.C");
20   //TString configFile("$TRAIN_ROOT/jpsi_JPSI/ConfigJpsiStandard.C");
21   if ( trainConfig.Contains("PbPb") ) configFile="$TRAIN_ROOT/jpsi_JPSI/ConfigJpsi2eePbPb.C";
22   
23   //if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
24   //  ::Info("AddTaskJPSI", "Using AOD configuration");
25   //  configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigJpsi2eeDataAOD.C";
26   // }
27
28   TString list=gSystem->Getenv("LIST");
29   //create task and add it to the manager
30   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieData");
31    if (!hasMC&&(!list.Contains("LHC12h")) ) task->UsePhysicsSelection();//taking out for testing//taken out for AOD
32    task->SetTriggerMask(AliVEvent::kTRD|AliVEvent::kINT7);
33   /*  if (list.Contains("LHC13b"))task->SetTriggerMask(AliVEvent::kINT7); //kINT7?, MB-trigger for MB pPb
34   if (list.Contains("LHC13c"))task->SetTriggerMask(AliVEvent::kINT7); //kINT7?, MB-trigger for MB pPb
35   if (list.Contains("LHC13d"))task->SetTriggerMask(AliVEvent::kTRD); //TRD trigger
36   if (list.Contains("LHC13e"))task->SetTriggerMask(AliVEvent::kTRD); //TRD trigger//only for testing
37   if (list.Contains("LHC11d")) task->SetTriggerMask(AliVEvent::kEMCEJE+AliVEvent::kEMC7+AliVEvent::kEMCEGA);
38   //if (list.Contains("LHC12h")) task->SetTRDtrigger(1+2);*/
39   mgr->AddTask(task);
40
41   
42   //load dielectron configuration file
43   gROOT->LoadMacro(configFile.Data());
44   
45   //add dielectron analysis with different cuts to the task
46   cout << "!!!!!!!!!!!! nDie = " << nDie << endl;
47   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
48     AliDielectron *jpsi=ConfigJpsi2ee(i);
49     if (!jpsi) continue;
50     task->AddDielectron(jpsi);
51 //    printf("add: %s\n",jpsi->GetName());
52   }
53   
54   //Add event filter
55   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
56   //********************************
57   //AOD selection not working, because default Vertex in Contructor of AliDielectronEventCuts not available for AODs!!!!!!!
58   //Therefore chose default one for AODs
59   eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
60   //******************
61   eventCuts->SetRequireVertex();//NOTE: all of these cuts can for some reasons not be applied to self-filtered AODs by mwinn in, also true for 2013AODs bug in Dielectron-framework
62   //(list/hera/alice/mwinn/mwinn/train/lists/...)
63   //  eventCuts->SetRequire2013vertexandevent();//taken out for AOD
64   eventCuts->SetMinVtxContributors(1);//taken out for AOD
65   eventCuts->SetVertexZ(-10.,10.);//taken out for AOD
66   //  eventCuts->Print();
67 //   eventCuts->SetVertexType(AliDielectronEventCuts::kVtxTracksOrSPD);
68 //   eventCuts->SetRequireV0and();
69 //   if ( trainConfig=="PbPb" ){
70 //     eventCuts->SetCutOnMultipicityITSTPC();
71 //   }
72    task->SetEventFilter(eventCuts);
73
74 //   task->SetTriggerOnV0AND();
75   if ( trainConfig=="pp" ) task->SetRejectPileup();
76   
77   //create output container
78   AliAnalysisDataContainer *coutput1 =
79     mgr->CreateContainer("jpsi_mwinn_tree",
80                          TTree::Class(),
81                          AliAnalysisManager::kExchangeContainer,
82                          "jpsi_mwinn_default");
83   
84   AliAnalysisDataContainer *cOutputHist1 =
85     mgr->CreateContainer("jpsiAOD_mwinn_QA",
86                          TList::Class(),
87                          AliAnalysisManager::kOutputContainer,
88                          "JPSI.root");
89
90   AliAnalysisDataContainer *cOutputHist2 =
91     mgr->CreateContainer("jpsi_mwinn_CF",
92                          TList::Class(),
93                          AliAnalysisManager::kOutputContainer,
94                          "JPSI.root");
95   
96   AliAnalysisDataContainer *cOutputHist3 =
97     mgr->CreateContainer("jpsi_mwinn_EventStat",
98                          TH1D::Class(),
99                          AliAnalysisManager::kOutputContainer,
100                          "JPSI.root");
101   
102   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
103   mgr->ConnectOutput(task, 0, coutput1 );
104   mgr->ConnectOutput(task, 1, cOutputHist1);
105   mgr->ConnectOutput(task, 2, cOutputHist2);
106   mgr->ConnectOutput(task, 3, cOutputHist3);
107   
108   return task;
109 }