]>
Commit | Line | Data |
---|---|---|
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 | ||
18 | #if !defined(__CINT__) || defined(__MAKECINT__) | |
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" | |
30 | #endif | |
31 | ||
32 | AliFemtoManager *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 | } |