ROOT logo
AliAnalysisTaskEmcalJetFlavourTagExample* AddTaskEmcalJetFlavourTagExample(
   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,
   Bool_t   isESD              = 0,
   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("AddTaskEmcalJetFlavourTagExample", "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");

  //}
  
  
  
  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

//  TString name(Form("Spectra_%s", nJets));
  TString name(Form("Spectra_%s_%s%s", nJets, nrho, tag));
  AliAnalysisTaskEmcalJetFlavourTagExample *spectratask = new AliAnalysisTaskEmcalJetFlavourTagExample(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->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;
}

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