ROOT logo
#include <Riostream.h>
#include <TFile.h>
#include "AliHFAssociatedTrackCuts.h"
#include <TClonesArray.h>
#include <TParameter.h>
#include "AliAODPidHF.h"

/* $Id$ */

void makeInputHFCorrelation(TString suffix = ""){
	
	AliHFAssociatedTrackCuts* HFCorrelationCuts=new AliHFAssociatedTrackCuts();
	HFCorrelationCuts->SetName("AssociatedCuts");
	HFCorrelationCuts->SetTitle("Cuts for associated track");
	Float_t eta = 0.9;
	//______________________________ set ESD track cuts
	AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();

	esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
	esdTrackCuts->SetDCAToVertex2D(kFALSE);
	
	esdTrackCuts->SetRequireTPCRefit(kTRUE);
	esdTrackCuts->SetRequireITSRefit(kTRUE);
	esdTrackCuts->SetMinNClustersTPC(80);
	esdTrackCuts->SetMinNClustersITS(2); 
	//esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); // set requirement on Pixels
	// default is kBoth, otherwise kAny
	esdTrackCuts->SetPtRange(0.3,1.e10);
	esdTrackCuts->SetEtaRange(-eta,eta);
	HFCorrelationCuts->AddTrackCuts(esdTrackCuts);
	//______________________________ set Pool for event mixing 
	
	
	
	HFCorrelationCuts->SetMaxNEventsInPool(200);
	HFCorrelationCuts->SetMinNTracksInPool(1000);
	HFCorrelationCuts->SetMinEventsToMix(8);
	
	HFCorrelationCuts->SetNofPoolBins(5,5);
	
	Double_t MBins[]={0,20,40,60,80,500};
	Double_t * MultiplicityBins = MBins;
	
	Double_t ZBins[]={-10,-5,-2.5,2.5,5,10};
	Double_t *ZVrtxBins = ZBins;
	
	HFCorrelationCuts->SetPoolBins(ZVrtxBins,MultiplicityBins);
	
	//______________________________ MC event type
	
	
	HFCorrelationCuts->SetNofMCEventTypes(2);
	Int_t MCEvType[]={53,68};
	Int_t *MCEvTypeArray = MCEvType;
	HFCorrelationCuts->SetMCEventTypes(MCEvTypeArray);
	
	//______________________________ set kinematics cuts for AOD track 
	const int nofcuts = 4;
	Float_t* trackcutsarray;
	trackcutsarray=new Float_t[nofcuts];
	trackcutsarray[0] = 0.3;//track min pt
	trackcutsarray[1] = 100.;//track max pt
	trackcutsarray[2] = -1000000000.;//track min impact parameter
	trackcutsarray[3] = 100.;//track max impact parameter
	HFCorrelationCuts->SetNVarsTrack(nofcuts);
	HFCorrelationCuts->SetAODTrackCuts(trackcutsarray);
	
	HFCorrelationCuts->SetCharge(0); // -1/+1 to look for opposite/same charge, 0 no charge selection 
	HFCorrelationCuts->SetFilterBit(0); // set 0 for analysis with AOD from 2010
	
	
	//______________________________ set kinematics cuts for AOD v0 
	const int nofcuts2 = 7;
	
	Float_t* vzerocutsarray;
	vzerocutsarray=new Float_t[nofcuts2];
	vzerocutsarray[0] = 0.2; // max dca between two daugters (cm)
	vzerocutsarray[1] = 2; //  max chi square
	vzerocutsarray[2] = 2.; // min decay length (cm) 
	vzerocutsarray[3] = 15; // max decay length (cm)
	vzerocutsarray[4] = 0.2; // min opening angle between two daugters
	vzerocutsarray[5] = 0; // min pt of k0 (GeV/c)
	vzerocutsarray[6] = 0.9; // set eta acceptance

	HFCorrelationCuts->SetNVarsVzero(nofcuts2);
	HFCorrelationCuts->SetAODvZeroCuts(vzerocutsarray);
	
	//______________________________ set PID

	Int_t mode =1;
	AliAODPidHF* pidObj=new AliAODPidHF();
	pidObj->SetMatch(mode);
	pidObj->SetSigma(0,2); // TPC
	pidObj->SetSigma(3,3); // TOF
	pidObj->SetTPC(kTRUE);
	pidObj->SetTOF(kTRUE);
	pidObj->SetCompat(kTRUE);
	
	HFCorrelationCuts->SetPidHF(pidObj);

	 //______________________________ Add additional info
	
	TString description = "Cuts for hadron selection - low pt selection cut";
	
	HFCorrelationCuts->AddDescription(description);
    //______________________________ save to *.root file
	HFCorrelationCuts->PrintAll();
	
	TString outputfilename = "AssocPartCuts";
	outputfilename += suffix;
	outputfilename += ".root";
	
	TString pathOutputFile = "~/CorrelationAnalysis/CutObjects/AssocTracks/";
	
	outputfilename.Prepend(pathOutputFile.Data());
	
	
	TFile* fout=new TFile(outputfilename.Data(),"recreate");   //set this!! 
	fout->cd();
	HFCorrelationCuts->Write();
	fout->Close();
	cout << "***************************************** " << endl;
	cout << "File " << outputfilename << "  created " << endl;
	cout << "***************************************** " << endl;

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