-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Evaluate replacing ECAL CalibratedClusterPtr with CalibratedPFCluster #38059
Comments
assign reconstruction |
New categories assigned: reconstruction @jpata,@slava77,@clacaputo you have been requested to review this Pull request/Issue and eventually sign? Thanks |
A new Issue was created by @fwyzard Andrea Bocci. @Dr15Jones, @perrotta, @dpiparo, @makortel, @smuzaffar, @qliphy can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
type performance-improvements |
assign egamma-pog |
New categories assigned: egamma-pog @lfinco,@swagata87 you have been requested to review this Pull request/Issue and eventually sign? Thanks |
type egamma |
Thanks a lot Andrea, for the suggestions. |
Thanks Davide for addressing this issue in #40460 |
I wanted to discuss more in details the strategy to follow for We can create a |
@valsdav my naive approach would have been to just get rid of the If, as I understand, e/gamma prefers to keep the |
Hi @fwyzard at the end I am trying to just get rid of the The problem I'm facing is that the code is using the I think I can just solve it by manually creating and filling a new PtrVector. Is there some utility to manipulate the PtrVectors in cmssw that I don't know? Thanks for your help. |
@valsdav what methods would you need from |
Also, I just found that |
That header file has a comment
so I'd recommend to avoid using it. |
The PFECALSuperClusterAlgo code is basically using:
|
The
PFECALSuperClusterAlgo
class uses internally aCalibratedPFCluster
class which is a wrapper around anedm::Ptr<reco::PFCluster>
:As well as a
shared_ptr<...>
and avector<shared_ptr<...>>
types:The use of what are essentially a
shared_ptr<Ptr<T>>
andvector<shared_ptr<Ptr<T>>>
seems inefficient, given thatedm::Ptr<T>
is a lightweight object which should be used by value.In addition, the use of
std::vector<std::shared_ptr<CalibratedPFCluster>>
could be replaced by the much more efficientedm::PtrVector<T>
.The use of these non optimal data structures is exacerbated by #37115, which introduces and uses
typedef std::vector<std::pair<CalibratedClusterPtr, CalibratedClusterPtrVector>> EcalGraphOutput;
vs the more compact
I would suggest to study the impact of replacing
CalibratedClusterPtr
with justCalibratedPFCluster
, and of reworking the interface to support usingedm::PtrVector<reco::PFCluster>
.The text was updated successfully, but these errors were encountered: