]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/ForwardAODConfig.C
Various fixes, and possibility to set trigger efficiency
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / ForwardAODConfig.C
CommitLineData
ffca499d 1/**
2 * @file ForwardAODConfig.C
3 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
4 * @date Wed Mar 23 13:56:02 2011
5 *
6 * @brief
7 *
bd6f5206 8 * @ingroup pwglf_forward_scripts_tasks
ffca499d 9 *
10 */
9d05ffeb 11/**
12 * Configuration script for forward multiplicity task.
13 *
14 * You can copy this to your working directory or to some other
e1f47419 15 * directory up-front in your ROOT macro path, and edit it to suit your
9d05ffeb 16 * needs.
17 *
290052e7 18 * @param task Task to configure
19 *
bd6f5206 20 * @ingroup pwglf_forward_aod
9d05ffeb 21 */
22void
23ForwardAODConfig(AliForwardMultiplicityBase* task)
24{
25 if (!task) return;
26
27 Info("ForwardAODConfig", "Setting up task %s (%p)", task->GetName(), task);
e1f47419 28
29 // --- General parameters ------------------------------------------
9d05ffeb 30 // Whether to enable low flux specific code
31 task->SetEnableLowFlux(kFALSE);
e1f47419 32
5bb5d1f6 33 // Would like to use dynamic cast but CINT interprets that as a
34 // static cast - sigh!
35 Bool_t mc = false;
1bd766f2 36 if (task->IsA() == AliForwardMCMultiplicityTask::Class())
5bb5d1f6 37 mc = true;
1bd766f2 38
4bcdcbc1 39#if 0
5bb5d1f6 40 if (mc) {
41 AliForwardMCMultiplicityTask* mcTask =
42 static_cast<AliForwardMCMultiplicityTask*>(task);
43 mcTask->SetOnlyPrimary(true);
44 }
45#endif
4bcdcbc1 46
1bd766f2 47 Double_t nXi = mc ? 2 : 2; //HHD test
48 Bool_t includeSigma = false; //true;
5bb5d1f6 49
1bd766f2 50 AliFMDMultCuts cSharing;
51 //c.SetNXi(mc ? 1 : 1);
52 //c.SetIncludeSigma(true);
53 //c.SetMPVFraction(0.5);
1bd766f2 54 Double_t factor = 1.;
55 //if(mc) factor = 1.15;
1bd766f2 56 cSharing.SetMultCuts(0.3, 0.3, 0.3, 0.3, 0.3);
57
58 AliFMDMultCuts cDensity;
59 //c2.SetNXi(mc ? 1 : 1);
60 // c2.SetIncludeSigma(false);
61 //c2.SetMPVFraction(0.5);
62 //Double_t factor = 1.2;
63 cDensity.SetMultCuts(0.3, 0.3, 0.3, 0.3, 0.3);
64
65
e1f47419 66 // --- Event inspector ---------------------------------------------
9d05ffeb 67 // Set the number of SPD tracklets for which we consider the event a
68 // low flux event
69 task->GetEventInspector().SetLowFluxCut(1000);
70 // Set the maximum error on v_z [cm]
71 task->GetEventInspector().SetMaxVzErr(0.2);
e6463868 72 // Least number of constributors to 2nd pile-up vertex
73 task->GetEventInspector().SetMinPileupContributors(3);
74 // Least distance from primary to 2nd pile-up vertex (cm)
75 task->GetEventInspector().SetMinPileupDistance(.8);
76 // V0-AND triggered events flagged as NSD
66cf95f2 77 task->GetEventInspector().SetUseV0AndForNSD(false);
e6463868 78 // Use primary vertex selection from 1st physics WG
4bcdcbc1 79 // task->GetEventInspector().SetUseFirstPhysicsVtx(true);
66cf95f2 80 // Use satellite collisions
81 // task->GetEventInspector().SetUseDisplacedVertices(true);
e1f47419 82
83 // --- Sharing filter ----------------------------------------------
9d05ffeb 84 // Set the low cut used for sharing - overrides settings in eloss fits
1bd766f2 85 // Float_t factor = 1.;
86 //if(mc) factor = 1.2;
87 //task->GetSharingFilter().SetLowCut(0.3*factor);
5bb5d1f6 88 // Enable use of angle corrected signals in the algorithm
89 task->GetSharingFilter().SetUseAngleCorrectedSignals(true);
1bd766f2 90 // Disable use of angle corrected signals in the algorithm
f7cfc454 91 task->GetSharingFilter().SetZeroSharedHitsBelowThreshold(false);
e6463868 92 // Whether to use simple merging algorithm
b7ab8a2c 93 task->GetSharingFilter().SetUseSimpleSharing(true);
e6463868 94 // Whether to allow for 3 strip hits
95 task->GetSharingFilter().SetAllow3Strips(true);
96 // Do not cut fixed/hard on multiplicity
1bd766f2 97 task->GetSharingFilter().GetHCuts().SetMultCuts(-1);
98 // Set the number of xi's (width of landau peak) to stop at
99 task->GetSharingFilter().GetHCuts().SetNXi(nXi);
100 // Set whether or not to include sigma in cut
101 task->GetSharingFilter().GetHCuts().SetIncludeSigma(includeSigma);
102 // Enable use of angle corrected signals in the algorithm
103 task->GetSharingFilter().SetLCuts(cSharing);
104
105
9b2f2e39 106 // --- Density calculator ------------------------------------------
9d05ffeb 107 // Set the maximum number of particle to try to reconstruct
5bb5d1f6 108 task->GetDensityCalculator().SetMaxParticles(10);
9d05ffeb 109 // Wet whether to use poisson statistics to estimate N_ch
37079f20 110 task->GetDensityCalculator().SetUsePoisson(true);
e6463868 111 // Set to use the running average in Poisson
4bcdcbc1 112 // task->GetDensityCalculator().SetUseRunningAverage(false);
5bb5d1f6 113 // Set whether or not to include sigma in cut
1bd766f2 114 task->GetDensityCalculator().SetCuts(cDensity);
e6463868 115 // Set lumping (nEta,nPhi)
116 task->GetDensityCalculator().SetLumping(32,4);
56236b95 117 // Set whether or not to use the phi acceptance
118 // AliFMDDensityCalculator::kPhiNoCorrect
119 // AliFMDDensityCalculator::kPhiCorrectNch
120 // AliFMDDensityCalculator::kPhiCorrectELoss
121 task->GetDensityCalculator()
122 .SetUsePhiAcceptance(AliFMDDensityCalculator::kPhiCorrectNch);
e1f47419 123
124 // --- Corrector ---------------------------------------------------
9d05ffeb 125 // Whether to use the secondary map correction
126 task->GetCorrections().SetUseSecondaryMap(true);
127 // Whether to use the vertex bias correction
128 task->GetCorrections().SetUseVertexBias(false);
129 // Whether to use the vertex bias correction
130 task->GetCorrections().SetUseAcceptance(true);
131 // Whether to use the merging efficiency correction
132 task->GetCorrections().SetUseMergingEfficiency(false);
e1f47419 133
134 // --- Histogram Collector -----------------------------------------
9d05ffeb 135 // Set the number of extra bins (beyond the secondary map border)
136 task->GetHistCollector().SetNCutBins(2);
137 // Set the correction cut, that is, when bins in the secondary map
138 // is smaller than this, they are considered empty
139 task->GetHistCollector().SetCorrectionCut(0.5);
e1f47419 140 // How to calculate the value of overlapping bins.
141 // Possible values are
142 // kStraightMean
143 // kStraightMeanNoZero
144 // kWeightedMean
145 // kLeastError
146 task->GetHistCollector().SetMergeMethod(AliFMDHistCollector::kStraightMean);
147 // How to find the fiducial area of the secondary maps
148 // Possible values are
149 // kByCut Only bins larger that cut are trusted
150 // kDistance Only bins that are more than half the size of it neighbors
151 task->GetHistCollector().SetFiducialMethod(AliFMDHistCollector::kByCut);
152
153 // --- Debug -------------------------------------------------------
9d05ffeb 154 // Set the overall debug level (1: some output, 3: a lot of output)
2a276c75 155 // task->SetDebug(0);
9d05ffeb 156 // Set the debug level of a single algorithm
2a276c75 157 // task->GetSharingFilter().SetDebug(3);
e1f47419 158
2b556440 159 // --- Eventplane Finder -------------------------------------------
160 task->GetEventPlaneFinder().SetUsePhiWeights(false);
161
9d05ffeb 162 // --- Set limits on fits the energy -------------------------------
163 // Maximum relative error on parameters
164 AliFMDCorrELossFit::ELossFit::fgMaxRelError = .12;
165 // Least weight to use
166 AliFMDCorrELossFit::ELossFit::fgLeastWeight = 1e-5;
167 // Maximum value of reduced chi^2
168 AliFMDCorrELossFit::ELossFit::fgMaxChi2nu = 20;
169}
170//
171// EOF
172//