New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TrackerMap script not working in CMSSW_11_3_2 #34607
Comments
A new Issue was created by @sroychow Suvankar Roy Chowdhury. @Dr15Jones, @perrotta, @dpiparo, @silviodonato, @smuzaffar, @makortel, @qliphy can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
assign dqm |
New categories assigned: dqm @jfernan2,@kmaeshima,@rvenditti,@andrius-k,@ErnestaP,@ahmad3213 you have been requested to review this Pull request/Issue and eventually sign? Thanks |
@cms-sw/dqm-l2 since the functionality has been removed by the central DQM team, please advice on how to proceed. This tool is needed for CRUZET data certification. Thank you |
Could |
@sroychow see please #34607 (comment) |
@jfernan2 the solution of TFileService only solves the part of reading the files contents. However this doesn't ensure that the DQM store object is filled with the proper Monitor Eelement info. Here e.g., I have tried implementing the file reading(this can be optimized of-course) the legacyIO helper class - link. But then in this version, the TkMaps related to QTests are not getting filled. |
So, you need read and write Legacy access, not only read, I misunderstood then. I am sorry for the inconvenience of this issue The problem is that you generally cannot use analyzers with the legacy (plain root) saver, so, e.g. normal DQM modules running in a process with a DQMSaver are expected not to produce output, because they expect to work on runs, while the DQMSaver saves at endjob. A possible solution (not sure how difficult may be to hack this) would be to use TFileService to read and in parallel DQMFileSaver to write copying the MEs from input to output and adding your needs in between. For this use case subsystems generally use plain .C scripts outside the CMSSW/DQM FW, but I understand that the TkQualityMaps make this harder. @sroychow could you please remind me what particularities do TkMaps have? Aren't they TH2F/D objects? Aren't they filled or saved in your trial with LegacyIOHelper? I see they are not explicitelty considered in: cmssw/DQMServices/Core/src/LegacyIOHelper.cc Lines 68 to 112 in 6d2f660
Because that could be the reason why they are not saved properly Thanks |
One of the problems of the approach at #34607 (comment) is that running it takes an inordinate amount of time to run to completion. igprof -pp -z -o ig.gz -t cmsRun cmsRun ${CMSSW_BASE}/src/DQM/SiStripMonitorClient/test/SiStripDQM_OfflineTkMap_Template_cfg_DB.py globalTag=113X_dataRun3_Prompt_v3 runNumber=319176 dqmFile=DQM_V0001_R000319176__ZeroBias__Run2018B-PromptReco-v2__DQMIO.root detIdInfoFile=file.root
igprof-analyse --sqlite -v --demangle --gdb ig.gz | sed -e 's/INSERT INTO files VALUES (\([^,]*\), \"[^$]*/INSERT INTO files VALUES (\1, \"ABCD\");/g' | sqlite3 ig.sql3 I get the following results: http://musich.web.cern.ch/musich/cgi-bin/igprof-navigator/ig_tkmaps/12 so it seems that > 98% of the time is passed in the destructor of cmssw/CommonTools/TrackerMap/src/TrackerMap.cc Lines 1109 to 1111 in 574cf23
renders the execution reasonably fast, but will obviously leak memory (as the |
Instead of doing |
Looking at the implementation of |
Ah, so it looks like calling |
I tried out the |
this can be signed and closed, right? |
+1 |
This issue is fully signed and ready to be closed. |
Tracker DQM uses a standalone script to produce 2-Dimensional plots of various monitored quantities. Example of TkMaps for a run taken in 2018(link). The script in turn runs the
SiStripOfflineDQM
module. The script takes as input legacyTDirectory
basedDQM_*.root
file.Currently the script is crashing in
CMSSW_11_3_2
when we try to run it for producing the maps for the CRUZET runs.It crashes from line 205 which is calling the
DQMStore::open
function. The crash comes from this line. From my understanding, the support to readTDirectory
based ROOT files were dropped in this PR #28622.To solve the issue, I tried implementing a function to read the contents of the
TDirectory
based ROOT file with the LegacyIOhelper class, but not all maps are being filled correctly. I am still investigating. Can the DQM experts give some suggestions?@arossi83 @mmusich @tsusa
The text was updated successfully, but these errors were encountered: