PFA on sidloi3: update
Ron Cassell4/27/10
2
Proposed changes
• Calibration• Tracking• Extrapolation• Subcluster finding• Muon finding• Structure
3
Calibration
• Modified classes: org.lcsim.recon.cheater.QCalibrationFromData.java, org.lcsim.recon.pfa.structural.FuzzyQNeutralHadronClusterEnergyCalculator
• Minimal changes to use CalorimeterInformation class
4
Tracking
• org.lcsim.recon.tracking.seedtracker.trackingdrivers.sidloi2.MainTrackingDriver.java
• Change strategy file.• org.lcsim.recon.tracking.seedtracker.Fast
Check.java• Catch exception on 2 pt circle fit.
5
Extrapolation
• Add helix extrapolation to regular n-sided polyhedra. org.lcsim.util.swim.Helix.java, HelixSwimmer.java.
• Added method getDistanceToPoyhedra, returns positive pathlength of helix to intersection point with n-sided polyhedron
6
getDistanceToPolyhedra• public double getDistanceToPolyhedra(double r, int nsides)• {• double mins = 9999999.;• double period = Math.abs(2.*Math.PI*radius/cosLambda);• for(int i=0;i<nsides;i++)• {• double dphi = i*2.*Math.PI/nsides;• double beta = (r - Math.cos(dphi)*xCenter - Math.sin(dphi)*yCenter)/radius;• if(Math.abs(beta) <= 1.)• {• double s1 = radius/cosLambda*(Math.asin(beta) - dphi + phi);• double s2 = radius/cosLambda*(Math.PI - Math.asin(beta) - dphi + phi);• while(s1 < 0.){s1 += period;}• while(s2 < 0.){s2 += period;}• s1 = s1%period;• s2 = s2%period;• double s = Math.min(s1,s2);• if(s1 < mins)mins = s1;• }• }• if(mins == 9999999.)return Double.NaN;• return mins;• }
7
Extrapolation
• Modified extrapolation classes used in PFA to key on number of sides of the calorimeter for extrapolation methods
• Package org.lcsim.recon.pfa.identifier• FlexibleHelixExtrapolator• HelixExtrapolationResult• HelixExtrapolator• LocalHelixExtrapolator• TrackHelixExtrapolator
8
Subcluster finding
• org.lcsim.recon.cluster.mipfinder. NonProjectiveMipFinder
• Try to mitigate order dependent code by at least presenting the same data in the same order.
9
Muon finding
• Many problems remain, but at least fix obvious bugs and get it to execute.
• org.lcsim.recon.cluster.muonfinder• MuonFinder• SimpleMipQualityDecision• MipTrackMap
10
Structure
• org.lcsim.recon.ui.ReconDriverLoi – need different tracking driver
• org.lcsim.recon.pfa.structural.SetUpPFA – pass the correct hit collections
• org.lcsim.recon.pfa.structural.ReclusterDriver – fix bug at 90 degrees in momentum calculation
• org.lcsim.recon.pfa.identifier.TrackToElectronMapMaker – bypass “# of exactly matched cell cut” for polyhedron
11
Changes to sidloi3
• Compact.xml – segmentation classes of barrel calorimeters changed to extensions to allow clustering across borders.
• Most of the auxillary files are missing, need to be added. (Mainly copy from sid02). Replace hadron and photon calibration files.
12
Results
• With these changes, pfa runs to completion on 9900 events of the ZZ(500) sample. (~100 events missing from SLIC output)
• Some events where tracking takes large amount of cpu.
• PFA (excluding tracking) ~ 2 times slower on sidloi3 compared to sid02
13
Results
• First compare (sid02 for loi) with (sid02 with changes) to make sure we haven’t broken something.
• Look at Mass and Energy reconstruction
14
entries/1 GeV
(Reconstructed - Generated) Zmass (GeV)-60 -40 -20 0 20
0
50
100
150
200
250
300
350
400
450
500
550
600
sid02_newsid02_loi
sid02_loi Entries : 6449 Mean : -1.7780 Rms : 5.7117
sid02_new Entries : 6449 Mean : -1.1666 Rms : 5.7301
dM: min cos(theta) < 0.95
entries/.01
(Reconstructed - Generated)E/Generated E-0.4 -0.2 0.0 0.2 0.4 0.6
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
sid02_newsid02_loi
sid02_loi Entries : 6449 Mean : -0.035439 Rms : 0.051305
sid02_new Entries : 6449 Mean : -0.028477 Rms : 0.051221
dE/E: min cos(theta) < .95
rms90:
loi: 4.05
new: 4.04
15
Sid02: loi - new
• No degradation, but what has changed.• Some minor improvements, bug fix in
photon finding, improved subclustering, tracking.
• Look at tracking:
16
entries/.02
cos(theta) of reconstructed track-1.0 -0.5 0.0 0.5 1.0
0500
1,0001,5002,0002,5003,0003,5004,0004,5005,0005,5006,0006,500
sid02_newsid02_loi
sid02_loi Entries : 164104 Mean : -2.3075E-3 Rms : 0.72504
sid02_new Entries : 155705 Mean : -3.4028E-3 Rms : 0.70690
All events - single track cosTheta
17
Sid02: loi - new
• Look at energy distributions vs particle type
18
entries/5 GeV
Event E from photons (GeV)0 100 200
0
20
40
60
80
100
120
140
160
180
200
220
240
260
280
300
320
340
360
380
400
420
440
460
480
500 sid02_newsid02_loi
sid02_loi Entries : 6449 Mean : 52.338 Rms : 33.209
sid02_new Entries : 6449 Mean : 52.605 Rms : 33.301
entries/5 GeV
Event E from neutral hadrons (GeV)0 100 200
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700 sid02_newsid02_loi
sid02_loi Entries : 6449 Mean : 39.851 Rms : 34.923
sid02_new Entries : 6449 Mean : 41.732 Rms : 34.883
entries/5 GeV
Event E from charged particles (GeV)0 100 200 300 400
0
20
40
60
80
100
120
140
160
180
200
220
240
260
280
300
320 sid02_newsid02_loi
sid02_loi Entries : 6449 Mean : 124.53 Rms : 44.645
sid02_new Entries : 6449 Mean : 123.97 Rms : 44.739
19
Sid02: loi – new: conclusions
• Many changes since loi: distributions are not identical.
• However, no degradation in energy or mass resolutions.
20
sidloi3
• Compare reconstructed mass and energy distributions with sid02.
21
entries/1 GeV
(Reconstructed - Generated)Zmass (GeV)-50 0 50
0
100
200
300
400
500
600
sidloi3sid02_new sid02_new
Entries : 6449 Mean : -1.1666 Rms : 5.7301
sidloi3 Entries : 6393 Mean : 0.21611 Rms : 6.6897
dM: min cos(theta) < .95entries/.01
(Reconstructed - Generated)E/Generated E-0.5 0.0 0.5 1.0 1.5
0
50
100
150
200
250
300
350
400
450
500
550
600
650
sidloi3sid02_new
sid02_new Entries : 6449 Mean : -0.028477 Rms : 0.051221
sidloi3 Entries : 6393 Mean : -0.014323 Rms : 0.069309
dE/E: min cos(Theta) < .95
rms90:
sid02: 4.04
sidloi3:4.42
22
sidloi3
• Tails of mass and energy distributions extend much farther in sidloi3.
• ~10% worse mass resolution using rms90.• Not great, not crazy either.• A few more plots.
23
entries/.5 GeV
dM (GeV)-20 -15 -10 -5 0 5 10 15 20
0
20
40
60
80
100
120
140
160
180
200
220
240
260
280
300
gauss_1gausssidloi3sid02_new
sid02_new Entries : 6449 Mean : -1.1666 Rms : 5.7301
sidloi3 Entries : 6393 Mean : 0.21611 Rms : 6.6897
gauss amplitude : 244.78±4.19 mean : -1.1074±0.06467 sigma : 5.0976±0.0590 χ² : 2.1323
gauss_1 amplitude : 225.09±3.77 mean : -0.040366±0.071558 sigma : 5.4515±0.0597 χ² : 2.1135
24
Event E from photons (GeV)0 100 200
0
20
40
60
80
100
120
140
160
180
200
220
240
260
280
300
320
340
360
380
400
420
440
460
480
500sidloi3sid02_new
sid02_new Entries : 6449 Mean : 52.605 Rms : 33.301
sidloi3 Entries : 6393 Mean : 51.395 Rms : 33.315
Event E from neutral hadrons (GeV)0 100 200
0
50
100
150
200
250
300
350
400
450
500
550
600
650sidloi3sid02_new
sid02_new Entries : 6449 Mean : 41.732 Rms : 34.883
sidloi3 Entries : 6393 Mean : 47.118 Rms : 38.081
Event E from charged particles (GeV)0 100 200 300 400
0
20
40
60
80
100
120
140
160
180
200
220
240
260
280
300sidloi3sid02_new
sid02_new Entries : 6449 Mean : 123.97 Rms : 44.739
sidloi3 Entries : 6393 Mean : 123.03 Rms : 46.604
25
sidloi3: conclusion• Many problems have been addressed to get the
current algorithm to run on sidloi3.• Still many unresolved problems related to
performance.• Propose to commit all the changes to CVS, and
use as a starting point for performance studies.• Need Christoph to run on qq(100,200,350,500)
events to verify no degradation in sid02 performance.
• Need SLIC on sidloi3 for same events to study performance.