ROOT logo
AliAnalysisTaskSEDplusCorrelations *AddTaskDplusCorrWT(Bool_t system=kFALSE,				                              					                                     Bool_t readMC=kFALSE,
					     Bool_t ifTrig=kTRUE,	     
					     Bool_t mixing=kFALSE,
					     Int_t select=1,
					     Bool_t reco=kTRUE,		         					     Int_t usedisp=0,
					     TString finDirname="",
					     TString filename="",
					     TString finAnObjname="AnalysisCuts")
{

    //                                                                                                                                    
  // Test macro for the AliAnalysisTaskSE for D+ candidates 

  //Invariant mass histogram and                                                 
  // association with MC truth (using MC info in AOD)                                                                                   
  
  // Get the pointer to the existing analysis manager via the static access method.                                                     
  //==============================================================================                                                      
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskDplusCorr", "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("Input file not found : check your cut object");
      }
  }
  
  TFile* filecuts1=new TFile("AssocPartCuts.root");
	  if(!filecuts1->IsOpen()){
		  cout<<"Input file1 not found: exit"<<endl;
		  return;
  }

  
  //Analysis Task

  
  AliRDHFCutsDplustoKpipi* analysiscuts=new AliRDHFCutsDplustoKpipi();
  if(stdcuts) {
    cout<<analysiscuts->GetNPtBins()<<endl;
    if(system==0) analysiscuts->SetStandardCutsPP2010();
    else if(system==1){
      analysiscuts->SetStandardCutsPbPb2011();
      analysiscuts->SetMinCentrality(minC);
      analysiscuts->SetMaxCentrality(maxC);
      //      analysiscuts->SetUseAOD049(kTRUE);
      analysiscuts->SetUseCentrality(AliRDHFCuts::kCentV0M);
    }
  }
  else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(finAnObjname);

 
  
  AliHFAssociatedTrackCuts* corrCuts=new AliHFAssociatedTrackCuts();
  corrCuts = (AliHFAssociatedTrackCuts*)filecuts1->Get("AssociatedCuts");
  corrCuts->SetName("AssociatedCuts");
  corrCuts->PrintAll();
  
    
  AliAnalysisTaskSEDplusCorrelations *dplusTask = new AliAnalysisTaskSEDplusCorrelations("DplusAnalysis",analysiscuts,corrCuts);


  dplusTask->SetReadMC(readMC);
  dplusTask->SetEventMix(mixing);
  dplusTask->SetCorrelator(select);
  dplusTask->SetUseDisplacement(usedisp);
  dplusTask->SetTrigEfficiency(ifTrig);
  dplusTask->SetDebugLevel(0);
  dplusTask->SetMassLimits(0.2);
  dplusTask->SetUseBit(kTRUE);
  dplusTask->SetSystem(kFALSE);
