New code to do investigations on MC output: - AliFMDMCTrackELoss inspects the TrackRefs for energy loss. - AliFMDMCTrackInspector (derives from AliFMDEnergyFitter) fits the energy loss distributions for primary and secondary particles separately. The idea is to try to find some template that can be applied to real data to deconvolute the contributions from primaries and secondaries - or at least the relative strength between the two contributions. - AliFMDMCTrackInspectorTask is a Task wrappper around AliFMDMCTrackInspector - AddTaskFMDMCTracks.C is a script to add a AliFMDMCTrackInspectorTask wagon to a train. - trains/MakeFMDMCTrackTrain.C sets up a train using AliFMDMCTrackInspectorTask - scripts/SummaryMCTrackDrawer.C summaries the result of running trains/MakeFMDMCTrackTrain.C
Important bug fixes for the PWGLF/FORWARD directory modified: ../../../OADB/PWGLF/FORWARD/CORRECTIONS/data/fmd_corrections.root modified: ../../../OADB/PWGLF/FORWARD/CORRECTIONS/data/spd_corrections.root Updated corrections and include new noise-gain correction for all possible runs modified: ../../CMakelibPWGLFforward2.pkg modified: ../../PWGLFforward2LinkDef.h New classes added modified: AddTaskFMDELoss.C Minor fixes for new AliFMDESDFixer modified: AliAODForwardMult.cxx Allow trigger mask "CENT" modified: AliBaseESDTask.cxx modified: AliBaseESDTask.h New method PreCorrections - meant to do stuff when we know the run number etc., but before reading the corrections new file: AliFMDCorrNoiseGain.h A new type of correction. This is used to add in the additional noise that the reconstruction failed to add because of a bug in the AliFMDRawReader. With this, we can process old data with out fear of corruption. modified: AliFMDDensityCalculator.cxx modified: AliFMDDensityCalculator.h Moved re-calculation of eta to new AliFMDESDFixer class new file: AliFMDESDFixer.cxx new file: AliFMDESDFixer.h A class that fixes up the FMD ESD object for various flaws, including bad values for 0's, missing noise from reconstruction, and possibly re-calculation of eta. This class takes an AliESDFMD object and modifies the content in-place. Unfortunately we cannot re-calculate the phis in this, because we never store the phis in the ESD object. modified: AliFMDEnergyFitter.cxx modified: AliFMDEnergyFitter.h Minor stuff modified: AliFMDEnergyFitterTask.cxx modified: AliFMDEnergyFitterTask.h Use new class AliESDFMDFixer to fix up ESDs before processing modified: AliFMDEventInspector.cxx modified: AliFMDEventInspector.h modified: AliFMDMCEventInspector.cxx Added new method for 2013 pA data. Updated the method for selecting which vertex method to use. modified: AliFMDSharingFilter.cxx modified: AliFMDSharingFilter.h Moved ESD corrections into new class AliFMDESDFixer. modified: AliForwardCorrectionManager.cxx modified: AliForwardCorrectionManager.h Possiblity for new correction object AliFMDCorrNoiseGain. modified: AliForwardMCMultiplicityTask.cxx modified: AliForwardMCMultiplicityTask.h modified: AliForwardMultiplicityBase.cxx modified: AliForwardMultiplicityBase.h modified: AliForwardMultiplicityTask.cxx modified: AliForwardMultiplicityTask.h Updates for new correction ALiFMDCorrNoiseGain modified: DrawdNdeta.C Minor things modified: ForwardAODConfig.C Updates for changes in the code new file: corrs/Browse.C modified: corrs/ForwardOADBGui.C New file and fixes for browsing corrections database modified: corrs/CorrDrawer.C Updates for new noise-gain correction modified: corrs/RunTestF.C Run test of Landau*Gaus shift of Delta_p new file: corrs/Upload.C Generic script to upload corrections modified: qa/QAPlotter.C modified: qa/QATrender.C modified: qa/RunQAMT.sh modified: qa/runQA.sh Updates for new centralized QA framework modified: scan/Trend.C modified: trains/MakeFMDELossTrain.C Minor things.
Restored dictionary generation for private sub-classes. The generation is conditional on the ROOT version used: If it's less then 5.99 (ROOT6-alpha) then we do generate the dictionaries. If not, then the dictionaries are not generated. Perhaps we need to make the sub-classes public for the up-coming ROOT6 (May 2014 apparently) if needed for object persistency of the parent classes. Fixed up link of runTrain to take LDFLAGS into account.
A better way to specify the Nch axis for the MultDists task. We can now easily make the same binning as used by CMS for example. This is done by introducing the nested class AliForwardMultDists::BinSpec which provides a simple interface to define Nch axis ranges. MC Nch axis is computed so we have integer bins.
This commit has two major parts: 1: Updates to previous large commit to fix various problems and to solidify those changes 2: Additions to be able to reproduce the published dN/deta from satellite (displaced vertices) events. In more details: ================ Changes in PWGLF/FORWARD/analysis2 ---------------------------------- liteAnalysis.sh gridAnalysis.sh: Addition of shell script to drive the full analysis on ProofLite, and fixes to the same but for Grid. AddTaskForwardMultDists.C AliForwardMultDists.cxx AliForwardMultDists.h trains/MakeMultDistsTrain.C scripts/SummaryMultDistsDrawer.C scripts/UnfoldMultDists.C: New task to make the multiplicity distributions and accompanying scripts. This is a base-line implementation, and does not take care of variable trigger bias, vertex bias, etc. The script UnfoldMultDists.C relies on RooUnfold being present. RooUnfold is not part of ROOT (yet) nor is it in AliROOT. We will have to come up with some plan for that. scripts/getGridData.sh: Some fixes scripts/SummaryAODDrawer.C scripts/SummaryDrawer.C scripts/SummaryMCCorrDrawer.C scripts/SummarydNdetaDrawer.C: DrawMCCorrSummary.C DrawdNdetaSummary.C: Various updates to summary drawers to take into account changes in the stored diagnostics histograms and to simplify the code. corrs/CorrDrawer.C corrs/DrawCorrELoss.C corrs/ExtractAcceptance.C corrs/ForwardOADBGui.C corrs/MigrateOADB.C corrs/SPDAcceptance.C: Various updates to the correction handlers. SPDAcceptance.C is an attempt to get the SPD acceptance from the OCDB objects. It doesn't work yet. trains/MakeAODTrain.C trains/MakeFMDELossTrain.C trains/MakeMCCorrTrain.C trains/MakedNdetaTrain.C: Various fixes, and more helper scripts generated. For example in MakeAODTrain, when run over pp data, we now produce three scripts - one for each of the trigger types INEL, INEL>0, and NSD. Also we add the possibility to pass the trigger efficiency to the Draw.C script to correct for that after-the-fact. DrawdNdeta.C: add the possibility to pass the trigger efficiency to the Draw.C script to correct for that after-the-fact. OtherData.C: Various updates. AliFMDHistCollector.h AliFMDHistCollector.cxx tests/RingBits.C: New options to for merging in overlaps - prefer inners/outers. New bit patterns for ignoring some rings (Alexander). AliAODForwardMult.cxx AliAODForwardMult.h AliAODCentralMult.h: Add bits to query what kind of corrections where used when generating these AOD objects. Add possibility to make a `status' histogram which can be passed to AliAODForwardMult::CheckEvent. This histogram details why events where not selected. AddTaskCentralMCCorr.C AliCentralMCCorrectionsTask.cxx AliCentralMCCorrectionsTask.h: New option to calculate the acceptance and the secondary corrections from MC primary and MC truth rather than from MC primary and ESD. This seems to do much better than the old effective correction. AddTaskCentralMult.C AliCentralMultiplicityTask.cxx AliCentralMultiplicityTask.h: Code to do a simple dN/deta at Terminate - just like in the forward equivalent. AliCorrectionManagerBase.cxx: Better default values AliFMDDensityCalculator.cxx: Count number of merged files for better output of cuts etc. AliFMDMCDensityCalculator.cxx: Fewer bins in the difference histograms AliFMDSharingFilter.cxx AliFMDSharingFilter.h: Add possibility to add dead strips from a script. Count number of merged files for better output of cuts etc. AliForwardMCMultiplicityTask.cxx: Fix a mistake - took the real AOD object, not the MC AOD object. AliForwardMultiplicityBase.cxx AliForwardMultiplicityBase.h: Set bits on output AOD object on what corrections where used. AliMCTruthdNdetaTask.h AliMCTruthdNdetaTask.cxx: Update for new signature of CentralityBin::ProcessEvent which returns a boolean - true if event was accepted. AliForwarddNdetaTask.h AliForwarddNdetaTask.cxx: New method CheckEventData to massage the input data. This is needed for satellite collisions where we need to take out certain eta and phi bins due to poor acceptance. This is a re-write of what Hans originally did. Alexander did the digging and Christian re-wrote. AliFMDEventInspector.h AliFMDEventInspector.cxx: Moved check of displaced vertex up front - needed that be sure things are called in the proper order. Thanks to Alexander for spotting this. Note - since we've moved the MC processing of AliDisplacedVertices to a separate function which isn't called at the normal Process time, we always get back the reconstructed vertex - even for MC. It should be OK, because we don't really use it here. AliFMDMCEventInspector.cxx: When we initialize the base class AliFMDEventInspector for data (SetupForData), we temporary disable the displaced vertices so we can initialize the routine ourselves with the proper MC flag. Changed calculation of displaced vertex from simple smearing to using the service of AliDisplacedVertices. AliBasedNdetaTask.h AliBasedNdetaTask.cxx AddTaskForwarddNdeta.C: Many changes - mainly for satellite collision analysis. Hans did all the initial work, Alexander did all the hard work of finding these changes and porting them to trunk, and Christian changed it a bit to fit the overall design. - Add flag for satellite-only analysis. - Added function to massage input data (see AliForwarddNdeta comments above) - Change signature of CentralityBin::ProcessEvent to return a boolean. Should return true if the event is taken. - Added vertex histogram with all types of bins. - Added event selection status histogram (updated by AliAODForwardMult::CheckEvent) - Updates when doing the final MC correction: For satellite events we should always use the rebinned histograms from MC. - Check analysis to do dN/deta per phi bin. Currently disabled. AddTaskForwardMult.C: Added missing MC flag when initializing the correction manager up-front. CentralAODConfig.C ForwardAODConfig.C: Disable acceptance correction by default. The acceptance correction is deprecated. Instead, one should use the phi acceptance stored in the overflow bin. This means one should set corrEmpty=false for the dN/deta tasks. Note, however, for satellite collisions, we still rely on the acceptance correction and corrEmpty=true. For forward, optimized cuts introduced (optimized on MC LHC13d4 - pp 900GeV). Also updated some comments. AliDisplacedVertexSelection.h AliDisplacedVertexSelection.cxx: Many changes - mainly for satellite collision analysis. Hans did all the initial work, Alexander did all the hard work of finding these changes and porting them to trunk, and Christian changed it a bit to fit the overall design. - New diagnostics histograms (Alexander) - SetupForData now takes an MC flag (Christian) - Added separate function to process an MC event (Christian) - New function to check for out-liers. The number of SPD clusters is checked against the sum V0 signal for rings 4 and up. This check de-selects a number of events, and cleans up the centrality distribution. We do not know yet the exact motivation for this check - we presume it comes from Maxime and/or Cvetan - we should check with them what it is. Perhaps it's similar to what Alberica does for normal vertices. - New function to return ZEM correction factors. - Modification of the ZDC and ZEM energy deposition for MC. - Updates to the per-run-range centrality factors. - Removed obsolete CheckDisplacedVertex and CalculateDisplacedVertexCent member functions Changes in PWGLF/FORWARD/trains: -------------------------------- GridWatch.C: Refresh token every 6th hour if possible MyTrain.C: Fixes to script par generation call ChainBuilder.C: Added possibility to scan a directory for inputs and store the resulting file collection to a file. Also enabled the possibility to use files stored in ZIP files. Solidified the MC file check. TrainSetup.C: Store the used date/time string. Option.C: Introduce the AsString function to parallel the other As... functions. ParUtilities.C: Added ability to make a PAR file of auxiliary data files and link them to the working directory on the slaves ProofHelper.C: Filter out basic pars in when doing LoadLibrary. We also filter out PWGLFforward2 - which we shouldn't, but I need to come up with a better solution. LocalHelper.C: Allow specifing a ZIP file pattern, but use `@' as the anchor specification character - otherwise we may interpret the over-all URL wrongly. LiteHelper.C: Allow specifing a ZIP file pattern, but use `@' as the anchor specification character - otherwise we may interpret the over-all URL wrongly. Give back proper output location. Changes in PWGLF: ----------------- PWGLF/CMakelibPWGLFforward2.pkg PWGLF/PWGLFforward2LinkDef.h: Added new class AliForwardMultDists.
Mega commit of many changes to PWGLFforward =========================================== This should probably all be ported to the release - PWGLF/CMakelibPWGLFforward2.pkg PWGLF/PWGLFforward2LinkDef.h Addition of some new classes and scripts - PWGLF/FORWARD/analysis2/scripts/SummaryAODDrawer.C PWGLF/FORWARD/analysis2/scripts/SummaryDrawer.C PWGLF/FORWARD/analysis2/DrawAODSummary.C Various fixes for drawing and increased functionality of base class to draw other things - PWGLF/FORWARD/analysis2/trains/MakeAODTrain.C PWGLF/FORWARD/analysis2/trains/MakeFMDELossTrain.C PWGLF/FORWARD/analysis2/trains/MakeMCCorrTrain.C PWGLF/FORWARD/analysis2/corrs/CorrDrawer.C PWGLF/FORWARD/analysis2/corrs/CorrExtractor.C PWGLF/FORWARD/analysis2/corrs/DrawCorrAcc.C PWGLF/FORWARD/analysis2/corrs/DrawCorrELoss.C PWGLF/FORWARD/analysis2/corrs/DrawCorrSecMap.C PWGLF/FORWARD/analysis2/corrs/ExtractAcceptance.C PWGLF/FORWARD/analysis2/corrs/ExtractELoss.C PWGLF/FORWARD/analysis2/corrs/ExtractMCCorr.C PWGLF/FORWARD/analysis2/CentralAODConfig.C PWGLF/FORWARD/analysis2/ForwardAODConfig.C PWGLF/FORWARD/analysis2/AliFMDCorrector.cxx PWGLF/FORWARD/analysis2/AliFMDMCCorrector.cxx Updates to use new OADB structure and updated corrections manager (see more below) - PWGLF/FORWARD/analysis2/corrs/ForwardOADBGui.C PWGLF/FORWARD/analysis2/corrs/MigrateOADB.C PWGLF/FORWARD/analysis2/AliOADBForward.h PWGLF/FORWARD/analysis2/AliOADBForward.cxx Migration of PWGLF/PWGLF/FORWARD/corrections to OADB/PWGLF/FORWARD/CORRECTIONS. Corrections are now stored in a TTree (one tree per correction) and indexed using the run number, collision system, center of mass energy, L3 field, and simulation and satellite flag. The class AliOADBForward provides an interface to that structure for both reading and writing. - PWGLF/FORWARD/analysis2/AliCorrectionManagerBase.h PWGLF/FORWARD/analysis2/AliCorrectionManagerBase.cxx PWGLF/FORWARD/analysis2/AliCentralCorrectionManager.cxx PWGLF/FORWARD/analysis2/AliCentralCorrectionManager.h PWGLF/FORWARD/analysis2/AliForwardCorrectionManager.h PWGLF/FORWARD/analysis2/AliForwardCorrectionManager.cxx New base class for correction managers. Uses the new OADB structure. The central corrections are new handled by separate singleton rather than embedded class, to make the code more stream-lined. Correction managers register possible corrections using services of the base class, and then reads in the requested corrections based on the run number, collision system, center of mass energy, L3 field, and simulation and satellite flags. Each registered correction decides how to be addressed, and the base class ensures this addressing - PWGLF/FORWARD/analysis2/AddTaskCentralMult.C PWGLF/FORWARD/analysis2/AddTaskForwardMult.C Fixes for new OADB structure and correction managers. Note, we should hardly ever force a correction set now, since we can load based on the run number. Still useful for tests, so won't remove it just yet - PWGLF/FORWARD/analysis2/tests/RingBits.C PWGLF/FORWARD/analysis2/tests/TestFCM.C Some new tests - PWGLF/FORWARD/analysis2/AliCentralMultiplicityTask.h PWGLF/FORWARD/analysis2/AliCentralMultiplicityTask.cxx PWGLF/FORWARD/analysis2/AliCentralMCMultiplicityTask.h PWGLF/FORWARD/analysis2/AliCentralMCMultiplicityTask.cxx Use new singleton correction manager. Add flag to turn on additional diagnostics. - PWGLF/FORWARD/analysis2/AliForwardMultiplicityBase.h PWGLF/FORWARD/analysis2/AliForwardMultiplicityBase.cxx PWGLF/FORWARD/analysis2/AliForwardMultiplicityTask.h PWGLF/FORWARD/analysis2/AliForwardMultiplicityTask.cxx PWGLF/FORWARD/analysis2/AliForwardMCMultiplicityTask.h PWGLF/FORWARD/analysis2/AliForwardMCMultiplicityTask.cxx Moved a lot of functionality into base class. Cleaned up additional diagnostics introduced by Marek - duplicate and broke structure of the code. When loading the energy loss fits, make sure we cache where to find the good fits. Added option to store one histogram per ring per event on the output AOD tree. - PWGLF/FORWARD/analysis2/AliBasedNdetaTask.cxx Code clean-up, and remove some stuff introduced by Marek which breaks the code - PWGLF/FORWARD/analysis2/gridAnalysis.sh General fixes and fixes for new OADB correction storage. - PWGLF/FORWARD/analysis2/AliForwardMCCorrectionsTask.cxx PWGLF/FORWARD/analysis2/AliCentralMCCorrectionsTask.h PWGLF/FORWARD/analysis2/AliPoissonCalculator.cxx Some clean-up - PWGLF/FORWARD/analysis2/AliFMDMultCuts.cxx Minor fixes - PWGLF/FORWARD/analysis2/AliAODForwardMult.h PWGLF/FORWARD/analysis2/AliAODForwardMult.cxx Add satellite information - PWGLF/FORWARD/analysis2/AliForwardUtil.h PWGLF/FORWARD/analysis2/AliForwardUtil.cxx Set more realistic upper limits on sigma in Delta fits - crucial, or too many fits will fail. Added member function to re-initialize bins of a histogram. - PWGLF/FORWARD/analysis2/AliForwardQATask.h PWGLF/FORWARD/analysis2/AliForwardQATask.cxx Fix for satellite usage. Cache valid bins from Delta fits. - PWGLF/FORWARD/analysis2/AliFMDEnergyFitter.cxx PWGLF/FORWARD/analysis2/AliFMDEnergyFitterTask.h PWGLF/FORWARD/analysis2/AliFMDEnergyFitterTask.cxx Task does not load correction manager (not needed). Better peak finding. - PWGLF/FORWARD/analysis2/AliDisplacedVertexSelection.h PWGLF/FORWARD/analysis2/AliDisplacedVertexSelection.cxx Added some diagnostics - PWGLF/FORWARD/analysis2/AliFMDCorrAcceptance.h PWGLF/FORWARD/analysis2/AliFMDCorrAcceptance.cxx Code to draw correction. Disabled. moved to CorrDrawer.C - PWGLF/FORWARD/analysis2/AliFMDCorrELossFit.h PWGLF/FORWARD/analysis2/AliFMDCorrELossFit.cxx Updates to drawing code. Also added caching of good bins. - PWGLF/FORWARD/analysis2/AliFMDEventInspector.h PWGLF/FORWARD/analysis2/AliFMDEventInspector.cxx PWGLF/FORWARD/analysis2/AliFMDMCEventInspector.h PWGLF/FORWARD/analysis2/AliFMDMCEventInspector.cxx Fixed coding conventions. Added cache of run number. Added additional diagnostics histograms. Satellite analysis is not diagonal to normal - will flag output as satellite instead. - PWGLF/FORWARD/analysis2/AliFMDSharingFilter.h PWGLF/FORWARD/analysis2/AliFMDSharingFilter.cxx PWGLF/FORWARD/analysis2/AliFMDMCSharingFilter.h PWGLF/FORWARD/analysis2/AliFMDMCSharingFilter.cxx Removed non-simple merging method (not used). Removed useless diagnostics histograms. Added option to consider kInvalidMult signals as zero (0) signals. This is needed for data reconstructed with AliROOT prior to v4-19-Rev-09. Before that revision, zero-signal strips are flagged as kInvalidMult. This was introduced by someone who (wrongly) tried to optimize storage. See also comments in ForwardAODConfig.C. Expanded ELoss histograms to record number of kInvalidMult. - PWGLF/FORWARD/analysis2/AliFMDDensityCalculator.cxx PWGLF/FORWARD/analysis2/AliFMDDensityCalculator.h Added flag for minimum quality of fits (should be no less then 8). Removed some useless diagnostics histograms. - PWGLF/FORWARD/analysis2/AliFMDHistCollector.h PWGLF/FORWARD/analysis2/AliFMDHistCollector.cxx Introduced new embedded class for vertex bin information. Added option to create summed per-vertex, per-ring histograms of dN/deta. Note, this can be misused to create a 1-step analysis of the forward data and should be avoided. Also add possibility to create a set of 3D histograms of summed per-centrality, per-ring histograms. This, again should be avoided. - PWGLF/FORWARD/trains/ParUtilities.C PWGLF/FORWARD/trains/TestAuxPAR.C Add possibility to build PAR of auxiliary files - PWGLF/FORWARD/trains/Helper.C Do not always rebuild - PWGLF/FORWARD/trains/ProofHelper.C Implement some missing -Weffc++ functions. Add possibility to build PAR of auxiliary files - PWGLF/FORWARD/trains/GridHelper.C PWGLF/FORWARD/trains/GridTerminate.C Allow more flexible spec of TTL (<days>d<hours>h<minutes>m<seconds>s), and AcLic the Terminate macro. Also make it possible to do the final merge and terminate on the client (local) machine. - PWGLF/FORWARD/trains/GridWatch.C Refresh token every 6th hour, and fix up batch mode - PWGLF/FORWARD/trains/AvailableSoftware.C Allow extra flags for automatic selection to only take releases, analysis tags, or any of the two. - PWGLF/FORWARD/trains/TrainSetup.C Documentation comments and do not always rebuild - OADB/PWGLF/FORWARD/CORRECTIONS/data/fmd_corrections.root OADB/PWGLF/FORWARD/CORRECTIONS/data/spd_corrections.root Added databases used by PWGLF/FORWARD analysis.