-
Notifications
You must be signed in to change notification settings - Fork 62
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
LayeredCalorimeterData::Layer::distance set wrong for ALLEGRO ECal? #427
Comments
Further, after failing to reproduce it, i don't think the calculation If the distance along the signal board is l and the cylindrical radius is r,
For r=rmax, this agrees with the calculation of the signal board length:
call this L. The calculation in the loop above is then finding the cylindrical radius
But l is not a linear function of r, so this is not correct.
Is there a reason why this linear approximation was used here? |
Hi @scott-snyder @SwathiSasikumar A sketch from both of you would help clarify the issue (at least for me). From Scott algebra, I inferred this sketch: However, I’m unsure if angle in the code refers to something else. Thanks for your time! |
hi - I set this up as in this (hopefully legible) sketch: As far as i can make out, an inclination angle of 0 corresponds to the boards being oriented radially. In that case, all the expressions discussed here reduce to r = rmin+l. The functions r(l) and l(r) don't depend on rmax, only rmin and the angle (alpha). The expressions in the code do depend on rmax because they treat r(l) and l(r) as straight lines between r=rmin, l=0 and r=rmax, l=L. |
The correct calculations are given in slide 5 of this old talk https://indico.cern.ch/event/985994/contributions/4153095/attachments/2162942/3653083/Exploring%20FCC%20EMB%20Geometry.pdf Cheers, |
Dear @scott-snyder Thanks for pointing this out. You are right that the linear scaling is a mistake in this case. I will correct this. Cheers, |
hi - Thanks for the pointer to that talk. Something like this should A few more comments/questions. These are all small things, but it would I've never seen it mentioned anywhere, but curves of constant theta are in Second, i don't understand where the exact numbers used in the segmentation
The theta offset is given as 0.5902785.
I guess in the end it doesn't really matter if there are unused theta Finally, it is a bit surprising that module/phi index of 0 is not
This seems to come from this line in xml geometry:
but the comment here does not seem correct.
which is just about the angular width of one unit. |
good point, the lines of the readout board are straight lines, but I wonder how large the correction would be and if somebody already thought about this in the past (the concept has been there for quite some time) - maybe @gartrog or @BrieucF ?
the dimensions of the calorimeter have changed a bit from time to time as some details of the calo or other parts of the detector changed, we've kept in the simulation the original theta granularity to avoid changing these small details for every change of parameters, in the end it's not a problem if there are a few unused cells at the beginning, it would be worse if there were parts of the acceptance not covered by the readout. Of course in the future when dimensions are stable we could refine these. One more thing to consider is that we want the readout to cover the full envelope of the calorimeter so that we can have hits also in the inactive parts when we make them active in the simulation to study sampling fractions and leakage up/downstream
This comment in the xml has been there since a long time My understanding is that module==0 is oriented along phi=0 direction (i.e. is parallel to the x axis). |
hi Giovanni - Thanks for your reply.
The largest distance between the constant-theta curves and the straight-line approximation on the surface of the
Fair enough, thanks.
I agree that seems to be the intention, but it does not seem to be what is actually done. |
Hi Scott,
What I meant is that module = 0 is horizontal so it has 0 azimuth - if you print the coordinates of all layers with module = 0 they all have the same y = -166.88408469920424 |
Ah, thank you, it makes sense now. The language was a bit ambiguous, and i was picturing it wrongly. |
Hi @scott-snyder |
Check duplicate issues.
Goal
hi -
The per-layer distance field of LayeredCalorimeterData is documented as
(https://github.com/AIDASoft/DD4hep/blob/0aafe1c25ab1c834482f109f08a91441510af66a/DDRec/include/DDRec/DetectorData.h#L433)
However, createECalBarrelInclined (
k4geo/detector/calorimeter/ECalBarrel_NobleLiquid_InclinedTrapezoids_o1_v04_geo.cpp
Line 771 in 211e0de
to the outer face, not the inner face:
Is this intentional, or should it be fixed?
Operating System and Version
n/a
compiler
n/a
The version of the key4hep stack
n/a
Package Version
d5a7656
Reproducer
After
This python script
prints
(the crash at the end is an unrelated deletion order problem).
Additional context
No response
The text was updated successfully, but these errors were encountered: