Skip to content
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

Addition of IOExerciser, a simple module for emulating various IO patterns #320

Merged
merged 3 commits into from Aug 19, 2013

Conversation

bbockelm
Copy link
Contributor

This is a simple OutputModule (must be an output module in order to access the product information) which reads event data in a configurable pattern. The data read is determined by desired IO pattern, not file contents; the actual object contents are ignored.

This is meant to test out new IO code and to watch for regressions between releases.

@@ -0,0 +1,3 @@
#Automatically created by SCRAM
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do not include file which are created by scram.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file should be removed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file must be removed. Please do not sign or merge until it is removed.

@ktf
Copy link
Contributor

ktf commented Aug 14, 2013

Do you really want to have a separate package? Why not just an additional test?

@Dr15Jones

//
// Original Author: Brian Bockelman
// Created: Mon Jun 4 17:35:30 CDT 2012
// $Id$
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove this line

@ghost ghost assigned bbockelm Aug 14, 2013
@bbockelm
Copy link
Contributor Author

Additionally - Chris reminded me, the reason I needed this to be an OutputModule is because I need access to the TTree itself. I use this to determine the size of branches in the input (as this module wants to read N% of the input data by volume, not N% of the branches).

- Move the plugin to IOPool/Input test directory.
- Remove CVS-specific $Id$.
@ghost ghost assigned nclopezo Aug 16, 2013
@ktf
Copy link
Contributor

ktf commented Aug 16, 2013

@nclopezo can you test?

@ktf
Copy link
Contributor

ktf commented Aug 16, 2013

@nclopezo for the record, this needs to be tested standalone. have a look at the readme. @bbockelm any chance we can get it to run inside scram b runtests?

@nclopezo
Copy link
Contributor

Hi,

I created a test file ( test.py) with the example configuration shown in the readme, like this.

import FWCore.ParameterSet.Config as cms
process = cms.Process("Demo")
process.load("FWCore.MessageService.MessageLogger_cfi")
process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )
process.source = cms.Source("PoolSource",
    # replace 'myfile.root' with the source file you want to use
    fileNames = cms.untracked.vstring(
        '/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root'
    )
)
process.demo = cms.EDAnalyzer('IOExerciser',
    percentBranches = cms.untracked.uint32(30),
    triggerFactor = cms.untracked.uint32(20),
)
process.p = cms.Path(process.demo)

I did cmsRun test.py,

But I got the following output:

16-Aug-2013 14:11:23 CEST  Initiating request to open file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
16-Aug-2013 14:11:27 CEST  Successfully opened file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
16-Aug-2013 14:11:29 CEST  Closed file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
----- Begin Fatal Exception 16-Aug-2013 14:11:29 CEST-----------------------
An exception of category 'PluginNotFound' occurred while
   [0] Constructing the EventProcessor
Exception Message:
Unable to find plugin 'IOExerciser' in category 'CMS EDM Framework Module'. Please check spelling of name.
----- End Fatal Exception -------------------------------------------------

Am I doing something wrong?

@nclopezo
Copy link
Contributor

Sorry, the actual output that I get is the following, I copy pasted wrong in the previous message.

16-Aug-2013 14:16:31 CEST  Initiating request to open file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
16-Aug-2013 14:16:35 CEST  Successfully opened file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
16-Aug-2013 14:16:37 CEST  Closed file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
----- Begin Fatal Exception 16-Aug-2013 14:16:37 CEST-----------------------
An exception of category 'Configuration' occurred while
   [0] Constructing the EventProcessor
   [1] Validating configuration of module: class=IOExerciser label='demo'
Exception Message:
The base type in the python configuration is EDAnalyzer, but the base type
for the module's C++ class is OutputModule. Please fix the configuration.
It must use the same base type as the C++ class.
----- End Fatal Exception -------------------------------------------------

@ktf
Copy link
Contributor

ktf commented Aug 16, 2013

You did run scram b, right?

@nclopezo
Copy link
Contributor

Yes, I did.

@ghost ghost assigned bbockelm Aug 16, 2013
@Dr15Jones
Copy link
Contributor

The error message has the answer, you declared IOExerciser a 'EDAnalyzer' in python but in C++ it is an 'OutputModule'. The python and C++ types must match. The fix is

process.demo = cms.OutputModule('IOExerciser',
    percentBranches = cms.untracked.uint32(30),
    triggerFactor = cms.untracked.uint32(20),
)

process.p = cms.EndPath(process.demo)

This is an OutputModule, not an EDAnalyzer.
@bbockelm
Copy link
Contributor Author

Example in documentation is now fixed with the correct C++ type name.

@bbockelm
Copy link
Contributor Author

@ktf - I'm not sure why one would want to run this inside runtests. It's meant to do IO benchmarks for large files.

@ktf
Copy link
Contributor

ktf commented Aug 16, 2013

Ok.

@bbockelm
Copy link
Contributor Author

