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