Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

24 implement b0 pbwo4 ecal #25

Merged
merged 67 commits into from
Oct 11, 2022
Merged

24 implement b0 pbwo4 ecal #25

merged 67 commits into from
Oct 11, 2022

Conversation

rahmans1
Copy link
Contributor

@rahmans1 rahmans1 commented Sep 29, 2022

Briefly, what does this PR introduce?

Implement a PbWO4 calorimeter that can be used in the B0 region instead of the preshower.

What kind of change does this PR introduce?

Please check if this PR fulfills the following:

  • Tests for the changes have been added
  • Documentation has been added / updated
  • Changes have been communicated to collaborators

Does this PR introduce breaking changes? What changes might users need to make to their code?

User needs to modify farforward.xml and replace B0_preshower.xml with B0_ECal.xml to run sims with the ECal

Does this PR change default behavior?

We can decide later if we want to keep the preshower or the ECal as the default in the main geometry

Copied the ZDC constructor to create an initial template for the B0 ECal constructor. The internal details need to be modified. We can probably broadly mimic the logic for disc shaped homogeneous calorimeter in main epic repo (https://github.com/eic/epic/blob/main/src/HomogeneousCalorimeter_geo.cpp#L306).
Copied the template from (here)[https://github.com/eic/epic/blob/main/compact/ecal_backward_PbWO4.xml] to create a compact xml description for B0 Electromagnetic calorimeter. Internal details need to be modified.
@rahmans1 rahmans1 added the good first issue Good for newcomers label Sep 29, 2022
@rahmans1 rahmans1 linked an issue Sep 29, 2022 that may be closed by this pull request
… ECal

Placing nominal values for position and dimension variables. Some probably should be defined in terms of external parametrization such as B0ECal_zcenter. Needs to be revisited after constructor functionality is fully implemented.
Copied the code to create disc of modules from [here](https://github.com/eic/epic/blob/main/src/HomogeneousCalorimeter_geo.cpp#L305). This part will need to be adapted. The B0 calorimeter has a oval cut out at the center. Approximate the cutout as a circle for now.
…main function

Move declaration of detelement and sensitive detector type to top of main function. This is just  a cosmetic  change without any effect on functionality.
We can use an envelope volume or an assembly for B0 ECal parent. For now, mimicking the construction at (https://github.com/eic/epic/blob/main/src/HomogeneousCalorimeter_geo.cpp#L150) and using an assembly for B0 ecal parent.
1) Use  assembly instead of envelope volume 2) Use default rotations imported through xml  instead of applying sign change 3) Remove existing envelope volume definition (Might reinstate  later if we go that route).
…al parent

Removing the placeholder code associated with individual module placement in B0ECal parent
…for B0 ECal

Keeping the option to add individual modules for now in case we go with a arbitrary external parametrization. Need to think more about the best way to deal with B0 ECal module positioning.
Use the correct name of the detector handler in extracting placements. Removed some white spaces.
There is a geometry helper header file in epic src directory that aids figuring out how to fill a disc with rectangles. If this attempt doesn't work, might need to add a relative path.
The geometry helper function cannot be called from inside ip6 since epic and ip6 are independent repository. For now, copying the function definition itself from [here](https://github.com/eic/epic/blob/main/src/GeometryHelpers.cpp).
Adding additional header file for handling 2D points in B0 ECal constructor
According to the declaration on line [32](https://github.com/eic/ip6/edit/24-implement-b0-pbwo4-ecal/src/B0ECal_geo.cpp), the name of the parent assembly is detVol. Need to call it by the correct name.
add_individuals function is called in line [54](24-implement-b0-pbwo4-ecal/src/B0ECal_geo.cpp#L54)  inside main createDetector function but not initialized beforehand.
Idea is to break up the shape into a inner radial and outer radial sector. The inner radial sector covers full azimuth while the outer radial covers the angular span of the pacman.
Rotating the pacman by 180 degrees with respect to the vertical axis to get it pointing to the right direction
Adding the id values for B0 ECal in ip6.xml. This also needs to be added to the epics definition file (https://github.com/eic/epic/blob/main/compact/definitions.xml#L258)
For simulation studies, either the ecal or the pre-shower would be used in B0. Make the ecal the default behavior.
Still getting issues with overlaps regarding the envelope. Turning it off to see individual modules intersect with any other component.
First step of moving the utility functions for B0 ECal into separate header and plugin files.
…0 ECal

Adding a geometry helper to carry some of the utility functions for B0 ECal. The functions can be generalized to other components as well.
Removing the utility functions from the main B0 ECal file. This now have been moved to GeometryHelper.h and GeometryHelper.cpp
To avoid commented out blocks of code without context, keeping the B0_ECal.xml as the default (Only one of preshower or ecal should be active). We will create versioned farforward.xml files to allow alternate behavior.
Either a ecal or preshower will be used in the B0 in the far forward region. Adding versioning to allow for easy switching.
@rahmans1 rahmans1 mentioned this pull request Oct 5, 2022
Copy link
Contributor

@wdconinc wdconinc left a comment

Choose a reason for hiding this comment

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

This looks good.

Any idea why the required overlap checks are not reporting back?

@wdconinc
Copy link
Contributor

Any idea why the required overlap checks are not reporting back?

Ah, right, turning it into a matrix job changes the name so it doesn't match the requirements anymore. This should be all good then.

@wdconinc
Copy link
Contributor

Updated branch with changes in master.

@rahmans1 rahmans1 changed the title Draft: 24 implement b0 pbwo4 ecal 24 implement b0 pbwo4 ecal Oct 11, 2022
@wdconinc wdconinc merged commit 8188a49 into master Oct 11, 2022
@wdconinc wdconinc deleted the 24-implement-b0-pbwo4-ecal branch October 11, 2022 17:43
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
good first issue Good for newcomers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement B0 PbWO4 ecal
4 participants