ROOT logo
//__________________________________________________________________

AliAnalysisTaskPIDFluctuation *
AddAnalysisTaskPIDFluctuation(Int_t aodFilterBit, Float_t ptMin, Float_t ptMax, Float_t etaMin, Float_t etaMax)
{

  /* init analysis name */
  TString analysisName = "PIDFluctuation";
  analysisName += "_";
  analysisName += Form("FilterBit%d", aodFilterBit);
  analysisName += "_";
  analysisName += Form("pt_%.1f_%.1f", ptMin, ptMax);
  analysisName += "_";
  analysisName += Form("eta_%.1f_%.1f", etaMin, etaMax);

  /* check analysis manager */
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("", "cannot get analysis manager");
    return NULL;
  }

  /* check input event handler */
  if (!mgr->GetInputEventHandler()) {
    Error("", "cannot get input event handler");
    return NULL;
  }
  
  /* get common input data container */
  AliAnalysisDataContainer *inputc = mgr->GetCommonInputContainer();
  if (!inputc) {
    Error("", "cannot get common input container");
    return NULL;
  }
   
  /* create output data container */
  TString outputFileName = AliAnalysisManager::GetCommonFileName();
  outputFileName += ":PWGCFEbyE.outputPIDFunctionAnalysis";
  AliAnalysisDataContainer *outputc1 = mgr->CreateContainer(analysisName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, outputFileName.Data());
  if (!outputc1) {
    Error("", "cannot create output container \"Histos\"");
    return NULL;
  }

  /*  create task and connect input/output */
  AliAnalysisTaskPIDFluctuation *task = new AliAnalysisTaskPIDFluctuation(analysisName.Data());
  mgr->AddTask(task);
  mgr->ConnectInput(task, 0, inputc);
  mgr->ConnectOutput(task, 1, outputc1);

  /* setup task */
  task->SetESDtrackCuts(GetESDtrackCuts(aodFilterBit));
  task->SetAODfilterBit(aodFilterBit);
  task->SetEtaRange(etaMin, etaMax);
  task->SetPtRange(ptMin, ptMax);

  task->Dump();
  return task;
}

//__________________________________________________________________

AliESDtrackCuts *
GetESDtrackCuts(Int_t type)
{
  AliESDtrackCuts *trackCuts;
  switch (type) {
  case AliAODTrack::kTrkGlobal:
    trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010();
    break;
  case AliAODTrack::kTrkTPCOnlyConstrained:
  case AliAODTrack::kTrkTPCOnly:
    trackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
    trackCuts->SetMinNClustersTPC(70);
    break;
  }
  return trackCuts;
}


 AddAnalysisTaskPIDFluctuation.C:1
 AddAnalysisTaskPIDFluctuation.C:2
 AddAnalysisTaskPIDFluctuation.C:3
 AddAnalysisTaskPIDFluctuation.C:4
 AddAnalysisTaskPIDFluctuation.C:5
 AddAnalysisTaskPIDFluctuation.C:6
 AddAnalysisTaskPIDFluctuation.C:7
 AddAnalysisTaskPIDFluctuation.C:8
 AddAnalysisTaskPIDFluctuation.C:9
 AddAnalysisTaskPIDFluctuation.C:10
 AddAnalysisTaskPIDFluctuation.C:11
 AddAnalysisTaskPIDFluctuation.C:12
 AddAnalysisTaskPIDFluctuation.C:13
 AddAnalysisTaskPIDFluctuation.C:14
 AddAnalysisTaskPIDFluctuation.C:15
 AddAnalysisTaskPIDFluctuation.C:16
 AddAnalysisTaskPIDFluctuation.C:17
 AddAnalysisTaskPIDFluctuation.C:18
 AddAnalysisTaskPIDFluctuation.C:19
 AddAnalysisTaskPIDFluctuation.C:20
 AddAnalysisTaskPIDFluctuation.C:21
 AddAnalysisTaskPIDFluctuation.C:22
 AddAnalysisTaskPIDFluctuation.C:23
 AddAnalysisTaskPIDFluctuation.C:24
 AddAnalysisTaskPIDFluctuation.C:25
 AddAnalysisTaskPIDFluctuation.C:26
 AddAnalysisTaskPIDFluctuation.C:27
 AddAnalysisTaskPIDFluctuation.C:28
 AddAnalysisTaskPIDFluctuation.C:29
 AddAnalysisTaskPIDFluctuation.C:30
 AddAnalysisTaskPIDFluctuation.C:31
 AddAnalysisTaskPIDFluctuation.C:32
 AddAnalysisTaskPIDFluctuation.C:33
 AddAnalysisTaskPIDFluctuation.C:34
 AddAnalysisTaskPIDFluctuation.C:35
 AddAnalysisTaskPIDFluctuation.C:36
 AddAnalysisTaskPIDFluctuation.C:37
 AddAnalysisTaskPIDFluctuation.C:38
 AddAnalysisTaskPIDFluctuation.C:39
 AddAnalysisTaskPIDFluctuation.C:40
 AddAnalysisTaskPIDFluctuation.C:41
 AddAnalysisTaskPIDFluctuation.C:42
 AddAnalysisTaskPIDFluctuation.C:43
 AddAnalysisTaskPIDFluctuation.C:44
 AddAnalysisTaskPIDFluctuation.C:45
 AddAnalysisTaskPIDFluctuation.C:46
 AddAnalysisTaskPIDFluctuation.C:47
 AddAnalysisTaskPIDFluctuation.C:48
 AddAnalysisTaskPIDFluctuation.C:49
 AddAnalysisTaskPIDFluctuation.C:50
 AddAnalysisTaskPIDFluctuation.C:51
 AddAnalysisTaskPIDFluctuation.C:52
 AddAnalysisTaskPIDFluctuation.C:53
 AddAnalysisTaskPIDFluctuation.C:54
 AddAnalysisTaskPIDFluctuation.C:55
 AddAnalysisTaskPIDFluctuation.C:56
 AddAnalysisTaskPIDFluctuation.C:57
 AddAnalysisTaskPIDFluctuation.C:58
 AddAnalysisTaskPIDFluctuation.C:59
 AddAnalysisTaskPIDFluctuation.C:60
 AddAnalysisTaskPIDFluctuation.C:61
 AddAnalysisTaskPIDFluctuation.C:62
 AddAnalysisTaskPIDFluctuation.C:63
 AddAnalysisTaskPIDFluctuation.C:64
 AddAnalysisTaskPIDFluctuation.C:65
 AddAnalysisTaskPIDFluctuation.C:66
 AddAnalysisTaskPIDFluctuation.C:67
 AddAnalysisTaskPIDFluctuation.C:68
 AddAnalysisTaskPIDFluctuation.C:69
 AddAnalysisTaskPIDFluctuation.C:70
 AddAnalysisTaskPIDFluctuation.C:71
 AddAnalysisTaskPIDFluctuation.C:72
 AddAnalysisTaskPIDFluctuation.C:73
 AddAnalysisTaskPIDFluctuation.C:74
 AddAnalysisTaskPIDFluctuation.C:75
 AddAnalysisTaskPIDFluctuation.C:76
 AddAnalysisTaskPIDFluctuation.C:77
 AddAnalysisTaskPIDFluctuation.C:78
 AddAnalysisTaskPIDFluctuation.C:79
 AddAnalysisTaskPIDFluctuation.C:80
 AddAnalysisTaskPIDFluctuation.C:81