]>
Commit | Line | Data |
---|---|---|
f4ff2d44 | 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"); | |
c8979efd | 18 | TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_pPbCENT.C"); |
f4ff2d44 | 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, | |
c8979efd | 88 | "JPSI.root"); |
f4ff2d44 | 89 | |
90 | AliAnalysisDataContainer *cOutputHist2 = | |
91 | mgr->CreateContainer("jpsi_mwinn_CF", | |
92 | TList::Class(), | |
93 | AliAnalysisManager::kOutputContainer, | |
c8979efd | 94 | "JPSI.root"); |
f4ff2d44 | 95 | |
96 | AliAnalysisDataContainer *cOutputHist3 = | |
97 | mgr->CreateContainer("jpsi_mwinn_EventStat", | |
98 | TH1D::Class(), | |
99 | AliAnalysisManager::kOutputContainer, | |
c8979efd | 100 | "JPSI.root"); |
f4ff2d44 | 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 | } |