ROOT logo
AliAnalysisTaskKinkResonance *AddTaskKinkResonancePhiESD(Short_t lCollidingSystems=0 /*0 = pp, 1 = AA*/)
{
// Creates, configures and attaches to the train a kink resonance task.
// Get the pointer to the existing analysis manager via the static access method.
//==============================================================================
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
 if (!mgr) {
 ::Error("AddTaskKinkResonancePhiESD", "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("AddTaskKinkResonancePhiESD", "This task requires an input event handler");
 return NULL;
}
TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
 if (type != "ESD") {
 ::Error("AddTaskKinkResonancePhiESD", "This task needs an ESD input handler");
return NULL;
}
if (!mgr->GetMCtruthEventHandler()) {
 ::Error("AddTaskKinkResonancePhiESD", "This task needs an MC handler");
 return NULL;
}

// Setup the analysis object
  
  AliResonanceKink  *kinkResonanceObjectPESD=new AliResonanceKink();
  kinkResonanceObjectPESD->InitOutputHistograms(70,0.99,1.088, 36, -0.9, 0.9, 100, 0.0, 10.0);
  kinkResonanceObjectPESD->SetPDGCodes(kKPlus, kKPlus, AliResonanceKink::kPhi); 
  kinkResonanceObjectPESD->SetAnalysisType("ESD"); // "ESD" or "MC" or "DATA"
  kinkResonanceObjectPESD->SetMaxNsigmaToVertex(4.0);
  kinkResonanceObjectPESD->SetMaxDCAxy(3.0);
  kinkResonanceObjectPESD->SetMaxDCAzaxis(3.0);
  kinkResonanceObjectPESD->SetPtTrackCut(0.25);
  kinkResonanceObjectPESD->SetMinTPCclusters(50);
  kinkResonanceObjectPESD->SetMaxChi2PerTPCcluster(3.5);
  kinkResonanceObjectPESD->SetMaxCov0(2.0);
  kinkResonanceObjectPESD->SetMaxCov2(2.0);
  kinkResonanceObjectPESD->SetMaxCov5(0.5);
  kinkResonanceObjectPESD->SetMaxCov9(0.5);
  kinkResonanceObjectPESD->SetMaxCov14(2.0);
  kinkResonanceObjectPESD->SetMinKinkRadius(120.);
  kinkResonanceObjectPESD->SetMaxKinkRadius(220.);
  kinkResonanceObjectPESD->SetQtLimits(0.05, 0.5);
  kinkResonanceObjectPESD->SetUpperAbsEtaCut(0.9);

// Create and configure the task
AliAnalysisTaskKinkResonance *taskresonancePhiESD = new AliAnalysisTaskKinkResonance("TaskResPhiESDKinkPID");
taskresonancePhiESD->SetAnalysisKinkObject(kinkResonanceObjectPESD);
mgr->AddTask(taskresonancePhiESD);

// Create ONLY the output containers for the data produced by the task.
// Get and connect other common input/output containers via the manager as below
//==============================================================================
   TString outputFileName = AliAnalysisManager::GetCommonFileName();
   outputFileName += ":PWG2KINKResonancePhiESD";
   if (lCollidingSystems) outputFileName += "_AA";
   else outputFileName += "_PP";
   if (mgr->GetMCtruthEventHandler()) outputFileName += "_MC";

   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("KinkResPhiESD",
							     TList::Class(),
							     AliAnalysisManager::kOutputContainer,
							     outputFileName );

mgr->ConnectInput(taskresonancePhiESD, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(taskresonancePhiESD, 1, coutput1);
return taskresonancePhiESD;
} 
 AddTaskKinkResonancePhiESD.C:1
 AddTaskKinkResonancePhiESD.C:2
 AddTaskKinkResonancePhiESD.C:3
 AddTaskKinkResonancePhiESD.C:4
 AddTaskKinkResonancePhiESD.C:5
 AddTaskKinkResonancePhiESD.C:6
 AddTaskKinkResonancePhiESD.C:7
 AddTaskKinkResonancePhiESD.C:8
 AddTaskKinkResonancePhiESD.C:9
 AddTaskKinkResonancePhiESD.C:10
 AddTaskKinkResonancePhiESD.C:11
 AddTaskKinkResonancePhiESD.C:12
 AddTaskKinkResonancePhiESD.C:13
 AddTaskKinkResonancePhiESD.C:14
 AddTaskKinkResonancePhiESD.C:15
 AddTaskKinkResonancePhiESD.C:16
 AddTaskKinkResonancePhiESD.C:17
 AddTaskKinkResonancePhiESD.C:18
 AddTaskKinkResonancePhiESD.C:19
 AddTaskKinkResonancePhiESD.C:20
 AddTaskKinkResonancePhiESD.C:21
 AddTaskKinkResonancePhiESD.C:22
 AddTaskKinkResonancePhiESD.C:23
 AddTaskKinkResonancePhiESD.C:24
 AddTaskKinkResonancePhiESD.C:25
 AddTaskKinkResonancePhiESD.C:26
 AddTaskKinkResonancePhiESD.C:27
 AddTaskKinkResonancePhiESD.C:28
 AddTaskKinkResonancePhiESD.C:29
 AddTaskKinkResonancePhiESD.C:30
 AddTaskKinkResonancePhiESD.C:31
 AddTaskKinkResonancePhiESD.C:32
 AddTaskKinkResonancePhiESD.C:33
 AddTaskKinkResonancePhiESD.C:34
 AddTaskKinkResonancePhiESD.C:35
 AddTaskKinkResonancePhiESD.C:36
 AddTaskKinkResonancePhiESD.C:37
 AddTaskKinkResonancePhiESD.C:38
 AddTaskKinkResonancePhiESD.C:39
 AddTaskKinkResonancePhiESD.C:40
 AddTaskKinkResonancePhiESD.C:41
 AddTaskKinkResonancePhiESD.C:42
 AddTaskKinkResonancePhiESD.C:43
 AddTaskKinkResonancePhiESD.C:44
 AddTaskKinkResonancePhiESD.C:45
 AddTaskKinkResonancePhiESD.C:46
 AddTaskKinkResonancePhiESD.C:47
 AddTaskKinkResonancePhiESD.C:48
 AddTaskKinkResonancePhiESD.C:49
 AddTaskKinkResonancePhiESD.C:50
 AddTaskKinkResonancePhiESD.C:51
 AddTaskKinkResonancePhiESD.C:52
 AddTaskKinkResonancePhiESD.C:53
 AddTaskKinkResonancePhiESD.C:54
 AddTaskKinkResonancePhiESD.C:55
 AddTaskKinkResonancePhiESD.C:56
 AddTaskKinkResonancePhiESD.C:57
 AddTaskKinkResonancePhiESD.C:58
 AddTaskKinkResonancePhiESD.C:59
 AddTaskKinkResonancePhiESD.C:60
 AddTaskKinkResonancePhiESD.C:61
 AddTaskKinkResonancePhiESD.C:62
 AddTaskKinkResonancePhiESD.C:63
 AddTaskKinkResonancePhiESD.C:64
 AddTaskKinkResonancePhiESD.C:65
 AddTaskKinkResonancePhiESD.C:66
 AddTaskKinkResonancePhiESD.C:67
 AddTaskKinkResonancePhiESD.C:68
 AddTaskKinkResonancePhiESD.C:69
 AddTaskKinkResonancePhiESD.C:70
 AddTaskKinkResonancePhiESD.C:71
 AddTaskKinkResonancePhiESD.C:72
 AddTaskKinkResonancePhiESD.C:73