+/**
+ * @file ForwardAODConfig.C
+ * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
+ * @date Wed Mar 23 13:56:02 2011
+ *
+ * @brief
+ *
+ * @ingroup pwg2_forward_scripts_tasks
+ *
+ */
/**
* Configuration script for forward multiplicity task.
*
* directory up-front in your ROOT macro path, and edit it to suit your
* needs.
*
+ * @ingroup pwg2_forward_aod
*/
void
ForwardAODConfig(AliForwardMultiplicityBase* task)
// Whether to enable low flux specific code
task->SetEnableLowFlux(kFALSE);
+ // Would like to use dynamic cast but CINT interprets that as a
+ // static cast - sigh!
+ Bool_t mc = false;
+ if (task->IsA() == AliForwardMCMultiplicityTask::Class())
+ mc = true;
+
+#if 0
+ if (mc) {
+ AliForwardMCMultiplicityTask* mcTask =
+ static_cast<AliForwardMCMultiplicityTask*>(task);
+ mcTask->SetOnlyPrimary(true);
+ }
+#endif
+ Double_t nXi = mc ? 2 : 2; //HHD test
+ Bool_t includeSigma = false; //true;
+
+ AliFMDMultCuts cSharing;
+ //c.SetNXi(mc ? 1 : 1);
+ //c.SetIncludeSigma(true);
+ //c.SetMPVFraction(0.5);
+
+ Double_t factor = 1.;
+ //if(mc) factor = 1.15;
+
+ cSharing.SetMultCuts(0.3, 0.3, 0.3, 0.3, 0.3);
+
+ AliFMDMultCuts cDensity;
+ //c2.SetNXi(mc ? 1 : 1);
+ // c2.SetIncludeSigma(false);
+ //c2.SetMPVFraction(0.5);
+ //Double_t factor = 1.2;
+ cDensity.SetMultCuts(0.3, 0.3, 0.3, 0.3, 0.3);
+
+
// --- Event inspector ---------------------------------------------
// Set the number of SPD tracklets for which we consider the event a
// low flux event
task->GetEventInspector().SetLowFluxCut(1000);
// Set the maximum error on v_z [cm]
task->GetEventInspector().SetMaxVzErr(0.2);
-
- // --- Energy Loss Fitter ------------------------------------------
- // Set the eta axis to use - note, this overrides whatever is used
- // by the rest of the algorithms - but only for the energy fitter
- // algorithm.
- task->GetEnergyFitter().SetEtaAxis(200, -4, 6);
- // Set maximum energy loss to consider
- task->GetEnergyFitter().SetMaxE(10);
- // Set number of energy loss bins
- task->GetEnergyFitter().SetNEbins(300);
- // Set whether to use increasing bin sizes
- task->GetEnergyFitter().SetUseIncreasingBins(true);
- // Set whether to do fit the energy distributions
- task->GetEnergyFitter().SetDoFits(kFALSE);
- // Set whether to make the correction object
- task->GetEnergyFitter().SetDoMakeObject(kFALSE);
- // Set the low cut used for energy
- task->GetEnergyFitter().SetLowCut(0.4);
- // Set the number of bins to subtract from maximum of distributions
- // to get the lower bound of the fit range
- task->GetEnergyFitter().SetFitRangeBinWidth(4);
- // Set the maximum number of landaus to try to fit (max 5)
- task->GetEnergyFitter().SetNParticles(5);
- // Set the minimum number of entries in the distribution before
- // trying to fit to the data
- task->GetEnergyFitter().SetMinEntries(1000);
// --- Sharing filter ----------------------------------------------
// Set the low cut used for sharing - overrides settings in eloss fits
- task->GetSharingFilter().SetLowCut(0.3);
+ // Float_t factor = 1.;
+ //if(mc) factor = 1.2;
+ //task->GetSharingFilter().SetLowCut(0.3*factor);
+ // Enable use of angle corrected signals in the algorithm
+ task->GetSharingFilter().SetUseAngleCorrectedSignals(true);
+ // Disable use of angle corrected signals in the algorithm
+ task->GetSharingFilter().SetZeroSharedHitsBelowThreshold(false);
+ // Enable use of angle corrected signals in the algorithm
+
+ task->GetSharingFilter().GetHCuts().SetMultCuts(-1);
// Set the number of xi's (width of landau peak) to stop at
- task->GetSharingFilter().SetNXi(1);
-
+ task->GetSharingFilter().GetHCuts().SetNXi(nXi);
+ // Set whether or not to include sigma in cut
+ task->GetSharingFilter().GetHCuts().SetIncludeSigma(includeSigma);
+ // Enable use of angle corrected signals in the algorithm
+ task->GetSharingFilter().SetLCuts(cSharing);
+
+
// --- Density calculator
// Set the maximum number of particle to try to reconstruct
- task->GetDensityCalculator().SetMaxParticles(3);
+ task->GetDensityCalculator().SetMaxParticles(10);
// Wet whether to use poisson statistics to estimate N_ch
- task->GetDensityCalculator().SetUsePoisson(false);
- // Set the lower multiplicity cut. Overrides setting in energy loss fits.
- task->GetDensityCalculator().SetMultCut(0.3); //was 0.3
+ task->GetDensityCalculator().SetUsePoisson(true);
+
+ // Set whether or not to include sigma in cut
+ task->GetDensityCalculator().SetCuts(cDensity);
+
+ // Set whether or not to use the phi acceptance
+ // AliFMDDensityCalculator::kPhiNoCorrect
+ // AliFMDDensityCalculator::kPhiCorrectNch
+ // AliFMDDensityCalculator::kPhiCorrectELoss
+ task->GetDensityCalculator()
+ .SetUsePhiAcceptance(AliFMDDensityCalculator::kPhiCorrectNch);
// --- Corrector ---------------------------------------------------
// Whether to use the secondary map correction
// Set the overall debug level (1: some output, 3: a lot of output)
task->SetDebug(0);
// Set the debug level of a single algorithm
- // task->GetEventInspector().SetDebug(4);
+ task->GetSharingFilter().SetDebug(0);
// --- Set limits on fits the energy -------------------------------
// Maximum relative error on parameters