ROOT logo
///*******************************************************
///Config Description
//configIndex = 0 ---> Default cuts and PID
//configIndex = 1 ---> TPC Ncls = 100
//configIndex = 2 ---> TPC Ncls = 60
//configIndex = 3 ---> SPD kBoth + 3 ITS cls
//configIndex = 4 ---> SPD kBoth + 4 ITS cls
//configIndex = 5 ---> SPD kAny + 3 ITS cls
//configIndex = 6 ---> Mass < 0.05
//configIndex = 7 ---> Mass < 0.15
//configIndex = 8 ---> Op Angle < 0.1
//configIndex = 9 ---> TPC PID: -0.5 to 3.0
//configIndex = 10 ---> V0A -> other
//configIndex = 11 ---> Associated hadron with SPD::kAny cut
///*******************************************************

AliAnalysisTaskEMCalHFEpA* ConfigEMCalHFEpACorrelation(
Bool_t isMC=kFALSE, 
Int_t triggerIndex=0, 
Int_t configIndex=0, 
Int_t centralityIndex=0, 
Bool_t isAOD = kFALSE,
Bool_t isEMCal = kFALSE,
Int_t EMCalThreshould = 0 //0 == EG1, 1 == EG2
)

{
///_______________________________________________________________________________________________________________
///Track selection: Cuts used to ensure a minimum quality level of the tracks selected to perform the analysis
	AliHFEcuts *hfecuts = new AliHFEcuts("hfeCutsMinBias","HFE Cuts");
	hfecuts->CreateStandardCuts();
	
	//TPC Cuts
	
	hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);	
	if(configIndex==1) 	hfecuts->SetMinNClustersTPC(100);			                //Minimum number of clusters on TPC = 100
	else if(configIndex==2) hfecuts->SetMinNClustersTPC(60);			        	//Minimum number of clusters on TPC = 60
	else hfecuts->SetMinNClustersTPC(80);							                //Minimum number of clusters on TPC = 80
	
	hfecuts->SetMinNClustersTPCPID(80); 						                    //Minimum number of clusters for dE/dx
	hfecuts->SetMinRatioTPCclusters(0.6);						                    //Number of clusters (Found/Findable)
	
	//ITS
	if(configIndex==3) 
	{
		hfecuts->SetCutITSpixel(AliHFEextraCuts::kBoth);							//Require 2 cluster on SPD
		hfecuts->SetMinNClustersITS(3);												//Minimum number of clusters on ITS
	}
	else if(configIndex==4) 
	{
		hfecuts->SetCutITSpixel(AliHFEextraCuts::kBoth);							//Require 2 cluster on SPD
		hfecuts->SetMinNClustersITS(4);												//Minimum number of clusters on ITS
	}
	else if(configIndex==5) 
	{
		hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny);				            	//Require at least one cluster on SPD
		hfecuts->SetMinNClustersITS(3);												//Minimum number of clusters on ITS
	}
	else
	{
		hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny);				            	//Require at least one cluster on SPD
		hfecuts->SetMinNClustersITS(2);												//Minimum number of clusters on ITS
	}
	
	hfecuts->SetCheckITSLayerStatus(kFALSE); 
	
	//Additional Cuts
	hfecuts->SetPtRange(0.5, 1e6);								                    //Transversal momentum range in GeV/c
	//hfecuts->SetMaxImpactParam(1,2); 							                    //DCA to vertex
	
	//Event Selection
	hfecuts->SetVertexRange(10.);													//
	//hfecuts->SetProductionVertex(0,0.3,0,0.3);									//
///_______________________________________________________________________________________________________________

///_________________________________________________________________________________________________________________________
///Task config
	AliAnalysisTaskEMCalHFEpA *task = new AliAnalysisTaskEMCalHFEpA(Form("HFECuts%d_%d_%d_%d",triggerIndex,configIndex,centralityIndex,EMCalThreshould));
	printf("task ------------------------ %p\n ", task);
	
	task->SetHFECuts(hfecuts);
	task->SetCorrelationAnalysis();
	task->SetAODanalysis(isAOD);
	task->SetEventMixing(kTRUE);
	
	task->SetAssHadronPtRange(0.5,2.0);
	
	task->SetAdditionalCuts(0.0,80);
	if(configIndex==20) task->SetAdditionalCuts(0.0,80);
	if(configIndex==21) task->SetAdditionalCuts(0.3,80);
	if(configIndex==22) task->SetAdditionalCuts(0.5,80);
	if(configIndex==23) task->SetAdditionalCuts(0.7,80);
	
	if(configIndex==11) task->SetSPDCutForHadrons();
	
	if(configIndex==10) task->SetCentralityEstimator(1);
	else task->SetCentralityEstimator(0);
	
	if(EMCalThreshould==0 && triggerIndex==2) task->SetEMCalTriggerEG1();
	if(EMCalThreshould==1 && triggerIndex==2) task->SetEMCalTriggerEG2();
	
	if(isEMCal) task->SetUseEMCal();
	
	if(configIndex==6) task->SetNonHFEmassCut(0.05);
	else if(configIndex==7) task->SetNonHFEmassCut(0.15);
	else task->SetNonHFEmassCut(0.1);
	
	if(isEMCal) task->SetEtaCut(-0.6,0.6);
	else task->SetEtaCut(-0.9,0.9);
	
	task->SetEoverPCut(0.8,1.2);	//Will work only in case isEMCal = kTRUE

	if(configIndex==8) task->SetNonHFEangleCut(0.1);
	
	if(centralityIndex==0) task->SetCentrality(0,20);
	if(centralityIndex==1) task->SetCentrality(20,60);
	if(centralityIndex==2) task->SetCentrality(60,100);
	if(centralityIndex==3) task->SetCentrality(0,10);
	if(centralityIndex==4) task->SetCentrality(10,20);
///_______________________________________________________________________________________________________________

///_______________________________________________________________________________________________________________
///Particle identification
	AliHFEpid *pid = task->GetPID();

//______________________________________
//In the case of a simulation
	if(isMC)
	{
	  pid->SetHasMCData(kTRUE);
	  task->SetMCanalysis();
	}
//______________________________________

//______________________________________________________
//Configure PID
	//_________________________
	//TPC+TOF PID
	pid->AddDetector("TOF", 0);				//Add TOF PID
	pid->AddDetector("TPC", 1);				//Add TPC PID
	
	//_________________________
	//Configure TPC cut
	//Defaul = -1 to 3 sigmas
	//Note that it is also possible to define a model instead of a constant
	//--------->For this change the "cut model"
	
	Double_t params[4];
	char *cutmodel;
	cutmodel = "pol0";
	
	if(configIndex==9) params[0] = 0.0;
	else params[0] = -0.5;
	
	pid->ConfigureTPCdefaultCut(cutmodel,params,3.0); 
//_______________________________________________________
///_______________________________________________________________________________________________________________

	printf("*************************************\n");
	printf("Configuring standard Task:\n");
	pid->PrintStatus();
	printf("*************************************\n");

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