// AliFemtoSplittingMergingQA.C - macro to create the splitting/merging
// test with the pion correlation function.
// As a default the anti-splitting and anti-merging cuts are open
// and the two correlation functions:
// AliFemtoShareQualityCorrFctn and AliFemtoTPCInnerCorrFctn
// can be used to study the splitting (former) and merging (latter) effect
// If ones needs to produce a "clean" sample with both effects removed,
// one needs to change the cut values to the "reasonable" ones, or perform
// the full systematic analysis with the above-mentioned functions
// Author: Adam Kisiel. Adam.Kisiel@cern.ch
// parameters:
// listFileName - a text file containing a list of ESDs (with full paths)
// to analyze
void AliFemtoSplittingMergingQA(const char *listFileName)
{
double PionMass = 0.13956995;
double chargePi = 1.0;
// Load the neccessary libraries
gSystem->Load("libTree");
gSystem->Load("libGeom");
gSystem->Load("libEG");
gSystem->Load("libCint");
gSystem->Load("libESD");
gSystem->Load("libPWG2femtoscopy");
gSystem->Load("libPWG2femtoscopyUser");
// Set-up the reader for ALICE ESD
AliFemtoEventReaderESD* Reader=new AliFemtoEventReaderESD();
// Read only constrained momenta - primordial particles
Reader->SetConstrained(true);
Reader->SetReadTPCInner(true);
// Read the file list from the filename supplied by the user
Reader->SetInputFile(listFileName);
// Setup the manager
AliFemtoManager* Manager=new AliFemtoManager();
// Point to the data source - the reader
Manager->SetEventReader(Reader);
// Setup the analysis
AliFemtoSimpleAnalysis* an =new AliFemtoSimpleAnalysis();
// Number of events to construct the background
an->SetNumEventsToMix(3);
// The event selector
AliFemtoBasicEventCut* mec = new AliFemtoBasicEventCut();
// Accept events with the given multiplicity
mec->SetEventMult(0,100000);
// and z-vertex distance to the center of the TPC
mec->SetVertZPos(-1000,1000);
// The track selector
AliFemtoESDTrackCut* dtc = new AliFemtoESDTrackCut();
// We want positive pions
dtc->SetPidProbPion(0.2,1.001);
dtc->SetPidProbMuon(0.0,0.8);
dtc->SetPidProbKaon(0.0,0.1);
dtc->SetPidProbProton(0.0,0.1);
dtc->SetMostProbablePion();
dtc->SetCharge(1.0);
// so we set the correct mass
dtc->SetMass(PionMass);
// we select low pt
dtc->SetPt(0.1,0.7);
dtc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
dtc->SetminTPCncls(95);
dtc->SetRemoveKinks(kTRUE);
dtc->SetLabel(kFALSE);
dtc->SetMaxITSChiNdof(3.0);
dtc->SetMaxTPCChiNdof(2.0);
dtc->SetMaxSigmaToVertex(3.0);
AliFemtoCutMonitorParticleYPt *cutPass = new AliFemtoCutMonitorParticleYPt("cutPass", 0.13957);
AliFemtoCutMonitorParticleYPt *cutFail = new AliFemtoCutMonitorParticleYPt("cutFail", 0.13957);
dtc->AddCutMonitor(cutPass, cutFail);
// Pair selector
AliFemtoShareQualityTPCEntranceSepPairCut *sqpc = new AliFemtoShareQualityTPCEntranceSepPairCut();
// remove split track pairs and pairs that share hits
// Set maximim allowed "quality" for the pair
// 1.0 - accept all pairs
// -0.5 - reject all pairs
// a reasonable value should lie between 0.0 and 0.5
sqpc->SetShareQualityMax(1.0);
// Set maximum allowed shared hits fraction per pair
// 1.0 - accept all pairs
// 0.0 - reject all pairs
// a reasonable value is small but nno-zero (0.05)
sqpc->SetShareFractionMax(1.0);
// Set minimum allowed separation between nominal TPC entrance points
// of the two tracks in the pair
// 0.0 - accept all pairs
// a reasonable value is 3.0 [cm]
sqpc->SetTPCEntranceSepMinimum(0.0);
sqpc->SetRemoveSameLabel(kFALSE);
// Add the cuts to the analysis
an->SetEventCut(mec);
an->SetFirstParticleCut(dtc);
an->SetSecondParticleCut(dtc);
an->SetPairCut(sqpc);
// Setup correlation functions
// A simple qinv correlation function
AliFemtoQinvCorrFctn *cqinv= new AliFemtoQinvCorrFctn("qinvcf",75,0.0,0.4);
// A correlation function to monitor the splitting and cluster sharing in TPC
AliFemtoShareQualityCorrFctn *csqqinv= new AliFemtoShareQualityCorrFctn("sqqinvcf",75,0.0,0.4);
// A correlation function to monitor the distance at the entrance to the TPC
AliFemtoTPCInnerCorrFctn *tpcin = new AliFemtoTPCInnerCorrFctn("tpcin",80, 0.0, 0.4);
// add the correlation functions to the analysis
an->AddCorrFctn(cqinv);
an->AddCorrFctn(csqqinv);
an->AddCorrFctn(tpcin);
// Add the analysis to the manager
Manager->AddAnalysis(an);
// Run the event loop
long nE= 100000;
if (Manager->Init())
cout<<" Problem"<<endl;
int Status=0;
long int nEP=0;
while ((!Status)&&(nEP<nE))
{
nEP++;
cout<<" next event "<<nEP<<endl;
Status=Manager->ProcessEvent();
}
// Save the results
char ofname[200];
sprintf(ofname, "QinvCF.In.root");
TFile f1 (ofname,"RECREATE","Data");
cqinv->Numerator()->Write();
cqinv->Denominator()->Write();
csqqinv->WriteHistos();
tpcin->WriteHistos();
cutPass->Write();
cutFail->Write();
// Save the cut settings in the output file
f1.mkdir("Settings");
f1.cd("Settings");
TList *tListSettings = an->ListSettings();
tListSettings->Write();
f1.Close();
TFile f2("Listout.root","RECREATE");
TList *tOutList = an->GetOutputList();
tOutList->Write();
}
AliFemtoSplittingMergingQA.C:1 AliFemtoSplittingMergingQA.C:2 AliFemtoSplittingMergingQA.C:3 AliFemtoSplittingMergingQA.C:4 AliFemtoSplittingMergingQA.C:5 AliFemtoSplittingMergingQA.C:6 AliFemtoSplittingMergingQA.C:7 AliFemtoSplittingMergingQA.C:8 AliFemtoSplittingMergingQA.C:9 AliFemtoSplittingMergingQA.C:10 AliFemtoSplittingMergingQA.C:11 AliFemtoSplittingMergingQA.C:12 AliFemtoSplittingMergingQA.C:13 AliFemtoSplittingMergingQA.C:14 AliFemtoSplittingMergingQA.C:15 AliFemtoSplittingMergingQA.C:16 AliFemtoSplittingMergingQA.C:17 AliFemtoSplittingMergingQA.C:18 AliFemtoSplittingMergingQA.C:19 AliFemtoSplittingMergingQA.C:20 AliFemtoSplittingMergingQA.C:21 AliFemtoSplittingMergingQA.C:22 AliFemtoSplittingMergingQA.C:23 AliFemtoSplittingMergingQA.C:24 AliFemtoSplittingMergingQA.C:25 AliFemtoSplittingMergingQA.C:26 AliFemtoSplittingMergingQA.C:27 AliFemtoSplittingMergingQA.C:28 AliFemtoSplittingMergingQA.C:29 AliFemtoSplittingMergingQA.C:30 AliFemtoSplittingMergingQA.C:31 AliFemtoSplittingMergingQA.C:32 AliFemtoSplittingMergingQA.C:33 AliFemtoSplittingMergingQA.C:34 AliFemtoSplittingMergingQA.C:35 AliFemtoSplittingMergingQA.C:36 AliFemtoSplittingMergingQA.C:37 AliFemtoSplittingMergingQA.C:38 AliFemtoSplittingMergingQA.C:39 AliFemtoSplittingMergingQA.C:40 AliFemtoSplittingMergingQA.C:41 AliFemtoSplittingMergingQA.C:42 AliFemtoSplittingMergingQA.C:43 AliFemtoSplittingMergingQA.C:44 AliFemtoSplittingMergingQA.C:45 AliFemtoSplittingMergingQA.C:46 AliFemtoSplittingMergingQA.C:47 AliFemtoSplittingMergingQA.C:48 AliFemtoSplittingMergingQA.C:49 AliFemtoSplittingMergingQA.C:50 AliFemtoSplittingMergingQA.C:51 AliFemtoSplittingMergingQA.C:52 AliFemtoSplittingMergingQA.C:53 AliFemtoSplittingMergingQA.C:54 AliFemtoSplittingMergingQA.C:55 AliFemtoSplittingMergingQA.C:56 AliFemtoSplittingMergingQA.C:57 AliFemtoSplittingMergingQA.C:58 AliFemtoSplittingMergingQA.C:59 AliFemtoSplittingMergingQA.C:60 AliFemtoSplittingMergingQA.C:61 AliFemtoSplittingMergingQA.C:62 AliFemtoSplittingMergingQA.C:63 AliFemtoSplittingMergingQA.C:64 AliFemtoSplittingMergingQA.C:65 AliFemtoSplittingMergingQA.C:66 AliFemtoSplittingMergingQA.C:67 AliFemtoSplittingMergingQA.C:68 AliFemtoSplittingMergingQA.C:69 AliFemtoSplittingMergingQA.C:70 AliFemtoSplittingMergingQA.C:71 AliFemtoSplittingMergingQA.C:72 AliFemtoSplittingMergingQA.C:73 AliFemtoSplittingMergingQA.C:74 AliFemtoSplittingMergingQA.C:75 AliFemtoSplittingMergingQA.C:76 AliFemtoSplittingMergingQA.C:77 AliFemtoSplittingMergingQA.C:78 AliFemtoSplittingMergingQA.C:79 AliFemtoSplittingMergingQA.C:80 AliFemtoSplittingMergingQA.C:81 AliFemtoSplittingMergingQA.C:82 AliFemtoSplittingMergingQA.C:83 AliFemtoSplittingMergingQA.C:84 AliFemtoSplittingMergingQA.C:85 AliFemtoSplittingMergingQA.C:86 AliFemtoSplittingMergingQA.C:87 AliFemtoSplittingMergingQA.C:88 AliFemtoSplittingMergingQA.C:89 AliFemtoSplittingMergingQA.C:90 AliFemtoSplittingMergingQA.C:91 AliFemtoSplittingMergingQA.C:92 AliFemtoSplittingMergingQA.C:93 AliFemtoSplittingMergingQA.C:94 AliFemtoSplittingMergingQA.C:95 AliFemtoSplittingMergingQA.C:96 AliFemtoSplittingMergingQA.C:97 AliFemtoSplittingMergingQA.C:98 AliFemtoSplittingMergingQA.C:99 AliFemtoSplittingMergingQA.C:100 AliFemtoSplittingMergingQA.C:101 AliFemtoSplittingMergingQA.C:102 AliFemtoSplittingMergingQA.C:103 AliFemtoSplittingMergingQA.C:104 AliFemtoSplittingMergingQA.C:105 AliFemtoSplittingMergingQA.C:106 AliFemtoSplittingMergingQA.C:107 AliFemtoSplittingMergingQA.C:108 AliFemtoSplittingMergingQA.C:109 AliFemtoSplittingMergingQA.C:110 AliFemtoSplittingMergingQA.C:111 AliFemtoSplittingMergingQA.C:112 AliFemtoSplittingMergingQA.C:113 AliFemtoSplittingMergingQA.C:114 AliFemtoSplittingMergingQA.C:115 AliFemtoSplittingMergingQA.C:116 AliFemtoSplittingMergingQA.C:117 AliFemtoSplittingMergingQA.C:118 AliFemtoSplittingMergingQA.C:119 AliFemtoSplittingMergingQA.C:120 AliFemtoSplittingMergingQA.C:121 AliFemtoSplittingMergingQA.C:122 AliFemtoSplittingMergingQA.C:123 AliFemtoSplittingMergingQA.C:124 AliFemtoSplittingMergingQA.C:125 AliFemtoSplittingMergingQA.C:126 AliFemtoSplittingMergingQA.C:127 AliFemtoSplittingMergingQA.C:128 AliFemtoSplittingMergingQA.C:129 AliFemtoSplittingMergingQA.C:130 AliFemtoSplittingMergingQA.C:131 AliFemtoSplittingMergingQA.C:132 AliFemtoSplittingMergingQA.C:133 AliFemtoSplittingMergingQA.C:134 AliFemtoSplittingMergingQA.C:135 AliFemtoSplittingMergingQA.C:136 AliFemtoSplittingMergingQA.C:137 AliFemtoSplittingMergingQA.C:138 AliFemtoSplittingMergingQA.C:139 AliFemtoSplittingMergingQA.C:140 AliFemtoSplittingMergingQA.C:141 AliFemtoSplittingMergingQA.C:142 AliFemtoSplittingMergingQA.C:143 AliFemtoSplittingMergingQA.C:144 AliFemtoSplittingMergingQA.C:145 AliFemtoSplittingMergingQA.C:146 AliFemtoSplittingMergingQA.C:147 AliFemtoSplittingMergingQA.C:148 AliFemtoSplittingMergingQA.C:149 AliFemtoSplittingMergingQA.C:150 AliFemtoSplittingMergingQA.C:151 AliFemtoSplittingMergingQA.C:152 AliFemtoSplittingMergingQA.C:153 AliFemtoSplittingMergingQA.C:154 AliFemtoSplittingMergingQA.C:155 AliFemtoSplittingMergingQA.C:156 AliFemtoSplittingMergingQA.C:157 AliFemtoSplittingMergingQA.C:158 AliFemtoSplittingMergingQA.C:159 AliFemtoSplittingMergingQA.C:160 AliFemtoSplittingMergingQA.C:161 AliFemtoSplittingMergingQA.C:162 AliFemtoSplittingMergingQA.C:163 AliFemtoSplittingMergingQA.C:164 AliFemtoSplittingMergingQA.C:165 AliFemtoSplittingMergingQA.C:166