Revision 16 as of 2008-07-07 11:25:37

Clear message

Predrag's PhotonFinder

<!> everything has been simulated / tested / optimized for LDC00. It assumes low energetic Photons (restricted to ECAL!), coming from the IP (input parameter to the cluster direction).


Steering

An example steering file is attachment:marlinKIT.xml, which was used by Predrag for LDC00, as comparison of his method with other PFlow Algorhythms.

steering parameters are:

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.

MarlinMath

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


Before getting started:

KALIBRATOR

needed to get the 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.


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.


Performance

Without any further adoptions, e.g. new energy calibration, KIT is already quite apllicable for LDCPrime. 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 ClusterCheater. 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 MarlinUtil/ClusterShapes.cc function ClusterShapes::getCentreOfGravity() according to

cog[axis] += hitAmplitude[hit]*hitPosition[hit]

The main cluster axis is calculated in MarlinUtil/ClusterShapes.cc function ClusterShapes::getEigenVecInertia()

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