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* AddAliHigherMomentsToyModelTask(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,
						 TString particle,
						 Double_t nsigma,
						 Int_t AODfilterBit = 128,
						 const char* centralityEstimator,
						 Bool_t trigger = kFALSE,
						 Bool_t usepid,
						 TString  analysis,
						 const char* taskss) {
  
  
  TString taskname = "HMMCQA";
  taskname.Append(taskss);
  TString taskname1 = "HMTM";
  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(); 
  
  AliHigherMomentsToyModel *taskHM = new AliHigherMomentsToyModel("HigherMomentsTask");
  taskHM->SetVertexDiamond(vx,vy,vz);
  taskHM->SetCentralityEstimator(centralityEstimator);
  taskHM->SetAnalysisType(analysis);
  taskHM->SetDCA(dcaxy, dcaz);
  taskHM->SetPtRange(ptl,pth);
  taskHM->SetEta(eta);
  taskHM->SetTPCNclus(nclus);
  taskHM->SetChi2PerNDF(chi2ndf);
  taskHM->SetAODtrackCutBit(AODfilterBit);
  taskHM->SetKinematicsCutsAOD(ptl,pth,eta);
  taskHM->SetUsePid(usepid);
  if(trigger) taskHM->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral);
  else taskHM->SelectCollisionCandidates(AliVEvent::kMB);
  
  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); }
  }
  // cout << " Check analysis type " << analysisType << endl;
  
  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;
}
 AddAliHigherMomentsToyModelTask.C:1
 AddAliHigherMomentsToyModelTask.C:2
 AddAliHigherMomentsToyModelTask.C:3
 AddAliHigherMomentsToyModelTask.C:4
 AddAliHigherMomentsToyModelTask.C:5
 AddAliHigherMomentsToyModelTask.C:6
 AddAliHigherMomentsToyModelTask.C:7
 AddAliHigherMomentsToyModelTask.C:8
 AddAliHigherMomentsToyModelTask.C:9
 AddAliHigherMomentsToyModelTask.C:10
 AddAliHigherMomentsToyModelTask.C:11
 AddAliHigherMomentsToyModelTask.C:12
 AddAliHigherMomentsToyModelTask.C:13
 AddAliHigherMomentsToyModelTask.C:14
 AddAliHigherMomentsToyModelTask.C:15
 AddAliHigherMomentsToyModelTask.C:16
 AddAliHigherMomentsToyModelTask.C:17
 AddAliHigherMomentsToyModelTask.C:18
 AddAliHigherMomentsToyModelTask.C:19
 AddAliHigherMomentsToyModelTask.C:20
 AddAliHigherMomentsToyModelTask.C:21
 AddAliHigherMomentsToyModelTask.C:22
 AddAliHigherMomentsToyModelTask.C:23
 AddAliHigherMomentsToyModelTask.C:24
 AddAliHigherMomentsToyModelTask.C:25
 AddAliHigherMomentsToyModelTask.C:26
 AddAliHigherMomentsToyModelTask.C:27
 AddAliHigherMomentsToyModelTask.C:28
 AddAliHigherMomentsToyModelTask.C:29
 AddAliHigherMomentsToyModelTask.C:30
 AddAliHigherMomentsToyModelTask.C:31
 AddAliHigherMomentsToyModelTask.C:32
 AddAliHigherMomentsToyModelTask.C:33
 AddAliHigherMomentsToyModelTask.C:34
 AddAliHigherMomentsToyModelTask.C:35
 AddAliHigherMomentsToyModelTask.C:36
 AddAliHigherMomentsToyModelTask.C:37
 AddAliHigherMomentsToyModelTask.C:38
 AddAliHigherMomentsToyModelTask.C:39
 AddAliHigherMomentsToyModelTask.C:40
 AddAliHigherMomentsToyModelTask.C:41
 AddAliHigherMomentsToyModelTask.C:42
 AddAliHigherMomentsToyModelTask.C:43
 AddAliHigherMomentsToyModelTask.C:44
 AddAliHigherMomentsToyModelTask.C:45
 AddAliHigherMomentsToyModelTask.C:46
 AddAliHigherMomentsToyModelTask.C:47
 AddAliHigherMomentsToyModelTask.C:48
 AddAliHigherMomentsToyModelTask.C:49
 AddAliHigherMomentsToyModelTask.C:50
 AddAliHigherMomentsToyModelTask.C:51
 AddAliHigherMomentsToyModelTask.C:52
 AddAliHigherMomentsToyModelTask.C:53
 AddAliHigherMomentsToyModelTask.C:54
 AddAliHigherMomentsToyModelTask.C:55
 AddAliHigherMomentsToyModelTask.C:56
 AddAliHigherMomentsToyModelTask.C:57
 AddAliHigherMomentsToyModelTask.C:58
 AddAliHigherMomentsToyModelTask.C:59
 AddAliHigherMomentsToyModelTask.C:60
 AddAliHigherMomentsToyModelTask.C:61
 AddAliHigherMomentsToyModelTask.C:62
 AddAliHigherMomentsToyModelTask.C:63
 AddAliHigherMomentsToyModelTask.C:64
 AddAliHigherMomentsToyModelTask.C:65
 AddAliHigherMomentsToyModelTask.C:66
 AddAliHigherMomentsToyModelTask.C:67
 AddAliHigherMomentsToyModelTask.C:68
 AddAliHigherMomentsToyModelTask.C:69
 AddAliHigherMomentsToyModelTask.C:70
 AddAliHigherMomentsToyModelTask.C:71
 AddAliHigherMomentsToyModelTask.C:72
 AddAliHigherMomentsToyModelTask.C:73
 AddAliHigherMomentsToyModelTask.C:74
 AddAliHigherMomentsToyModelTask.C:75
 AddAliHigherMomentsToyModelTask.C:76
 AddAliHigherMomentsToyModelTask.C:77
 AddAliHigherMomentsToyModelTask.C:78
 AddAliHigherMomentsToyModelTask.C:79
 AddAliHigherMomentsToyModelTask.C:80
 AddAliHigherMomentsToyModelTask.C:81
 AddAliHigherMomentsToyModelTask.C:82
 AddAliHigherMomentsToyModelTask.C:83
 AddAliHigherMomentsToyModelTask.C:84
 AddAliHigherMomentsToyModelTask.C:85
 AddAliHigherMomentsToyModelTask.C:86
 AddAliHigherMomentsToyModelTask.C:87
 AddAliHigherMomentsToyModelTask.C:88
 AddAliHigherMomentsToyModelTask.C:89
 AddAliHigherMomentsToyModelTask.C:90
 AddAliHigherMomentsToyModelTask.C:91