Page tree

Discription of executable files (git ver. /download-gitver/ and Thomas' ver. /download-thomasver/) used to run alibava data analysis is presented here.

Converter and Convert-ped steps

Both entitled steps require following files to be executed

AlibavaConverter.cc -> git ver. and Thomas' ver.

AlibavaConverter.h -> git ver. and Thomas' ver.

remark: both ver. of this code was written by Eda, the versions are called like that for the sake of consistency

Differences between the ver. code

Thomas' code(old)git ver. (new)
the sensor's temperature is being treated  by reading it from the alibava data's headerthe sensor's temperature is not being analyzed
the DUT's inclination angle is being set to the headerthe DUT's inclination angle is not taken to account
reverse beetle reading order is allowedreverse beetle reading order is not allowed

Pedestal and pedestal2 steps

Requires the files :

AlibavaPedestalNoiseProcessor.cc

AlibavaPedestalNoiseProcessor.h

Differences between the ver. code

Thomas' code(old)git ver. (new)
the sensor's temperature is not being analyzedthe sensor's temperature is being analyzed via filling corresponding histos with the use of AlibavaEventImpl.cc

Commonmode and reco steps

Clustering-1 step

 

Parameters

Thomas' code:

AlibavaClustering.cc

git ver. (new)

AlibavaSeedClustering.cc+AlibavaCluster.cc

Seed selection criterion

A strip is being selected as the seed if its signal-to-noise ratio

exceeds this cut:

SeedCutSeedSNRCut

Cluster selection criterion

A set of strips are being selected as clusters with the seed selected with the parameter above

if their signal-to-noise ratios exceed this cut

ClusterCutNeighbourSNRCut

Cluster size

 

MaxClustersize

MinClustersize

 
Cross-talk (signal retardation) noise correstion and FIR (finite impulse response) filter (see details in p. 5.3 of Thomas' thesis)

Allows to correct the charge per channel distr. for the signal retardation (cross-talk) noise

_initcoefficient1 and _initcoefficient2 - the cross–talk noise coefficients, they are being defined on the header step;

_readcoefficient1 and _readcoefficient2 - the FIR correction coefficients, they are being defined on the header step;

_initcoefficient1, readcoefficient1 shows which fraction of the alibava ch.[i] signal was transfered from the ch.[i-1];

_initcoefficient2, readcoefficient2 shows which fraction of the alibava ch.[i] signal was transfered from the ch.[i-2].

Doesn't allow to correct the charge per channel distr. for the signal retardation (cross-talk) noise
Missing coordinate estimationCalculated the missing y (or x) alibava clusters' coordinates from t 

AlibavaCluster.cc calculates all parameters of the cluster e.g. 

Changes implemented by Dmitry:

The following histograms were added to the git ver.:

  1. Numb. of entries vs. the cluster signal-to-noise ratio, called hClusterSNR_chip_x. It should be used for setting the proper NeighbourSNRCut.
  2. Numb. of entries vs. the seed signal-to-noise ratio, called hSeedSNR_chip_x. It should be used for setting the proper SeedSNRCut.
  3. Numb. of entries vs. the cluster signal-to-noise ratio, called hClusterChargevsTDC_chip_x. It should be used for setting the proper TDC cut borders (it's being set for the AlibavaTimeCutProcessor).

(where x is the number of beetle chip, either 0, or 1)

Merge step

Thomas' ver. and git ver. codes are presented

Thomas' codegit ver.
The correlations plots between the telescope planes' and alibava's clusters or hits are being plottedNo histograms filling and plotting at all

Four options to save the merged data collection(s) for a certain event:

  1. Both merger input collections must have clusters/hits
  2. Only alibava input collection has clusters/hits
  3. Only telescope input collection has clusters/hits
  4. Write out the output collections regardless presence of data in the input collections

Write out the output collections regardless presence of clusters in the input collections,

but the input collections must be availabe in the input file

(i.e. no collection header corruptions etc.)

includes two parameters for total events number difference
between the alibava and telescope data arrays, but they're not in use - doesn't allow events alignment

allows to align the events,
i.e. to compensate the difference of the total event numbers
between the input alibava and telescope event arrays
allow to merge either just hits, either clustersmergers clusters of both, sparse and pulse, collections.
It's very useful for us, because sparse collections containing clusters seed's coordinates and clusters sizes is filled with zeros for the telescope collection
Remarks to the code:
Thomas' codegit ver.

unclear how reading of the alibava file is happening:

name of the alibava input file is defined and stored, but this variable is never being used in the code or transferred to another code.

I've added the counter of events which contain clusters on each, telescope+DUT+CMSPixRef, planes
to check whatever the data losses come from merger or prev. steps. This events fraction is presented on the plot.
Methods are in use:
EUTelEventImpl is being used to create a matrix of the telescope event's data collections
AlibavaEventImpl is being used to create a matrix of the telescope event's data collections
LCCollectionVec method is being used to create (read from the input data file and write to the output file) an array of the data from a certain event's data collection
TrackerPulseImpl is being used to operate with the pulse data collection(s). It reads/writes the data from/to array element by element among all clusters
TrackerDataImpl is being used to operate with the sparse data collection(s). It reads/writes the data from/to array with the info about seeds coord. And the clusters parameters, e.g. charge and size, for all clusters at once

Telescope-clustering step

EUTelFFClusterImpl.cc is responsible for the Seeds coordinates determination.

Hitmaker step

Goal :

  1. EUTelProcessorHitMaker - to convert coordinates of the clusters' hits from the local 2D frame of each telescope, DUT and CMSPixRef planes to the global 3D telescope frame (see p. 5.3.8 of the Thomas thesis). The local frame is a right-handed Cartesian frame counter-oriented with the beam direction z; the global frame is a right-handed Cartesian frame co-oriented with the beam direction z.
  2. EUTelPreAlign - finds the planes shifts by minimizing the residuals/difference between the cluster pixels' coordinates of each plane and the ref. plane (tel plane 0 by default) pixels' coordinates

Input: @LcioPath@/@FilePrefix@-merger.slcio - file containing the merged sparse and pulse collections; "GearXMLFile" value="@GearFilePath@/@GearFile@" - gear file containing the telescope geometry description.

Paramters set in the steering-template:

EUTelProcessorHitMaker:

    • PulseCollectionName
    • HitCollectionName
    • EnableLocalCoordidates
    • ReferenceCollection
    • ReferenceHitFile

EUTelPreAlignment

  • InputHitCollectionName
  • FixedPlane
  • AlignmentConstantLCIOFile
  • HotPixelCollectionName
  • Events
  • ResidualsXMin
  • ResidualsXMax
  • ResidualsYMin
  • ResidualsYMax
  • MinNumberOfCorrelatedHits
  • HistogramFilling
  • DumpGEAR
  • NewGEARSuffix
ParameterDefault value
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  


Output: database

This processor

 

Thomas' codegit. ver

preAlign processor - EUTelPreAlignment.cc. Processor's src was fully changed via used methods modification, logic is the same though

#include "EUTelSparseCluster2Impl.h", #include <TrackerHitImpl2.h>

- these files don't exist in the current git. ver:

def. method is EUTelAPIXSparsePixel

#include "EUTelGeometryTelescopeGeoDescription.h"

def. method EUTelAPIXSparsePixel is EUTelGenericSparsePixel

CombinedHitMaker processor (its code was written by antonio.bulgheroni@gmail.com)
EUTelHitMaker.cc - has more functions, allows to calculate more parameters, but cannot be used due to lack of some src and header files in the new EUtel ver.EUTelProcessorHitMaker.cc - contains 6 functions for definition and calling input parameters, ref hits definition/collection function,

 

EUTelVirtualCluster.h

EUTelEtaFunctionImpl.h

EUTelSparseCluster2Impl.h

gear/GearMgr.h

gear/SiPlanesParameters.h

AIDA/IHistogram3D.h

TrackerHitImpl2.h

EUTelGeometryTelescopeGeoDescription.h

EUTelSimpleVirtualCluster.h

Calculates the eta ditr.doesn't calculate eta distr.
 

uses Tel pulse collection as an input, but it's contained by zeros if one looks by dumpevent (question)

an idea for workaround is to use sparse collection instead and convert the hits coordinates (not only the seeds coordinates) from the local frame to the global frame.

 

CellIDEncoder<TrackerPulseImpl> outputEncoder(EUTELESCOPE::PULSEDEFAULTENCODING, filteredCollectionVec) - on the telescope clustering stage, it's exactly where the seeds coordinates are being filled to output pulse collections which are unfortunately being shown as zeros after dumpevent.

Alignment step

EUTelAlign.cc

  • No labels