dplusTask->SetUseReconstruction(kTRUE);   

  //  if (system==0) dplusTask->SetDoImpactParameterHistos(kTRUE);

  mgr->AddTask(dplusTask);
  
  // Create containers for input/output 

  TString inname = "cinputDplus";
  TString outname = "coutputDplus";
  TString cutsname = "coutputDplusCuts";
  TString normname = "coutputDplusNorm";
  //TString assocutsname = "coutputAssoCuts";
  inname += finDirname.Data();
  outname += finDirname.Data();
  cutsname += finDirname.Data();
  normname += finDirname.Data();
  //assocutsname += finDirname.Data();
  TString centr=Form("%.0f%.0f",analysiscuts->GetMinCentrality(),analysiscuts->GetMaxCentrality());
  inname += centr;
  outname += centr;
  cutsname += centr;
  normname += centr;
  // assocutsname += centr;


  AliAnalysisDataContainer *cinputDplus = mgr->CreateContainer(inname,TChain::Class(),
							       AliAnalysisManager::kInputContainer);
  TString outputfile = AliAnalysisManager::GetCommonFileName();
  outputfile += ":PWGHF_CorrHF_Dplus";
  
  AliAnalysisDataContainer *coutputDplusCuts = mgr->CreateContainer(cutsname,TList::Class(),
								    AliAnalysisManager::kOutputContainer,
								    outputfile.Data());
  
  AliAnalysisDataContainer *coutputDplus = mgr->CreateContainer(outname,TList::Class(),
								AliAnalysisManager::kOutputContainer,
								outputfile.Data());
  AliAnalysisDataContainer *coutputDplusNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),
								AliAnalysisManager::kOutputContainer,
								outputfile.Data());
  

  //  AliAnalysisDataContainer *coutputAssoCuts = mgr->CreateContainer(assocutsname,TList::Class(),
  //								   AliAnalysisManager::kOutputContainer,
  //								   outputfile.Data());
    

  mgr->ConnectInput(dplusTask,0,mgr->GetCommonInputContainer());
  
  mgr->ConnectOutput(dplusTask,1,coutputDplus);
  
  mgr->ConnectOutput(dplusTask,2,coutputDplusCuts);

  mgr->ConnectOutput(dplusTask,3,coutputDplusNorm);  

  // mgr->ConnectOutput(dplusTask,4,coutputAssoCuts);
  
  return dplusTask;
}
 AddTaskDplusCorr.C:1
 AddTaskDplusCorr.C:2
 AddTaskDplusCorr.C:3
 AddTaskDplusCorr.C:4
 AddTaskDplusCorr.C:5
 AddTaskDplusCorr.C:6
 AddTaskDplusCorr.C:7
 AddTaskDplusCorr.C:8
 AddTaskDplusCorr.C:9
 AddTaskDplusCorr.C:10
 AddTaskDplusCorr.C:11
 AddTaskDplusCorr.C:12
 AddTaskDplusCorr.C:13
 AddTaskDplusCorr.C:14
 AddTaskDplusCorr.C:15
 AddTaskDplusCorr.C:16
 AddTaskDplusCorr.C:17
 AddTaskDplusCorr.C:18
 AddTaskDplusCorr.C:19
 AddTaskDplusCorr.C:20
 AddTaskDplusCorr.C:21
 AddTaskDplusCorr.C:22
 AddTaskDplusCorr.C:23
 AddTaskDplusCorr.C:24
 AddTaskDplusCorr.C:25
 AddTaskDplusCorr.C:26
 AddTaskDplusCorr.C:27
 AddTaskDplusCorr.C:28
 AddTaskDplusCorr.C:29
 AddTaskDplusCorr.C:30
 AddTaskDplusCorr.C:31
 AddTaskDplusCorr.C:32
 AddTaskDplusCorr.C:33
 AddTaskDplusCorr.C:34
 AddTaskDplusCorr.C:35
 AddTaskDplusCorr.C:36
 AddTaskDplusCorr.C:37
 AddTaskDplusCorr.C:38
 AddTaskDplusCorr.C:39
 AddTaskDplusCorr.C:40
 AddTaskDplusCorr.C:41
 AddTaskDplusCorr.C:42
 AddTaskDplusCorr.C:43
 AddTaskDplusCorr.C:44
 AddTaskDplusCorr.C:45
 AddTaskDplusCorr.C:46
 AddTaskDplusCorr.C:47
 AddTaskDplusCorr.C:48
 AddTaskDplusCorr.C:49
 AddTaskDplusCorr.C:50
 AddTaskDplusCorr.C:51
 AddTaskDplusCorr.C:52
 AddTaskDplusCorr.C:53
 AddTaskDplusCorr.C:54
 AddTaskDplusCorr.C:55
 AddTaskDplusCorr.C:56
 AddTaskDplusCorr.C:57
 AddTaskDplusCorr.C:58
 AddTaskDplusCorr.C:59
 AddTaskDplusCorr.C:60
 AddTaskDplusCorr.C:61
 AddTaskDplusCorr.C:62
 AddTaskDplusCorr.C:63
 AddTaskDplusCorr.C:64
 AddTaskDplusCorr.C:65
 AddTaskDplusCorr.C:66
 AddTaskDplusCorr.C:67
 AddTaskDplusCorr.C:68
 AddTaskDplusCorr.C:69
 AddTaskDplusCorr.C:70
 AddTaskDplusCorr.C:71
 AddTaskDplusCorr.C:72
 AddTaskDplusCorr.C:73
 AddTaskDplusCorr.C:74
 AddTaskDplusCorr.C:75
 AddTaskDplusCorr.C:76
 AddTaskDplusCorr.C:77
 AddTaskDplusCorr.C:78
 AddTaskDplusCorr.C:79
 AddTaskDplusCorr.C:80
 AddTaskDplusCorr.C:81
 AddTaskDplusCorr.C:82
 AddTaskDplusCorr.C:83
 AddTaskDplusCorr.C:84
 AddTaskDplusCorr.C:85
 AddTaskDplusCorr.C:86
 AddTaskDplusCorr.C:87
 AddTaskDplusCorr.C:88
 AddTaskDplusCorr.C:89
 AddTaskDplusCorr.C:90
 AddTaskDplusCorr.C:91
 AddTaskDplusCorr.C:92
 AddTaskDplusCorr.C:93
 AddTaskDplusCorr.C:94
 AddTaskDplusCorr.C:95
 AddTaskDplusCorr.C:96
 AddTaskDplusCorr.C:97
 AddTaskDplusCorr.C:98
 AddTaskDplusCorr.C:99
 AddTaskDplusCorr.C:100
 AddTaskDplusCorr.C:101
 AddTaskDplusCorr.C:102
 AddTaskDplusCorr.C:103
 AddTaskDplusCorr.C:104
 AddTaskDplusCorr.C:105
 AddTaskDplusCorr.C:106
 AddTaskDplusCorr.C:107
 AddTaskDplusCorr.C:108
 AddTaskDplusCorr.C:109
 AddTaskDplusCorr.C:110
 AddTaskDplusCorr.C:111
 AddTaskDplusCorr.C:112
 AddTaskDplusCorr.C:113
 AddTaskDplusCorr.C:114
 AddTaskDplusCorr.C:115
 AddTaskDplusCorr.C:116
 AddTaskDplusCorr.C:117
 AddTaskDplusCorr.C:118
 AddTaskDplusCorr.C:119
 AddTaskDplusCorr.C:120
 AddTaskDplusCorr.C:121
 AddTaskDplusCorr.C:122
 AddTaskDplusCorr.C:123
 AddTaskDplusCorr.C:124
 AddTaskDplusCorr.C:125
 AddTaskDplusCorr.C:126
 AddTaskDplusCorr.C:127
 AddTaskDplusCorr.C:128
 AddTaskDplusCorr.C:129
 AddTaskDplusCorr.C:130
 AddTaskDplusCorr.C:131
 AddTaskDplusCorr.C:132
 AddTaskDplusCorr.C:133
 AddTaskDplusCorr.C:134
 AddTaskDplusCorr.C:135
 AddTaskDplusCorr.C:136
 AddTaskDplusCorr.C:137
 AddTaskDplusCorr.C:138
 AddTaskDplusCorr.C:139