-
Notifications
You must be signed in to change notification settings - Fork 18
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
Core update #10
Core update #10
Conversation
- includes important updates regarding to mitigation to git
As discussed privately; there is an additional problem with madanalysis5/madanalysis/interpreter/cmd_install.py Lines 102 to 110 in 92ca66d
|
In principle, the warning should be printed only 10 times. This has to be checked. Maybe there is something wrong in there. |
It might be only 10, but there are too many such particles, so I believe we can set up a quiet delivery, and it will print everything at the end of the analysis with their counts. We can set a bool |
Context
This branch is dedicated to improving the C++ functionalities of MadAnalysis 5.
It mainly adapts
std=c++11
and applies appropriate modifications for thedata structure in the updated c++ scheme. Additionally provides useful
functionality for the expert mode.
Description of the change and benefits
Interface updates
zlib
libraries and headerfiles on macOS.
c++11
.madanalysis/system/detect_gpp.py
L85
won't let users use old GCC versions anymore. This has room to update to
c++14
already implementedand Ma5 will be aware when
c++14
is present but we are currently not directly using it.anymore, we can not guarantee the stability of the software.
Updates in expert mode structure
tools/SampleAnalyzer/Commons/Service/Utils.h
provides various new functionalitiesfor the expert mode:
filter
: filters given reconstructed object with respect toptmin
,absetamax
andabsetamin
filter_select
: Useslambda
function to filter a given reconstructed objectOverlapRemoval
: Standard overlap removal functioninput1
is cleaned frominput2
with respect to an angular separation
drmin
:SignalJets = OverlapRemoval(SignalJets, SignalElectrons, 0.2);
conditional_removal
: Similarly cleansinput1
frominput2
but with respect to alambda
functiontools/SampleAnalyzer/Process/Analyzer/AnalyzerBase.h
: Additional functionality to addhadronic and invisible particles.
AddDefaultHadronic()
andAddDefaultInvisible()
automatically adds all the necessary particles to the analysis.
tools/SampleAnalyzer/Commons/Service/MCconfig.h
: In order to prevent any drawback fromdefault addition of the particles in the analysis
MCconfig
now providesRemoveHadronicId
andRemoveInvisibleId
function.Both of these methods are included in the normal mode run as well (only in reco mode).
AnalyzerBase.h
-getOption
andSetOptions
routine: These functions allow analysisto accept command line options.
one can change the default value of
value
input through the command line as follows;tools/SampleAnalyzer/Process/Core/SampleAnalyzer.cpp
initialization of the analysishas been relocated to
PostInitialize()
so that analysis can have access to the outputfolder path through
Output()
option within Initialize function.SetCurrentEventWeight(weight)
reweigths all the events with the same weight. Region-based reweighting added viaSetRegionWeight(std::string name, MAfloat64 weight)
wherename
stands for the region name andweight
is the desired weightto be set for the event. Note that neither of these functions scales the weights they rather set the weight.
tools/SampleAnalyzer/Process/RegionSelection/RegionSelection.h
:SetWeight
is the per region weight setter andGetWeight
is per region weight getter.tools/SampleAnalyzer/Process/RegionSelection/RegionSelectionManager.cpp
: Minor change; instead of usingweight_
now we are setting the cutflow weight via the per region weight getter shown above.
tools/SampleAnalyzer/Process/RegionSelection/RegionSelectionManager.cpp
: redefinition ofSetCurrentEventWeight
anddefinition of new function
SetRegionWeight
.Tests done for backwards compatibility
In PAD:
In Normal mode:
Ma5 card for normal mode test:
$ ./bin/ma5 -R
New analysis initialization output mentioned above:
user.cpp
:All tests are executed with proper data (300K events phase-space chosen for the analyses specifically).
Future directions
tools/SampleAnalyzer/Commons/Service/Utils.h
: this file is to be expanded with all functionality thathas been regularly used within MadAnalysis 5.
c++11
is a big step for MadAnalysis 5 we need to move forward and adapt toc++14
asap.multi weights within Ma5 globally one needs to create an object-oriented Weight class and instead of manipulating
doubles analysis should always scale the class itself. This will allow us to track all the weights at a given time
and by giving them the ability to combine in certain ways we will be able to have multiweight treatment on the fly.
Drawbacks
rec()->tracks()
are asking for the charge of the particle. There are many generator specificparticles in the particle history that are not defined within
tools/SampleAnalyzer/particle.tbl
. Thus Ma5 constantlyissues warnings. This is not necessarily a problem but doesn't look good during execution. The cause of the problem
is
L231
:madanalysis5/tools/SampleAnalyzer/Process/JetClustering/JetClusterer.cpp
Lines 204 to 234 in 92ca66d
for possible universal weight treatment.