]>
Commit | Line | Data |
---|---|---|
1ba767ec | 1 | AliAnalysisTask *AddTask_Remi_LMEEPbPb2011AOD_Cent(Char_t* outputFileName="LMEEoutput.root", Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE) { |
2eab2b62 | 2 | |
1ba767ec | 3 | Bool_t bESDANA=kFALSE; //Autodetect via InputHandler |
4 | //get the current analysis manager | |
5 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
6 | if (!mgr) { | |
2eab2b62 | 7 | Error("AddTask_Remi_LMEEPbPb2011", "No analysis manager found."); |
8 | return 0; | |
1ba767ec | 9 | } |
2eab2b62 | 10 | |
11 | ||
12 | // create task and add it to the manager | |
13 | // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE"); | |
14 | ||
15 | ||
1ba767ec | 16 | TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/"); |
17 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); | |
2eab2b62 | 18 | // if (trainRoot.IsNull()) configBasePath= "/home/tanizaki/nfs/LMee_Deflection/ver1/"; |
1ba767ec | 19 | if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/"; |
2eab2b62 | 20 | |
21 | ||
1ba767ec | 22 | if (getFromAlien && |
23 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigRemiLMEEPbPb2011AOD.C .")) && | |
24 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibRemi.C .")) | |
2eab2b62 | 25 | ) { |
26 | configBasePath=Form("%s/",gSystem->pwd()); | |
1ba767ec | 27 | } |
2eab2b62 | 28 | |
1ba767ec | 29 | TString configFile("ConfigRemiLMEEPbPb2011AOD.C"); |
30 | TString configLMEECutLib("LMEECutLibRemi.C"); | |
2eab2b62 | 31 | |
1ba767ec | 32 | TString configFilePath(configBasePath+configFile); |
33 | TString configLMEECutLibPath(configBasePath+configLMEECutLib); | |
2eab2b62 | 34 | |
1ba767ec | 35 | //AOD Usage currently tested with separate task, to be merged |
36 | if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){ | |
2eab2b62 | 37 | ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration"); |
1ba767ec | 38 | } |
39 | else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){ | |
2eab2b62 | 40 | ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code"); |
41 | bESDANA=kTRUE; | |
1ba767ec | 42 | } |
2eab2b62 | 43 | |
44 | ||
1ba767ec | 45 | //Do we have an MC handler? |
46 | Bool_t hasMC=setMC; | |
47 | if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0) | |
2eab2b62 | 48 | hasMC=kTRUE; |
49 | ||
50 | ||
51 | ||
1ba767ec | 52 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())) |
2eab2b62 | 53 | gROOT->LoadMacro(configLMEECutLibPath.Data()); |
1ba767ec | 54 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())) |
2eab2b62 | 55 | gROOT->LoadMacro(configFilePath.Data()); |
56 | ||
57 | ||
1ba767ec | 58 | LMEECutLibRemi* cutlib = new LMEECutLibRemi(); |
59 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData"); | |
60 | if (!hasMC) task->UsePhysicsSelection(); | |
61 | task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); | |
2eab2b62 | 62 | // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); |
63 | // task->SetRejectPileup(); | |
1ba767ec | 64 | task->SelectCollisionCandidates(AliVEvent::kAny); |
2eab2b62 | 65 | task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibRemi::kPbPb2011pidITSTPCTOF)); // |
66 | ||
1ba767ec | 67 | //load dielectron configuration file |
2eab2b62 | 68 | |
1ba767ec | 69 | //add dielectron analysis with different cuts to the task |
2eab2b62 | 70 | |
71 | ||
1ba767ec | 72 | |
73 | AliDielectron *lowmass1=ConfigRemiLMEEPbPb2011AOD(1,hasMC,bESDANA); | |
74 | task->AddDielectron(lowmass1); | |
75 | printf("add: %s\n",lowmass1->GetName()); | |
2eab2b62 | 76 | |
77 | AliDielectron *lowmass5=ConfigRemiLMEEPbPb2011AOD(5,hasMC,bESDANA); | |
78 | task->AddDielectron(lowmass5); | |
79 | printf("add: %s\n",lowmass5->GetName()); | |
80 | AliDielectron *lowmass9=ConfigRemiLMEEPbPb2011AOD(9,hasMC,bESDANA); | |
81 | task->AddDielectron(lowmass9); | |
82 | printf("add: %s\n",lowmass9->GetName()); | |
83 | AliDielectron *lowmass13=ConfigRemiLMEEPbPb2011AOD(13,hasMC,bESDANA); | |
84 | task->AddDielectron(lowmass13); | |
85 | printf("add: %s\n",lowmass13->GetName()); | |
86 | ||
87 | ||
88 | AliDielectron *lowmass17=ConfigRemiLMEEPbPb2011AOD(17,hasMC,bESDANA); | |
89 | task->AddDielectron(lowmass17); | |
90 | printf("add: %s\n",lowmass17->GetName()); | |
91 | AliDielectron *lowmass21=ConfigRemiLMEEPbPb2011AOD(21,hasMC,bESDANA); | |
92 | task->AddDielectron(lowmass21); | |
93 | printf("add: %s\n",lowmass21->GetName()); | |
94 | AliDielectron *lowmass25=ConfigRemiLMEEPbPb2011AOD(25,hasMC,bESDANA); | |
95 | task->AddDielectron(lowmass25); | |
96 | printf("add: %s\n",lowmass25->GetName()); | |
1ba767ec | 97 | |
1ba767ec | 98 | |
1ba767ec | 99 | |
1ba767ec | 100 | |
101 | mgr->AddTask(task); | |
102 | ||
103 | //create output container | |
104 | AliAnalysisDataContainer *coutput1 = | |
de4c3fca | 105 | mgr->CreateContainer("Remi_LMEEPbPb2011Cent_tree", |
1ba767ec | 106 | TTree::Class(), |
107 | AliAnalysisManager::kExchangeContainer, | |
108 | outputFileName); | |
109 | ||
110 | AliAnalysisDataContainer *cOutputHist1 = | |
de4c3fca | 111 | mgr->CreateContainer("Remi_LMEEPbPb2011Cent_out", |
1ba767ec | 112 | TList::Class(), |
113 | AliAnalysisManager::kOutputContainer, | |
114 | outputFileName); | |
115 | ||
116 | AliAnalysisDataContainer *cOutputHist2 = | |
de4c3fca | 117 | mgr->CreateContainer("Remi_LMEEPbPb2011Cent_CF", |
1ba767ec | 118 | TList::Class(), |
119 | AliAnalysisManager::kOutputContainer, | |
120 | outputFileName); | |
121 | ||
122 | AliAnalysisDataContainer *cOutputHist3 = | |
de4c3fca | 123 | mgr->CreateContainer("Remi_EventStatPbPb2011Cent", |
1ba767ec | 124 | TH1D::Class(), |
125 | AliAnalysisManager::kOutputContainer, | |
126 | outputFileName); | |
127 | ||
128 | ||
129 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
130 | mgr->ConnectOutput(task, 0, coutput1 ); | |
131 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
132 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
133 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
134 | ||
135 | return task; | |
136 | } |