]>
Commit | Line | Data |
---|---|---|
2d7910f3 | 1 | AliAnalysisTask *AddTask_jbook_JPsiQA(TString prod=""){ |
d28542ba | 2 | //get the current analysis manager |
3 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
4 | if (!mgr) { | |
5 | Error("AddTask_jbook_JPsiQA", "No analysis manager found."); | |
6 | return 0; | |
7 | } | |
8 | ||
9 | //Do we have an MC handler? | |
2d7910f3 | 10 | Bool_t hasMC = kFALSE; |
11 | TString list = gSystem->Getenv("LIST"); | |
12 | if( list.IsNull()) list=prod; | |
13 | if( list.Contains("LHC10h") || list.Contains("LHC11h") ) hasMC=kFALSE; | |
14 | if( list.Contains("LHC11a10") || list.Contains("LHC12a17") ) hasMC=kTRUE; | |
d28542ba | 15 | //(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0); |
2d7910f3 | 16 | |
d28542ba | 17 | //Do we have an AOD handler? |
18 | Bool_t isAOD=(mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class() ? kTRUE : kFALSE); | |
d6aec652 | 19 | |
20 | // set AOD debug levels | |
21 | if(isAOD) { | |
22 | mgr->AddClassDebug("AliAODTrack", AliLog::kFatal); | |
23 | mgr->AddClassDebug("AliAODpidUtil", AliLog::kInfo); | |
24 | } | |
d28542ba | 25 | |
26 | //set config file name | |
27 | TString configFile("$TRAIN_ROOT/jbook_jpsi/ConfigJpsiQA_jb_PbPb.C"); | |
28 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); | |
29 | if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsiQA_jb_PbPb.C"; | |
30 | ||
31 | ||
32 | //create task and add it to the manager | |
33 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieData"); | |
34 | task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); | |
35 | if (!hasMC) task->UsePhysicsSelection(); | |
36 | mgr->AddTask(task); | |
37 | ||
38 | //load dielectron configuration file | |
39 | TString checkconfig="ConfigJpsiQA_jb_PbPb"; | |
40 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data())) | |
41 | gROOT->LoadMacro(configFile.Data()); | |
42 | ||
43 | //add dielectron analysis with different cuts to the task | |
44 | for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file | |
2d7910f3 | 45 | AliDielectron *jpsi=ConfigJpsiQA_jb_PbPb(i,list); |
d28542ba | 46 | if (jpsi ) task->AddDielectron(jpsi); |
47 | if (jpsi ) printf("add: %s\n",jpsi->GetName()); | |
48 | } | |
49 | ||
50 | //Add event filter | |
51 | AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0"); | |
52 | if (isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny); | |
53 | eventCuts->SetRequireVertex(); | |
54 | eventCuts->SetMinVtxContributors(1); | |
55 | eventCuts->SetVertexZ(-10.,10.); | |
56 | eventCuts->SetCentralityRange(0.0,80.0); | |
57 | task->SetEventFilter(eventCuts); | |
58 | ||
59 | ||
60 | //create output container | |
61 | AliAnalysisDataContainer *coutput1 = | |
62 | mgr->CreateContainer("jbookQA_tree", | |
63 | TTree::Class(), | |
64 | AliAnalysisManager::kExchangeContainer, | |
65 | "jbook_default"); | |
66 | ||
67 | AliAnalysisDataContainer *cOutputHist1 = | |
68 | mgr->CreateContainer("jbookQA", | |
69 | TList::Class(), | |
70 | AliAnalysisManager::kOutputContainer, | |
71 | "jbookQA.root"); | |
72 | ||
2d7910f3 | 73 | |
74 | AliAnalysisDataContainer *cOutputHist2 = | |
d28542ba | 75 | mgr->CreateContainer("jbookQA_CF", |
76 | TList::Class(), | |
4a1bef93 | 77 | AliAnalysisManager::kExchangeContainer, //AliAnalysisManager::kOutputContainer, |
2d7910f3 | 78 | "dummy"); |
79 | ||
d28542ba | 80 | AliAnalysisDataContainer *cOutputHist3 = |
81 | mgr->CreateContainer("jbookQA_EventStat", | |
82 | TH1D::Class(), | |
83 | AliAnalysisManager::kOutputContainer, | |
84 | "jbookQA.root"); | |
85 | ||
86 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
87 | mgr->ConnectOutput(task, 0, coutput1 ); | |
88 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
2d7910f3 | 89 | mgr->ConnectOutput(task, 2, cOutputHist2); |
d28542ba | 90 | mgr->ConnectOutput(task, 3, cOutputHist3); |
91 | ||
92 | return task; | |
93 | } |