Differences between revisions 25 and 26
Revision 25 as of 2010-03-23 10:28:00
Size: 10847
Comment: Added my KIT calibration constants
Revision 26 as of 2010-03-23 10:49:35
Size: 8541
Comment:
Deletions are marked like this. Additions are marked like this.
Line 58: Line 58:
=== KITdev ===

The main program where all ends meet, searching for em-showers in the ECAL.
It depends on the Physical Geometrical Data Base PGDB,
the Superhit class, and mathematical operations defined in Marlin``Math.
The required calibration values can be obtained from KALIBRATOR.
KIT is working on the MIP scale. Each cluster level has to be tuned.
As an output you get # clusters, energy in cluster, hits in cluster,
estimated true energy in cluster, position, direction,
and distance to other clusters.
-----
Line 60: Line 72:
=== KALIBRATOR ===
needed to get the calibration values that determine the true cluster energy,
== Energy Calibration ==
KIT needs to get calibration values that determine the true cluster energy,
Line 137: Line 149:
=== KITdev === == Performance ==
Line 139: Line 151:
The main program where all ends meet, searching for em-showers in the ECAL.
It depends on the Physical Geometrical Data Base PGDB,
the Superhit class, and mathematical operations defined in Marlin``Math.
The required calibration values can be obtained from KALIBRATOR.
KIT is working on the MIP scale. Each cluster level has to be tuned.
As an output you get # clusters, energy in cluster, hits in cluster,
estimated true energy in cluster, position, direction,
and distance to other clusters.
-----

=== Performance ===
Without any further adoptions, e.g. new energy calibration, KIT is already quite apllicable for LDC``Prime.
Using Marks calibration constants (ECAL 41.97 83.93 / HCAL 34.5) the energy sum is always slightly higher than the estimated photon energy. I tested it with single photons with E_true = 10GeV directly in front of the ECAL surface (/gun/position 30 1810 30 mm). An additional restriction is the true number of cluster = 1 from the Cluster``Cheater. Phi is the angle between x and y, theta the angle between y and z is left unchanged at 90 degrees.
||phi [degree]||E_sum [GeV] ||E_estim [GeV]||N_gamma ||phi_reco [degree]||
||90 ||10.3 +/- 0.6||9.4 +/- 0.5 ||1.0 +/- 0.1||90.1 +/- 2.2 ||
||80 ||10.3 +/- 0.6||9.3 +/- 0.6 ||1.0 +/- 0.1||79.6 +/- 2.3 ||
||70 ||10.1 +/- 0.5||9.2 +/- 0.6 ||1.0 +/- 0.1||69.0 +/- 2.1 ||
||60 ||10.1 +/- 0.5||9.1 +/- 0.6 ||1.0 +/- 0.2||58.5 +/- 2.3 ||
||50 ||10.1 +/- 0.6||9.1 +/- 0.5 ||1.0 +/- 0.1||48.4 +/- 2.3 ||
||40 ||10.0 +/- 0.5||9.0 +/- 0.5 ||1.0 +/- 0.1||38.6 +/- 2.2 ||
-----

=== Distance of Closest Approach ===
From the centre of gravity cog and the cluster main axis EV_1, one can calculate the distance of closest appraoch to the interaction point IP.
The cog is calculated in Marlin``Util/Cluster``Shapes.cc function Cluster``Shapes::get``Centre``Of``Gravity() according to
{{{
cog[axis] += hitAmplitude[hit]*hitPosition[hit]
}}}
The main cluster axis is calculated in Marlin``Util/Cluster``Shapes.cc function Cluster``Shapes::get``Eigen``Vec``Inertia()
{{{
aIne[0][0] += hitAmplitude[hit] * (yDistanceFromCog^2 + zDistanceFromCog^2)
}}}
The norm of the distance of closest approach d can be calculated from
{{{
|d| = | cog x EV_1 | = sqrt [ (cog[y]*EV_1[z] - cog[z]*EV_1[y])^2
                            + (cog[z]*EV_1[x] - cog[x]*EV_1[z])^2
                            + (cog[x]*EV_1[y] - cog[y]*EV_1[x])^2 ]
}}}

||theta [degree]||gunDir ||true dca [cm]||reco dca [cm] ||
||90 ||0 0.83910 1||212.79 ||140.52 +/- 4.22||
||80 ||0 1.19175 1||148.93 ||119.32 +/- 5.81||
||70 ||0 1.73205 1||101.56 || 92.95 +/- 6.75||
||60 ||0 2.74748 1|| 62.96 || 62.99 +/- 8.95||
||50 ||0 5.67128 1|| 29.08 || 30.88 +/- 7.95||
||40 ||0 1 0|| 4.24 || 7.86 +/- 5.67||
=== Clustering Efficiency ===
=== Energy Reconstruction ===
=== Position Reconstruction ===
=== Angular Reconstruction ===

Photon Finder Kit

