GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » General » Implementing Software Alignment into PandaROOT
Implementing Software Alignment into PandaROOT [message #21666] Tue, 24 October 2017 12:04 Go to next message
Roman Klasen is currently offline  Roman Klasen
Messages: 2
Registered: October 2017
occasional visitor
From: *specf.him.uni-mainz.de
Hello,

I'm plan to integrate a software alignment framework into PandaRoot. For now, that means that our alignment parameters are stored to transformation matrices that are multiplied to the ideal transformation matrices to simulate a realistic, non-ideally aligned geometry.

As far as I can see, our simulation chain currently works like this:

0. MC tracks are generated by the BoxSim or DPM generator and fired on a geometry that can either be perfectly aligned or realistically misaligned
1. MC hits on the sensors are then digitized in the 1-Digi macro, and digital row, column and sensor ID data are stored to lumi_digi.root
2. The 2-reco macro reads those digi hits and reconstructs the (x,y,z) position in the panda frame of reference assuming an ideal geometry without misalignment. This is done by the PixelClusterTask and more specifically a PndSdsChargeWeightedPixelMapping object
3. Afterwards, our own PndLmdDim class reads this ideal position, and transforms it to a realistically misaligned position using the transformation matrices for the ideal and a real, misaligned geometry (in simulation only, since we obviously don't have those in the actual detector). This could also be where we introduce the alignment parameters found by software alignment.
4. Those hit positions are saved to the reco.root file after they have been transformed from the position they would have been were the geometry perfectly aligned to the position they are in case the geometry suffers from misalignment (the realistic case)

Firstly I'd like to ask if I understood this correctly.

If so, I wanted to ask how other groups are doing this since the PndLmdDim Class is specific to our detector, or if it were better to change this method to actually introduce the misalignment step earlier in the PndSdsChargeWeightedPixelMapping class. That means the reconstructed hits are stored in their realistic, misaligned position by this class directly. Afterwards, a separate aligner class would transform those positions back to the ideal positions using the alignment parameters found by software alignment. It seems the second version is mapping reality more closely and doesn't depend on our PndLmdDim class, so it could be used by other groups as well. But no such aligner class currently exists.

Best wishes,
Roman
Re: Implementing Software Alignment into PandaROOT [message #21696 is a reply to message #21666] Fri, 03 November 2017 15:37 Go to previous messageGo to next message
Stefan Pflueger is currently offline  Stefan Pflueger
Messages: 99
Registered: February 2012
continuous participant
From: *specf.him.uni-mainz.de
Hello everyone,

Roman and me have done some research and as far as we can understand, the alignment should be handled within the geometry. The difference between data taking of panda and the simulation world are the steps simulation and digitization. After that all other macros/steps are identical for the simulated data and panda data reconstruction.

IMPORTANT: In order to study misalignment TWO geometries are needed! The simulation and digitization steps use one geometry. And a second geometry is used in the further track reconstruction. This geometry is the only one needed later on, but should not necessarily the same as the first geometry. And this second geometry should be determined from the design geometry and corrections that come from the alignment procedures ([design geometry] * [alignment correction matrices] = [simulation/data geometry])!

Now we have a question: Did anyone try or plan for this already or which is the correct way to handle all this? Because in the whole reconstruction chain the geometry is usually just generated once in the simulation step, then saved in a parameter root file. The other macros then read in this parameter file and use it to initialize the RTDB of FairRoot. Consequently the geometry used for the simulation is available again, which is exactly the behaviour we do NOT want for alignment studies!

So our idea would be to NOT read in the parameter file in the macros after the digitization step and just initialize the RTDB with another geometry. Is that correct or possible? Has anyone tried this before?

Thanks in advance!

Stefan

[Updated on: Fri, 03 November 2017 15:38]

Report message to a moderator

Re: Implementing Software Alignment into PandaROOT [message #21705 is a reply to message #21696] Sat, 04 November 2017 18:44 Go to previous messageGo to next message
Mohammad Al-Turany is currently offline  Mohammad Al-Turany
Messages: 518
Registered: April 2004
Location: GSI, Germany
first-grade participant
From: *dip0.t-ipconnect.de
Hallo Stefan,

In the reconstruction macro you can set the geometry manually using:

FairRunAna::SetGeomFile(const char* GeoFileName);

If a file with valid geometry is delivered (TGeoManager object.) Nothing will be loaded from the parameter files.

best,

Mohammad
Re: Implementing Software Alignment into PandaROOT [message #21711 is a reply to message #21705] Sun, 05 November 2017 12:58 Go to previous messageGo to next message
Stefan Pflueger is currently offline  Stefan Pflueger
Messages: 99
Registered: February 2012
continuous participant
From: *dip0.t-ipconnect.de
Hi Mohammad,

thx for the information! I just checked the sim macro in the fairroot github project template, and there is a line

run->CreateGeometryFile("geofile_full.root");


Is that the way we should save such a geometry (TGeoManager object)?

So for the creation of such full geometries, I can just setup the FairRunAna with the detector modules, call Init() and save the geometry for later use with the line above. Basically it's just like simulation, except I skip the actual simulation part. Is that correct?

And just to clarify, this is the way the alignment studies are supposed to be handled right?

Stefan
Re: Implementing Software Alignment into PandaROOT [message #21715 is a reply to message #21711] Sun, 05 November 2017 15:49 Go to previous messageGo to next message
Mohammad Al-Turany is currently offline  Mohammad Al-Turany
Messages: 518
Registered: April 2004
Location: GSI, Germany
first-grade participant
From: *dip0.t-ipconnect.de
Hi Stefan,

You can do it this way, or you can keep the ideal geometry in the parameter files, save the (miss-)alignment matrices separately and then apply them using the method:

FairModule::ModifyGeometry()


This will allow you to do simulation with miss-aligned geometry. which you can export and re-use for reconstruction.

See the code in FairRoot tutorial 4 for details.
Some documentation is also available here

best,

Mohammad
Re: Implementing Software Alignment into PandaROOT [message #21719 is a reply to message #21715] Tue, 07 November 2017 15:06 Go to previous messageGo to next message
Stefan Pflueger is currently offline  Stefan Pflueger
Messages: 99
Registered: February 2012
continuous participant
From: *specf.him.uni-mainz.de
Thx Mohammad
Re: Implementing Software Alignment into PandaROOT [message #21722 is a reply to message #21719] Tue, 07 November 2017 15:17 Go to previous messageGo to next message
Tobias Stockmanns is currently offline  Tobias Stockmanns
Messages: 489
Registered: May 2007
first-grade participant
From: *ikp.kfa-juelich.de
Dear all,

in my point of view the realy tricky part is the misalignment of the thousands of goemetries inside PandaRoot. For sure you do not want to do this by hand but they all might have different placement precisions.

I suggest that we discuss this on our next EVO meeting next Monday.

Cheers,

Tobias
Re: Implementing Software Alignment into PandaROOT [message #21846 is a reply to message #21722] Mon, 27 November 2017 16:10 Go to previous message
Stefan Pflueger is currently offline  Stefan Pflueger
Messages: 99
Registered: February 2012
continuous participant
From: *specf.him.uni-mainz.de
Hi all,

I have been discussing the alignment study issue a bit on the ROOT forum.

https://root-forum.cern.ch/t/howto-do-alignment-studies-with-tgeo-howto- handle-overlaps/26918

There were two ways to perform the mis-alignment studies:


  1. Actually mis-align the geometry in the simulation: Pros: easy to handle and realistic. Cons: overlaps in the volumes
  2. Mis-alignment of the Digis/Hits/Clusters. Pros: No overlap issue. Cons: Concept of hits vanishing and appearing on different sensors with the mis-alignment cannot be implemented (or its quite complicated). Hence not as realistic


The Alice collaboration has chosen option 1., which also Andrei suggested as a preferred solution.
The biggest task here would be to study the overlaps in detail.

Best regards,
Stefan

[Updated on: Mon, 27 November 2017 16:11]

Report message to a moderator

Previous Topic: Migration to git
Next Topic: PandaRoot on GIT
Goto Forum:
  


Current Time: Sat Apr 27 01:13:00 CEST 2024

Total time taken to generate the page: 0.00767 seconds