ROOT logo
AliAnalysisTaskTOFSpectraPbPb *
AddAnalysisTaskTOFSpectraPbPb(Bool_t mcFlag = kFALSE, Bool_t mcTuneFlag = kFALSE, Bool_t pbpbFlag = kFALSE)
{

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

  /* check input event handler */
  if (!mgr->GetInputEventHandler()) {
    Error("AddAnalysisTaskTOFSpectraPbPb", "cannot get input event handler");
    return NULL;
  }
  
  /* check input data type */
  TString str = mgr->GetInputEventHandler()->GetDataType();
  if (str.CompareTo("ESD")) {
    Error("AddAnalysisTaskTOFSpectraPbPb", "input data type is not \"ESD\"");
    return NULL;
  }

  /* check MC truth event handler */
  if (mcFlag) {
    if (!mgr->GetMCtruthEventHandler()) {
      Error("AddAnalysisTaskTOFSpectraPbPb", "cannot get MC truth event handler");
      return NULL;
    }
  }
  
  /* get common input data container */
  AliAnalysisDataContainer *inputc = mgr->GetCommonInputContainer();
  if (!inputc) {
    Error("AddAnalysisTaskTOFSpectraPbPb", "cannot get common input container");
    return NULL;
  }
  
  /* setup output event handler */
  AliAODHandler *outputh = (AliAODHandler *)mgr->GetOutputEventHandler();
  outputh->SetCreateNonStandardAOD();
  outputh->SetOutputFileName("TOFSpectraPbPb.root");

  /*  create task and connect input/output */
  AliAnalysisTaskTOFSpectraPbPb *task = new AliAnalysisTaskTOFSpectraPbPb();
  mgr->ConnectInput(task, 0, inputc);

  /* setup task */
  task->SetMCFlag(mcFlag);
  task->SetMCTuneFlag(mcTuneFlag);
  task->SetPbPbFlag(pbpbFlag);
  task->SelectCollisionCandidates(AliVEvent::kAny);
  task->SetVertexSelectionFlag(kTRUE);
  task->SetVertexCut(15.0);
  task->SetRapidityCut(1.0);
  /* setup TOF calib */
  task->GetTOFcalib()->SetRemoveMeanT0(!mcFlag);
  task->GetTOFcalib()->SetCalibrateTOFsignal(!mcFlag);
  task->GetTOFcalib()->SetCorrectTExp(kFALSE);
  /* setup resolution */
  Double_t timeReso = 85.;
  if (mcFlag && !mcTuneFlag) timeReso = 80.;
  task->SetTimeResolution(timeReso);
  task->GetESDpid()->GetTOFResponse().SetTimeResolution(timeReso);
  task->GetTOFT0maker()->SetTimeResolution(timeReso);
  /* setup track cuts */
  AliESDtrackCuts *trackCuts = new AliESDtrackCuts;
  trackCuts->SetMaxChi2PerClusterTPC(4.5);
  trackCuts->SetAcceptKinkDaughters(kFALSE);
  trackCuts->SetRequireTPCRefit(kTRUE);
  trackCuts->SetRequireITSRefit(kTRUE);
  trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
				      AliESDtrackCuts::kAny);
  trackCuts->SetMaxDCAToVertexZ(2);
  trackCuts->SetDCAToVertex2D(kFALSE);
  trackCuts->SetRequireSigmaToVertex(kFALSE);
  trackCuts->SetMaxChi2PerClusterITS(36);
  trackCuts->SetPtRange(0.15, 10.);
  trackCuts->SetEtaRange(-0.9, 0.9);
  task->SetTrackCuts(trackCuts);
  
  /* return task */
  return task;
  
}
 AddAnalysisTaskTOFSpectraPbPb.C:1
 AddAnalysisTaskTOFSpectraPbPb.C:2
 AddAnalysisTaskTOFSpectraPbPb.C:3
 AddAnalysisTaskTOFSpectraPbPb.C:4
 AddAnalysisTaskTOFSpectraPbPb.C:5
 AddAnalysisTaskTOFSpectraPbPb.C:6
 AddAnalysisTaskTOFSpectraPbPb.C:7
 AddAnalysisTaskTOFSpectraPbPb.C:8
 AddAnalysisTaskTOFSpectraPbPb.C:9
 AddAnalysisTaskTOFSpectraPbPb.C:10
 AddAnalysisTaskTOFSpectraPbPb.C:11
 AddAnalysisTaskTOFSpectraPbPb.C:12
 AddAnalysisTaskTOFSpectraPbPb.C:13
 AddAnalysisTaskTOFSpectraPbPb.C:14
 AddAnalysisTaskTOFSpectraPbPb.C:15
 AddAnalysisTaskTOFSpectraPbPb.C:16
 AddAnalysisTaskTOFSpectraPbPb.C:17
 AddAnalysisTaskTOFSpectraPbPb.C:18
 AddAnalysisTaskTOFSpectraPbPb.C:19
 AddAnalysisTaskTOFSpectraPbPb.C:20
 AddAnalysisTaskTOFSpectraPbPb.C:21
 AddAnalysisTaskTOFSpectraPbPb.C:22
 AddAnalysisTaskTOFSpectraPbPb.C:23
 AddAnalysisTaskTOFSpectraPbPb.C:24
 AddAnalysisTaskTOFSpectraPbPb.C:25
 AddAnalysisTaskTOFSpectraPbPb.C:26
 AddAnalysisTaskTOFSpectraPbPb.C:27
 AddAnalysisTaskTOFSpectraPbPb.C:28
 AddAnalysisTaskTOFSpectraPbPb.C:29
 AddAnalysisTaskTOFSpectraPbPb.C:30
 AddAnalysisTaskTOFSpectraPbPb.C:31
 AddAnalysisTaskTOFSpectraPbPb.C:32
 AddAnalysisTaskTOFSpectraPbPb.C:33
 AddAnalysisTaskTOFSpectraPbPb.C:34
 AddAnalysisTaskTOFSpectraPbPb.C:35
 AddAnalysisTaskTOFSpectraPbPb.C:36
 AddAnalysisTaskTOFSpectraPbPb.C:37
 AddAnalysisTaskTOFSpectraPbPb.C:38
 AddAnalysisTaskTOFSpectraPbPb.C:39
 AddAnalysisTaskTOFSpectraPbPb.C:40
 AddAnalysisTaskTOFSpectraPbPb.C:41
 AddAnalysisTaskTOFSpectraPbPb.C:42
 AddAnalysisTaskTOFSpectraPbPb.C:43
 AddAnalysisTaskTOFSpectraPbPb.C:44
 AddAnalysisTaskTOFSpectraPbPb.C:45
 AddAnalysisTaskTOFSpectraPbPb.C:46
 AddAnalysisTaskTOFSpectraPbPb.C:47
 AddAnalysisTaskTOFSpectraPbPb.C:48
 AddAnalysisTaskTOFSpectraPbPb.C:49
 AddAnalysisTaskTOFSpectraPbPb.C:50
 AddAnalysisTaskTOFSpectraPbPb.C:51
 AddAnalysisTaskTOFSpectraPbPb.C:52
 AddAnalysisTaskTOFSpectraPbPb.C:53
 AddAnalysisTaskTOFSpectraPbPb.C:54
 AddAnalysisTaskTOFSpectraPbPb.C:55
 AddAnalysisTaskTOFSpectraPbPb.C:56
 AddAnalysisTaskTOFSpectraPbPb.C:57
 AddAnalysisTaskTOFSpectraPbPb.C:58
 AddAnalysisTaskTOFSpectraPbPb.C:59
 AddAnalysisTaskTOFSpectraPbPb.C:60
 AddAnalysisTaskTOFSpectraPbPb.C:61
 AddAnalysisTaskTOFSpectraPbPb.C:62
 AddAnalysisTaskTOFSpectraPbPb.C:63
 AddAnalysisTaskTOFSpectraPbPb.C:64
 AddAnalysisTaskTOFSpectraPbPb.C:65
 AddAnalysisTaskTOFSpectraPbPb.C:66
 AddAnalysisTaskTOFSpectraPbPb.C:67
 AddAnalysisTaskTOFSpectraPbPb.C:68
 AddAnalysisTaskTOFSpectraPbPb.C:69
 AddAnalysisTaskTOFSpectraPbPb.C:70
 AddAnalysisTaskTOFSpectraPbPb.C:71
 AddAnalysisTaskTOFSpectraPbPb.C:72
 AddAnalysisTaskTOFSpectraPbPb.C:73
 AddAnalysisTaskTOFSpectraPbPb.C:74
 AddAnalysisTaskTOFSpectraPbPb.C:75
 AddAnalysisTaskTOFSpectraPbPb.C:76
 AddAnalysisTaskTOFSpectraPbPb.C:77
 AddAnalysisTaskTOFSpectraPbPb.C:78
 AddAnalysisTaskTOFSpectraPbPb.C:79
 AddAnalysisTaskTOFSpectraPbPb.C:80
 AddAnalysisTaskTOFSpectraPbPb.C:81
 AddAnalysisTaskTOFSpectraPbPb.C:82
 AddAnalysisTaskTOFSpectraPbPb.C:83
 AddAnalysisTaskTOFSpectraPbPb.C:84
 AddAnalysisTaskTOFSpectraPbPb.C:85
 AddAnalysisTaskTOFSpectraPbPb.C:86
 AddAnalysisTaskTOFSpectraPbPb.C:87