-
Notifications
You must be signed in to change notification settings - Fork 0
Modify calculations for the Lorentz angle #17
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
Modify calculations for the Lorentz angle #17
Conversation
|
@wweiphy The code is now in main fork of cmssw, why are changes still proposed here? |
| f1->SetParName(5, "quintic term"); | ||
|
|
||
| double p1_simul_newmodule = 0.294044; | ||
| double half_width = 0.0285 / 2 * 10000; // pixel width in units of micro meter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No magic numbers, please fetch from geometry
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wweiphy can you please do this?
|
|
||
| float bPixLorentzAnglePerTesla_; | ||
| // if the fit quality is OK | ||
| if (prob > fitProbCut_) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just want to draw your attention to the fact that right now fitProbCut_ is set to 0.5
| desc.add<double>("fitProbCut", 0.5)->setComment("cut on fit chi2 probabiblity to accept measurement"); |
which is not tuned at all, it's just a random value I picked.
thinking in the long run for the multi-run harvesting applications, a part from the minimum number of events in the MRH configuration, I think it would be good to have some sort of internal logic from within the SiPixel LA harvester to veto the creation of the payload (as it is done for all the other Tracker PCL workflows)
At the moment it just checks that the single "module-group" fit probability is higher than this given cut and if that condition is not satisfied it copies the values from the current value stored in DB (not stopping the payload creation).
If a more refined logic is introduced the input can be balanced in a more refined way, since the MRH will retry aggregating more statistics until a valid payload is produced.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have a similar issue with the SiPixelQuality payloads where the old payloads gets appended when the occupancy threshold is not passed. So it looks like we need a similar fix for both types of payloads.
Concerning the fitProbCut, I guess it would make sense to have a look at the distribution and see if some other cut value would make more sense. However, the question of a more refined internal logic still remains. Once the required minimum number of events is reached, is it possible to continue collecting statistics until some other conditions is met (and only then the payload is created). I really don't know much about MRH and how complicated the logic can be.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
However, the question of a more refined internal logic still remains. Once the required minimum number of events is reached, is it possible to continue collecting statistics until some other conditions is met (and only then the payload is created). I really don't know much about MRH and how complicated the logic can be.
the logic better be implemented on the cmssw side, where you have full control and NOT in the MRH backend.
|
@mmusich I think it's better to first make changes here, but I could make another PR to the main cmssw branch if you'd like. |
| f1->SetParName(5, "quintic term"); | ||
|
|
||
| double p1_simul_newmodule = 0.294044; | ||
| auto width_ = phase1PixelTopology::pixelThickness; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wweiphy it would be better to take it really from DB as we might want to extend the functionality to phase-2...
well, in the end it must end up in cmssw, but if you prefer to get twice the review, fine :) |
|
@wweiphy is this ready for merge? |
|
@wweiphy maybe you could squash before merging here? |
|
Ok, so is the plan now to submit a PR to the main CMSSW? |
|
I think so, would be nice to backport to 12_1_X for replay too. |
|
I submitted it: cms-sw#36241, let's merge it in master and I can do the backport as well. |
@tvami would it be possible to add to the cmssw PR description the nice introduction of this PR from @wweiphy (including the figure)? |
The calculation for LA is modified in this PR in order to take into account the changes on the drift-depth shape after irradiation.
As can be seen from this figure, the drift-depth shape changes from a solid blue line to an s-shaped (shown in red) curve after irradiation. The average displacement becomes smaller and the slope in the central region becomes larger.
In order to correct for the displacement around central region, Morris proposed to evaluate the LA at depth T/2 and obtain tan\theta_L = 2(D_1/2)/T as shown in green, which helps to monitor displacement of charge carriers around central region and thus is better for calibration purpose.
LA_irradiated.pdf