]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/macros/AddTaskPhotonPreparation.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / macros / AddTaskPhotonPreparation.C
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
15 )
16 {
17
18   printf("Preparing neutral cluster analysis\n");
19
20   // #### Define manager and data container names
21   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
22   if (!mgr) {
23     Error("AddTaskNeutralCluster", "No analysis manager found.");
24     return NULL;
25   }
26
27   AliVEventHandler *evhand = mgr->GetInputEventHandler();
28   if (!evhand) {
29     Error("AddTasNeutralCluster", "This task requires an input event handler");
30     return NULL;
31   }
32   TString period(periodstr);
33   TString clusterColName(usedClusters);
34   TString particleColName(usedMCParticles);
35   TString picoTracksName(pTracksName);
36
37   TString dType("ESD");
38   if (!evhand->InheritsFrom("AliESDInputHandler")) 
39     dType = "AOD";
40   if ((dType == "AOD") && (clusterColName == "CaloClusters"))
41     clusterColName = "caloClusters";
42   if ((dType == "ESD") && (clusterColName == "caloClusters"))
43     clusterColName = "CaloClusters";
44
45   if (0) {
46     gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C");
47
48     cout<<"AddTaskEmcalTrackPropagator"<<endl;
49     AliEmcalTrackPropagatorTask *proptask = AddTaskEmcalTrackPropagator();
50     proptask->SelectCollisionCandidates(pSel);
51   }
52
53   //----------------------- Trigger Maker -----------------------------------------------------
54   if (makeTrigger) {
55     gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C");
56     AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers");
57
58     cout<<"AddTaskEmcalTriggerMaker"<<endl;
59     emcalTriggers->SelectCollisionCandidates(pSel);
60   }
61
62   //----------------------- Track Matching tasks -----------------------------------------------------
63   gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C");
64   AliEmcalClusTrackMatcherTask *emcalClus =  AddTaskMatchingChain(periodstr,pSel,
65                                                                   clusterColName,
66                                                                   trackeff,doAODTrackProp,
67                                                                   0.1,modifyMatchObjs,doHistos);
68   
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());
76   if(makePicoTracks) {
77     //----------------------- Produce PicoTracks -----------------------------------------------------
78     gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
79     AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks);
80     pTrackTask->SelectCollisionCandidates(pSel);
81   }
82
83
84   printf("Creating container names for cluster analysis\n");
85     TString myContName("");
86    
87     myContName = Form("Photon_Preperation");
88  
89
90  gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEMCALPhotonIsolation.C"); 
91
92  AliAnalysisTaskEMCALPhotonIsolation *task =AddTaskEMCALPhotonIsolation(emctracks,emcclusters,kTRUE, iOutput,kFALSE);
93      task->SelectCollisionCandidates(pSel);
94   if(isEmcalTrain)
95     RequestMemory(task,500*1024);
96
97
98    return task;
99 }