ROOT logo
/*
 * AddTask macro for class 
 * Redmer Alexander Bertens, rbertens@cern.ch
 * Utrecht University, Utrecht, Netherlands
 *
 * Note: this macro is pretty much a copy of AddTaskEmcalJetSample.C
 *
 */

AliAnalysisTaskLocalRho* AddTaskLocalRho(
  const char *ntracks           = "Tracks",     // track selection used for vn estimate
  const char *nclusters         = "",           // clusters (not used) 
  const char *njets             = "Jets",       // jet selection for finding leading jet
  const char *nrho              = "Rho",        // name of nominal rho
  const char *lrho              = "LocalRho",   // name of local rho object
  Double_t   jetradius          = 0.3,          // jet radius (to remove leading jet)
  Double_t   jetptcut           = 1,            
  Double_t   jetareacut         = 0.557,
  UInt_t     type               = AliJetContainer::kTPC,
  Int_t      leadhadtype        = 0,
  const char *name              = "AliAnalysisTaskLocalRho",    // task name
  TString    fitOpts            = "WLQI",                       // options for tfitter
  UInt_t     fitType            = AliAnalysisTaskLocalRho::kCombined,   // fitting strategy
  TArrayI    *centralities      = 0x0,                                  // centrality binning for qa
  UInt_t     runMode            = AliAnalysisTaskLocalRho::kGrid        // run mode 
  )
{  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskEmcalJetSample", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler())
  {
    ::Error("AddTaskEmcalJetSample", "This task requires an input event handler");
    return NULL;
  }
  
  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

  AliAnalysisTaskLocalRho* jetTask = new AliAnalysisTaskLocalRho(name, runMode);
  // inherited setters
  jetTask->SetJetsName(njets);
  jetTask->SetAnaType(type);
  jetTask->SetTracksName(ntracks);
  jetTask->SetClusName(nclusters);
  jetTask->SetRhoName(nrho);
  jetTask->SetLocalRhoName(lrho);
  jetTask->SetJetRadius(jetradius);
  jetTask->SetJetPtCut(jetptcut);
  jetTask->SetPercAreaCut(jetareacut);
  jetTask->SetLeadingHadronType(leadhadtype);
  // task specific setters
  jetTask->SetDebugMode(-1);
  jetTask->SetModulationFitType(fitType);
  jetTask->SetModulationFitOptions(fitOpts);
  jetTask->SetModulationFitMinMaxP(.001, 1);
  jetTask->SetCentralityClasses(centralities);

  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------
  
  mgr->AddTask(jetTask);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
  TString contname(name);
  contname += "_histos";
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
							    TList::Class(),AliAnalysisManager::kOutputContainer,
							    Form("%s", AliAnalysisManager::GetCommonFileName()));
  mgr->ConnectInput  (jetTask, 0,  cinput1 );
  mgr->ConnectOutput (jetTask, 1, coutput1 );

  switch (runMode) {
      case AliAnalysisTaskLocalRho::kLocal : {
          gStyle->SetOptFit(1);
          AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("good_fits_%s", name), 
							    TList::Class(),AliAnalysisManager::kOutputContainer,
							    Form("%s", AliAnalysisManager::GetCommonFileName()));
          AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("bad_fits_%s", name),
							    TList::Class(),AliAnalysisManager::kOutputContainer,
							     Form("%s", AliAnalysisManager::GetCommonFileName()));
          mgr->ConnectOutput (jetTask, 2, coutput2);
          mgr->ConnectOutput (jetTask, 3, coutput3);
      } break;
      default: break;
  }
  return jetTask;
}
 AddTaskLocalRho.C:1
 AddTaskLocalRho.C:2
 AddTaskLocalRho.C:3
 AddTaskLocalRho.C:4
 AddTaskLocalRho.C:5
 AddTaskLocalRho.C:6
 AddTaskLocalRho.C:7
 AddTaskLocalRho.C:8
 AddTaskLocalRho.C:9
 AddTaskLocalRho.C:10
 AddTaskLocalRho.C:11
 AddTaskLocalRho.C:12
 AddTaskLocalRho.C:13
 AddTaskLocalRho.C:14
 AddTaskLocalRho.C:15
 AddTaskLocalRho.C:16
 AddTaskLocalRho.C:17
 AddTaskLocalRho.C:18
 AddTaskLocalRho.C:19
 AddTaskLocalRho.C:20
 AddTaskLocalRho.C:21
 AddTaskLocalRho.C:22
 AddTaskLocalRho.C:23
 AddTaskLocalRho.C:24
 AddTaskLocalRho.C:25
 AddTaskLocalRho.C:26
 AddTaskLocalRho.C:27
 AddTaskLocalRho.C:28
 AddTaskLocalRho.C:29
 AddTaskLocalRho.C:30
 AddTaskLocalRho.C:31
 AddTaskLocalRho.C:32
 AddTaskLocalRho.C:33
 AddTaskLocalRho.C:34
 AddTaskLocalRho.C:35
 AddTaskLocalRho.C:36
 AddTaskLocalRho.C:37
 AddTaskLocalRho.C:38
 AddTaskLocalRho.C:39
 AddTaskLocalRho.C:40
 AddTaskLocalRho.C:41
 AddTaskLocalRho.C:42
 AddTaskLocalRho.C:43
 AddTaskLocalRho.C:44
 AddTaskLocalRho.C:45
 AddTaskLocalRho.C:46
 AddTaskLocalRho.C:47
 AddTaskLocalRho.C:48
 AddTaskLocalRho.C:49
 AddTaskLocalRho.C:50
 AddTaskLocalRho.C:51
 AddTaskLocalRho.C:52
 AddTaskLocalRho.C:53
 AddTaskLocalRho.C:54
 AddTaskLocalRho.C:55
 AddTaskLocalRho.C:56
 AddTaskLocalRho.C:57
 AddTaskLocalRho.C:58
 AddTaskLocalRho.C:59
 AddTaskLocalRho.C:60
 AddTaskLocalRho.C:61
 AddTaskLocalRho.C:62
 AddTaskLocalRho.C:63
 AddTaskLocalRho.C:64
 AddTaskLocalRho.C:65
 AddTaskLocalRho.C:66
 AddTaskLocalRho.C:67
 AddTaskLocalRho.C:68
 AddTaskLocalRho.C:69
 AddTaskLocalRho.C:70
 AddTaskLocalRho.C:71
 AddTaskLocalRho.C:72
 AddTaskLocalRho.C:73
 AddTaskLocalRho.C:74
 AddTaskLocalRho.C:75
 AddTaskLocalRho.C:76
 AddTaskLocalRho.C:77
 AddTaskLocalRho.C:78
 AddTaskLocalRho.C:79
 AddTaskLocalRho.C:80
 AddTaskLocalRho.C:81
 AddTaskLocalRho.C:82
 AddTaskLocalRho.C:83
 AddTaskLocalRho.C:84
 AddTaskLocalRho.C:85
 AddTaskLocalRho.C:86
 AddTaskLocalRho.C:87
 AddTaskLocalRho.C:88
 AddTaskLocalRho.C:89
 AddTaskLocalRho.C:90
 AddTaskLocalRho.C:91
 AddTaskLocalRho.C:92
 AddTaskLocalRho.C:93
 AddTaskLocalRho.C:94
 AddTaskLocalRho.C:95
 AddTaskLocalRho.C:96
 AddTaskLocalRho.C:97
 AddTaskLocalRho.C:98
 AddTaskLocalRho.C:99
 AddTaskLocalRho.C:100