1 AliAnalysisTaskSE* AddTaskPhotonPreparation(
2 const char* periodstr = "LHC11h",
3 const char* pTracksName = "PicoTracks",
4 const char* usedMCParticles = "MCParticlesSelected",
5 const char* usedClusters = "CaloClusters",
6 const UInt_t pSel = AliVEvent::kAny,
7 const Bool_t doHistos = kTRUE,
8 const Bool_t makePicoTracks = kTRUE,
9 const Bool_t makeTrigger = kTRUE,
10 const Bool_t isEmcalTrain = kFALSE,
11 const Double_t trackeff = 1.0,
12 const Bool_t doAODTrackProp = kTRUE,
13 const Bool_t modifyMatchObjs = kTRUE,
14 const Int_t iOutput = 1
18 printf("Preparing neutral cluster analysis\n");
20 // #### Define manager and data container names
21 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
23 Error("AddTaskNeutralCluster", "No analysis manager found.");
27 AliVEventHandler *evhand = mgr->GetInputEventHandler();
29 Error("AddTasNeutralCluster", "This task requires an input event handler");
32 TString period(periodstr);
33 TString clusterColName(usedClusters);
34 TString particleColName(usedMCParticles);
35 TString picoTracksName(pTracksName);
38 if (!evhand->InheritsFrom("AliESDInputHandler"))
40 if ((dType == "AOD") && (clusterColName == "CaloClusters"))
41 clusterColName = "caloClusters";
42 if ((dType == "ESD") && (clusterColName == "caloClusters"))
43 clusterColName = "CaloClusters";
46 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C");
48 cout<<"AddTaskEmcalTrackPropagator"<<endl;
49 AliEmcalTrackPropagatorTask *proptask = AddTaskEmcalTrackPropagator();
50 proptask->SelectCollisionCandidates(pSel);
53 //----------------------- Trigger Maker -----------------------------------------------------
55 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C");
56 AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers");
58 cout<<"AddTaskEmcalTriggerMaker"<<endl;
59 emcalTriggers->SelectCollisionCandidates(pSel);
62 //----------------------- Track Matching tasks -----------------------------------------------------
63 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C");
64 AliEmcalClusTrackMatcherTask *emcalClus = AddTaskMatchingChain(periodstr,pSel,
66 trackeff,doAODTrackProp,
67 0.1,modifyMatchObjs,doHistos);
69 cout<<"AddTaskMatchingChain"<<endl;
70 //hard coded names of AliEmcalParticle strings to coincide with AddTaskClusTrackMatching
71 TString inputTracks = "AODFilterTracks";
72 if (dType == "ESD") inputTracks = "ESDFilterTracks";
73 TString emctracks = Form("EmcalTracks_%s",inputTracks.Data());
74 TString emcclusters = Form("EmcalClusters_%s",clusterColName.Data());
75 Printf("1-- inputTracks: %s, emcclusters: %s, emctracks: %s",inputTracks.Data(),emcclusters.Data(),emctracks.Data());
77 //----------------------- Produce PicoTracks -----------------------------------------------------
78 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
79 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks);
80 pTrackTask->SelectCollisionCandidates(pSel);
84 printf("Creating container names for cluster analysis\n");
85 TString myContName("");
87 myContName = Form("Photon_Preperation");
90 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEMCALPhotonIsolation.C");
92 AliAnalysisTaskEMCALPhotonIsolation *task =AddTaskEMCALPhotonIsolation(emctracks,emcclusters,kTRUE, iOutput,kFALSE);
93 task->SelectCollisionCandidates(pSel);
95 RequestMemory(task,500*1024);