Originally this Clustering Algorithm was developed by Predrag Krstonosic. Have a look at his thesis for more information on the algorithm. The official source code version is kept in the ilcsoft repository:

/afs/desy.de/group/it/ilcsoft/v-xx-xx/MarlinReco/v-xx-xx/Clustering/PhotonFinderKit

I have adopted and tested the algorithm for ILD00. Attached you can find my personal versions of

The clustering algorithm is restricted to ECAL, and was optimised for photons coming from the IP.


Steering

An example steering file is marlinKIT.xml, which was used by me.

Kit Steering Parameters

Parameter name

comment

my setting

Cleaning

Apply topological cleaning, to get rid of muons, neutrons, ...

YES

TopologicalCut

If Cleaning = YES, require > N neighbouring hits to accept this as a photon candidate

4

NumberOfLevels

Number of threshold levels i in which the hits will be divided for clustering /!\ < 16

10

Levels

Set the thresholds for the i levels in mip

0.1 1.5 2.5 4 6 9 16 26 41 65

MinHit0

Minimum number of hits required in the 0th level (the one containing all other levels)

8

MinHitSplit

Minimum number of hits for the ith level, before splitting the cluster

8

Coscut

cosine of the opening angle in which to expect a cluster, hits outside will be considered as 2nd cluster

0.95

Distcut

Minimum distance between 2 clusters in mm, if smaller they will be merged

30

Rcut

N_{hits}[level i]/N_{hits}[level i-1]

0.4

PGDB

The PhotonFinder needs the Physical Geometrical database (PGDB) for fast acces to properties of the subdetectors. The mip factor has to be adopted to the chosen detector model.

Superhit

The basic class for this photon finder.

  • To ease the nearest neighbour clustering, all cells are artificially shifted
    • to have equal diestance (10mm) in x, y and z. The Superhit knoes about their true and their shifted position. Be CAREFUL if the layer distance gets smaller then the cell width!
  • Searches for cluster seeds (connected hits)
  • calculates the center of each cluster,
  • their direction as direction between the center and the IP
    • CAREFUL: Cannot be used for non-pointing gammas!
  • the initial cluster start as closest hit in the first ECAL layer to the line
    • between cluster maximum and IP
  • the energy collected in the cluster as well as an estimate of the
    • true energy of this cluster
  • and the distance bewteen clusters.

MarlinMath

contains all functions needed from Superhit to calculate distances, energies and so on.


KITdev

The main program where all ends meet, searching for em-showers in the ECAL. It depends on the Physical Geometrical Data Base PGDB, the Superhit class, and mathematical operations defined in MarlinMath. The required calibration values can be obtained from KALIBRATOR. KIT is working on the MIP scale. Each cluster level has to be tuned. As an output you get # clusters, energy in cluster, hits in cluster, estimated true energy in cluster, position, direction, and distance to other clusters.


Before getting started:

Energy Calibration

KIT needs to get calibration values that determine the true cluster energy, in dependence of the cluster level: E_cluster [level ] = a*E_true + b with E_min < E_true < E_max

This input, needed by KIT, is stored in KITutil as a 9x10 array for 9 energies with 10 levels each. I have created single photon samples from 0.5 to 200 GeV for the LDC'02Sc model, which has the same ECAL geometry as the ILD00 model. They are currently located in

/group/pool/nwattime/LDCPrime02/freeGamma/

Using KITcalibrator.cc and KITcalibrator.h as specified in calibrateKIT.xml, the resulting calibration constants are