@nclopezo - were you able to successfully test with the fix to the .py file?

@ktf
Copy link
Contributor

ktf commented Aug 19, 2013

@nclopezo ping

@ghost ghost assigned nclopezo Aug 19, 2013
@nclopezo
Copy link
Contributor

Hi,

I ran it again, it seems to work. The following is the output that I got:

19-Aug-2013 10:20:07 CEST  Initiating request to open file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
19-Aug-2013 10:20:13 CEST  Successfully opened file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
Begin processing the 1st record. Run 1, Event 13201, LumiSection 666930 at 19-Aug-2013 10:20:15.663 CEST
Begin processing the 101st record. Run 1, Event 14101, LumiSection 666948 at 19-Aug-2013 10:20:20.923 CEST
Begin processing the 201st record. Run 1, Event 14451, LumiSection 666955 at 19-Aug-2013 10:20:24.707 CEST
Begin processing the 301st record. Run 1, Event 15951, LumiSection 666985 at 19-Aug-2013 10:20:28.477 CEST
Begin processing the 401st record. Run 1, Event 16051, LumiSection 666987 at 19-Aug-2013 10:20:32.342 CEST
Begin processing the 501st record. Run 1, Event 16551, LumiSection 666997 at 19-Aug-2013 10:20:36.597 CEST
Begin processing the 601st record. Run 1, Event 17001, LumiSection 667006 at 19-Aug-2013 10:20:40.371 CEST
Begin processing the 701st record. Run 1, Event 18301, LumiSection 667032 at 19-Aug-2013 10:20:44.313 CEST
Begin processing the 801st record. Run 1, Event 18851, LumiSection 667043 at 19-Aug-2013 10:20:48.211 CEST
Begin processing the 901st record. Run 1, Event 19001, LumiSection 667046 at 19-Aug-2013 10:20:52.160 CEST
Begin processing the 1001st record. Run 1, Event 19501, LumiSection 667056 at 19-Aug-2013 10:20:55.938 CEST
Begin processing the 1101st record. Run 1, Event 20401, LumiSection 667074 at 19-Aug-2013 10:20:59.729 CEST
Begin processing the 1201st record. Run 1, Event 21501, LumiSection 667096 at 19-Aug-2013 10:21:03.541 CEST
Begin processing the 1301st record. Run 1, Event 21951, LumiSection 667105 at 19-Aug-2013 10:21:07.343 CEST
Begin processing the 1401st record. Run 1, Event 23201, LumiSection 667130 at 19-Aug-2013 10:21:11.287 CEST
Begin processing the 1501st record. Run 1, Event 24101, LumiSection 667148 at 19-Aug-2013 10:21:15.060 CEST
Begin processing the 1601st record. Run 1, Event 24451, LumiSection 667155 at 19-Aug-2013 10:21:18.855 CEST
19-Aug-2013 10:21:20 CEST  Closed file root://eoscms//eos/cms/store/mc/HC/GenericTTbar/GEN-SIM-RECO/CMSSW_5_3_1_START53_V5-v1/0010/A2B8D47D-BCAD-E111-B16A-BCAEC53296FB.root?svcClass=default
=============================================
MessageLogger Summary
 type     category        sev    module        subroutine        count    total
 ---- -------------------- -- ---------------- ----------------  -----    -----
    1 fileAction           -s file_close                             1        1
    2 fileAction           -s file_open                              2        2
 type    category    Examples: run/evt        run/evt          run/evt
 ---- -------------------- ---------------- ---------------- ----------------
    1 fileAction           PostEndRun                        
    2 fileAction           pre-events       pre-events       
Severity    # Occurrences   Total Occurrences
--------    -------------   -----------------
System                  3                   3

@ktf
Copy link
Contributor

ktf commented Aug 19, 2013

Looks reasonable. Merging this.

ktf added a commit that referenced this pull request Aug 19, 2013
Addition of IOExerciser, a simple module for emulating various IO patterns
@ktf ktf merged commit 4479f9d into cms-sw:CMSSW_7_0_X Aug 19, 2013
silviodonato pushed a commit to silviodonato/cmssw that referenced this pull request Feb 1, 2016
mandrenguyen pushed a commit to mandrenguyen/cmssw that referenced this pull request Sep 9, 2021
* add HiGenAnalyzer
This analyzer is copied from its AOD counterpart https://github.com/CmsHI/cmssw/blob/2c806f88506f7ef732b725142ae85750a31dc646/HeavyIonsAnalysis/EventAnalysis/src/HiEvtAnalyzer.cc and adapted for gen info in miniAOD
Notes : GenHIEvent is currently missing from miniAOD

* fix sube
collisionId_ is not kept in pat::PackedGenParticle, use "packedGenParticlesSignal" (added by cms-sw#32668) to tag particles from signal process
slava77 pushed a commit to slava77/cmssw that referenced this pull request Oct 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants