ROOT logo
//=========================================================================//
//                                                                         //
//           Analysis AddTask for Particle Ratio Fluctuation Study         //
//              Author: Deepika Rathee  || Satyajit Jenara                 //
//                      drathee@cern.ch || sjena@cern.ch                   //
//                       Fri Apr 11 13:31:07 CEST 2013
//                                                                         //
//=========================================================================//

void AddAliEbyEParticleRatioFluctuationTask(Double_t vz=10,Double_t ptl=0.5, Double_t pth=5, Int_t AODfilterBit = 768, Int_t pidtype = 2, Int_t requestTofPid = 1, Double_t nSigmaCut = 3., Int_t ikey = 0, TString analdata = "AOD", TString analtype = "PbPb", TString centralityEstimator = "V0M", TString ctaskname = "2011") {

  Double_t vx = 3.; Double_t vy = 3.;

  TString taskname = "EbyECF_";
  taskname += ctaskname;
  taskname += "_";
  taskname += analdata;
  taskname += "_";
  taskname += analtype;
  taskname += "_";
  taskname += centralityEstimator;
  taskname += "_";
  taskname += Form("%d",AODfilterBit);
  taskname += "_";
  taskname += Form("PT_%.1f_%.1f", ptl, pth);
  taskname += "_";

  Bool_t isMC = 0;  
  if(analdata == "AODMC" || analdata == "MC") 
    isMC = 1;

    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskFluctuations", "No analysis manager to connect to.");
    return NULL;
  }

  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskFluctuations", "This task requires an input event handler");
    return NULL;
  }
  TString type = mgr->GetInputEventHandler()->GetDataType(); 

 
  TString basefilename = AliAnalysisManager::GetCommonFileName();
  
  
  AliHelperPID* help = new AliHelperPID();
  help->SetNSigmaCut(nSigmaCut);
  help->SetPIDType(pidtype);        
  help->SetfRequestTOFPID(requestTofPid);
  help->SetfPtTOFPID(ptl);
  help->SetisMC(isMC);
  
  if(ikey == 0 ) {
  AliEbyEParticleRatioFluctuationTask *task[8];
  AliAnalysisDataContainer *cout[8];
  for(Int_t i = 0; i < 8 ; i ++) {
    Double_t eta = 0.1 + 0.1*i;
    TString taskname1 = taskname;
    taskname1 += Form("ETA_%.2f",eta);
    task[i] = new AliEbyEParticleRatioFluctuationTask(taskname1.Data());
    task[i]->SetVertexDiamond(vx,vy,vz);
    task[i]->SetAODtrackCutBit(AODfilterBit);
    task[i]->SetKinematicsCuts(ptl,pth,eta);
    task[i]->SetHelperPID(help);
    mgr->AddTask(task[i]);
    
    cout[i] = mgr->CreateContainer(Form("%s",taskname1.Data()),TList::Class(), 
				   AliAnalysisManager::kOutputContainer,
				   Form("%s:CFEbyE_PR",basefilename.Data()));
    mgr->ConnectInput(task[i], 0, mgr->GetCommonInputContainer());
    mgr->ConnectOutput(task[i], 1, cout[i]);
    
  }
   
  AliEbyEParticleRatioFluctuationTask *taskqa;
  taskqa = new AliEbyEParticleRatioFluctuationTask("QACFEbyEPR");
  //  taskqa->SetPIDMethod(1);
  taskqa->RunQA();
  // taskqa->Debug();
  taskqa->SetVertexDiamond(vx,vy,vz);
  taskqa->SetAODtrackCutBit(AODfilterBit);
  taskqa->SetKinematicsCuts(ptl,pth,0.8);
  taskqa->SetHelperPID(help);
  mgr->AddTask(taskqa);
  
  AliAnalysisDataContainer *coutqa 
    = mgr->CreateContainer(Form("QA_%s",taskname1.Data()),TList::Class(),
			   AliAnalysisManager::kOutputContainer,
			   Form("%s:CFEbyE_PR",basefilename.Data()));
  mgr->ConnectInput(taskqa, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskqa, 1, coutqa);
  }
  else if(ikey > 0 && ikey < 9) {
    Double_t eta = 0.1*ikey;
    TString taskname1 = taskname;
    taskname1 += Form("ETA_%.2f",eta);
    AliEbyEParticleRatioFluctuationTask *task1 
      = new AliEbyEParticleRatioFluctuationTask(taskname1.Data());
    task1->SetVertexDiamond(vx,vy,vz);
    task1->SetAODtrackCutBit(AODfilterBit);
    task1->SetKinematicsCuts(ptl,pth,eta);
    task1->SetHelperPID(help);
    mgr->AddTask(task1);
    
    AliAnalysisDataContainer *cout1 
      = mgr->CreateContainer(Form("%s",taskname1.Data()),TList::Class(),
			     AliAnalysisManager::kOutputContainer,
			     Form("%s:CFEbyE_PR",basefilename.Data()));
    mgr->ConnectInput(task1, 0, mgr->GetCommonInputContainer());
    mgr->ConnectOutput(task1, 1, cout1);
    
   
  AliEbyEParticleRatioFluctuationTask *taskqa1;
  taskqa1 = new AliEbyEParticleRatioFluctuationTask("QACFEbyEPR");
  taskqa1->RunQA();
  taskqa1->SetVertexDiamond(vx,vy,vz);
  taskqa1->SetAODtrackCutBit(AODfilterBit);
  taskqa1->SetKinematicsCuts(ptl,pth,eta);
  taskqa1->SetHelperPID(help);
  mgr->AddTask(taskqa1);
  
  AliAnalysisDataContainer *coutqa1 
    = mgr->CreateContainer(Form("QA_%s",taskname1.Data()),TList::Class(), 
			   AliAnalysisManager::kOutputContainer,
			   Form("%s:CFEbyE_PR",basefilename.Data()));
  mgr->ConnectInput(taskqa1, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskqa1, 1, coutqa1);
  
  } else return;

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