ROOT logo
AliPHOSCorrelations* AddTaskPi0Correlations (   	const char* name = "Pi0Corr",
						const char* options = "11h",
						Double_t sigmaWidth = 3.,
						Int_t downCentLimit = 0,
						Int_t upCentLimit = 90,
						const char* suffix = "" )
{
	//Author: Ponomarenko Daniil (Daniil.Ponomarenko@cern.ch)
	/* $Id$ */

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

	if (!mgr->GetInputEventHandler()) 
	{
		::Error("AddTaskPi0Correlations", "This task requires an input event handler");
		return NULL;
	}
	
	
	TString className = name;
	TString sigmaName = Form( "%2iSigma", int(sigmaWidth*10.) ) ;
	if( sigmaWidth==0 ) sigmaName = "00Sigma";
	TString sName = Form("%s%s%sCB%it%iCnt", className.Data(), suffix, sigmaName.Data(), downCentLimit, upCentLimit);

	TString combinedName;
	combinedName.Form("%sTask", sName.Data());

	AliPHOSCorrelations* task = new AliPHOSCorrelations( combinedName );

	if( TString(options).Contains("10h") )	
	{
		task->SetCentralityEstimator("V0M");
	}
	
	if( TString(options).Contains("11h") )	
	{
		task->SetCentralityEstimator("V0M");
		if( downCentLimit == 0 && upCentLimit == 10 ) 
		{
			Double_t meanParametrs[2]  = {-0.000129767, 0.138874 };
			Double_t sigmaParametrs[4] = {5.73226e-06, -0.00879368, 0.00462739 };
			task->SetMassMeanParametrs(meanParametrs);
			task->SetMassSigmaParametrs(sigmaParametrs);
		}

		if( downCentLimit == 20 && upCentLimit == 50 ) 
		{
			Double_t meanParametrs[2]  = {-8.35555e-05, 0.136538 };
			Double_t sigmaParametrs[4] = {-7.61949e-06, 1.20701e-06, 0.00474992 };
			task->SetMassMeanParametrs(meanParametrs);
			task->SetMassSigmaParametrs(sigmaParametrs);
		}
	}
	
	if( TString(options).Contains("13") )	
	{
		task->SetCentralityEstimator("V0A");
		if( downCentLimit == 0 && upCentLimit == 10 ) 
		{
			Double_t meanParametrs[2]  = {-4.64539e-05, 0.134773 };
			Double_t sigmaParametrs[3] = {0.00383029, 0.0041709, 0.00468736 };
			task->SetMassMeanParametrs(meanParametrs);
			task->SetMassSigmaParametrs(sigmaParametrs);
		}

		if( downCentLimit == 20 && upCentLimit == 50 ) 
		{
			Double_t meanParametrs[2]  = {-4.90799e-06, 0.134566 };
			Double_t sigmaParametrs[4] = {0.00293721, 0.00622308, 0.00468625 };
			task->SetMassMeanParametrs(meanParametrs);
			task->SetMassSigmaParametrs(sigmaParametrs);
		}
	}


	// Mixed binning 
	//Central:
	if( downCentLimit == 0 && upCentLimit == 10 ) 
	{
		const int nbins = 5;
		Double_t cbin[nbins+1] = {0., 2., 4., 6., 8., 10.};
		TArrayD tbin(nbins+1, cbin);
		Int_t    nMixed[nbins] = {100, 100, 100, 100, 100};
		TArrayI tNMixed(nbins, nMixed);
		task->SetCentralityBinning(tbin, tNMixed);
	}
	// SemiCentral:
	if( downCentLimit == 20 && upCentLimit == 50 ) 
	{
		const int nbins = 6;
		Double_t cbin[nbins+1] = {20., 25., 30., 35., 40., 45., 50.};
		TArrayD tbin(nbins+1, cbin);
		Int_t    nMixed[nbins] = {100, 100, 100, 100, 100, 100};
		TArrayI tNMixed(nbins, nMixed);
		task->SetCentralityBinning(tbin, tNMixed);
	}


	// Period setup
	task->SetPeriodName( TString(options) );
	// Events
	task->SelectCollisionCandidates(AliVEvent::kAny);
	task->SetCentralityBorders((Double_t)downCentLimit , (Double_t)upCentLimit) ;
	// Clasters
	task->EnableTOFCut(false, 100.e-9);
	task->SwitchOnPionEfficiency();
	task->SwitchOnMassParametrisation();
	task->SetSigmaWidth(sigmaWidth);
	// Tracks
	task->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
    task->SetTrackStatus(AliVTrack::kITSrefit);
    task->SetTPCSharedClusterFraction(0.4);
    task->SwitchOnAODTrackSharedClusterSelection();
    task->SwitchOffTrackHitSPDSelection();
    task->SetTrackFilterMask(786);

	mgr->AddTask(task);
	mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer() );

	TString cname(Form("%sCoutput1", combinedName.Data()));
	TString pname(Form("%s:%s", AliAnalysisManager::GetCommonFileName(), combinedName.Data()));
	AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(cname.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, pname.Data());
	mgr->ConnectOutput(task, 1, coutput1);

	return task;
}

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