1 / 30

PWG4 Status

This update provides an overview of the PWG4 analysis train performance and the implementation of jet tasks in the offline analysis. It includes information on the train performance, memory usage, merging of output files, AOD filtering, and special event analysis.

Télécharger la présentation

PWG4 Status

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PWG4 Status Gustavo Conesa Balbastre PWG4 analysis - Offline week

  2. Outline • PWG4 Mini Train and Jet Tasks status - Christian Klein-Bösing • PartCorr status - Gustavo Conesa Balbastre PWG4 analysis - Offline week

  3. PWG4 analysis modules • Jet Tasks: Christian Klein-Bösing et al. • Photon conversions, GammaConv : From Ana Marin et al. • JetCorrel: 2 hadron correlations from Paul Constantin. • JCORRAN: 2 particle correlations from Jan Rak et al. • PartCorr: Particle identification (, 0, , e, , …) and correlation (with jets, hadrons … ) package. • Calorimeter QA • Omega3pi: Boris Polichtchouk • NEW: Et: David Silvermyr, Oestein, Cristine Natrass • CaloCalib: Calorimeters calibration module. PWG4 analysis - Offline week

  4. PWG4 Train Christian Klein-Bösing Analysed data sets so far • Grid-based, using the alien-plugin • Running schedule depends on • Changes in the data (new MC, more data collected, improved calibration) • Changes in the code (user tasks, framework updates i.e. event selection) • Operation since 07.12.09 • 74 different checkouts from aliroot trunk • 99 train rides • Output /alice/cern.ch/user/k/kleinb/analysisESD/ • Prerequisites: User tasks and configuration must be available in svn • In JETAN or PWG4 • Usage of par-files: Train does NOT depend on aliroot version(s) deployed on the grid • Fast turnaround for debugging, less stable… • MC processing for large data sets difficult due to fragmentation of ESDs output files PWG4 analysis - Offline week

  5. Train Performance • Batch on all p+p and anchor MC • Allow only change in user tasks, stable framework and standard cuts • Started October 21st, real data finished • Recently many updates: • Poor performance Done jobs/total 98%70% • Memory issues: Partially due to leaks but also output size • CPU issues: Increased processing time/event • Serious profiling effort before running on Pb+Pb PWG4 analysis - Offline week

  6. Example Memory: Merging • AliAnalysisHelperJetTasks::PrintDirectorySize(“output.root”) • for checking folder size on disk and in memory A failed merging step essentially wastes all previously used resources! Bottleneck of “organized” analysis • Merging is currently the most memory consuming operation • Example of outputs: • 40 Tasks • 20 Events: Size in Memory 884.04 MB, Size on disk 5.70 MB • 7M Events: Size in Memory 1055.40 MB, Size on disk 57.59 MB • You can do the math if one merges multiple files... • Worsened by THnSparse: increase in size with larger statistics • Merging more problematic for complete data sets large runs • Current workarounds • Merging only specific folders from output file (AliAnalysisHelperJetTasks::MergeOutputDirs()) • Binary merging: Tedious PWG4 analysis - Offline week

  7. Jet Tasks Major Code UpdatesAOD Filtering Need counters on rejected events in AOD… • New feature: • AOD filtering for jets implemented in rev42659 • Train writes only events with jet pT > 10 GeV • Rejection factor of about 1/600 • AODs stored for complete runs e.g.: /alice/cern.ch/user/k/kleinb/analysisESD/LHC10d/output_pwg4train_LHC10d_7000_pass1_100730b/${RUNNUMBER}/AliAOD.root • Here a total of 212k/115M jet events have been selected • Recipe: • In AddTaskESDFilter.C or steering macro • taskesdfilter->SetEnableFillAOD(kFALSE); • In AddTaskJets.C or steering macro • jetTask->SetFilterPt(10.); PWG4 analysis - Offline week

  8. Look for special events (5 "Jets") 0 Jet eta 0.685 phi 1.228 pT 42.980 Tracks 10 1 Jet eta 0.614 phi 0.066 pT 18.904 Tracks 5 2 Jet eta 0.748 phi 1.932 pT 16.134 Tracks 5 3 Jet eta -0.756 phi 5.790 pT 7.173 Tracks 2 4 Jet eta 0.267 phi 1.102 pT 5.641 Tracks 3 All jet analyses can be done quickly on AODs now! 0 Jet eta -0.744 phi 2.114 pT 42.275 Tracks 15 1 Jet eta -0.182 phi 4.424 pT 35.175 Tracks 13 2 Jet eta -0.390 phi 0.690 pT 20.868 Tracks 10 3 Jet eta 0.217 phi 1.829 pT 18.434 Tracks 5 4 Jet eta -0.647 phi 5.583 pT 14.741 Tracks 6 5 Jet eta 0.413 phi 2.557 pT 12.103 Tracks 5 PWG4 analysis - Offline week

  9. AliAnalysisTaskJetCluster Offline Week 11.2010 • Task for track based jet finding with fastJET (kT, anti-kT) • Standalone running of fastJET on true and randomized events • Randomized tracks in η and φ • Used to estimate rate for “fake” jets • Random contribution to the jet spectrum • Fake and true jets are written to the AOD • e.g. “clustersAOD_ANTIKT04” and “clustersAOD_ANTIKT04_random” • Background calculation with fastJET also done here • Per event background density written to AOD for usage in subsequent analysis • e.g. “jeteventbackground_clusterAOD_KT06” PWG4 analysis - Offline week

  10. Example: Random Jets in Pb+Pb Jets and tracks within |η| < 0.9 AliAnalysisTaskJetCluster LHC10h 3plus 137161 As expected, randomizing shifts the jet yield to low pT (< 30 GeV). Random benefit from background largest at low pT Unlike p+p random jet spectrum does not follow the shape of single tracks PWG4 analysis - Offline week

  11. AliAnalysisTaskFragmentationFunction • Goal: study jet structure in phase space • Basic track and jet QA • Track momentum distributions in jets, fragmentation functions • For monojets and dijets (back-to-back) • Intrajet structure (track angular and jT distribution within jet cone) • Underlying Event background (several methods developped) • Tracking efficiency in jets • Common effort from PWG4 Jet and High pt QA task force, • Task running on PWG4 mini train (->AddTaskFragmentationFunction.C) • Authors: • Bastian Bathen, Oliver Busch, Christian Klein-Boesing, Magali Estienne, Swensy Jangal • Task conceived as multi-user & multi-purpose common software: • highly modular, strong use of encapsulation, extremely flexible PWG4 analysis - Offline week

  12. AliAnalysisTaskFragmentationFunction • Flexibility: • AOD based, use any AOD / delta AOD jet branch in input (now: used to switch between different jet finders. but also possible: EMCal jets, tagged B-mesons, ...) • User can choose between use of track refs or accumulating tracks in jet cone 'by hand’ • Inclusive and leading track distributions • Modularity: • All histograms (QA, fragmentation functions, Intrajet distributions ...) encapsulated in subclasses • Workflow: fill lists (of jets, tracks ... ) then loop and call 'fill' interface functions for the histogram subclasses PWG4 analysis - Offline week

  13. Pythia Fragmentation Functions, • Intrajet distributions • First look at efficiency corrected Fragmentation Functions (data): • tools are in place, work in progress PWG4 analysis - Offline week

  14. PWG4 JetsSummary and Outlook Offline Week 11.2010 • PWG4 mini train at the limits • Serious profiling needed, optimize merging • Revise running strategy • Updates: • Jet filtering to AOD, need scaler information • Simplified fastJET interface for track based analysis • New task summarizing all momentum distribution analyses PWG4 analysis - Offline week

  15. PartCorr: What’s new, Mixingschema AliAnalysisTaskME AliAnalysisTaskSE new AliAnalisisTaskParticleCorrelation AliAnalisisTaskParticleCorrelationM Data Data Output: delta AOD, AliAODPWG4Particle and/or Histograms Data AliAODCaloTrackReader ESD, AOD, MC AliAnaPartCorrMaker aodEMCal, aodPHOS, aodCTS aodEMCal, aodPHOS, aodCTS deltaAOD AliAnaPhoton derives from AliAnaPartCorrBaseClass AliAnaPi0 derives from AliAnaPartCorrBaseClass AliAnaNNN derives from AliAnaPartCorrBaseClass … http://aliweb.cern.ch/Offline/Activities/Analysis/PWGDocumentation/PWG4/PartCorr.html PWG4 analysis - Offline week

  16. NEW: Mixing event with PartCorr • Possibility to do the analysis with SE or ME, the only change is the executing analysis task • AliAnalysisTaskPartCorr:: Single Event • AliAnalysisTaskPartCorrM:: Mixed Event • Rest of the code is almost not dependent on the type of analysis. • Minor modifications needed to account for different collision vertex in the mixed event buffer. • Now we have to start the real tests with the Pb-Pb data • Results in p+p for cluster+track correlation studies seem satisfactory. • What needed important modifications was : • The ESD/AOD format for calorimeters : Now derive from virtual classes. • Duplicated code in AOD and ESD reader now simplified into a single code. • The buffering of calorimeter information in AliMixedEvent PWG4 analysis - Offline week

  17. Calorimeter ESD/AOD Before • Calorimeter data objects inheritance: • AODs and ESDs needed different code to be accessed and analyzed • Besides different access methods name to access the same parameter TNamed AliESDCaloCells AliAODCaloCells AliESDCaloCluster TObject AliAODCluster AliAODCaloCluster AliAODFmdCluster AliAODPmdCluster PWG4 analysis - Offline week

  18. Calorimeter ESD/AOD After AliVCluster AliVCaloCells AliESDCaloCells AliAODCaloCells AliESDCaloCluster AliAODCluster AliAODCaloCluster AliAODFMDCluster AliAODPMDCluster PWG4 analysis - Offline week

  19. AliVCluster: Common part for PHOS/EMCAL/PMD/FMD enum VClu_t {kUndef = -2, kPHOSNeutral,kPHOSCharged,kEMCALClusterv1, kPMDNeutral, kPMDCharged}; enum VCluPID_t { kElectron = 0, kMuon = 1, kPion = 2, kKaon = 3, kProton = 4,kPhoton = 5,kPi0 = 6, kNeutron = 7, kKaon0 = 8, kEleCon = 9,kUnknown = 10, kCharged = 11,//For PMD?kNeutral = 12//For PMD? }; virtualvoid SetID(Int_t ) { ; } virtual Int_t GetID() const {return0 ; } virtualvoid SetType(Char_t ) { ; } virtual Char_t GetType() const {return kUndef ; } virtualvoid SetE(Double_t ) { ; } virtual Double_t E() const {return0. ; } virtualvoid SetChi2(Double_t ) { ; } virtual Double_t Chi2() const {return0. ; } virtualvoid SetPositionAt(Float_t,Int_t) { ; } virtualvoid SetPosition(Float_t *) { ; } virtualvoid GetPosition(Float_t *) const { ; } virtualvoid SetPIDAt(Float_t , Int_t) { ; } virtualvoid SetPID(const Float_t *) { ; } virtualconst Double_t *GetPID() const { return0 ; } virtual Bool_t IsEMCAL() const {return -1 ; } virtual Bool_t IsPHOS() const {return -1 ; } • This new implementation also involves changes in the current ESDs/AODs access methods since names were different: • Cluster type the same as for ESDs. AODs had EMCAL in smaller integer unit. • Old AODs cannot be read using IsEMCAL() or IsPHOS() • PID recover method had different name in ESD and AODs, now changed. • PID and Position methods were templates in AODs, now avoided. PWG4 analysis - Offline week

  20. AliVCluster: PHOS/EMCAL virtualvoid SetDispersion(Double_t ) { ; } virtual Double_t GetDispersion() const {return0. ;} virtualvoid SetM20(Double_t) { ; } virtual Double_t GetM20() const {return0. ; } virtualvoid SetM02(Double_t) { ; } virtual Double_t GetM02() const {return0. ; } virtualvoid SetNExMax(UChar_t) { ; } virtual UChar_t GetNExMax() const {return0 ; } virtualvoid SetTOF(Double_t) { ; } virtual Double_t GetTOF() const {return0. ; } virtualvoid SetEmcCpvDistance(Double_t) { ; } virtual Double_t GetEmcCpvDistance() const {return0. ; } virtualvoid SetTrackDistance(Double_t, Double_t ){ ; } virtual Double_t GetTrackDx(void)const {return0. ; } virtual Double_t GetTrackDz(void)const {return0. ; } virtualvoid SetDistanceToBadChannel(Double_t) { ; } virtual Double_t GetDistanceToBadChannel() const {return0;} virtualvoid SetNCells(Int_t) { ; } virtual Int_t GetNCells() const {return0 ; } virtual UShort_t *GetCellsAbsId() {return0 ; } virtual Double_t *GetCellsAmplitudeFraction() {return0 ; } virtual Int_t GetCellAbsId(Int_t) const {return0 ; } virtual Double_t GetCellAmplitudeFraction(Int_t)const{return0;} virtual Int_t GetLabel() const {return -1 ;} virtual Int_t GetLabelAt(UInt_t) const {return -1 ;} virtual Int_t *GetLabels() const {return0 ; } virtual UInt_t GetNLabels() const {return0 ; } virtual Int_t GetNTracksMatched() const {return0 ; } virtual TObject *GetTrackMatched(Int_t)const {return0 ; } virtual Int_t GetTrackMatchedIndex()const {return -1; } • IsEMCAL/PHOS, Dispersion, and DistanceToBad channel had different name in AOD/ESDs • Partial problem, matched tracks: we foresaw a list of contributing tracks to the cluster, right now only filled by one. Related methods in red: • ESDs, we keep the index • AODs, we keep the reference to the track. • Trick: check if GetTrackMatched(0) is null, then it is an ESD and you have to get the Matched index • Possible solution: add same data member in ESDs to keep the TRefArray with tracks, and not fill anymore the list of indeces. PWG4 analysis - Offline week

  21. Changes in AliVEvent/AliMixedEvent • Once we have the virtual objects, we need to recover them from the event, independently of the data type // AliVEvent virtual AliVCluster *GetCaloCluster(Int_t) const {return0;} virtual Int_t GetNumberOfCaloClusters() const {return0;} virtual Int_t GetEMCALClusters(TRefArray *) const {return0;} virtual Int_t GetPHOSClusters (TRefArray *) const {return0;} virtual AliVCaloCells *GetEMCALCells() const {return0;} virtual AliVCaloCells *GetPHOSCells() const {return0;} // AliMixedEvent virtual AliVCluster *GetCaloCluster(Int_t i) const; virtual Int_t GetNumberOfCaloClusters() const {return fNumberOfCaloClusters;} PWG4 analysis - Offline week

  22. Data format changes • This new implementation implied small modifications in many aliroot classes (mainly due to the changes in the methods naming) • STEER, EMCAL, PHOS, ESDCheck, ANALYSIS, HLT, PWG4/PartCorr, PWG4/JCORRAN, JETAN and EVE • Since the modification do not touch data members, we are backward compatible for ESDs and almost for AODs. • Changes in trunk and release 4.20 • Careful: Any AOD generated with “release 4.19” and analysis tags before “?” has different Id bit for EMCAL and PHOS with respect to current AODs. • But since no one but me is looking to AODs for clusters, this is not an issue until now. PWG4 analysis - Offline week

  23. Mixing: Issues • If we start the analysis from deltaAODs, mixing will not work for the objects stored there. • Need to start testing with tagged data sets, right now tested only with the “simple” EventLoopPool • Calorimeters contribute to the tags with number of clusters, need to define a better set of parameters to select the events interesting for us. PWG4 analysis - Offline week

  24. AliCalorimeterUtils • Calorimeter corrections on the data evolve with time: • Improved calibration, new bad channels, improved alignment. • Corrections candidate for the Analysis CDB. • Need utilities to correct at the analysis level. • Class to access calorimeters specific utilities • Geometry initialization • Access to geometry methods • Recalculate energy providing recalibration factors • Recalculate position, PID, matching (EMCAL only …) • Check/remove if clusters are close to border • Remove clusters with bad channels providing the list of bad channels • Some of the specific EMCAL utilities are implemented in AliEMCALRecoUtils. AliCalorimeterUtils calls it. Some of the settings are passed, but not all. • https://twiki.cern.ch/twiki/bin/viewauth/ALICE/EMCalCode:HowTo • Most of the utilities are used in the reader for cluster filtering or recalculation. PWG4 analysis - Offline week

  25. PartCorr: Issues • Memory allocation • Analysis generates many histograms, specially TH3, and it is becoming a problem. • Need to leave only the indispensable TH3 or find another option. Is there any suggestion? • THNSparse is not an option • Make it work on PROOF • Connect GammaConv output with PartCorr analysis. • … PWG4 analysis - Offline week

  26. To start to think • Efficiency calculations for different analysis will need of large amount of MC • Embedding is also an important piece • Need to define a MC+Embedding strategy. • Calorimeter • PHOS: Embedding working • EMCAL: Nothing available • Which is the status for other detectors? PWG4 analysis - Offline week

  27. Back-up PWG4 analysis - Offline week

  28. PartCorr: What it doesjust a reminder, skip • Particle identification (, 0, , e, , …) and correlation (with jets, hadrons … ) package. • Originally intended for calorimeters oriented analysis but it can be used also for analysis with tracks. • It works with input AODs and ESDs or even MC particles. • Output are histograms and/or deltaAODs, these deltaAODs can be re-analized for further refinement of the analysis. PWG4 analysis - Offline week

  29. PartCorr: Analysis availablejust a reminder, skip • Analysis available • Calorimeter QA: AliAnaCalorimeterQA • Particle identification • Photon identification/selection: AliAnaPhoton • 0 identification/selection: AliAnaPi0, AliAnaPi0EbE • Electron identification/selection: AliAnaElectron, AliAnaBtag (new simplified version) • Charged particles selection: AliAnaChargedParticle • Omega identification: AliAnaOmegaToPi0Gamma • Particle (Photon, 0, …) isolation: AliAnaParticleIsolation • Particle correlation with • Jets: AliAnaJetFinderCorrelation (correlate with JETAN output), AliAnaJetLeadingConeCorrelation. • Hadrons: AliAnaParticleHadronCorrelation PWG4 analysis - Offline week

  30. PartCorr: references • How to use it • Code is at $ALICE_ROOT/PWG4/ParCorrBase and $ALICE_ROOT/PWG4/ParCorrDep • Example macros and configuration files are in $ALICE_ROOT/PWG4/macros • Old documentation can be found in the offline analysis pages: • http://aliweb.cern.ch/Offline/Activities/Analysis/PWGDocumentation/PWG4/PartCorr.html PWG4 analysis - Offline week

More Related