ROOT logo
AliAnalysisTaskEmcalJetHF* AddTaskEmcalJetHF(
   const char *outfilename        = "AnalysisOutput.root",
   const char *nJets              = "Jets",
   const char *nClusters          = "CaloClustersCorr",
   UInt_t type                    = 0, //AliAnalysisTaskEmcal::kTPC,
   const char *nrho               = "rhoChEm",
   const Double_t minPhi          = 1.8,
   const Double_t maxPhi          = 2.74,
   const Double_t minEta          = -0.3,
   const Double_t maxEta          = 0.3,
   const Double_t minArea         = 0.4,
   const char *nPicoTracks        = "PicoTracks",
   const Double_t hiPTjet         = 50.0,
   const Double_t trptcut         = 2.0,
   const Double_t trketa          = 0.9,
   const Int_t    trkQAcut        = 10041006,
   Bool_t   isESD                 = 0,
   Bool_t     GlobalQA            = 1,
   const char *typeDET            = "EMCAL",
   Double_t    jetradius          = 0.2,
   Double_t    jetptcut           = 1,
   Double_t    jetareacut         = 0.08,
   Int_t       leadhadtype        = 0,
   const char *tag	              = ""
)
{
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskEmcalJetHF", "No analysis manager to connect to.");
    return NULL;
  }

  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  AliVEventHandler *evhand = mgr->GetInputEventHandler();
  //if (!mgr->GetInputEventHandler())
  if (!evhand) {
    Error("AddTaskEmcalJetHadEPpid", "This task requires an input event handler");
    return NULL;
  }
  
  // check on type of event
  TString dType("ESD");
  if (!evhand->InheritsFrom("AliESDInputHandler"))
    dType = "AOD";
  if (dType == "AOD") nTracks = "AODFilterTracks";
  if (dType == "ESD") nTracks = "ESDFilterTracks";
  //ESD Trk Cuts
  //if(isESD > 0){
  AliESDtrackCuts *esdTrackCuts = 0x0;
  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
  esdTrackCuts = CreateTrackCutsPWGJE(trkQAcut);
  //}
  
  
  
  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

