ROOT logo
//=========================================================================//
//                                                                         //
//           Analysis AddTask for Net-Charge Higher Moment Analysis        //
//              Author: Satyajit Jena || Nirbhay K. Behera                 //
//                      sjena@cern.ch || nbehera@cern.ch                   //
//                                                                         //
//=========================================================================//
TString fileNameBase="AnalysisResults.root";
//_________________________________________________________//
AliAnalysisTask*  AddAliEbyEHigherMomentsTaskPID(Double_t vx,
						 Double_t vy,
						 Double_t vz,
						 Double_t ptl,
						 Double_t pth,
						 Int_t nptbins,
						 Double_t eta,
						 Double_t rapidity,
						 TString particle,
						 Double_t nsigma,
						 Int_t AODfilterBit = 128,
						 const char* centralityEstimator,
						 Bool_t trigger = kFALSE,
						 Int_t pidType = 2,
						 Bool_t tofPID,
						 TString  analysis,
						 const char* taskss) {
  
  
  
  
  Bool_t IsMC = kFALSE;  
  if(analysis=="MCAOD") IsMC = kTRUE;
  
  TString taskname = "HM";
  taskname.Append(taskss);
  
  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();

  AliHelperPID* help = new AliHelperPID();
  help->SetNSigmaCut(nsigma);
  help->SetPIDType(pidType);        
  help->SetfRequestTOFPID(tofPID);
  help->SetfPtTOFPID(ptl);
  help->SetisMC(IsMC);
  
  AliEbyEHigherMomentsTaskPID *taskHM = new AliEbyEHigherMomentsTaskPID("HigherMomentsTaskPID");
  taskHM->SetVertexDiamond(vx,vy,vz);
  taskHM->SetCentralityEstimator(centralityEstimator);
  taskHM->SetAnalysisType(analysis);
  taskHM->SetAODtrackCutBit(AODfilterBit);
  taskHM->SetKinematicsCutsAOD(ptl,pth,eta);
  taskHM->SetNumberOfPtBins(nptbins);
  taskHM->SetHelperPID(help);
  taskHM->SetNSigmaCut(nsigma);
  taskHM->SetRapidityCut(rapidity);
  if( particle == "Proton" ){  taskHM->SetParticleSpecies(AliPID::kProton); }
  else if( particle == "Kaon") { taskHM->SetParticleSpecies(AliPID::kKaon); }
  else if( particle == "Pion" ){ taskHM->SetParticleSpecies(AliPID::kPion); }
  
  if(trigger) taskHM->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral);
  else taskHM->SelectCollisionCandidates(AliVEvent::kMB);
   
  // cout << " Check analysis type " << analysisType << endl;
  
  mgr->AddTask(taskHM);
 
  AliAnalysisDataContainer *coutFA = mgr->CreateContainer(taskname.Data(), 
							  TList::Class(),
							  AliAnalysisManager::kOutputContainer,fileNameBase.Data());
  mgr->ConnectInput(taskHM, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskHM, 1, coutFA);
  
  return taskHM;
}
 AddAliEbyEHigherMomentsTaskPID.C:1
 AddAliEbyEHigherMomentsTaskPID.C:2
 AddAliEbyEHigherMomentsTaskPID.C:3
 AddAliEbyEHigherMomentsTaskPID.C:4
 AddAliEbyEHigherMomentsTaskPID.C:5
 AddAliEbyEHigherMomentsTaskPID.C:6
 AddAliEbyEHigherMomentsTaskPID.C:7
 AddAliEbyEHigherMomentsTaskPID.C:8
 AddAliEbyEHigherMomentsTaskPID.C:9
 AddAliEbyEHigherMomentsTaskPID.C:10
 AddAliEbyEHigherMomentsTaskPID.C:11
 AddAliEbyEHigherMomentsTaskPID.C:12
 AddAliEbyEHigherMomentsTaskPID.C:13
 AddAliEbyEHigherMomentsTaskPID.C:14
 AddAliEbyEHigherMomentsTaskPID.C:15
 AddAliEbyEHigherMomentsTaskPID.C:16
 AddAliEbyEHigherMomentsTaskPID.C:17
 AddAliEbyEHigherMomentsTaskPID.C:18
 AddAliEbyEHigherMomentsTaskPID.C:19
 AddAliEbyEHigherMomentsTaskPID.C:20
 AddAliEbyEHigherMomentsTaskPID.C:21
 AddAliEbyEHigherMomentsTaskPID.C:22
 AddAliEbyEHigherMomentsTaskPID.C:23
 AddAliEbyEHigherMomentsTaskPID.C:24
 AddAliEbyEHigherMomentsTaskPID.C:25
 AddAliEbyEHigherMomentsTaskPID.C:26
 AddAliEbyEHigherMomentsTaskPID.C:27
 AddAliEbyEHigherMomentsTaskPID.C:28
 AddAliEbyEHigherMomentsTaskPID.C:29
 AddAliEbyEHigherMomentsTaskPID.C:30
 AddAliEbyEHigherMomentsTaskPID.C:31
 AddAliEbyEHigherMomentsTaskPID.C:32
 AddAliEbyEHigherMomentsTaskPID.C:33
 AddAliEbyEHigherMomentsTaskPID.C:34
 AddAliEbyEHigherMomentsTaskPID.C:35
 AddAliEbyEHigherMomentsTaskPID.C:36
 AddAliEbyEHigherMomentsTaskPID.C:37
 AddAliEbyEHigherMomentsTaskPID.C:38
 AddAliEbyEHigherMomentsTaskPID.C:39
 AddAliEbyEHigherMomentsTaskPID.C:40
 AddAliEbyEHigherMomentsTaskPID.C:41
 AddAliEbyEHigherMomentsTaskPID.C:42
 AddAliEbyEHigherMomentsTaskPID.C:43
 AddAliEbyEHigherMomentsTaskPID.C:44
 AddAliEbyEHigherMomentsTaskPID.C:45
 AddAliEbyEHigherMomentsTaskPID.C:46
 AddAliEbyEHigherMomentsTaskPID.C:47
 AddAliEbyEHigherMomentsTaskPID.C:48
 AddAliEbyEHigherMomentsTaskPID.C:49
 AddAliEbyEHigherMomentsTaskPID.C:50
 AddAliEbyEHigherMomentsTaskPID.C:51
 AddAliEbyEHigherMomentsTaskPID.C:52
 AddAliEbyEHigherMomentsTaskPID.C:53
 AddAliEbyEHigherMomentsTaskPID.C:54
 AddAliEbyEHigherMomentsTaskPID.C:55
 AddAliEbyEHigherMomentsTaskPID.C:56
 AddAliEbyEHigherMomentsTaskPID.C:57
 AddAliEbyEHigherMomentsTaskPID.C:58
 AddAliEbyEHigherMomentsTaskPID.C:59
 AddAliEbyEHigherMomentsTaskPID.C:60
 AddAliEbyEHigherMomentsTaskPID.C:61
 AddAliEbyEHigherMomentsTaskPID.C:62
 AddAliEbyEHigherMomentsTaskPID.C:63
 AddAliEbyEHigherMomentsTaskPID.C:64
 AddAliEbyEHigherMomentsTaskPID.C:65
 AddAliEbyEHigherMomentsTaskPID.C:66
 AddAliEbyEHigherMomentsTaskPID.C:67
 AddAliEbyEHigherMomentsTaskPID.C:68
 AddAliEbyEHigherMomentsTaskPID.C:69
 AddAliEbyEHigherMomentsTaskPID.C:70
 AddAliEbyEHigherMomentsTaskPID.C:71
 AddAliEbyEHigherMomentsTaskPID.C:72
 AddAliEbyEHigherMomentsTaskPID.C:73
 AddAliEbyEHigherMomentsTaskPID.C:74
 AddAliEbyEHigherMomentsTaskPID.C:75
 AddAliEbyEHigherMomentsTaskPID.C:76
 AddAliEbyEHigherMomentsTaskPID.C:77
 AddAliEbyEHigherMomentsTaskPID.C:78
 AddAliEbyEHigherMomentsTaskPID.C:79
 AddAliEbyEHigherMomentsTaskPID.C:80
 AddAliEbyEHigherMomentsTaskPID.C:81
 AddAliEbyEHigherMomentsTaskPID.C:82
 AddAliEbyEHigherMomentsTaskPID.C:83
 AddAliEbyEHigherMomentsTaskPID.C:84
 AddAliEbyEHigherMomentsTaskPID.C:85