Fork me on GitHub

source: git/examples/delphes_card_CMS_PileUp.tcl@ 3c9e6d2

ImprovedOutputFile Timing dual_readout llp
Last change on this file since 3c9e6d2 was 3c9e6d2, checked in by pavel <pavel@…>, 11 years ago

synchronize CMS cards

  • Property mode set to 100644
File size: 20.0 KB
RevLine 
[d7d2da3]1#######################################
2# Order of execution of various modules
3#######################################
4
5set ExecutionPath {
6
7 PileUpMerger
8 ParticlePropagator
9
10 ChargedHadronTrackingEfficiency
11 ElectronTrackingEfficiency
12 MuonTrackingEfficiency
13
14 ChargedHadronMomentumSmearing
15 ElectronEnergySmearing
16 MuonMomentumSmearing
17
18 TrackMerger
19 Calorimeter
20 TrackPileUpSubtractor
21 EFlowMerger
22
23 GenJetFinder
24
25 Rho
26 FastJetFinder
27 JetPileUpSubtractor
28
[3c9e6d2]29 JetEnergyScale
[d7d2da3]30
31 PhotonEfficiency
32 PhotonIsolation
33
34 ElectronEfficiency
35 ElectronIsolation
36
37 MuonEfficiency
38 MuonIsolation
39
40 MissingET
41
42 BTagging
43 TauTagging
44
45 UniqueObjectFinder
46
47 ScalarHT
48
49 TreeWriter
50}
51
52###############
53# PileUp Merger
54###############
55
56module PileUpMerger PileUpMerger {
57 set InputArray Delphes/stableParticles
58
59 set OutputArray stableParticles
60
61 # pre-generated minbias input file
62 set PileUpFile MinBias.pileup
63
64 # average expected pile up
65 set MeanPileUp 50
66 # spread in the beam direction in m (assumes gaussian)
67 set ZVertexSpread 0.07
68}
69
70#################################
71# Propagate particles in cylinder
72#################################
73
74module ParticlePropagator ParticlePropagator {
75 set InputArray PileUpMerger/stableParticles
76
77 set OutputArray stableParticles
78 set ChargedHadronOutputArray chargedHadrons
79 set ElectronOutputArray electrons
80 set MuonOutputArray muons
81
82 # radius of the magnetic field coverage, in m
83 set Radius 1.29
84 # half-length of the magnetic field coverage, in m
85 set HalfLength 3.00
86
87 # magnetic field
88 set Bz 3.8
89}
90
91####################################
92# Charged hadron tracking efficiency
93####################################
94
95module Efficiency ChargedHadronTrackingEfficiency {
96 set InputArray ParticlePropagator/chargedHadrons
97 set OutputArray chargedHadrons
98
99 # add EfficiencyFormula {efficiency formula as a function of eta and pt}
100
101 # tracking efficiency formula for charged hadrons
102 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
103 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
104 (abs(eta) <= 1.5) * (pt > 1.0) * (0.95) + \
105 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.60) + \
106 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.85) + \
107 (abs(eta) > 2.5) * (0.00)}
108}
109
110##############################
111# Electron tracking efficiency
112##############################
113
114module Efficiency ElectronTrackingEfficiency {
115 set InputArray ParticlePropagator/electrons
116 set OutputArray electrons
117
118 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
119
120 # tracking efficiency formula for electrons
121 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
122 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.73) + \
123 (abs(eta) <= 1.5) * (pt > 1.0 && pt <= 1.0e2) * (0.95) + \
124 (abs(eta) <= 1.5) * (pt > 1.0e2) * (0.99) + \
125 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.50) + \
126 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e2) * (0.83) + \
127 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.90) + \
128 (abs(eta) > 2.5) * (0.00)}
129}
130
131##########################
132# Muon tracking efficiency
133##########################
134
135module Efficiency MuonTrackingEfficiency {
136 set InputArray ParticlePropagator/muons
137 set OutputArray muons
138
139 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
140
141 # tracking efficiency formula for muons
142 set EfficiencyFormula { (pt <= 0.1) * (0.00) + \
143 (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0) * (0.75) + \
144 (abs(eta) <= 1.5) * (pt > 1.0) * (0.99) + \
145 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 1.0) * (0.70) + \
146 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0) * (0.98) + \
147 (abs(eta) > 2.5) * (0.00)}
148}
149
150########################################
151# Momentum resolution for charged tracks
152########################################
153
154module MomentumSmearing ChargedHadronMomentumSmearing {
155 set InputArray ChargedHadronTrackingEfficiency/chargedHadrons
156 set OutputArray chargedHadrons
157
158 # set ResolutionFormula {resolution formula as a function of eta and pt}
159
160 # resolution formula for charged hadrons
[3c9e6d2]161 set ResolutionFormula { (abs(eta) <= 1.5) * (pt > 0.1 && pt <= 1.0e1) * (0.20) + \
162 (abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.20) + \
163 (abs(eta) <= 1.5) * (pt > 2.0e2) * (0.20) + \
164 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0 && pt <= 1.0e1) * (0.20) + \
165 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.20) + \
166 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2) * (0.20)}
[d7d2da3]167}
168
169#################################
170# Energy resolution for electrons
171#################################
172
173module EnergySmearing ElectronEnergySmearing {
174 set InputArray ElectronTrackingEfficiency/electrons
175 set OutputArray electrons
176
177 # set ResolutionFormula {resolution formula as a function of eta and energy}
178
[3c9e6d2]179 # resolution formula for electrons
180 set ResolutionFormula { (abs(eta) <= 2.5) * (energy > 0.1 && energy <= 2.0e1) * (0.0225)*energy + \
181 (abs(eta) <= 2.5) * (energy > 2.0e1) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
182 (abs(eta) > 2.5 && abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
[d7d2da3]183 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
184
185}
186
187###############################
188# Momentum resolution for muons
189###############################
190
191module MomentumSmearing MuonMomentumSmearing {
192 set InputArray MuonTrackingEfficiency/muons
193 set OutputArray muons
194
195 # set ResolutionFormula {resolution formula as a function of eta and pt}
196
197 # resolution formula for muons
[3c9e6d2]198 set ResolutionFormula { (abs(eta) <= 0.5) * (pt > 0.1 && pt <= 5.0) * (0.02) + \
199 (abs(eta) <= 0.5) * (pt > 5.0 && pt <= 1.0e2) * (0.015) + \
200 (abs(eta) <= 0.5) * (pt > 1.0e2) * (0.03) + \
201 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1 && pt <= 5.0) * (0.03) + \
202 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 5.0 && pt <= 1.0e2) * (0.02) + \
203 (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 1.0e2) * (0.04) + \
204 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1 && pt <= 5.0) * (0.04) + \
205 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 5.0 && pt <= 1.0e2) * (0.035) + \
206 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2) * (0.05)}
[d7d2da3]207}
208
209##############
210# Track merger
211##############
212
213module Merger TrackMerger {
214# add InputArray InputArray
215 add InputArray ChargedHadronMomentumSmearing/chargedHadrons
216 add InputArray ElectronEnergySmearing/electrons
217 set OutputArray tracks
218}
219
220#############
221# Calorimeter
222#############
223
224module Calorimeter Calorimeter {
225 set ParticleInputArray ParticlePropagator/stableParticles
226 set TrackInputArray TrackMerger/tracks
227
228 set TowerOutputArray towers
229 set PhotonOutputArray photons
230
231 set EFlowTrackOutputArray eflowTracks
232 set EFlowTowerOutputArray eflowTowers
233
234 set pi [expr {acos(-1)}]
235
236 # lists of the edges of each tower in eta and phi
237 # each list starts with the lower edge of the first tower
238 # the list ends with the higher edged of the last tower
239
240 # 5 degrees towers
241 set PhiBins {}
242 for {set i -36} {$i <= 36} {incr i} {
243 add PhiBins [expr {$i * $pi/36.0}]
244 }
245 foreach eta {-1.566 -1.479 -1.392 -1.305 -1.218 -1.131 -1.044 -0.957 -0.87 -0.783 -0.696 -0.609 -0.522 -0.435 -0.348 -0.261 -0.174 -0.087 0 0.087 0.174 0.261 0.348 0.435 0.522 0.609 0.696 0.783 0.87 0.957 1.044 1.131 1.218 1.305 1.392 1.479 1.566 1.653} {
246 add EtaPhiBins $eta $PhiBins
247 }
248
249 # 10 degrees towers
250 set PhiBins {}
251 for {set i -18} {$i <= 18} {incr i} {
252 add PhiBins [expr {$i * $pi/18.0}]
253 }
254 foreach eta {-4.35 -4.175 -4 -3.825 -3.65 -3.475 -3.3 -3.125 -2.95 -2.868 -2.65 -2.5 -2.322 -2.172 -2.043 -1.93 -1.83 -1.74 -1.653 1.74 1.83 1.93 2.043 2.172 2.322 2.5 2.65 2.868 2.95 3.125 3.3 3.475 3.65 3.825 4 4.175 4.35 4.525} {
255 add EtaPhiBins $eta $PhiBins
256 }
257
258 # 20 degrees towers
259 set PhiBins {}
260 for {set i -9} {$i <= 9} {incr i} {
261 add PhiBins [expr {$i * $pi/9.0}]
262 }
263 foreach eta {-5 -4.7 -4.525 4.7 5} {
264 add EtaPhiBins $eta $PhiBins
265 }
266
267 # default energy fractions {abs(PDG code)} {Fecal Fhcal}
268 add EnergyFraction {0} {0.0 1.0}
269 # energy fractions for e, gamma and pi0
270 add EnergyFraction {11} {1.0 0.0}
271 add EnergyFraction {22} {1.0 0.0}
272 add EnergyFraction {111} {1.0 0.0}
273 # energy fractions for muon, neutrinos and neutralinos
274 add EnergyFraction {12} {0.0 0.0}
275 add EnergyFraction {13} {0.0 0.0}
276 add EnergyFraction {14} {0.0 0.0}
277 add EnergyFraction {16} {0.0 0.0}
278 add EnergyFraction {1000022} {0.0 0.0}
279 add EnergyFraction {1000023} {0.0 0.0}
280 add EnergyFraction {1000025} {0.0 0.0}
281 add EnergyFraction {1000035} {0.0 0.0}
282 add EnergyFraction {1000045} {0.0 0.0}
283 # energy fractions for K0short and Lambda
284 add EnergyFraction {310} {0.3 0.7}
285 add EnergyFraction {3122} {0.3 0.7}
286
287 # set ECalResolutionFormula {resolution formula as a function of eta and energy}
[3c9e6d2]288 set ECalResolutionFormula { (abs(eta) <= 3.0) * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
[d7d2da3]289 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.107^2 + energy*2.08^2)}
290
291 # set HCalResolutionFormula {resolution formula as a function of eta and energy}
[3c9e6d2]292 set HCalResolutionFormula { (abs(eta) <= 1.5) * sqrt(energy^2*0.055^2 + energy*1.20^2 + 3.50^2) + \
293 (abs(eta) > 1.5 && abs(eta) <= 3) * sqrt(energy^2*0.065^2 + energy*2.00^2 + 3.50^2) + \
294 (abs(eta) > 3.0 && abs(eta) <= 5.0) * sqrt(energy^2*0.11^2 + energy*3.13^2)}
[d7d2da3]295}
296
297##########################
298# Track pile-up subtractor
299##########################
300
301module TrackPileUpSubtractor TrackPileUpSubtractor {
302# add InputArray InputArray OutputArray
303 add InputArray Calorimeter/eflowTracks eflowTracks
304 add InputArray ElectronEnergySmearing/electrons electrons
305 add InputArray MuonMomentumSmearing/muons muons
306
307 # assume perfect pile-up subtraction for tracks with |z| > fZVertexResolution
308 # Z vertex resolution in m
309 set ZVertexResolution 0.0001
310}
311
312####################
313# Energy flow merger
314####################
315
316module Merger EFlowMerger {
317# add InputArray InputArray
318 add InputArray TrackPileUpSubtractor/eflowTracks
319 add InputArray Calorimeter/eflowTowers
320 add InputArray MuonMomentumSmearing/muons
321 set OutputArray eflow
322}
323
324#############
325# Rho pile-up
326#############
327
328module FastJetFinder Rho {
329# set InputArray Calorimeter/towers
330 set InputArray EFlowMerger/eflow
331
332 set ComputeRho true
333 set RhoOutputArray rho
334
335 # area algorithm: 0 Do not compute area, 1 Active area explicit ghosts, 2 One ghost passive area, 3 Passive area, 4 Voronoi, 5 Active area
336 set AreaAlgorithm 5
337
338 # jet algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
339 set JetAlgorithm 4
340 set ParameterR 0.6
341 set GhostEtaMax 5.0
342 set RhoEtaMax 5.0
343
344 set JetPTMin 0.0
345}
346
347#####################
348# MC truth jet finder
349#####################
350
351module FastJetFinder GenJetFinder {
352 set InputArray Delphes/stableParticles
353
354 set OutputArray jets
355
356 # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
357 set JetAlgorithm 6
358 set ParameterR 0.5
359
360 set JetPTMin 20.0
361}
362
363############
364# Jet finder
365############
366
367module FastJetFinder FastJetFinder {
368# set InputArray Calorimeter/towers
369 set InputArray EFlowMerger/eflow
370
371 set OutputArray jets
372
373 # area algorithm: 0 Do not compute area, 1 Active area explicit ghosts, 2 One ghost passive area, 3 Passive area, 4 Voronoi, 5 Active area
374 set AreaAlgorithm 5
375
376 # jet algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
377 set JetAlgorithm 6
378 set ParameterR 0.5
379
380 set JetPTMin 20.0
381}
382
383###########################
384# Jet Pile-Up Subtraction
385###########################
386
387module JetPileUpSubtractor JetPileUpSubtractor {
388 set JetInputArray FastJetFinder/jets
389 set RhoInputArray Rho/rho
390
391 set OutputArray jets
392
393 set JetPTMin 20.0
394}
395
[3c9e6d2]396##################
397# Jet Energy Scale
398##################
399
400module EnergyScale JetEnergyScale {
401 set InputArray JetPileUpSubtractor/jets
402 set OutputArray jets
403
404 # scale formula for jets
405 set ScaleFormula {1.0}
406}
407
[d7d2da3]408###################
409# Photon efficiency
410###################
411
412module Efficiency PhotonEfficiency {
413 set InputArray Calorimeter/photons
414 set OutputArray photons
415
416 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
417
418 # efficiency formula for photons
419 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
420 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
421 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
422 (abs(eta) > 2.5) * (0.00)}
423}
424
425##################
426# Photon isolation
427##################
428
429module Isolation PhotonIsolation {
430 set CandidateInputArray PhotonEfficiency/photons
431 set IsolationInputArray EFlowMerger/eflow
432 set RhoInputArray Rho/rho
433
434 set OutputArray photons
435
436 set DeltaRMax 0.5
437
438 set PTMin 0.5
439
440 set PTRatioMax 0.1
441}
442
443#####################
444# Electron efficiency
445#####################
446
447module Efficiency ElectronEfficiency {
448 set InputArray TrackPileUpSubtractor/electrons
449 set OutputArray electrons
450
451 # set EfficiencyFormula {efficiency formula as a function of eta and pt}
452
453 # efficiency formula for electrons
454 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
455 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
456 (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 10.0) * (0.85) + \
457 (abs(eta) > 2.5) * (0.00)}
458}
459
460####################
461# Electron isolation
462####################
463
464module Isolation ElectronIsolation {
465 set CandidateInputArray ElectronEfficiency/electrons
466 set IsolationInputArray EFlowMerger/eflow
467 set RhoInputArray Rho/rho
468
469 set OutputArray electrons
470
471 set DeltaRMax 0.5
472
473 set PTMin 0.5
474
475 set PTRatioMax 0.1
476}
477
478#################
479# Muon efficiency
480#################
481
482module Efficiency MuonEfficiency {
483 set InputArray TrackPileUpSubtractor/muons
484 set OutputArray muons
485
486 # set EfficiencyFormula {efficiency as a function of eta and pt}
487
488 # efficiency formula for muons
489 set EfficiencyFormula { (pt <= 10.0) * (0.00) + \
490 (abs(eta) <= 1.5) * (pt > 10.0) * (0.95) + \
491 (abs(eta) > 1.5 && abs(eta) <= 2.4) * (pt > 10.0) * (0.85) + \
492 (abs(eta) > 2.4) * (0.00)}
493}
494
495################
496# Muon isolation
497################
498
499module Isolation MuonIsolation {
500 set CandidateInputArray MuonEfficiency/muons
501 set IsolationInputArray EFlowMerger/eflow
502 set RhoInputArray Rho/rho
503
504 set OutputArray muons
505
506 set DeltaRMax 0.5
507
508 set PTMin 0.5
509
510 set PTRatioMax 0.1
511}
512
513###################
514# Missing ET merger
515###################
516
517module Merger MissingET {
518# add InputArray InputArray
519 add InputArray EFlowMerger/eflow
520 set MomentumOutputArray momentum
521}
522
523##################
524# Scalar HT merger
525##################
526
527module Merger ScalarHT {
528# add InputArray InputArray
529 add InputArray UniqueObjectFinder/jets
530 add InputArray UniqueObjectFinder/electrons
531 add InputArray UniqueObjectFinder/photons
[3c9e6d2]532 add InputArray UniqueObjectFinder/muons
[d7d2da3]533 set EnergyOutputArray energy
534}
535
536
537###########
538# b-tagging
539###########
540
541module BTagging BTagging {
542 set PartonInputArray Delphes/partons
[3c9e6d2]543 set JetInputArray JetEnergyScale/jets
[d7d2da3]544
[264bf40]545 set BitNumber 0
546
[d7d2da3]547 set DeltaR 0.5
548
549 set PartonPTMin 1.0
550
551 set PartonEtaMax 2.5
552
553 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
554 # PDG code = the highest PDG code of a quark or gluon inside DeltaR cone around jet axis
555 # gluon's PDG code has the lowest priority
556
557 # https://twiki.cern.ch/twiki/bin/view/CMSPublic/PhysicsResultsBTV
558 # default efficiency formula (misidentification rate)
559 add EfficiencyFormula {0} {0.001}
560
561 # efficiency formula for c-jets (misidentification rate)
562 add EfficiencyFormula {4} { (pt <= 15.0) * (0.000) + \
563 (abs(eta) <= 1.2) * (pt > 15.0) * (0.2*tanh(pt*0.03 - 0.4)) + \
564 (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.1*tanh(pt*0.03 - 0.4)) + \
565 (abs(eta) > 2.5) * (0.000)}
566
567 # efficiency formula for b-jets
568 add EfficiencyFormula {5} { (pt <= 15.0) * (0.000) + \
569 (abs(eta) <= 1.2) * (pt > 15.0) * (0.5*tanh(pt*0.03 - 0.4)) + \
570 (abs(eta) > 1.2 && abs(eta) <= 2.5) * (pt > 15.0) * (0.4*tanh(pt*0.03 - 0.4)) + \
571 (abs(eta) > 2.5) * (0.000)}
572}
573
574module TauTagging TauTagging {
575 set ParticleInputArray Delphes/allParticles
576 set PartonInputArray Delphes/partons
[3c9e6d2]577 set JetInputArray JetEnergyScale/jets
[d7d2da3]578
579 set DeltaR 0.5
580
581 set TauPTMin 1.0
582
583 set TauEtaMax 2.5
584
585 # add EfficiencyFormula {abs(PDG code)} {efficiency formula as a function of eta and pt}
586
587 # default efficiency formula (misidentification rate)
588 add EfficiencyFormula {0} {0.001}
589 # efficiency formula for tau-jets
590 add EfficiencyFormula {15} {0.4}
591}
592
593#####################################################
594# Find uniquely identified photons/electrons/tau/jets
595#####################################################
596
597module UniqueObjectFinder UniqueObjectFinder {
598# earlier arrays take precedence over later ones
599# add InputArray InputArray OutputArray
600 add InputArray PhotonIsolation/photons photons
601 add InputArray ElectronIsolation/electrons electrons
[3c9e6d2]602 add InputArray MuonIsolation/muons muons
603 add InputArray JetEnergyScale/jets jets
[d7d2da3]604}
605
606##################
607# ROOT tree writer
608##################
609
610module TreeWriter TreeWriter {
611# add Branch InputArray BranchName BranchClass
612 add Branch Delphes/allParticles Particle GenParticle
613 add Branch TrackMerger/tracks Track Track
614 add Branch Calorimeter/towers Tower Tower
615 add Branch ConstituentFilter/eflowTracks EFlowTrack Track
616 add Branch ConstituentFilter/eflowTowers EFlowTower Tower
617 add Branch ConstituentFilter/muons EFlowMuon Muon
618 add Branch GenJetFinder/jets GenJet Jet
619 add Branch UniqueObjectFinder/jets Jet Jet
620 add Branch UniqueObjectFinder/electrons Electron Electron
621 add Branch UniqueObjectFinder/photons Photon Photon
[3c9e6d2]622 add Branch UniqueObjectFinder/muons Muon Muon
[d7d2da3]623 add Branch MissingET/momentum MissingET MissingET
624 add Branch ScalarHT/energy ScalarHT ScalarHT
[71648c2]625 add Branch Rho/rho Rho Rho
[d7d2da3]626}
627
Note: See TracBrowser for help on using the repository browser.