ROOT logo
AliAnalysisTaskSE* AddTaskPhotonPreparation(
  const char*    periodstr          = "LHC11h",
  const char*    pTracksName        = "PicoTracks",
  const char*    usedMCParticles    = "MCParticlesSelected",
  const char*    usedClusters       = "CaloClusters",
  const UInt_t   pSel               = AliVEvent::kAny,
  const Bool_t   doHistos           = kTRUE,
  const Bool_t   makePicoTracks     = kTRUE,
  const Bool_t   makeTrigger        = kTRUE,
  const Bool_t   isEmcalTrain       = kFALSE,
  const Double_t trackeff           = 1.0,
  const Bool_t   doAODTrackProp     = kTRUE,
  const Bool_t   modifyMatchObjs    = kTRUE,
  const Int_t	 iOutput	    = 1
)
{

  printf("Preparing neutral cluster analysis\n");

  // #### Define manager and data container names
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskNeutralCluster", "No analysis manager found.");
    return NULL;
  }

  AliVEventHandler *evhand = mgr->GetInputEventHandler();
  if (!evhand) {
    Error("AddTasNeutralCluster", "This task requires an input event handler");
    return NULL;
  }
  TString period(periodstr);
  TString clusterColName(usedClusters);
  TString particleColName(usedMCParticles);
  TString picoTracksName(pTracksName);

  TString dType("ESD");
  if (!evhand->InheritsFrom("AliESDInputHandler")) 
    dType = "AOD";
  if ((dType == "AOD") && (clusterColName == "CaloClusters"))
    clusterColName = "caloClusters";
  if ((dType == "ESD") && (clusterColName == "caloClusters"))
    clusterColName = "CaloClusters";

  if (0) {
    gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C");

    cout<<"AddTaskEmcalTrackPropagator"<<endl;
    AliEmcalTrackPropagatorTask *proptask = AddTaskEmcalTrackPropagator();
    proptask->SelectCollisionCandidates(pSel);
  }

  //----------------------- Trigger Maker -----------------------------------------------------
  if (makeTrigger) {
    gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C");
    AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers");

    cout<<"AddTaskEmcalTriggerMaker"<<endl;
    emcalTriggers->SelectCollisionCandidates(pSel);
  }

  //----------------------- Track Matching tasks -----------------------------------------------------
  gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C");
  AliEmcalClusTrackMatcherTask *emcalClus =  AddTaskMatchingChain(periodstr,pSel,
								  clusterColName,
								  trackeff,doAODTrackProp,
								  0.1,modifyMatchObjs,doHistos);
  
  cout<<"AddTaskMatchingChain"<<endl;
  //hard coded names of AliEmcalParticle strings to coincide with AddTaskClusTrackMatching
  TString inputTracks = "AODFilterTracks";
  if (dType == "ESD") inputTracks = "ESDFilterTracks";
  TString emctracks = Form("EmcalTracks_%s",inputTracks.Data());
  TString emcclusters = Form("EmcalClusters_%s",clusterColName.Data());
  Printf("1-- inputTracks: %s, emcclusters: %s, emctracks: %s",inputTracks.Data(),emcclusters.Data(),emctracks.Data());
  if(makePicoTracks) {
    //----------------------- Produce PicoTracks -----------------------------------------------------
    gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
    AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks);
    pTrackTask->SelectCollisionCandidates(pSel);
  }


  printf("Creating container names for cluster analysis\n");
    TString myContName("");
   
    myContName = Form("Photon_Preperation");
 

 gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/AddTaskEMCALPhotonIsolation.C"); 

 AliAnalysisTaskEMCALPhotonIsolation *task =AddTaskEMCALPhotonIsolation(emctracks,emcclusters,kTRUE, iOutput,kFALSE);
     task->SelectCollisionCandidates(pSel);
  if(isEmcalTrain)
    RequestMemory(task,500*1024);


   return task;
}
 AddTaskPhotonPreparation.C:1
 AddTaskPhotonPreparation.C:2
 AddTaskPhotonPreparation.C:3
 AddTaskPhotonPreparation.C:4
 AddTaskPhotonPreparation.C:5
 AddTaskPhotonPreparation.C:6
 AddTaskPhotonPreparation.C:7
 AddTaskPhotonPreparation.C:8
 AddTaskPhotonPreparation.C:9
 AddTaskPhotonPreparation.C:10
 AddTaskPhotonPreparation.C:11
 AddTaskPhotonPreparation.C:12
 AddTaskPhotonPreparation.C:13
 AddTaskPhotonPreparation.C:14
 AddTaskPhotonPreparation.C:15
 AddTaskPhotonPreparation.C:16
 AddTaskPhotonPreparation.C:17
 AddTaskPhotonPreparation.C:18
 AddTaskPhotonPreparation.C:19
 AddTaskPhotonPreparation.C:20
 AddTaskPhotonPreparation.C:21
 AddTaskPhotonPreparation.C:22
 AddTaskPhotonPreparation.C:23
 AddTaskPhotonPreparation.C:24
 AddTaskPhotonPreparation.C:25
 AddTaskPhotonPreparation.C:26
 AddTaskPhotonPreparation.C:27
 AddTaskPhotonPreparation.C:28
 AddTaskPhotonPreparation.C:29
 AddTaskPhotonPreparation.C:30
 AddTaskPhotonPreparation.C:31
 AddTaskPhotonPreparation.C:32
 AddTaskPhotonPreparation.C:33
 AddTaskPhotonPreparation.C:34
 AddTaskPhotonPreparation.C:35
 AddTaskPhotonPreparation.C:36
 AddTaskPhotonPreparation.C:37
 AddTaskPhotonPreparation.C:38
 AddTaskPhotonPreparation.C:39
 AddTaskPhotonPreparation.C:40
 AddTaskPhotonPreparation.C:41
 AddTaskPhotonPreparation.C:42
 AddTaskPhotonPreparation.C:43
 AddTaskPhotonPreparation.C:44
 AddTaskPhotonPreparation.C:45
 AddTaskPhotonPreparation.C:46
 AddTaskPhotonPreparation.C:47
 AddTaskPhotonPreparation.C:48
 AddTaskPhotonPreparation.C:49
 AddTaskPhotonPreparation.C:50
 AddTaskPhotonPreparation.C:51
 AddTaskPhotonPreparation.C:52
 AddTaskPhotonPreparation.C:53
 AddTaskPhotonPreparation.C:54
 AddTaskPhotonPreparation.C:55
 AddTaskPhotonPreparation.C:56
 AddTaskPhotonPreparation.C:57
 AddTaskPhotonPreparation.C:58
 AddTaskPhotonPreparation.C:59
 AddTaskPhotonPreparation.C:60
 AddTaskPhotonPreparation.C:61
 AddTaskPhotonPreparation.C:62
 AddTaskPhotonPreparation.C:63
 AddTaskPhotonPreparation.C:64
 AddTaskPhotonPreparation.C:65
 AddTaskPhotonPreparation.C:66
 AddTaskPhotonPreparation.C:67
 AddTaskPhotonPreparation.C:68
 AddTaskPhotonPreparation.C:69
 AddTaskPhotonPreparation.C:70
 AddTaskPhotonPreparation.C:71
 AddTaskPhotonPreparation.C:72
 AddTaskPhotonPreparation.C:73
 AddTaskPhotonPreparation.C:74
 AddTaskPhotonPreparation.C:75
 AddTaskPhotonPreparation.C:76
 AddTaskPhotonPreparation.C:77
 AddTaskPhotonPreparation.C:78
 AddTaskPhotonPreparation.C:79
 AddTaskPhotonPreparation.C:80
 AddTaskPhotonPreparation.C:81
 AddTaskPhotonPreparation.C:82
 AddTaskPhotonPreparation.C:83
 AddTaskPhotonPreparation.C:84
 AddTaskPhotonPreparation.C:85
 AddTaskPhotonPreparation.C:86
 AddTaskPhotonPreparation.C:87
 AddTaskPhotonPreparation.C:88
 AddTaskPhotonPreparation.C:89
 AddTaskPhotonPreparation.C:90
 AddTaskPhotonPreparation.C:91
 AddTaskPhotonPreparation.C:92
 AddTaskPhotonPreparation.C:93
 AddTaskPhotonPreparation.C:94
 AddTaskPhotonPreparation.C:95
 AddTaskPhotonPreparation.C:96
 AddTaskPhotonPreparation.C:97
 AddTaskPhotonPreparation.C:98
 AddTaskPhotonPreparation.C:99
 AddTaskPhotonPreparation.C:100