diff --git a/Examples/options/tut_detsim_rec_SDT.py b/Examples/options/tut_detsim_rec_SDT.py
new file mode 100644
index 0000000000000000000000000000000000000000..02ac7612fa3904dba61f4ea9dceedf6d925e2548
--- /dev/null
+++ b/Examples/options/tut_detsim_rec_SDT.py
@@ -0,0 +1,322 @@
+#!/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
+)
diff --git a/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.cpp b/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.cpp
index 7b2b7afe286104d6b49060e4d281fb90e1a13cc5..0d5100b6243a4dc1647f540311a8d0fbd3ee0208 100644
--- a/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.cpp
+++ b/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.cpp
@@ -232,7 +232,7 @@ StatusCode TruthTrackerAlg::execute()
//mcRecoTrackerAssociationCol=m_mcRecoParticleAssociation.get();
///New SDT track
- edm4hep::MutableTrack sdtTk=sdtTkCol->create();
+ edm4hep::Track sdtTk=sdtTkCol->create();
int nVXDHit=0;
int nSITHit=0;
@@ -316,7 +316,7 @@ StatusCode TruthTrackerAlg::execute()
if(m_useDC){
///Create DC Track
- edm4hep::MutableTrack dcTrack=dcTrackCol->create();
+ edm4hep::Track dcTrack=dcTrackCol->create();
//Create TrackState
edm4hep::TrackState trackStateFirstDCHit;
@@ -458,10 +458,8 @@ void TruthTrackerAlg::getTrackStateFromMcParticle(
trackState.Z0=helix.getZ0();
trackState.tanLambda=helix.getTanLambda();
trackState.referencePoint=helix.getReferencePoint();
-
- decltype(trackState.covMatrix) covMatrix;
- for(int i=0;i<covMatrix.size();i++){covMatrix[i]=999.;}//FIXME
-
+ std::array<float,15> covMatrix;
+ for(int i=0;i<15;i++){covMatrix[i]=1.;}//FIXME
trackState.covMatrix=covMatrix;
getCircleFromPosMom(pos,mom,B[2]/dd4hep::tesla,mcParticle.getCharge(),m_helixRadius,m_helixXC,m_helixYC);
@@ -528,8 +526,8 @@ bool TruthTrackerAlg::getTrackStateFirstHit(
trackState.Z0=helix.getZ0();
trackState.tanLambda=helix.getTanLambda();
trackState.referencePoint=helix.getReferencePoint();
- std::array<float,21> covMatrix;
- for(int i=0;i<21;i++){covMatrix[i]=100.;}//FIXME
+ std::array<float,15> covMatrix;
+ for(int i=0;i<15;i++){covMatrix[i]=100.;}//FIXME
trackState.covMatrix=covMatrix;
debug()<<"first hit trackState "<<trackState<<endmsg;
return true;
@@ -593,7 +591,7 @@ void TruthTrackerAlg::debugEvent()
int TruthTrackerAlg::addIdealHitsToTk(DataHandle<edm4hep::TrackerHitCollection>&
colHandle, edm4hep::TrackerHitCollection*& truthTrackerHitCol,
- edm4hep::MutableTrack& track, const char* msg,int nHitAdded)
+ edm4hep::Track& track, const char* msg,int nHitAdded)
{
if(nHitAdded>0) return nHitAdded;
int nHit=0;
@@ -616,7 +614,7 @@ int TruthTrackerAlg::addIdealHitsToTk(DataHandle<edm4hep::TrackerHitCollection>&
//add modified hit
auto tmpHit = truthTrackerHitCol->create();
- tmpHit=hit.clone();
+ tmpHit=hit;
tmpHit.setTime(fabs(docaIdeal)*1e3/40.);//40#um/ns, drift time in ns
track.addToTrackerHits(tmpHit);
@@ -667,7 +665,7 @@ int TruthTrackerAlg::makeNoiseHit(edm4hep::SimTrackerHitCollection* SimVec,
trkHit.setCellID(wcellid);
trkHit.setTime(pocaTime);
trkHit.setEDep(mcHit.getEDep());
- //trkHit.setEdx(mcHit.getEdx());
+ trkHit.setEdx(mcHit.getEdx());
trkHit.setPosition(mcHit.getPosition());
trkHit.setCovMatrix(mcHit.getCovMatrix());
for(int iAsso=0;iAsso<(int) assoHits->size();iAsso++)
@@ -755,7 +753,7 @@ int TruthTrackerAlg::smearDCTkhit(DataHandle<edm4hep::TrackerHitCollection>&
smearHit.setQuality(hit.getQuality());
smearHit.setEDep(hit.getEDep());
smearHit.setEDepError(hit.getEDepError());
- //smearHit.setEdx(hit.getEdx());
+ smearHit.setEdx(hit.getEdx());
smearHit.setPosition(hit.getPosition());
smearHit.setCovMatrix(hit.getCovMatrix());
smearHit.addToRawHits(hit.getObjectID());
@@ -791,7 +789,7 @@ int TruthTrackerAlg::smearDCTkhit(DataHandle<edm4hep::TrackerHitCollection>&
}
int TruthTrackerAlg::addHitsToTk(DataHandle<edm4hep::TrackerHitCollection>&
- colHandle, edm4hep::MutableTrack& track, const char* msg,int nHitAdded)
+ colHandle, edm4hep::Track& track, const char* msg,int nHitAdded)
{
if(nHitAdded>0) return nHitAdded;
int nHit=0;
@@ -808,7 +806,7 @@ int TruthTrackerAlg::addHitsToTk(DataHandle<edm4hep::TrackerHitCollection>&
int TruthTrackerAlg::addSimHitsToTk(
DataHandle<edm4hep::SimTrackerHitCollection>& colHandle,
edm4hep::TrackerHitCollection*& truthTrackerHitCol,
- edm4hep::MutableTrack& track, const char* msg,int nHitAdded)
+ edm4hep::Track& track, const char* msg,int nHitAdded)
{
if(nHitAdded>0) return nHitAdded;
int nHit=0;
@@ -863,12 +861,12 @@ int TruthTrackerAlg::addSimHitsToTk(
}
int TruthTrackerAlg::addHotsToTk(edm4hep::Track& sourceTrack,
- edm4hep::MutableTrack& targetTrack, int hitType,const char* msg,int nHitAdded)
+ edm4hep::Track& targetTrack, int hitType,const char* msg,int nHitAdded)
{
if(nHitAdded>0) return nHitAdded;
int nHit=0;
for(unsigned int iHit=0;iHit<sourceTrack.trackerHits_size();iHit++){
- edm4hep::TrackerHit hit=sourceTrack.getTrackerHits(iHit);
+ edm4hep::ConstTrackerHit hit=sourceTrack.getTrackerHits(iHit);
UTIL::BitField64 encoder(lcio::ILDCellID0::encoder_string);
encoder.setValue(hit.getCellID());
if(encoder[lcio::ILDCellID0::subdet]==hitType){
@@ -887,7 +885,7 @@ int TruthTrackerAlg::nHotsOnTrack(edm4hep::Track& track, int hitType)
{
int nHit=0;
for(unsigned int iHit=0;iHit<track.trackerHits_size();iHit++){
- edm4hep::TrackerHit hit=track.getTrackerHits(iHit);
+ edm4hep::ConstTrackerHit hit=track.getTrackerHits(iHit);
UTIL::BitField64 encoder(lcio::ILDCellID0::encoder_string);
encoder.setValue(hit.getCellID());
if(encoder[lcio::ILDCellID0::subdet]==hitType){
diff --git a/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.h b/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.h
index 563d98543e54e94128d4846940d170a080b3a21a..32136cd4c39fec7fdf688b3c87308985826bd771 100644
--- a/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.h
+++ b/Reconstruction/Tracking/src/TruthTracker/TruthTrackerAlg.h
@@ -22,7 +22,6 @@ namespace edm4hep {
class TrackerHitCollection;
class TrackCollection;
class Track;
- class MutableTrack;
class TrackState;
class ReconstructedParticleCollection;
class MCRecoTrackerAssociationCollection;
@@ -43,7 +42,7 @@ class TruthTrackerAlg: public GaudiAlgorithm
mcParticleCol, edm4hep::TrackState& stat);
int addSimHitsToTk(DataHandle<edm4hep::SimTrackerHitCollection>&
colHandle, edm4hep::TrackerHitCollection*& truthTrackerHitCol,
- edm4hep::MutableTrack& track, const char* msg,int nHitAdded);
+ edm4hep::Track& track, const char* msg,int nHitAdded);
int smearDCTkhit(DataHandle<edm4hep::TrackerHitCollection>&
colHandle,DataHandle<edm4hep::TrackerHitCollection>& smearCol,
DataHandle<edm4hep::SimTrackerHitCollection>& SimDCHitCol,
@@ -52,12 +51,12 @@ class TruthTrackerAlg: public GaudiAlgorithm
DataHandle<edm4hep::MCRecoTrackerAssociationCollection>& AssoSmearDCHitCol,
double resX, double resY, double resZ);
int addHitsToTk(DataHandle<edm4hep::TrackerHitCollection>&
- colHandle, edm4hep::MutableTrack& track, const char* msg,int nHitAdded);
+ colHandle, edm4hep::Track& track, const char* msg,int nHitAdded);
int addIdealHitsToTk(DataHandle<edm4hep::TrackerHitCollection>&
colHandle, edm4hep::TrackerHitCollection*& truthTrackerHitCol,
- edm4hep::MutableTrack& track, const char* msg,int nHitAdded);
+ edm4hep::Track& track, const char* msg,int nHitAdded);
- int addHotsToTk(edm4hep::Track& sourceTrack,edm4hep::MutableTrack&
+ int addHotsToTk(edm4hep::Track& sourceTrack,edm4hep::Track&
targetTrack, int hitType,const char* msg,int nHitAdded);
int nHotsOnTrack(edm4hep::Track& track, int hitType);
int trackerHitColSize(DataHandle<edm4hep::TrackerHitCollection>& hitCol);