=================================================== Code to include the muon information in the creation of the standard AOD from the ESD Roberta ARNALDI, Enrico SCOMPARIN Torino --------------------------------------------------------------- The following filter is used in the official analysis train, in order to copy the muon information from the ESD to the standard AOD. 1) AliAnalysisTaskESDMuonFilter.h --> analysis task to copy the muon information from the ESD to the standard AOD 2) AliAnalysisTaskESDMuonFilter.cxx --> analysis task to copy the muon information from the ESD to the standard AOD In order to test the analysis train from the ESD to the Standard AOD production, the following macro is provided: AnalysisTrainFromESDToAOD.C Input file: ESD Output files: standard AOD (+AOD tags) Two wagons are attached to the analysis train: 1) $ALICE_ROOT/ANALYSIS/macros/AddTaskESDFilter.C 2) $ALICE_ROOT/PWG3/muon/AddTaskTagCreation.C Several flags can be activated: 1) iESDfilter: to activate, using AddTaskESDFilter.C, the copy of the ESD information into the AOD. In AddTaskESDFilter.C there is the possibility to apply cuts on the tracks and muon tracks in order to reject them before filling the AOD. 2) iAODAddMCBranch: to activate the inclusion of the MC branch (containing Kinematics info) into a branch of the AOD 3) iAODTagCreation: to activate, using AddTaskTagCreation.C, the AOD tag creation Runninng options tested: 1) GRID (with/without AliEn plugin) 2) LOCAL If the AliEn plugin is required, the macro CreateAlienHandler_FromESDToAOD.C can be used, in order to configure the jdl. AnalysisTrainFromESDToAOD.C is an updated version of the macro AnalysisTrainMuonLocal.C (input file: ESD, output files standard AOD and the AOD tag file) The main differences are related to implementations to be compliant with the analysis framework, possibility to run on the grid with/without the Alien Plugin and possibility of adding the MC truth in a branch of the AOD. The macro ReadAOD_MCBranch.C is an example on how to access MC information stored in the AOD. =================================================== Creation of the MUON-AOD from the standard AOD Roberta ARNALDI, Enrico SCOMPARIN Torino --------------------------------------------------------------- Code to produce a muon-AOD, i.e. a replica of the standard AOD containing only events where at least one muon in the dimuon spectrometer is present 1) AnalysisTrainFromStandardToMuonAODLocal.C --> macro to produce the MUON-AOD (it runs locally) 2) AliAnalysisTaskFromStandardToMuonAOD.h --> analysis task to replicate the AOD content for interesting events 3) AliAnalysisTaskFromStandardToMuonAOD.cxx --> analysis task to replicate the AOD content for interesting events - The input files are the standard AOD and the AOD tag file. The AOD tag file can be created in the previous step from ESD to Standard AOD, using AnalysisTrainMuonLocal.C, or it can be produced on the fly with this macro. - Events containing at least one muon in the muon spectrometer can be selected using the AOD tag files. - The contents of the MUON-AOD can be defined by the user in the AnalysisTrainFromStandardToMuonAODLocal.C macro with some settings as SetNeedsTracksBranchReplication(), SetNeedsVerticesBranchReplication() (defined in STEER/AliAODHandler.h)... =================================================== Calculation of the LUT Bogdan VULPESCU, Clermont --------------------------------------------------------------- Analysis task for the calculation of the Look-up-Tables used by the MUON trigger algorithm Purpose: extract from ESD files track information (ESD track parameters and matched local trigger decisions) and store in TNtuple; the ntuple is used for building 2D histograms (transverse momentum / local deviation) which afterwards enter calculation/optimization procedures for the selection of LUT cuts for individual local boards and several transverse momenta. This version is prepared for the use on the grid, see the JDL file. Files: AliAnalysisTaskLUT.cxx - source files of the analysis task AliAnalysisTaskLUT.h rootlutnt.sh - executable (script) runCreateLUTNT.C - macro for setting the libraries environment and execution of the main macro analysisTaskLUTNT.C - main macro for the analysis createLUTNT.jdl - JDL file =================================================== Analysis task for the calculation of the trigger chamber efficiency. Diego STOCCO, Torino ---------------------------------------------------------------- Purpose: produce histograms for the trigger chamber efficiency determination from MUON track info. The task works either with input ESD or AOD (default is ESD). This version works either locally or on grid. Files: AliAnalysisTaskTrigChEff.cxx -source files of the analysis task AliAnalysisTaskTrigChEff.h AnalysisTrigChEff.C - main macro for analysis Test analysis: - Preliminary: copy the following packages in the current working directory - STEERBase.par - ESD.par - AOD.par - ANALYSIS.par - ANALYSISalice.par - PWG3muon.par If the packages are not present, create them: cd $ALICE_ROOT make STEERBase.par make ESD.par ... - Local test: root .x AnalysisTrigChEff.C(kMlocal) by default the macro searches for ESD in $ALICE_ROOT/MUON/test_out.100 The directory is generated by MUON/AlirootRun_MUONtest.sh (see README in MUON). - Grid test (interactive): root .x AnalysisTrigChEff.C(kMlocalGrid) by default the macro searches for a wn.xml in the current directory, with the list of grid files to analyse. - Display results: The macro creates the file MUON.TriggerEfficiencyMap.root aliroot AliMUONTriggerEfficiencyCells effCells("MUON.TriggerEfficiencyMap.root") effCells.DisplayEfficiency() =================================================== Analysis task for checking the consistency of ESD and AOD filling and contents. Mercedes LOPEZ NORIEGA, Orsay ---------------------------------------------------------------- Purpose:check the consistency between the ESDs and the AOD. The task works locally and on the grid, there are two macros depending where you want to run Files: AliAnalysisTaskAODvsESD.cxx -source files of the analysis task AliAnalysisTaskAODvsESD.h AnalysisTrainMuonComp.C - macro for analysis on the grid AnalysisTrainMuonCompLocal.C - macro for local analysis To run the check: 1. Copy the following packages in the current working directory - STEERBase.par - ESD.par - AOD.par - ANALYSIS.par - ANALYSISalice.par - PWG3muon.par 2. To run locally: root .x AnalysisTrainMuonCompLocal.C by default the macro searches for a tag file of ESDs in the working directory 3. To run on the grid: root .x AnalysisTrainMuonComp.C by default the macro searches for a wn.xml in the current directory, with the list of grid files to analyse. 4. Display results: The macro creates the file AODvsESDoutput.root It contains an Ntuple from the ESDs and Ntuple from the AODs and an inv. mass histo for each case =================================================== Analysis task for extracting variables from the ESD for single muons Nicole BASTID and Bogdan VULPESCU, Clermont-Ferrand ---------------------------------------------------------------- Purpose: the output is an ntuple with single muon tracks selected variables; a histogram collects the number of events in different trigger classes. Files: AliAnalysisTaskSingleMuESD.cxx - source files of the analysis task AliAnalysisTaskSingleMuESD.h RunSingleMuonAnalysisFromESD.C - macro to run the analysis (with xml input collection and grid connection) How to run: 1. Copy the following packages in the current working directory - STEERBase.par - ESD.par - AOD.par - ANALYSIS.par - ANALYSISalice.par - PWG3muon.par 2. Run root gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/RunAnalysis.C"); setupPar("STEERBase"); setupPar("ESD"); setupPar("AOD"); setupPar("ANALYSIS"); setupPar("ANALYSISalice"); setupPar("PWG3muon"); 3. To analyse grid files, provide an XML collection file wn.xml and run gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/RunSingleMuonAnalysisFromESD.C"); RunSingleMuonAnalysisFromESD() 4. To analyse local files, modify RunSingleMuonAnalysisFromESD.C } else { chain->Add("/path_1_to/AliESDs.root"); chain->Add("/path_2_to/AliESDs.root"); chain->Add("/path_3_to/AliESDs.root"); } and run (notice the "1" argument) gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/RunSingleMuonAnalysisFromESD.C"); RunSingleMuonAnalysisFromESD(1) 5. Check the results in SingleMuESD.root Note: for some older runs (PDC08/LHC08t for instance) it is necessary to force the values of the trigger mask, because the function GetFiredTriggerClasses() from AliESDEvent does not return the proper names of the muon trigger classes. So one has to un-comment the line task->SetTriggerType("MUON"); in the macro RunSingleMuonAnalysisFromESD.C, if the simulation was produced with SetMakeTrigger("MUON") This bug is fixed starting with the TRUNK from 14.11.2008 =================================================== Analysis task for RecoCheck analysis of ESD and Kinematics Bogdan VULPESCU, Clermont-Ferrand ---------------------------------------------------------------- Purpose: the class MUON/AliMUONRecoCheck is used to extract single muon and muon pair information in objects of type AliMUONTrackLight and AliMUONPairLight. The output file is RecoCheck.root and contains a tree with arrays of both objects. Files: AliAnalysisTaskRecoCheck.cxx - source files of the analysis task AliAnalysisTaskRecoCheck.h RunRecoCheck.C - macro to run the analysis (with xml input collection and grid connection) How to run: 1. Run aliroot (not root!, the class is in the muondep library) 2. gROOT->LoadMacro("$ALICE_ROOT/PWG3/muondep/RunRecoCheck.C"); 3. RunRecoCheck() 4. To analyse local files, modify RunRecoCheck.C } else { chain->Add("/path_1_to/AliESDs.root"); chain->Add("/path_2_to/AliESDs.root"); chain->Add("/path_3_to/AliESDs.root"); } and run (notice the "1" argument) RunRecoCheck(1) 5. Check results in RecoCheck.root Note: the magnetic field is needed in order to initialize the tracker. The corresponding field map is selected by looking at the value of the L3 current stored in the GRP database which was used for the reconstruction. =================================================== Analysis task to correlate ESD tracks to their corresponding Monte Carlo data. Artur Szostak, INFN --------------------------------------------------------------- The AliAnalysisTaskLinkToMC analysis task is used to correlate reconstructed tracks found in ESDs to their corresponding MC track information found in the kinematics tree. The the same algorithm is used as in MUON/AliMUONRecoCheck but without any dependancy on MUON library code. This analysis task will copy out ESD MUON track information into the AOD like AliAnalysisTaskESDMuonFilter does, however the MC track label in the AOD track class is filled with the label of the corresponding MC track. Thus, subsequent analysis tasks can easily find the correct MC track from the label. Files: AliAnalysisTaskLinkToMC.h - The header file for the analysis task code. AliAnalysisTaskLinkToMC.cxx - The source file for the analysis task code. RunLinkToMCAnalysisExample.C - An example macro for running the analysis task in local mode over simulated data. The macro takes one argument which is the name of the ESD file to process. By default it uses AliESDs.root in the current working directory. PlotEfficiency.C - This macro can be used to quickly check the control histograms which are generated by RunLinkToMCAnalysisExample.C by default. The macro simply calculates the reconstruction efficiency from the found and findable track histograms that are filled by the analysis task. How to run: To run the analysis task in local mode with the example macro simply run the command $ root RunLinkToMCAnalysisExample.C\(\"AliESDs.root\"\) where AliESDs.root can be replaced with the full path and name of the appropriate ESD file you wish to process. This command can also be run via AliRoot. =================================================== Analysis task to create mixed AOD events, containing a pair of muon tracks coming from two different real AOD events. Alessandro De Falco and Antonio Uras, INFN Cagliari --------------------------------------------------------------- IMPORTANT: The AliAnalysisTaskCreateMixedDimuons analysis task needs the class AliEventPoolMuon. In class AliEventPoolMuon the definition of the pools to be used in the mixing is implemented. Up to now, it is possible to create pools diving events by: - total multiplicity - forward muons multiplicity - z-position of the primary vertex In class AliAnalysisTaskCreateMixedDimuons the mixing is performed between each pair of events which can be built up picking events from the internal buffer: if the buffer contains n events, n(n-1)/2 mixed events are created within the same call of the task. Some more details: - the mixing task asks a completely fresh buffer for each call - the mixing task creates output events from scratch - output events are filled with two muon tracks (picked randomly from the events being mixed and a vertex having its z-position in the middle of the z-vertex bin defining the pool. Due to technical reasons, the tracks are NOT connected with the vertex - standard AOD are created as output, nearly completely empty Files: AliAnalysisTaskCreateMixedDimuons.(h,cxx) - The analysis task class. AliEventPoolMuon.(h,cxx) - The class implementing the pool. AnalysisTrainCreateMixedDimuons.C - An example macro enabling connections between the pool manager, the input event handler, the input and output containers, via the Analysis Manager. Input arguments: - directory containing AOD tag file - name of the output file - number of events to be loaded in the internal buffer How to run: To run the analysis task in local mode with the example macro, simply run the AnalysisTrainCreateMixedDimuons.C macro (without compiling it) with appropriate arguments. =============================================================================== Analysis Task for (di)muons continuum from heavy flavors X. M. Zhang, Clermont-Ferrand and Wuhan =============================================================================== 1) AliAnalysisTaskSEMuonsHF.h (.cxx) -- analysis class for (di)muons continuum from heavy flavors. 2) AliMuonsHFHeader.h (.cxx) -- class used to collect and save the information at event level (eg. vertex position and trigger mask). 3) AliAODMuonTrack.h (.cxx) -- class used to extract and save information of reconstracted muon tracks (from both AOD and ESD), selection the muon with the set cuts. 4) AliAODMuonPair.h (.cxx) -- class used to extract and save information of muon pairs (both for like-sign and unlike-sign), the corresponding two single muon tracks are linked by TRef. 5) AliMCMuonTrack.h (.cxx) -- inherit from AliAODMuonTrack, class used to extract and save the Monte-Carlo information of reconstracted muon tracks, the generated kinematics and the history of the muon are filled in this class. 6) AliMCMuonPair.h (.cxx) -- inherit from AliAODMuonPair, class used to extract and save the information of muon pair at Monte-Carlo level, the relation between two muons can be obtain from this class. - the input of AOD and ESD are detected automatically. - three analysis modes: mode0, analyze both single muon and dimuon mode1, analyze only the single muon mode2, analyze only the dimuon - two kinds of outputs: - histogram, histograms for single muon and/or dimuon will be outputed according to different running mode. Events with unreconstructed vertex are discarded, cuts are set for (di)muons selection. - tree, if flag for output tree switch on, tree with braches of event header and/or single muon and/or dimuon will be gotten according to different running mode. All events and all recontructed tracks are used to fill the tree. - running with and without MC information: - without MC information, AliAODMuonTrack and/or AliAODMuonPair are/is used and filled in the tree (if switch on), output the histograms just with reconstructed information. - with MC information, AliMCMuonTrack and/or AliMCMuonPair are/is used and filled in the tree (if switch on), additional histograms for different single muon and/or dimuon source are outputed. - at present the methods used to get the MC information from ESD is not implemented for they depend on the MUON module. Although, we still keep these codes in AliMCMuonTrack for private running, more details can be found in AliMCMuonTrack.cxx - all the flags and cuts are set in AddTaskMuonsHF.C Int_t mode = 0; \\ = 0 analyze both single muon and dimuon \\ = 1 analyze the single muon only \\ = 2 analyze the dimuon only Bool_t isMC = kTRUE; \\ get MC information Bool_t isTree = kFALSE; \\ flag for tree output AliAnalysisTaskSEMuonsHF *taskMuonsHF = AddTaskMuonsHF(mode, isMC, isTree); =================================================== New task to mesure the spectrometer resolution Philippe Pillot, Subatech --------------------------------------------------------------- 1) Compute the cluster resolution per chamber, half chamber and detection element by using 2 methods: a) combining the cluster-track residuals obtained with and without using the cluster to reconstruct the track b) subtracting the track resolution component to the cluster-track residual obtained without using the cluster to reconstruct the track - In principle, this task should be run iteratively, using the chamber resolution computed in the step n-1 to weight the clusters when refitting the tracks in the step n. --> The macro RunMuonResolution.C gives an example on how to do it locally or in PROOF. Neverthless, the convergence is quite fast so it can also be run only once provided that the starting chamber resolutions are closed to the real one (e.g. to monitor the variation of the resolution with time). - If not specified by user when initializing the task, the starting chamber resolution is taken from the recoParam. In addition, the task load several data from the OCDB (mapping, magnetic field...) so the default storage must be properly set. 2) Return the momentum, transverse momentum and angular resolutions of the reconstructed tracks at first cluster and at vertex (i.e. including absorber effects). These resolutions are computed by using the chamber resolutions given as input (i.e. the ones from the step n-1 or the starting ones). 3) Finally, it is possible to re-align the clusters before computing the resolution, by providing the OCDB path to the old and new alignment data (see comments in the code for more details).