AliPhysics  fceccc5 (fceccc5)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TunedConfig.C
Go to the documentation of this file.
1 
24 void
26 {
27  if (!task) return;
28 
29  Info("ForwardAODConfig", "Setting up task %s (%p)", task->GetName(), task);
30 
31  // --- General parameters ------------------------------------------
32  // Whether to enable low flux specific code
33  task->SetEnableLowFlux(kFALSE);
37 
38  // --- Check for MC ------------------------------------------------
39  // Would like to use dynamic cast but CINT interprets that as a
40  // static cast - sigh!
41  Bool_t mc = (task->IsA()==AliForwardMCMultiplicityTask::Class());
42 
43  // --- Cuts --------------------------------------------------------
44  // Note, the absolute lowest signal to consider - ever -
45  // irrespective of MC or real data, is 0.15. Signals below this
46  // will contain remenants of the pedestal (yes, the width of the
47  // pedestal is small, but there are many _many_ channels with only
48  // pedestal value in them, so the absolute number of high-value
49  // pedestal signals is large - despite the low probablity).
50  Bool_t use3 = false;
51  AliFMDMultCuts cSharingLow(AliFMDMultCuts::kFixed,.15);
53  1.2,1.0,1.9,0.7,1.4);
54  AliFMDMultCuts cDensity(cSharingHigh);
55 
56  // --- Event inspector ---------------------------------------------
57  // Set the number of SPD tracklets for which we consider the event a
58  // low flux event
59  task->GetEventInspector().SetLowFluxCut(1000);
60  // Set the maximum error on v_z [cm]
61  task->GetEventInspector().SetMaxVzErr(0.2);
62  // Least number of constributors to 2nd pile-up vertex -was 3
64  // Least distance from primary to 2nd pile-up vertex (cm)
66  // V0-AND triggered events flagged as NSD
67  task->GetEventInspector().SetUseV0AndForNSD(false);
68  // Set the kind of vertex to look for. Can be one of
69  //
70  // - kNormal: SPD vertex
71  // - kpA2012: Selection tuned for 2012 pA data
72  // - kpA2013: Selection tuned for 2013 pA data
73  // - kPWGUD: Selection used by 'first physics'
74  // - kDisplaced: Satellite collisions, with kNormal fall-back
75  //
77  // Which centrality estimator to use
79  // How to tag events as pile-up. Bit pattern of
80  //
81  // - 0x1: SPD multi-vertex
82  // - 0x2: Track multi-vertex
83  // - 0x4: Out-of-bunch
84  // - 0x8: SPD multi-vertex in mult bins
85  //
86  task->GetEventInspector().SetPileupFlags(0xf);
87 
88  // --- Event classifier --------------------------------------------
89  // Enable/Disable centrality estimation from AliPPVsMultUtils
90  // task->GetMultEventClassifier().SetUseCentrality(true);
91 
92  // --- ESD fixer ---------------------------------------------------
93  // Sets the noise factor that was used during reconstruction. If
94  // this is set to 4 or more, then this correction will be disabled.
96  // IF the noise correction is bigger than this, flag strip as dead
97  task->GetESDFixer().SetMaxNoiseCorrection(0.05);
98  // Sets whether to recalculate eta
99  task->GetESDFixer().SetRecalculateEta(false);
100  // If true, consider AliESDFMD::kInvalidMult as a zero signal. This
101  // has the unfortunate side effect, that we cannot use the
102  // on-the-fly calculation of the phi acceptance.
103  //
104  // *IMPORTANT*
105  //
106  // Before revision 43711 of AliFMDReconstructor, all strips with no
107  // signal where set to kInvalidMult. From revision 43711 (Release
108  // 4-19-Rev-09) empty strips that are not marked as bad have a
109  // signal of 0 (zero). That means, that for any reconstruction done
110  // with releases prior to 4-19-Rev-09 this flag _must_ be defined as
111  // true.
112  //
113  // The unfortunate side effect mentioned above is especially cruel
114  // in this case, since we would benefit a lot from this setting for
115  // that data. However, one can add dead strips here using
116  // AliFMDSharingFilter::AddDeadStrip or
117  // AliFMDSharingFilter::AddDeadRegion to remedy the situation, since
118  // strips added explicitly here are always ignored. In the future,
119  // the acceptance maker script should generate the list
120  // automaticallu.
121  //
122  // LHC10c-900Gev is effected up-to and including pass3
123  // LHC10c-7TeV is effected up-to and including pass2
124  // LHC10c-CPass0 should be OK, but has limited statistics
125  // LHC10c_11a_FMD should be OK, but has few runs
126  task->GetESDFixer().SetInvalidIsEmpty(false);
127  // Dead region in FMD2i
128  // task->GetESDFixer().AddDeadRegion(2, 'I', 16, 17, 256, 511);
129  // One can add extra dead strips from a script like
130  //
131  // void deadstrips(AliFMDSharingFilter* filter)
132  // {
133  // filter->AddDead(...);
134  // // ... and so on
135  // }
136  //
137  // and then do here
138  //
139  // task->GetESDFixer().AddDead("deadstrips.C");
140 
141  // --- Sharing filter ----------------------------------------------
142  // If the following is set to true, then the merging of shared
143  // signals is disabled completely
144  // task->GetSharingFilter().SetMergingDisabled(false);
145  // Enable use of angle corrected signals in the algorithm
147  // Ignore the ESD information when angle correcting.
148  //
149  // *IMPORTANT*
150  //
151  // This is to counter a known issue with AliESDFMD with ClassDef
152  // version < 4, where the angle correction flag is incorrectly set.
153  // A fix is coming to AliESDFMD to handle it directly in the class.
154  // Only set the flag below to true if you know it to be necessary for
155  // your data set.
157  // Disable use of angle corrected signals in the algorithm
159  // Whether to use simple merging algorithm
161  // Whether to allow for 3 strip hits - deprecated
162  task->GetSharingFilter().SetAllow3Strips(use3);
163  // Set upper sharing cut
164  task->GetSharingFilter().SetHCuts(cSharingHigh);
165  // Enable use of angle corrected signals in the algorithm
166  task->GetSharingFilter().SetLCuts(cSharingLow);
167 
168  // --- Density calculator ------------------------------------------
169  // Set the maximum number of particle to try to reconstruct
171  // Wet whether to use poisson statistics to estimate N_ch
172  task->GetDensityCalculator().SetUsePoisson(true);
173  // Set whether or not to include sigma in cut
174  task->GetDensityCalculator().SetCuts(cDensity);
175  // Set lumping (nEta,nPhi)
176  task->GetDensityCalculator().SetLumping(32,4);
177  // Recalculate eta,phi taking (x,y) offset of IP into account
179  // Least acceptable quality of ELoss fits
180  task->GetDensityCalculator()
182  // Set the maximum ratio of outlier bins to the total number of bins
183  // task->GetDensityCalculator().SetMaxOutliers(.10);
184  task->GetDensityCalculator().SetMaxOutliers(0.05); // 1.0);//Disable filter
185  // Set the maximum relative diviation between N_ch from Eloss and Poisson
186  task->GetDensityCalculator().SetOutlierCut(0.5);
187  // Set whether or not to use the phi acceptance
188  // AliFMDDensityCalculator::kPhiNoCorrect
189  // AliFMDDensityCalculator::kPhiCorrectNch
190  // AliFMDDensityCalculator::kPhiCorrectELoss
191  task->GetDensityCalculator()
193 
194  // --- Corrector ---------------------------------------------------
195  // Whether to use the secondary map correction. By default we turn
196  // off secondary correction for normal data, and on for simulated
197  // data.
199  // Whether to use the vertex bias correction (deprecated)
200  task->GetCorrections().SetUseVertexBias(false);
201  // Whether to use the acceptance correction from dead-strips (deprecated)
202  task->GetCorrections().SetUseAcceptance(false);
203  // Whether to use the merging efficiency correction (deprecated)
205 
206  // --- Histogram Collector -----------------------------------------
207  // Set the number of extra bins (beyond the secondary map border)
208  task->GetHistCollector().SetNCutBins(2);
209  // Set the correction cut, that is, when bins in the secondary map
210  // is smaller than this, they are considered empty
211  task->GetHistCollector().SetCorrectionCut(0.5);
212  // How to calculate the value of overlapping bins.
213  // Possible values are
214  // kStraightMean
215  // kStraightMeanNoZero
216  // kWeightedMean
217  // kLeastError
218  // kSum
219  // kPreferInner
220  // kPreferOuter
222  // How to find the fiducial area of the secondary maps
223  // Possible values are
224  // kByCut Only bins larger that cut are trusted
225  // kDistance Only bins that are more than half the size of it neighbors
227  // Additional diagnostics output - off by default
228  //
229  // If this option is enabled, then the summed per-vertex, per-ring
230  // d2N/detadphi histograms will be stored in the output, as well as
231  // copies of the secondary maps
232  task->GetHistCollector().SetMakeBGHitMaps(false);
233  //
234  // If this option is enabled, then a 3D histogram will be made for
235  // each ring, summing dN/deta for each centrality bin.
237 
238  // --- Eventplane Finder -------------------------------------------
239  task->GetEventPlaneFinder().SetUsePhiWeights(false);
240 
241  // --- Ring AOD output ---------------------------------------------
242  // If set to true, then 5 additional branches will be created on the
243  // output AOD - one for each FMD ring. The branches each contain a
244  // TH2D object of the (primary) charged particle multiplicity per
245  // (eta,phi)-bin in that event
246  task->SetStorePerRing(false);
247 
248  // --- Set limits on fits the energy -------------------------------
249  // DO NOT CHANGE THESE UNLESS YOU KNOW WHAT YOU ARE DOING
250  // Maximum relative error on parameters
251  // AliFMDCorrELossFit::ELossFit::fgMaxRelError = .12;
252  // Least weight to use
253  // AliFMDCorrELossFit::ELossFit::fgLeastWeight = 1e-5;
254  // Maximum value of reduced chi^2
255  // AliFMDCorrELossFit::ELossFit::fgMaxChi2nu = 10;
256 
257  // --- Debug -------------------------------------------------------
258  // Set the overall debug level (1: some output, 3: a lot of output)
259  // task->SetDebug(0);
260  // Set the debug level of a single algorithm
261  // task->GetSharingFilter().SetDebug(3);
262 }
263 //
264 // EOF
265 //
void SetUsePhiAcceptance(UShort_t u=kPhiCorrectNch)
void SetUseAngleCorrectedSignals(Bool_t use)
void SetUseV0AndForNSD(Bool_t use=true)
virtual AliFMDSharingFilter & GetSharingFilter()=0
virtual AliFMDESDFixer & GetESDFixer()=0
void SetInvalidIsEmpty(Bool_t flag)
void SetLCuts(const AliFMDMultCuts &c)
void SetRecalculateEta(Bool_t use)
virtual AliFMDHistCollector & GetHistCollector()=0
void SetMinPileupContributors(UShort_t nContrib=3)
void SetAllow3Strips(Bool_t use)
virtual AliFMDDensityCalculator & GetDensityCalculator()=0
void SetNCutBins(UInt_t n=2)
void SetZeroSharedHitsBelowThreshold(Bool_t use)
void SetUseSecondaryMap(Bool_t use=true)
virtual AliFMDEventInspector & GetEventInspector()=0
void SetMaxVzErr(Double_t c=0.1)
virtual AliFMDEventPlaneFinder & GetEventPlaneFinder()=0
void TunedConfig(AliForwardMultiplicityBase *task)
Definition: TunedConfig.C:25
void SetMaxOutliers(Double_t ratio=0.10)
void SetVertexMethod(EVtxType t)
void SetCentralityMethod(const TString &m)
void SetFiducialMethod(FiducialMethod m)
void SetUseAcceptance(Bool_t use=true)
void SetPileupFlags(UShort_t flags=0x5)
void SetHCuts(const AliFMDMultCuts &c)
void SetMaxNoiseCorrection(Double_t x)
void SetRecoNoiseFactor(Int_t f)
void SetOutlierCut(Double_t cut=0.50)
void SetMinPileupDistance(Double_t cm=0.8)
void SetUsePhiWeights(Bool_t use=kTRUE)
void SetMakeBGHitMaps(Bool_t use)
void SetMakeCentralitySums(Bool_t use)
void SetUseMergingEfficiency(Bool_t use=true)
void SetIgnoreESDWhenAngleCorrecting(Bool_t use)
void SetCuts(const AliFMDMultCuts &c)
virtual AliFMDCorrector & GetCorrections()=0
void SetMergeMethod(MergeMethod m)
virtual void SetEnableLowFlux(Bool_t use=true)
void SetCorrectionCut(Float_t cut=0.5)
bool Bool_t
Definition: External.C:53
void SetUseSimpleSharing(Bool_t use)
void SetMinQuality(UShort_t cut=10)
void SetUseVertexBias(Bool_t use=true)
void SetLumping(Int_t eta, Int_t phi)