void CreateCalibration_LDCPrime02Sc(vector<CoreCalib2>* cc)
{
  //  fit straight line: E_true = aa*E_reco + bb for each energy and level  
 
  double aEnom[13]  = {0.5,1.0,2.0,3.0,5.0,8.0,12.0,20.0,40.0,70.0,100.0,150.0,200.0};   //nominal photon energy  

  double aa[13][10] = {{0.390,0.386,0.875,0.327,0.000,0.000,0.000,0.000,0.000,0.000},
                       {0.574,0.437,0.365,0.380,0.378,0.000,0.000,0.000,0.000,0.000},
                       {0.693,0.644,0.735,0.701,0.663,0.386,0.000,0.000,0.000,0.000},
                       {0.992,1.003,0.703,0.920,0.705,0.666,0.000,0.000,0.000,0.000},
                       {0.942,0.894,0.857,0.685,0.851,0.719,0.000,0.000,0.000,0.000},
                       {0.850,0.876,1.036,0.806,0.746,0.532,0.000,0.000,0.000,0.000},
                       {0.911,0.901,0.851,0.847,0.796,0.693,0.468,0.464,0.000,0.000},
                       {0.832,1.005,1.006,0.920,0.975,0.865,0.655,0.441,0.472,0.000},
                       {0.969,0.899,0.854,0.939,0.858,0.762,0.716,0.378,0.417,0.000},
                       {1.056,1.073,1.046,0.894,0.879,1.127,1.140,1.199,0.308,0.650},
                       {0.738,1.080,2.044,1.089,1.032,0.862,0.885,0.758,1.294,0.422},
                       {0.879,0.879,0.879,0.879,0.879,0.879,0.879,0.879,0.000,0.000},
                       {0.836,0.836,0.836,0.836,0.836,0.836,0.386,0.836,0.000,0.000}};

  double bb[13][10] = {{0.412,0.436,0.383,0.471,0.000,0.000,0.000,0.000,0.000,0.000},
                       {0.690,0.784,0.870,0.886,0.926,0.000,0.000,0.000,0.000,0.000},
                       {1.095,1.209,1.155,1.281,1.422,1.748,0.000,0.000,0.000,0.000},
                       {0.894,0.965,1.675,1.454,1.986,2.251,0.000,0.000,0.000,0.000},
                       {1.466,1.804,2.109,2.900,2.760,3.442,0.000,0.000,0.000,0.000},
                       {2.658,2.722,2.135,3.841,4.589,5.984,0.000,0.000,0.000,0.000},
                       {3.158,3.588,4.480,5.106,6.226,7.719,9.918,10.47,0.000,0.000},
                       {6.274,3.616,4.306,6.645,7.095,9.971,14.18,17.14,17.78,0.000},
                       {5.938,9.247,11.98,10.65,14.84,20.11,25.15,33.79,34.32,0.000},
                       {3.345,3.711,7.038,18.97,22.79,13.86,21.53,-6.09,62.73,54.05},
                       {33.77,3.409,-81.3,8.968,17.70,36.57,43.36,60.02,35.92,85.20},
                       {29.30,29.30,29.30,29.30,29.30,29.30,29.30,29.30,0.000,0.000},
                       {46.13,46.13,46.13,46.13,46.13,46.13,46.13,46.13,0.000,0.000}};
  
  double aEmin[13][10] = {{0.250,0.200,0.150,0.060,0.000,0.000,0.000,0.000,0.000,0.000},
                          {0.600,0.500,0.350,0.200,0.100,0.000,0.000,0.000,0.000,0.000},
                          {1.500,1.200,1.100,0.900,0.650,0.300,0.000,0.000,0.000,0.000},
                          {2.400,2.100,1.900,1.600,1.300,0.600,0.000,0.000,0.000,0.000},
                          {4.000,4.100,3.900,3.200,2.900,2.400,0.000,0.000,0.000,0.000},
                          {4.279,3.848,3.501,4.618,2.439,1.695,0.000,0.000,0.000,0.000},
                          {9.189,6.657,6.144,5.337,4.811,3.780,2.749,0.954,0.000,0.000},
                          {14.29,13.64,12.69,11.56,10.76,8.683,6.213,3.714,3.040,0.000},
                          {31.50,30.82,28.61,28.23,25.75,22.29,18.14,13.61,9.857,0.000},
                          {57.10,56.41,51.97,51.54,48.47,32.96,39.48,28.08,25.26,23.19},
                          {62.30,84.58,71.61,68.98,59.43,62.63,53.12,33.60,35.83,34.79},
                          {134.9,134.9,134.9,194.9,134.9,134.9,134.9,134.9,0.000,0.000},
                          {182.7,182.7,182.7,182.7,182.7,165.0,135.0,112.0,0.000,0.000}};
 
  double aEmax[13][10]={{0.600,0.500,0.350,0.300,0.000,0.000,0.000,0.000,0.000,0.000},
                        {1.200,1.100,1.000,0.900,0.700,0.000,0.000,0.000,0.000,0.000},
                        {2.500,2.200,1.900,1.800,1.400,1.200,0.000,0.000,0.000,0.000},
                        {3.300,3.100,3.000,2.700,2.400,2.000,0.000,0.000,0.000,0.000},
                        {5.600,5.500,5.200,4.800,4.300,3.900,0.000,0.000,0.000,0.000},
                        {8.464,8.442,8.051,6.774,6.945,6.120,0.000,0.000,0.000,0.000},
                        {12.79,12.45,12.01,11.35,10.21,9.137,7.234,6.474,0.000,0.000},
                        {20.40,19.61,19.38,18.38,16.55,15.58,12.83,11.91,9.463,0.000},
                        {40.94,39.63,39.58,36.69,34.23,32.34,27.23,24.58,22.26,0.000},
                        {71.53,70.61,73.92,66.78,63.47,71.53,49.70,50.04,42.17,34.28},
                        {136.1,100.0,106.0,139.5,140.0,92.21,85.62,91.04,72.17,132.5},
                        {152.6,152.6,152.6,152.6,152.6,152.6,152.6,152.6,0.000,0.000},
                        {204.1,204.1,204.1,204.1,204.1,204.1,204.1,204.1,0.000,0.000}};


Performance

Clustering Efficiency

Energy Reconstruction

Position Reconstruction

Angular Reconstruction



CategoryCategory

NandaWattimena/PhotonFinder (last edited 2010-03-26 09:24:39 by NandaWattimena)