]>
Commit | Line | Data |
---|---|---|
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 | */ |
22 | void | |
23 | ForwardAODConfig(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 | // |