Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
CEPCSW
Manage
Activity
Members
Labels
Plan
Issues
6
Issue boards
Milestones
Wiki
Code
Merge requests
7
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
cepc
CEPCSW
Commits
0c9a9312
Commit
0c9a9312
authored
2 years ago
by
myliu@ihep.ac.cn
Browse files
Options
Downloads
Patches
Plain Diff
fixed script
parent
658f043f
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Examples/options/tut_detsim_rec_SDT.py
+0
-322
0 additions, 322 deletions
Examples/options/tut_detsim_rec_SDT.py
with
0 additions
and
322 deletions
Examples/options/tut_detsim_rec_SDT.py
deleted
100644 → 0
+
0
−
322
View file @
658f043f
#!/usr/bin/env python
from
Gaudi.Configuration
import
*
from
Configurables
import
k4DataSvc
dsvc
=
k4DataSvc
(
"
EventDataSvc
"
)
from
Configurables
import
RndmGenSvc
,
HepRndm__Engine_CLHEP__RanluxEngine_
seed
=
[
10
]
# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi
rndmengine
=
HepRndm__Engine_CLHEP__HepJamesRandom_
(
"
RndmGenSvc.Engine
"
)
# The default engine in Geant4
rndmengine
.
SetSingleton
=
True
rndmengine
.
Seeds
=
seed
rndmgensvc
=
RndmGenSvc
(
"
RndmGenSvc
"
)
rndmgensvc
.
Engine
=
rndmengine
.
name
()
##############################################################################
# Event Data Svc
##############################################################################
from
Configurables
import
k4DataSvc
dsvc
=
k4DataSvc
(
"
EventDataSvc
"
)
# option for standalone tracker study
geometry_option
=
"
CRD_o1_v01/CRD_o1_v01-onlyTracker.xml
"
#geometry_option = "CRD_o1_v01/CRD_o1_v01-onlyTracker_noWire_18.xml"
#geometry_option = "CRD_o1_v01/CRD_o1_v01.xml"
if
not
os
.
getenv
(
"
DETCRDROOT
"
):
print
(
"
Can
'
t find the geometry. Please setup envvar DETCRDROOT.
"
)
sys
.
exit
(
-
1
)
geometry_path
=
os
.
path
.
join
(
os
.
getenv
(
"
DETCRDROOT
"
),
"
compact
"
,
geometry_option
)
if
not
os
.
path
.
exists
(
geometry_path
):
print
(
"
Can
'
t find the compact geometry file: %s
"
%
geometry_path
)
sys
.
exit
(
-
1
)
from
Configurables
import
GeomSvc
geosvc
=
GeomSvc
(
"
GeomSvc
"
)
geosvc
.
compact
=
geometry_path
##############################################################################
# Physics Generator
##############################################################################
from
Configurables
import
GenAlgo
from
Configurables
import
GtGunTool
from
Configurables
import
StdHepRdr
from
Configurables
import
SLCIORdr
from
Configurables
import
HepMCRdr
from
Configurables
import
GenPrinter
gun
=
GtGunTool
(
"
GtGunTool
"
)
gun
.
Particles
=
[
"
mu-
"
]
gun
.
EnergyMins
=
[
40
]
# GeV
gun
.
EnergyMaxs
=
[
40
]
# GeV
gun
.
ThetaMins
=
[
85
]
# deg
gun
.
ThetaMaxs
=
[
85
]
# deg
gun
.
PhiMins
=
[
0
]
# deg
gun
.
PhiMaxs
=
[
360
]
# deg
# stdheprdr = StdHepRdr("StdHepRdr")
# stdheprdr.Input = "/cefs/data/stdhep/CEPC250/2fermions/E250.Pbhabha.e0.p0.whizard195/bhabha.e0.p0.00001.stdhep"
# lciordr = SLCIORdr("SLCIORdr")
# lciordr.Input = "/cefs/data/stdhep/lcio250/signal/Higgs/E250.Pbbh.whizard195/E250.Pbbh_X.e0.p0.whizard195/Pbbh_X.e0.p0.00001.slcio"
# hepmcrdr = HepMCRdr("HepMCRdr")
# hepmcrdr.Input = "example_UsingIterators.txt"
genprinter
=
GenPrinter
(
"
GenPrinter
"
)
genalg
=
GenAlgo
(
"
GenAlgo
"
)
genalg
.
GenTools
=
[
"
GtGunTool
"
]
#genalg.GenTools = ["StdHepRdr"]
# genalg.GenTools = ["StdHepRdr", "GenPrinter"]
# genalg.GenTools = ["SLCIORdr", "GenPrinter"]
# genalg.GenTools = ["HepMCRdr", "GenPrinter"]
##############################################################################
# Detector Simulation
##############################################################################
from
Configurables
import
DetSimSvc
detsimsvc
=
DetSimSvc
(
"
DetSimSvc
"
)
from
Configurables
import
DetSimAlg
detsimalg
=
DetSimAlg
(
"
DetSimAlg
"
)
detsimalg
.
RandomSeeds
=
seed
# detsimalg.VisMacs = ["vis.mac"]
detsimalg
.
RunCmds
=
[
#"/tracking/verbose 1",
]
detsimalg
.
AnaElems
=
[
# example_anatool.name()
# "ExampleAnaElemTool"
"
Edm4hepWriterAnaElemTool
"
]
detsimalg
.
RootDetElem
=
"
WorldDetElemTool
"
from
Configurables
import
AnExampleDetElemTool
example_dettool
=
AnExampleDetElemTool
(
"
AnExampleDetElemTool
"
)
dedxoption
=
"
BetheBlochEquationDedxSimTool
"
from
Configurables
import
DriftChamberSensDetTool
dc_sensdettool
=
DriftChamberSensDetTool
(
"
DriftChamberSensDetTool
"
)
dc_sensdettool
.
DedxSimTool
=
dedxoption
from
Configurables
import
DummyDedxSimTool
from
Configurables
import
BetheBlochEquationDedxSimTool
if
dedxoption
==
"
DummyDedxSimTool
"
:
dedx_simtool
=
DummyDedxSimTool
(
"
DummyDedxSimTool
"
)
elif
dedxoption
==
"
BetheBlochEquationDedxSimTool
"
:
dedx_simtool
=
BetheBlochEquationDedxSimTool
(
"
BetheBlochEquationDedxSimTool
"
)
dedx_simtool
.
material_Z
=
2
dedx_simtool
.
material_A
=
4
dedx_simtool
.
scale
=
10
dedx_simtool
.
resolution
=
0.0001
from
Configurables
import
MarlinEvtSeeder
evtseeder
=
MarlinEvtSeeder
(
"
EventSeeder
"
)
from
Configurables
import
GearSvc
gearsvc
=
GearSvc
(
"
GearSvc
"
)
from
Configurables
import
TrackSystemSvc
tracksystemsvc
=
TrackSystemSvc
(
"
TrackSystemSvc
"
)
# digitization
vxdhitname
=
"
VXDTrackerHits
"
sithitname
=
"
SITTrackerHits
"
dchitname
=
"
DCTrackerHits
"
sethitname
=
"
SETTrackerHits
"
setspname
=
"
SETSpacePoints
"
ftdhitname
=
"
FTDTrackerHits
"
ftdspname
=
"
FTDSpacePoints
"
from
Configurables
import
PlanarDigiAlg
digiVXD
=
PlanarDigiAlg
(
"
VXDDigi
"
)
digiVXD
.
SimTrackHitCollection
=
"
VXDCollection
"
digiVXD
.
TrackerHitCollection
=
vxdhitname
digiVXD
.
ResolutionU
=
[
0.0028
,
0.006
,
0.004
,
0.004
,
0.004
,
0.004
]
digiVXD
.
ResolutionV
=
[
0.0028
,
0.006
,
0.004
,
0.004
,
0.004
,
0.004
]
digiVXD
.
UsePlanarTag
=
True
#digiVXD.OutputLevel = DEBUG
digiSIT
=
PlanarDigiAlg
(
"
SITDigi
"
)
digiSIT
.
IsStrip
=
False
digiSIT
.
SimTrackHitCollection
=
"
SITCollection
"
digiSIT
.
TrackerHitCollection
=
sithitname
digiSIT
.
TrackerHitAssociationCollection
=
"
SITTrackerHitAssociation
"
digiSIT
.
ResolutionU
=
[
0.0072
]
digiSIT
.
ResolutionV
=
[
0.086
]
digiSIT
.
UsePlanarTag
=
True
#digiSIT.OutputLevel = DEBUG
digiSET
=
PlanarDigiAlg
(
"
SETDigi
"
)
digiSET
.
IsStrip
=
False
digiSET
.
SimTrackHitCollection
=
"
SETCollection
"
digiSET
.
TrackerHitCollection
=
sethitname
digiSET
.
TrackerHitAssociationCollection
=
"
SETTrackerHitAssociation
"
digiSET
.
ResolutionU
=
[
0.0072
]
digiSET
.
ResolutionV
=
[
0.086
]
digiSET
.
UsePlanarTag
=
True
#digiSET.OutputLevel = DEBUG
digiFTD
=
PlanarDigiAlg
(
"
FTDDigi
"
)
digiFTD
.
IsStrip
=
False
digiFTD
.
SimTrackHitCollection
=
"
FTDCollection
"
digiFTD
.
TrackerHitCollection
=
ftdhitname
digiFTD
.
TrackerHitAssociationCollection
=
"
FTDTrackerHitAssociation
"
digiFTD
.
ResolutionU
=
[
0.003
,
0.003
,
0.0072
,
0.0072
,
0.0072
,
0.0072
,
0.0072
]
digiFTD
.
ResolutionV
=
[
0.003
,
0.003
,
0.0072
,
0.0072
,
0.0072
,
0.0072
,
0.0072
]
digiFTD
.
UsePlanarTag
=
True
#digiFTD.OutputLevel = DEBUG
from
Configurables
import
DCHDigiAlg
digiDC
=
DCHDigiAlg
(
"
DCHDigi
"
)
digiDC
.
DigiDCHitCollection
=
dchitname
digiDC
.
WriteAna
=
True
#digiDC.mom_threshold=98.
#digiDC.mom_threshold_high=102.
#digiDC.OutputLevel = DEBUG
# two strip tracker hits -> one space point
from
Configurables
import
SpacePointBuilderAlg
spFTD
=
SpacePointBuilderAlg
(
"
FTDBuilder
"
)
spFTD
.
TrackerHitCollection
=
ftdhitname
spFTD
.
TrackerHitAssociationCollection
=
"
FTDTrackerHitAssociation
"
spFTD
.
SpacePointCollection
=
ftdspname
spFTD
.
SpacePointAssociationCollection
=
"
FTDSpacePointAssociation
"
#spFTD.OutputLevel = DEBUG
# tracking
from
Configurables
import
SiliconTrackingAlg
tracking
=
SiliconTrackingAlg
(
"
SiliconTracking
"
)
tracking
.
HeaderCol
=
"
EventHeader
"
tracking
.
VTXHitCollection
=
vxdhitname
tracking
.
SITHitCollection
=
sithitname
tracking
.
FTDPixelHitCollection
=
ftdhitname
tracking
.
FTDSpacePointCollection
=
ftdspname
tracking
.
SITRawHitCollection
=
"
NotNeedForPixelSIT
"
tracking
.
FTDRawHitCollection
=
ftdhitname
tracking
.
UseSIT
=
True
tracking
.
SmoothOn
=
False
#tracking.OutputLevel = DEBUG
from
Configurables
import
ForwardTrackingAlg
forward
=
ForwardTrackingAlg
(
"
ForwardTracking
"
)
forward
.
FTDPixelHitCollection
=
ftdhitname
forward
.
FTDSpacePointCollection
=
ftdspname
forward
.
FTDRawHitCollection
=
ftdhitname
forward
.
Chi2ProbCut
=
0.0
forward
.
HitsPerTrackMin
=
3
forward
.
BestSubsetFinder
=
"
SubsetSimple
"
forward
.
Criteria
=
[
"
Crit2_DeltaPhi
"
,
"
Crit2_StraightTrackRatio
"
,
"
Crit3_3DAngle
"
,
"
Crit3_ChangeRZRatio
"
,
"
Crit3_IPCircleDist
"
,
"
Crit4_3DAngleChange
"
,
"
Crit4_DistToExtrapolation
"
,
"
Crit2_DeltaRho
"
,
"
Crit2_RZRatio
"
,
"
Crit3_PT
"
]
forward
.
CriteriaMin
=
[
0
,
0.9
,
0
,
0.995
,
0
,
0.8
,
0
,
20
,
1.002
,
0.1
,
0
,
0.99
,
0
,
0.999
,
0
,
0.99
,
0
]
forward
.
CriteriaMax
=
[
30
,
1.02
,
10
,
1.015
,
20
,
1.3
,
1.0
,
150
,
1.08
,
99999999
,
0.8
,
1.01
,
0.35
,
1.001
,
1.5
,
1.01
,
0.05
]
#forward.OutputLevel = DEBUG
from
Configurables
import
TrackSubsetAlg
subset
=
TrackSubsetAlg
(
"
TrackSubset
"
)
subset
.
TrackInputCollections
=
[
"
ForwardTracks
"
,
"
SiTracks
"
]
subset
.
RawTrackerHitCollections
=
[
vxdhitname
,
sithitname
,
ftdhitname
,
ftdspname
]
subset
.
TrackSubsetCollection
=
"
SubsetTracks
"
#subset.OutputLevel = DEBUG
##TODO: DC reconstruction, as preliminary, use Clupatra like as TPC
#from Configurables import ClupatraAlg
#clupatra = ClupatraAlg("Clupatra")
#clupatra.TPCHitCollection = dchitname
#clupatra.DistanceCut = 100.
#clupatra.MaxDeltaChi2 = 100.
#clupatra.Chi2Cut = 150.
##clupatra.OutputLevel = DEBUG
#
#from Configurables import FullLDCTrackingAlg
#full = FullLDCTrackingAlg("FullTracking")
#full.VTXTrackerHits = vxdhitname
#full.SITTrackerHits = sithitname
#full.TPCTrackerHits = dchitname # add TPC or DC tracker hit here, if TPC or DC track is set by full.TPCTracks
#full.SETTrackerHits = sethitname
#full.FTDPixelTrackerHits = ftdhitname
#full.FTDSpacePoints = ftdspname
#full.SITRawHits = "NotNeedForPixelSIT"
#full.SETRawHits = "NotNeedForPixelSET"
#full.FTDRawHits = ftdhitname
#full.TPCTracks = "ClupatraTracks" # add standalone TPC or DC track here
#full.SiTracks = "SubsetTracks"
#full.OutputTracks = "MarlinTrkTracks"
#full.SITHitToTrackDistance = 3.
#full.SETHitToTrackDistance = 5.
##full.OutputLevel = DEBUG
#
##TODO: more reconstruction, PFA etc.
from
Configurables
import
TruthTrackerAlg
truthTrackerAlg
=
TruthTrackerAlg
(
"
TruthTrackerAlg
"
)
truthTrackerAlg
.
maxDigiCut
=
500
truthTrackerAlg
.
useSi
=
True
truthTrackerAlg
.
hist
=
True
#truthTrackerAlg.useNoiseHits=True
truthTrackerAlg
.
smearHits
=
True
#truthTrackerAlg.useFirstHitForDC=True
#truthTrackerAlg.useIdealHit=False
truthTrackerAlg
.
DigiDCHitCollection
=
"
DCTrackerHits
"
#truthTrackerAlg.OutputLevel=DEBUG
##############################################################################
# GenfitAlg
##############################################################################
from
Configurables
import
RecGenfitAlgSDT
recGenfitAlgSDT
=
RecGenfitAlgSDT
(
"
RecGenfitAlgSDT
"
)
recGenfitAlgSDT
.
debugPid
=
1
#recGenfitAlgSDT.debug=10
#recGenfitAlgSDT.debugGenfit=10000
recGenfitAlgSDT
.
DigiDCHitCollection
=
"
DCTrackerHits
"
recGenfitAlgSDT
.
SmearDCHitAssociationCollection
=
"
SmearDCHitAssociationCollection
"
#recGenfitAlgSDT.OutputLevel=DEBUG
recGenfitAlgSDT
.
measurementTypeSi
=
1
# -1: not use, 0:use space point, 1:use detector measurment
recGenfitAlgSDT
.
measurementTypeDC
=
1
# -1: not use, 0:use space point, 1:use detector measurment
#recGenfitAlgSDT.sigmaHitU=[0.11, 0.0028, 0.006, 0.004, 0.004, 0.004, 0.004]
#recGenfitAlgSDT.sigmaHitV=[0.2, 0.0028, 0.006, 0.004, 0.004, 0.004, 0.004]
from
Configurables
import
NTupleSvc
ntsvc
=
NTupleSvc
(
"
NTupleSvc
"
)
ntsvc
.
Output
=
[
"
MyTuples DATAFILE=
'
DCH_digi.root
'
OPT=
'
NEW
'
TYP=
'
ROOT
'"
,
"
TruthTrackerAlg DATAFILE=
'
truthTracker.root
'
OPT=
'
NEW
'
TYP=
'
ROOT
'"
,
"
RecGenfitAlgSDT DATAFILE=
'
fit.root
'
OPT=
'
NEW
'
TYP=
'
ROOT
'"
]
###############################################################################
## Event service
###############################################################################
#from Configurables import k4DataSvc
#dsvc = k4DataSvc("EventDataSvc",
# #input = "CRD-o1-v01-SimDigi00_1k.root"
# input = "test-detsim10.root"
#)
#from Configurables import PodioInput
#podioinput = PodioInput("PodioReader", collections=[
# #"EventHeader",
# "MCParticle",
# "DriftChamberHitsCollection",
# "VXDCollection",
# "SITCollection",
# "SETCollection",
# #"DCHitAssociationCollection",
#])
# output
from
Configurables
import
PodioOutput
out
=
PodioOutput
(
"
outputalg
"
)
out
.
filename
=
"
CRD-o1-v01-onlyTracker.root
"
out
.
outputCommands
=
[
"
keep *
"
]
# ApplicationMgr
from
Configurables
import
ApplicationMgr
ApplicationMgr
(
#TopAlg = [ genalg, detsimalg, digiVXD, digiSIT, digiSET, digiFTD, spFTD, digiDC, tracking, forward, subset, out],
#TopAlg = [podioinput, digiVXD, digiSIT, digiSET, digiFTD, spFTD, digiDC, tracking, forward, subset, truthTrackerAlg, recGenfitAlgSDT, out],
TopAlg
=
[
genalg
,
detsimalg
,
digiVXD
,
digiSIT
,
digiSET
,
digiFTD
,
spFTD
,
digiDC
,
tracking
,
forward
,
subset
,
truthTrackerAlg
,
recGenfitAlgSDT
,
out
],
EvtSel
=
'
NONE
'
,
EvtMax
=
10
,
ExtSvc
=
[
rndmengine
,
rndmgensvc
,
dsvc
,
evtseeder
,
geosvc
,
gearsvc
,
ntsvc
],
HistogramPersistency
=
'
ROOT
'
,
OutputLevel
=
ERROR
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment