1 AliAnalysisTask *AddTask_mwinn_JPsiMCcontrol(){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 Error("AddTask_mwinn_JPsiMCcontrol", "No analysis manager found.");
10 //Do we have an MC handler?
11 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
13 //Get the current train configuration
14 TString trainConfig=gSystem->Getenv("CONFIG_FILE");
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";
21 //if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
22 // ::Info("AddTaskJPSI", "Using AOD configuration");
23 // configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigJpsi2eeDataAOD.C";
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);
39 //load dielectron configuration file
40 gROOT->LoadMacro(configFile.Data());
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);
47 task->AddDielectron(jpsi);
48 // printf("add: %s\n",jpsi->GetName());
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();
64 task->SetEventFilter(eventCuts);
66 // task->SetTriggerOnV0AND();
67 if ( trainConfig=="pp" ) task->SetRejectPileup();
69 //create output container
70 TString containerName= "JPSI.root";
71 AliAnalysisDataContainer *coutput1 =
72 mgr->CreateContainer("mwinnMCcontrol_tree",
74 AliAnalysisManager::kExchangeContainer,
75 containerName.Data());
77 AliAnalysisDataContainer *cOutputHist1 =
78 mgr->CreateContainer("mwinnMCcontrol_QA",
80 AliAnalysisManager::kOutputContainer,
81 containerName.Data());
83 AliAnalysisDataContainer *cOutputHist2 =
84 mgr->CreateContainer("mwinnMCcontrol_CF",
86 AliAnalysisManager::kOutputContainer,
87 containerName.Data());
89 AliAnalysisDataContainer *cOutputHist3 =
90 mgr->CreateContainer("mwinnMCcontrol_EventStat",
92 AliAnalysisManager::kOutputContainer,
93 containerName.Data());
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);