Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / macros / ConfigFemtoAnalysis.C
CommitLineData
7ad564cd 1// ConfigFemtoAnalysis.C - macro to create the splitting/merging
2// test with the pion correlation function.
3// As a default the anti-splitting and anti-merging cuts are open
4// and the two correlation functions:
5// AliFemtoShareQualityCorrFctn and AliFemtoTPCInnerCorrFctn
6// can be used to study the splitting (former) and merging (latter) effect
7// If ones needs to produce a "clean" sample with both effects removed,
8// one needs to change the cut values to the "reasonable" ones, or perform
9// the full systematic analysis with the above-mentioned functions
10
11// Author: Adam Kisiel. Adam.Kisiel@cern.ch
12
13// parameters:
14//
15// returns:
16// a pointer to the created AliFemtoManager
17
35d16062 18#if !defined(__CINT__) || defined(__MAKECINT__)
7ad564cd 19#include "AliFemtoManager.h"
20#include "AliFemtoEventReaderESDChain.h"
21#include "AliFemtoSimpleAnalysis.h"
22#include "AliFemtoBasicEventCut.h"
23#include "AliFemtoESDTrackCut.h"
24#include "AliFemtoCutMonitorParticleYPt.h"
25#include "AliFemtoShareQualityTPCEntranceSepPairCut.h"
26#include "AliFemtoQinvCorrFctn.h"
27#include "AliFemtoShareQualityCorrFctn.h"
28#include "AliFemtoTPCInnerCorrFctn.h"
29#include "AliFemtoVertexMultAnalysis.h"
35d16062 30#endif
7ad564cd 31
32AliFemtoManager *ConfigFemtoAnalysis()
33{
34 double PionMass = 0.13956995;
35 int chargePi = 1;
36
37 // Set-up the reader for ALICE ESD
38 AliFemtoEventReaderESDChain* Reader=new AliFemtoEventReaderESDChain();
39 // Read only constrained momenta - primordial particles
40 Reader->SetConstrained(true);
41 Reader->SetReadTPCInner(true);
42
43 // Setup the manager
44 AliFemtoManager* Manager=new AliFemtoManager();
45 // Point to the data source - the reader
46 Manager->SetEventReader(Reader);
47
48 // Setup the analysis
49 AliFemtoSimpleAnalysis* an =new AliFemtoSimpleAnalysis();
50 // Number of events to construct the background
51 an->SetNumEventsToMix(3);
52
53 // The event selector
54 AliFemtoBasicEventCut* mec = new AliFemtoBasicEventCut();
55 // Accept events with the given multiplicity
56 mec->SetEventMult(0,100000);
57 // and z-vertex distance to the center of the TPC
58 mec->SetVertZPos(-1000,1000);
59
60 // The track selector
61 AliFemtoESDTrackCut* dtc = new AliFemtoESDTrackCut();
62 // We want positive pions
63 dtc->SetPidProbPion(0.2,1.001);
64 dtc->SetPidProbMuon(0.0,0.8);
65 dtc->SetPidProbKaon(0.0,0.1);
66 dtc->SetPidProbProton(0.0,0.1);
67 dtc->SetMostProbablePion();
68 dtc->SetCharge(chargePi);
69 // so we set the correct mass
70 dtc->SetMass(PionMass);
71 // we select low pt
72 dtc->SetPt(0.1,0.7);
73 dtc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
74 dtc->SetminTPCncls(95);
75 dtc->SetRemoveKinks(kTRUE);
76 dtc->SetLabel(kFALSE);
77 dtc->SetMaxITSChiNdof(3.0);
78 dtc->SetMaxTPCChiNdof(2.0);
79 dtc->SetMaxSigmaToVertex(3.0);
80
81 AliFemtoCutMonitorParticleYPt *cutPass = new AliFemtoCutMonitorParticleYPt("cutPass", 0.13957);
82 AliFemtoCutMonitorParticleYPt *cutFail = new AliFemtoCutMonitorParticleYPt("cutFail", 0.13957);
83 dtc->AddCutMonitor(cutPass, cutFail);
84
85 // Pair selector
86 AliFemtoShareQualityTPCEntranceSepPairCut *sqpc = new AliFemtoShareQualityTPCEntranceSepPairCut();
87 // remove split track pairs and pairs that share hits
88
89 // Set maximim allowed "quality" for the pair
90 // 1.0 - accept all pairs
91 // -0.5 - reject all pairs
92 // a reasonable value should lie between 0.0 and 0.5
93 sqpc->SetShareQualityMax(1.0);
94
95 // Set maximum allowed shared hits fraction per pair
96 // 1.0 - accept all pairs
97 // 0.0 - reject all pairs
98 // a reasonable value is small but nno-zero (0.05)
99 sqpc->SetShareFractionMax(1.0);
100
101 // Set minimum allowed separation between nominal TPC entrance points
102 // of the two tracks in the pair
103 // 0.0 - accept all pairs
104 // a reasonable value is 3.0 [cm]
105 sqpc->SetTPCEntranceSepMinimum(0.0);
106 sqpc->SetRemoveSameLabel(kFALSE);
107
108 // Add the cuts to the analysis
109 an->SetEventCut(mec);
110 an->SetFirstParticleCut(dtc);
111 an->SetSecondParticleCut(dtc);
112 an->SetPairCut(sqpc);
113
114 // Setup correlation functions
115 // A simple qinv correlation function
116 AliFemtoQinvCorrFctn *cqinv= new AliFemtoQinvCorrFctn("qinvcf",75,0.0,0.4);
117
118 // A correlation function to monitor the splitting and cluster sharing in TPC
119 AliFemtoShareQualityCorrFctn *csqqinv= new AliFemtoShareQualityCorrFctn("sqqinvcf",75,0.0,0.4);
120
121 // A correlation function to monitor the distance at the entrance to the TPC
122 AliFemtoTPCInnerCorrFctn *tpcin = new AliFemtoTPCInnerCorrFctn("tpcin",80, 0.0, 0.4);
123
124 // add the correlation functions to the analysis
125 an->AddCorrFctn(cqinv);
126 an->AddCorrFctn(csqqinv);
127 an->AddCorrFctn(tpcin);
128
129 // Add the analysis to the manager
130 Manager->AddAnalysis(an);
131
132 return Manager;
133}