ROOT logo
AliAnalysisTaskCompareAODTrackCuts* AddTaskCompareAODTrackCuts_DiHadronPIDEff(
	Double_t MinCentrality = 5.,
	Double_t MaxCentrality = 0.,
	const char* CentralityEstimator = "V0M",
	Double_t maxVertexZ = 7.,
	Double_t maxEta = 0.8,
	Double_t minAssociatedPt = 0.2,
	Double_t maxAssociatedPt = 5.0,
	Double_t minTriggerPt = 5.,
	Double_t maxTriggerPt = 10.,
	Bool_t requestAllSingleTrackHistos = kTRUE,
	Int_t FilterMaskTrigger = 7,
	Int_t FilterMaskAssociated = 10,
	Bool_t isPbPb = kTRUE,
	Bool_t isMC = kTRUE,
	Int_t DebugLevel = 0,
	const char* outputFileName = 0,
	const char* containerName = "DiHadronPIDEff",
	const char* folderName = "PWGCF_DiHadronPID") 

{

	// Get a pointer to the analysis manager.
    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
    if (!mgr) {
        cout<<"AddTaskDiHadronPID.C -> No analysis manager found."<<endl;
        return 0x0;
    }

    // Creating the analysis task.
    AliAnalysisTaskCompareAODTrackCuts* EfficiencyTask = new AliAnalysisTaskCompareAODTrackCuts(containerName);
    EfficiencyTask->SetVerbose(kFALSE);
    EfficiencyTask->SetMC(isMC);
    EfficiencyTask->SetCalculateTOFMismatch(kTRUE);

        // Configure and add Event Cuts.
	AliAODEventCutsDiHadronPID* eventcuts = new AliAODEventCutsDiHadronPID("EventCuts");
	eventcuts->SetTrigger(AliVEvent::kMB);
	eventcuts->SetCentrality(MaxCentrality, MinCentrality);
	eventcuts->SetMaxVertexZ(maxVertexZ);
	eventcuts->SetCentralityEstimator(CentralityEstimator);
	eventcuts->SetIsPbPb(isPbPb);
	eventcuts->SetDebugLevel(DebugLevel);
	EfficiencyTask->SetEventCuts(eventcuts);

	// Configure and add track cuts for trigger.
	AliAODTrackCutsDiHadronPID* triggercuts = new AliAODTrackCutsDiHadronPID("TrackCutsTrigger");
	triggercuts->SetIsMC(isMC);
	triggercuts->SetFilterMask(FilterMaskTrigger);
	triggercuts->SetPtRange(minTriggerPt,maxTriggerPt);
	triggercuts->SetMaxEta(maxEta);
	triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllCharged);
	triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPositive);
	triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegative);
	if (requestAllSingleTrackHistos) {
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllPion);
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosPion);
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegPion);					
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllKaon);
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosKaon);
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegKaon);		
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllProton);
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosProton);
		triggercuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegProton);
	}	
	triggercuts->SetDebugLevel(DebugLevel);
	EfficiencyTask->AddTrackCuts(triggercuts);

	// Configure and add track cuts for associateds.
	AliAODTrackCutsDiHadronPID* associatedscuts = new AliAODTrackCutsDiHadronPID("TrackCutsAssociated");
	associatedscuts->SetIsMC(isMC);
	associatedscuts->SetFilterMask(FilterMaskAssociated);
	associatedscuts->SetPtRange(minAssociatedPt,maxAssociatedPt);
	associatedscuts->SetMaxEta(maxEta);
	ULong_t associatedflags = (UInt_t)(AliAODTrack::kTOFout)|(UInt_t)(AliAODTrack::kTIME);	
	associatedscuts->SetDemandFlags(associatedflags);
	associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllCharged);
	associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPositive);
	associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegative);
	if (requestAllSingleTrackHistos) {
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllPion);
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosPion);
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegPion);					
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllKaon);
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosKaon);
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegKaon);		
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kAllProton);
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kPosProton);
		associatedscuts->RequestQAHistos(AliAODTrackCutsDiHadronPID::kNegProton);
	}
	associatedscuts->SetDebugLevel(DebugLevel);
	EfficiencyTask->AddTrackCuts(associatedscuts);

	// Add the task.
	mgr->AddTask(EfficiencyTask);
    
	// Data containers.
	AliAnalysisDataContainer* cinput  = mgr->GetCommonInputContainer();
	mgr->ConnectInput(EfficiencyTask, 0, cinput); 
	
	if (!outputFileName) {outputFileName = AliAnalysisManager::GetCommonFileName();}
	
	AliAnalysisDataContainer* coutput1 = mgr->CreateContainer(containerName, TList::Class(),
                         AliAnalysisManager::kOutputContainer,Form("%s:%s", outputFileName, folderName));
	
	mgr->ConnectOutput(EfficiencyTask,1,coutput1);
	
	return EfficiencyTask;

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