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";

//const char* analysisType        = "MCAOD"; // MC, ESD, AOD
//const char* centralityEstimator = "V0M"; // V0M, TRK, FMD, ....

//_________________________________________________________//

AliAnalysisTask* AddAliEbyEHigherMomentsEffContTask(Double_t vx,
						    Double_t vy,
						    Double_t vz,
						    Double_t dcaxy,
						    Double_t dcaz,
						    Double_t ptl,
						    Double_t pth,
						    Double_t eta,
						    Double_t rapidity,
						    Int_t    nclus,
						    Double_t chi2ndf,
						    Int_t AODfilterBit = 128,
						    Bool_t usepid,
						    TString particle,
						    Double_t nsigma,
						    Bool_t CheckCont,
						    Bool_t efficiency,
						    const char* centralityEstimator,
						    Bool_t trigger = kFALSE,
						    const char* analysisType,
						    const char* taskss) {
  
  
  TString taskname = "HMQA";
  TString taskname1 = "HM";
  taskname.Append(taskss);
  taskname1.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(); 
  
  AliEbyEHigherMomentsEffContTask *taskHM = new AliEbyEHigherMomentsEffContTask("HigherMomentsTask");
  taskHM->SetVertexDiamond(vx,vy,vz);
  taskHM->SetKinematicsCutsAOD(ptl,pth,eta);
  taskHM->SetDCA(dcaxy, dcaz);
  taskHM->SetCentralityEstimator(centralityEstimator);
  taskHM->SetAnalysisType(analysisType);
  taskHM->SetPtRange(ptl,pth);
  taskHM->SetEta(eta);
  taskHM->SetTPCNclus(nclus);
  taskHM->SetChi2PerNDF(chi2ndf);
  taskHM->SetAODtrackCutBit(AODfilterBit);
  taskHM->SetUsePid(usepid);
  taskHM->SetContaMinationCheck(CheckCont);
  taskHM->SetEfficencyJob(efficiency);
  
  if( usepid ){
    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);
  
  mgr->AddTask(taskHM);
  
  
  AliAnalysisDataContainer *coutQA = mgr->CreateContainer(taskname.Data(), 
							  TList::Class(),
							  AliAnalysisManager::kOutputContainer,fileNameBase.Data());
  AliAnalysisDataContainer *coutFA = mgr->CreateContainer(taskname1.Data(), 
							  TList::Class(),
							  AliAnalysisManager::kOutputContainer,fileNameBase.Data());
  mgr->ConnectInput(taskHM, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(taskHM, 1, coutQA);
  mgr->ConnectOutput(taskHM, 2, coutFA);
  
  return taskHM;
}
 AddAliEbyEHigherMomentsEffContTask.C:1
 AddAliEbyEHigherMomentsEffContTask.C:2
 AddAliEbyEHigherMomentsEffContTask.C:3
 AddAliEbyEHigherMomentsEffContTask.C:4
 AddAliEbyEHigherMomentsEffContTask.C:5
 AddAliEbyEHigherMomentsEffContTask.C:6
 AddAliEbyEHigherMomentsEffContTask.C:7
 AddAliEbyEHigherMomentsEffContTask.C:8
 AddAliEbyEHigherMomentsEffContTask.C:9
 AddAliEbyEHigherMomentsEffContTask.C:10
 AddAliEbyEHigherMomentsEffContTask.C:11
 AddAliEbyEHigherMomentsEffContTask.C:12
 AddAliEbyEHigherMomentsEffContTask.C:13
 AddAliEbyEHigherMomentsEffContTask.C:14
 AddAliEbyEHigherMomentsEffContTask.C:15
 AddAliEbyEHigherMomentsEffContTask.C:16
 AddAliEbyEHigherMomentsEffContTask.C:17
 AddAliEbyEHigherMomentsEffContTask.C:18
 AddAliEbyEHigherMomentsEffContTask.C:19
 AddAliEbyEHigherMomentsEffContTask.C:20
 AddAliEbyEHigherMomentsEffContTask.C:21
 AddAliEbyEHigherMomentsEffContTask.C:22
 AddAliEbyEHigherMomentsEffContTask.C:23
 AddAliEbyEHigherMomentsEffContTask.C:24
 AddAliEbyEHigherMomentsEffContTask.C:25
 AddAliEbyEHigherMomentsEffContTask.C:26
 AddAliEbyEHigherMomentsEffContTask.C:27
 AddAliEbyEHigherMomentsEffContTask.C:28
 AddAliEbyEHigherMomentsEffContTask.C:29
 AddAliEbyEHigherMomentsEffContTask.C:30
 AddAliEbyEHigherMomentsEffContTask.C:31
 AddAliEbyEHigherMomentsEffContTask.C:32
 AddAliEbyEHigherMomentsEffContTask.C:33
 AddAliEbyEHigherMomentsEffContTask.C:34
 AddAliEbyEHigherMomentsEffContTask.C:35
 AddAliEbyEHigherMomentsEffContTask.C:36
 AddAliEbyEHigherMomentsEffContTask.C:37
 AddAliEbyEHigherMomentsEffContTask.C:38
 AddAliEbyEHigherMomentsEffContTask.C:39
 AddAliEbyEHigherMomentsEffContTask.C:40
 AddAliEbyEHigherMomentsEffContTask.C:41
 AddAliEbyEHigherMomentsEffContTask.C:42
 AddAliEbyEHigherMomentsEffContTask.C:43
 AddAliEbyEHigherMomentsEffContTask.C:44
 AddAliEbyEHigherMomentsEffContTask.C:45
 AddAliEbyEHigherMomentsEffContTask.C:46
 AddAliEbyEHigherMomentsEffContTask.C:47
 AddAliEbyEHigherMomentsEffContTask.C:48
 AddAliEbyEHigherMomentsEffContTask.C:49
 AddAliEbyEHigherMomentsEffContTask.C:50
 AddAliEbyEHigherMomentsEffContTask.C:51
 AddAliEbyEHigherMomentsEffContTask.C:52
 AddAliEbyEHigherMomentsEffContTask.C:53
 AddAliEbyEHigherMomentsEffContTask.C:54
 AddAliEbyEHigherMomentsEffContTask.C:55
 AddAliEbyEHigherMomentsEffContTask.C:56
 AddAliEbyEHigherMomentsEffContTask.C:57
 AddAliEbyEHigherMomentsEffContTask.C:58
 AddAliEbyEHigherMomentsEffContTask.C:59
 AddAliEbyEHigherMomentsEffContTask.C:60
 AddAliEbyEHigherMomentsEffContTask.C:61
 AddAliEbyEHigherMomentsEffContTask.C:62
 AddAliEbyEHigherMomentsEffContTask.C:63
 AddAliEbyEHigherMomentsEffContTask.C:64
 AddAliEbyEHigherMomentsEffContTask.C:65
 AddAliEbyEHigherMomentsEffContTask.C:66
 AddAliEbyEHigherMomentsEffContTask.C:67
 AddAliEbyEHigherMomentsEffContTask.C:68
 AddAliEbyEHigherMomentsEffContTask.C:69
 AddAliEbyEHigherMomentsEffContTask.C:70
 AddAliEbyEHigherMomentsEffContTask.C:71
 AddAliEbyEHigherMomentsEffContTask.C:72
 AddAliEbyEHigherMomentsEffContTask.C:73
 AddAliEbyEHigherMomentsEffContTask.C:74
 AddAliEbyEHigherMomentsEffContTask.C:75
 AddAliEbyEHigherMomentsEffContTask.C:76
 AddAliEbyEHigherMomentsEffContTask.C:77
 AddAliEbyEHigherMomentsEffContTask.C:78
 AddAliEbyEHigherMomentsEffContTask.C:79
 AddAliEbyEHigherMomentsEffContTask.C:80
 AddAliEbyEHigherMomentsEffContTask.C:81
 AddAliEbyEHigherMomentsEffContTask.C:82
 AddAliEbyEHigherMomentsEffContTask.C:83
 AddAliEbyEHigherMomentsEffContTask.C:84
 AddAliEbyEHigherMomentsEffContTask.C:85
 AddAliEbyEHigherMomentsEffContTask.C:86
 AddAliEbyEHigherMomentsEffContTask.C:87
 AddAliEbyEHigherMomentsEffContTask.C:88
 AddAliEbyEHigherMomentsEffContTask.C:89
 AddAliEbyEHigherMomentsEffContTask.C:90
 AddAliEbyEHigherMomentsEffContTask.C:91
 AddAliEbyEHigherMomentsEffContTask.C:92
 AddAliEbyEHigherMomentsEffContTask.C:93
 AddAliEbyEHigherMomentsEffContTask.C:94
 AddAliEbyEHigherMomentsEffContTask.C:95
 AddAliEbyEHigherMomentsEffContTask.C:96