//  TString name(Form("Spectra_%s", nJets));
  TString name(Form("Spectra_%s_%s%s", nJets, nrho, tag));
  AliAnalysisTaskEmcalJetHF *spectratask = new AliAnalysisTaskEmcalJetHF(name);
  spectratask->SetJetsName(nJets);
  spectratask->SetClusName(nClusters);
  spectratask->SetAnaType(type);
  spectratask->SetRhoName(nrho);
  spectratask->SetJetPhi(minPhi,maxPhi);
  spectratask->SetJetEta(minEta,maxEta);
  spectratask->SetJetAreaCut(minArea);
  spectratask->SetTracksName(nTracks);
  spectratask->SetJetPt(hiPTjet); 
  spectratask->SetTrackPtCut(trptcut);
  spectratask->SetTrackEta(trketa);
  spectratask->SetTrackQACut(trkQAcut);
  spectratask->SetGlobalQA(GlobalQA);
  spectratask->SetTrackCuts(esdTrackCuts);
  //spectratask->SetDataType(isESD);

  // =================== set up containers ================================================

  
  AliParticleContainer *trackCont  = spectratask->AddParticleContainer(nTracks);
  if(trackCont){
    trackCont->SetClassName("AliVTrack");
    trackCont->SetParticleEtaLimits(-0.9,0.9);
    trackCont->SetParticlePhiLimits(1.4,3.2);
  }
  
  AliClusterContainer *clusterCont = spectratask->AddClusterContainer(nClusters);
  
  AliParticleContainer *trackJetCont  = spectratask->AddParticleContainer(nTracks);
  if(trackJetCont){
    trackJetCont->SetClassName("AliVTrack");
    trackJetCont->SetParticleEtaLimits(-0.9,0.9);
    //trackJetCont->SetParticlePhiLimits(1.4,3.2);
  }
  
  AliClusterContainer *clusterJetCont = spectratask->AddClusterContainer(nClusters);
  

  TString strType(typeDET);
  AliJetContainer *jetCont = spectratask->AddJetContainer(nJets,strType,jetradius);
  /*if(jetCont) {
    jetCont->SetRhoName(nrho);
    jetCont->ConnectParticleContainer(trackJetCont);
    jetCont->ConnectClusterContainer(clusterJetCont);
    //jetCont->ConnectParticleContainer(trackCont);
    //jetCont->ConnectClusterContainer(clusterCont);
    //jetCont->SetZLeadingCut(0.98,0.98);
    jetCont->SetPercAreaCut(jetareacut); // 0.6
    jetCont->SetJetPtCut(jetptcut);
    //jetCont->SetLeadingHadronType(leadhadtype);
  }*/

  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------

  mgr->AddTask(spectratask);

  // Create containers for input/output
  mgr->ConnectInput (spectratask, 0, mgr->GetCommonInputContainer() );
  AliAnalysisDataContainer *cospectra = mgr->CreateContainer(name,
                                                           TList::Class(),
                                                           AliAnalysisManager::kOutputContainer,
                                                           outfilename);
  mgr->ConnectOutput(spectratask,1,cospectra);

  return spectratask;
}

 AddTaskEmcalJetHF.C:1
 AddTaskEmcalJetHF.C:2
 AddTaskEmcalJetHF.C:3
 AddTaskEmcalJetHF.C:4
 AddTaskEmcalJetHF.C:5
 AddTaskEmcalJetHF.C:6
 AddTaskEmcalJetHF.C:7
 AddTaskEmcalJetHF.C:8
 AddTaskEmcalJetHF.C:9
 AddTaskEmcalJetHF.C:10
 AddTaskEmcalJetHF.C:11
 AddTaskEmcalJetHF.C:12
 AddTaskEmcalJetHF.C:13
 AddTaskEmcalJetHF.C:14
 AddTaskEmcalJetHF.C:15
 AddTaskEmcalJetHF.C:16
 AddTaskEmcalJetHF.C:17
 AddTaskEmcalJetHF.C:18
 AddTaskEmcalJetHF.C:19
 AddTaskEmcalJetHF.C:20
 AddTaskEmcalJetHF.C:21
 AddTaskEmcalJetHF.C:22
 AddTaskEmcalJetHF.C:23
 AddTaskEmcalJetHF.C:24
 AddTaskEmcalJetHF.C:25
 AddTaskEmcalJetHF.C:26
 AddTaskEmcalJetHF.C:27
 AddTaskEmcalJetHF.C:28
 AddTaskEmcalJetHF.C:29
 AddTaskEmcalJetHF.C:30
 AddTaskEmcalJetHF.C:31
 AddTaskEmcalJetHF.C:32
 AddTaskEmcalJetHF.C:33
 AddTaskEmcalJetHF.C:34
 AddTaskEmcalJetHF.C:35
 AddTaskEmcalJetHF.C:36
 AddTaskEmcalJetHF.C:37
 AddTaskEmcalJetHF.C:38
 AddTaskEmcalJetHF.C:39
 AddTaskEmcalJetHF.C:40
 AddTaskEmcalJetHF.C:41
 AddTaskEmcalJetHF.C:42
 AddTaskEmcalJetHF.C:43
 AddTaskEmcalJetHF.C:44
 AddTaskEmcalJetHF.C:45
 AddTaskEmcalJetHF.C:46
 AddTaskEmcalJetHF.C:47
 AddTaskEmcalJetHF.C:48
 AddTaskEmcalJetHF.C:49
 AddTaskEmcalJetHF.C:50
 AddTaskEmcalJetHF.C:51
 AddTaskEmcalJetHF.C:52
 AddTaskEmcalJetHF.C:53
 AddTaskEmcalJetHF.C:54
 AddTaskEmcalJetHF.C:55
 AddTaskEmcalJetHF.C:56
 AddTaskEmcalJetHF.C:57
 AddTaskEmcalJetHF.C:58
 AddTaskEmcalJetHF.C:59
 AddTaskEmcalJetHF.C:60
 AddTaskEmcalJetHF.C:61
 AddTaskEmcalJetHF.C:62
 AddTaskEmcalJetHF.C:63
 AddTaskEmcalJetHF.C:64
 AddTaskEmcalJetHF.C:65
 AddTaskEmcalJetHF.C:66
 AddTaskEmcalJetHF.C:67
 AddTaskEmcalJetHF.C:68
 AddTaskEmcalJetHF.C:69
 AddTaskEmcalJetHF.C:70
 AddTaskEmcalJetHF.C:71
 AddTaskEmcalJetHF.C:72
 AddTaskEmcalJetHF.C:73
 AddTaskEmcalJetHF.C:74
 AddTaskEmcalJetHF.C:75
 AddTaskEmcalJetHF.C:76
 AddTaskEmcalJetHF.C:77
 AddTaskEmcalJetHF.C:78
 AddTaskEmcalJetHF.C:79
 AddTaskEmcalJetHF.C:80
 AddTaskEmcalJetHF.C:81
 AddTaskEmcalJetHF.C:82
 AddTaskEmcalJetHF.C:83
 AddTaskEmcalJetHF.C:84
 AddTaskEmcalJetHF.C:85
 AddTaskEmcalJetHF.C:86
 AddTaskEmcalJetHF.C:87
 AddTaskEmcalJetHF.C:88
 AddTaskEmcalJetHF.C:89
 AddTaskEmcalJetHF.C:90
 AddTaskEmcalJetHF.C:91
 AddTaskEmcalJetHF.C:92
 AddTaskEmcalJetHF.C:93
 AddTaskEmcalJetHF.C:94
 AddTaskEmcalJetHF.C:95
 AddTaskEmcalJetHF.C:96
 AddTaskEmcalJetHF.C:97
 AddTaskEmcalJetHF.C:98
 AddTaskEmcalJetHF.C:99
 AddTaskEmcalJetHF.C:100
 AddTaskEmcalJetHF.C:101
 AddTaskEmcalJetHF.C:102
 AddTaskEmcalJetHF.C:103
 AddTaskEmcalJetHF.C:104
 AddTaskEmcalJetHF.C:105
 AddTaskEmcalJetHF.C:106
 AddTaskEmcalJetHF.C:107
 AddTaskEmcalJetHF.C:108
 AddTaskEmcalJetHF.C:109
 AddTaskEmcalJetHF.C:110
 AddTaskEmcalJetHF.C:111
 AddTaskEmcalJetHF.C:112
 AddTaskEmcalJetHF.C:113
 AddTaskEmcalJetHF.C:114
 AddTaskEmcalJetHF.C:115
 AddTaskEmcalJetHF.C:116
 AddTaskEmcalJetHF.C:117
 AddTaskEmcalJetHF.C:118
 AddTaskEmcalJetHF.C:119
 AddTaskEmcalJetHF.C:120
 AddTaskEmcalJetHF.C:121
 AddTaskEmcalJetHF.C:122
 AddTaskEmcalJetHF.C:123
 AddTaskEmcalJetHF.C:124
 AddTaskEmcalJetHF.C:125
 AddTaskEmcalJetHF.C:126
 AddTaskEmcalJetHF.C:127
 AddTaskEmcalJetHF.C:128
 AddTaskEmcalJetHF.C:129
 AddTaskEmcalJetHF.C:130
 AddTaskEmcalJetHF.C:131
 AddTaskEmcalJetHF.C:132
 AddTaskEmcalJetHF.C:133
 AddTaskEmcalJetHF.C:134
 AddTaskEmcalJetHF.C:135
 AddTaskEmcalJetHF.C:136