ROOT logo
AliAnalysisTaskSEDs *AddTaskDs(Int_t system=0/*0=pp,1=PbPb*/,
			       Int_t storeNtuple=0,Bool_t readMC=kFALSE,
			       TString filename="", TString postname="")
{
  //
  // Test macro for the AliAnalysisTaskSE for Ds candidates 

  //Invariant mass histogram and                                                 
  // association with MC truth (using MC info in AOD) 
  // Origin: R. Bala, bala@to.infn.it         
  // Modified for Ds meson: G.M. Innocenti innocent@to.infn.it
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskDs", "No analysis manager to connect to.");
  }
  
  Bool_t stdcuts=kFALSE;
  TFile* filecuts;
  if( filename.EqualTo("") ) {
    stdcuts=kTRUE; 
  } else {
    filecuts=TFile::Open(filename.Data());
    if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
	  AliFatal("Cut object not found: analysis will not start!\n");
    }
    else printf("Cut object correctly found\n");
  }
  
  //Analysis Task

  AliRDHFCutsDstoKKpi* analysiscuts=new AliRDHFCutsDstoKKpi();
  
  if(stdcuts) {
    if(system==0) {
      printf("Cut object not found: standard pp cut object used\n");
      analysiscuts->SetStandardCutsPP2010();
    }
    else AliFatal("Standard cut object not available for PbPb: analysis will not start!\n");
  }
  else analysiscuts = (AliRDHFCutsDstoKKpi*)filecuts->Get("AnalysisCuts");
  
  AliAnalysisTaskSEDs *dsTask = new AliAnalysisTaskSEDs("DsAnalysis",analysiscuts,storeNtuple);

  dsTask->SetReadMC(readMC);
  //dsTask->SetDoLikeSign(kTRUE);
  //  dsTask->SetUseTPCpid(kTRUE);
  //dsTask->SetUseTOFpid(kTRUE);
  dsTask->SetDebugLevel(0);
  dsTask->SetUseSelectionBit(kTRUE);
  //dsTask->SetMassLimits(0.2);
  mgr->AddTask(dsTask);
  
  // Create containers for input/output 
  TString name="cinputDs";
  name+=postname;
  AliAnalysisDataContainer *cinputDs = mgr->CreateContainer(name,TChain::Class(),
							    AliAnalysisManager::kInputContainer);
  TString outputfile = AliAnalysisManager::GetCommonFileName();
  outputfile += ":PWG3_D2H_InvMassDs";
  outputfile+=postname;
  
  name="coutputDsCuts"; name+=postname;
  AliAnalysisDataContainer *coutputDsCuts = mgr->CreateContainer(name,TList::Class(),
								 AliAnalysisManager::kOutputContainer,
								 outputfile.Data());
  
  name="coutputDs"; name+=postname;
  AliAnalysisDataContainer *coutputDs = mgr->CreateContainer(name,TList::Class(),
							     AliAnalysisManager::kOutputContainer,
							     outputfile.Data());
  name="coutputDsNorm"; name+=postname;
  AliAnalysisDataContainer *coutputDsNorm = mgr->CreateContainer(name,AliNormalizationCounter::Class(),
								AliAnalysisManager::kOutputContainer,
								outputfile.Data());
  
  name="coutputDs2"; name+=postname;
  if(storeNtuple){
    AliAnalysisDataContainer *coutputDs2 = mgr->CreateContainer(name,TNtuple::Class(),
								AliAnalysisManager::kOutputContainer,
								outputfile.Data());
    coutputDs2->SetSpecialOutput();
  }
  
  mgr->ConnectInput(dsTask,0,mgr->GetCommonInputContainer());
  
  mgr->ConnectOutput(dsTask,1,coutputDs);
  
  mgr->ConnectOutput(dsTask,2,coutputDsCuts);

  mgr->ConnectOutput(dsTask,3,coutputDsNorm);  
  
  if(storeNtuple){
    mgr->ConnectOutput(dsTask,4,coutputDs2);
  }
  
  return dsTask;
}
 AddTaskDs.C:1
 AddTaskDs.C:2
 AddTaskDs.C:3
 AddTaskDs.C:4
 AddTaskDs.C:5
 AddTaskDs.C:6
 AddTaskDs.C:7
 AddTaskDs.C:8
 AddTaskDs.C:9
 AddTaskDs.C:10
 AddTaskDs.C:11
 AddTaskDs.C:12
 AddTaskDs.C:13
 AddTaskDs.C:14
 AddTaskDs.C:15
 AddTaskDs.C:16
 AddTaskDs.C:17
 AddTaskDs.C:18
 AddTaskDs.C:19
 AddTaskDs.C:20
 AddTaskDs.C:21
 AddTaskDs.C:22
 AddTaskDs.C:23
 AddTaskDs.C:24
 AddTaskDs.C:25
 AddTaskDs.C:26
 AddTaskDs.C:27
 AddTaskDs.C:28
 AddTaskDs.C:29
 AddTaskDs.C:30
 AddTaskDs.C:31
 AddTaskDs.C:32
 AddTaskDs.C:33
 AddTaskDs.C:34
 AddTaskDs.C:35
 AddTaskDs.C:36
 AddTaskDs.C:37
 AddTaskDs.C:38
 AddTaskDs.C:39
 AddTaskDs.C:40
 AddTaskDs.C:41
 AddTaskDs.C:42
 AddTaskDs.C:43
 AddTaskDs.C:44
 AddTaskDs.C:45
 AddTaskDs.C:46
 AddTaskDs.C:47
 AddTaskDs.C:48
 AddTaskDs.C:49
 AddTaskDs.C:50
 AddTaskDs.C:51
 AddTaskDs.C:52
 AddTaskDs.C:53
 AddTaskDs.C:54
 AddTaskDs.C:55
 AddTaskDs.C:56
 AddTaskDs.C:57
 AddTaskDs.C:58
 AddTaskDs.C:59
 AddTaskDs.C:60
 AddTaskDs.C:61
 AddTaskDs.C:62
 AddTaskDs.C:63
 AddTaskDs.C:64
 AddTaskDs.C:65
 AddTaskDs.C:66
 AddTaskDs.C:67
 AddTaskDs.C:68
 AddTaskDs.C:69
 AddTaskDs.C:70
 AddTaskDs.C:71
 AddTaskDs.C:72
 AddTaskDs.C:73
 AddTaskDs.C:74
 AddTaskDs.C:75
 AddTaskDs.C:76
 AddTaskDs.C:77
 AddTaskDs.C:78
 AddTaskDs.C:79
 AddTaskDs.C:80
 AddTaskDs.C:81
 AddTaskDs.C:82
 AddTaskDs.C:83
 AddTaskDs.C:84
 AddTaskDs.C:85
 AddTaskDs.C:86
 AddTaskDs.C:87
 AddTaskDs.C:88
 AddTaskDs.C:89
 AddTaskDs.C:90
 AddTaskDs.C:91
 AddTaskDs.C:92
 AddTaskDs.C:93
 AddTaskDs.C:94
 AddTaskDs.C:95
 AddTaskDs.C:96
 AddTaskDs.C:97
 AddTaskDs.C:98
 AddTaskDs.C:99
 AddTaskDs.C:100
 AddTaskDs.C:101