diff --git a/CalPatRec/fcl/prolog.fcl b/CalPatRec/fcl/prolog.fcl index 3465c507ee..4509629626 100644 --- a/CalPatRec/fcl/prolog.fcl +++ b/CalPatRec/fcl/prolog.fcl @@ -56,6 +56,7 @@ CalPatRec : { @table::CalPatRec minNHit : @local::CalPatRec.minNStrawHits # minimal number of hits on found helix hitChi2Max : @local::CalPatRec.chi2HitCut mostProbableDfDz : 0.00475 + initDfDz : 0 # minNActiveStationPairs : 10 dzOverHelPitchCut : 0.7 maxDfDz : 0.01 @@ -63,7 +64,7 @@ CalPatRec : { @table::CalPatRec sigmaPhi : 0.1636 # radians targetconsistent : 0 weightXY : 1.11 #0.4527 - weightZPhi : 0.15 #0.29 #0.4423 + weightZPhi : 0.75 #0.15 #0.29 #0.4423 weight3D : 0.12 #1 maxXDPhi : 5 # maxPanelToHelixDPhi : 1.309 # 75 degrees diff --git a/CalPatRec/fcl/prolog_trigger.fcl b/CalPatRec/fcl/prolog_trigger.fcl index 3068c2d6ec..3a1a31290c 100644 --- a/CalPatRec/fcl/prolog_trigger.fcl +++ b/CalPatRec/fcl/prolog_trigger.fcl @@ -39,6 +39,7 @@ CprTrigger : { TTHelixFinderAlg : { @table::CalPatRec.HelixFinderAlg targetconsistent : 0 # maxZTripletSearch : 0. # mm + maxDfDz : 0.025 } #------------------------------------------------------------------------------ # SeedFitter(SeedFitHackNew) configuration for the final track fit: NOT USED ANYMORE @@ -134,6 +135,28 @@ CprTrigger : { @table::CprTrigger # HelixFinderAlg configuraton (pattern recognition) HelixFinderAlg : { @table::CprTrigger.TTHelixFinderAlg } } + + TTCalTimePeakFinderUCC : { @table::CalPatRec.filters.CalTimePeakFinder + useAsFilter : 0 + StrawHitCollectionLabel : TTmakePHUCC + StrawHitFlagCollectionLabel : "TTflagBkgHitsUCC:ComboHits" + caloClusterModuleLabel : CaloClusterFast + HitSelectionBits : ["EnergySelection","TimeSelection"] + BackgroundSelectionBits : ["Background"] + minClusterEnergy : 50. # MeV + minClusterSize : 2 # number of crystals + minClusterTime : 500. # ns + } + + TTCalHelixFinderUCC : { @table::CalPatRec.filters.CalHelixFinder + useAsFilter : 0 + StrawHitCollectionLabel : TTmakePHUCC + StrawHitFlagCollectionLabel : "TTflagBkgHitsUCC:ComboHits" + TimeClusterCollectionLabel : TTCalTimePeakFinderUCC + + # HelixFinderAlg configuraton (pattern recognition) + HelixFinderAlg : { @table::CprTrigger.TTHelixFinderAlg } + } } } @@ -144,18 +167,25 @@ CprTrigger: { @table::CprTrigger producers : { @table::CprTrigger.producers TTCalSeedFitDem : { @table::CprTrigger.producers.TTCalSeedFit -# SeedCollection : "TTCalHelixFinderDe:Positive" SeedCollection : "TTCalHelixMergerDeM" } + TTCalSeedFitUCCDem : { @table::CprTrigger.producers.TTCalSeedFit + ComboHitCollection : TTmakeSHUCC + SeedCollection : "TTCalHelixUCCMergerDeM" + } TTCalSeedFitDmm : { @table::CprTrigger.producers.TTCalSeedFit fitparticle : @local::Particle.muminus SeedCollection : "TTCalHelixFinderDm:Positive" } TTCalSeedFitDep : { @table::CprTrigger.producers.TTCalSeedFit fitparticle : @local::Particle.eplus -# SeedCollection : "TTCalHelixFinderDe:Negative" SeedCollection : "TTCalHelixMergerDeP" } + TTCalSeedFitUCCDep : { @table::CprTrigger.producers.TTCalSeedFit + ComboHitCollection : TTmakeSHUCC + fitparticle : @local::Particle.eplus + SeedCollection : "TTCalHelixUCCMergerDeP" + } TTCalSeedFitDmp : { @table::CprTrigger.producers.TTCalSeedFit fitparticle : @local::Particle.muplus SeedCollection : "TTCalHelixFinderDm:Negative" @@ -173,9 +203,8 @@ CprTrigger: { @table::CprTrigger filters : { @table::CprTrigger.filters TTCalHelixFinderDe : { @table::CprTrigger.filters.TTCalHelixFinder } + TTCalHelixFinderUCCDe : { @table::CprTrigger.filters.TTCalHelixFinderUCC } TTCalHelixFinderDm : { @table::CprTrigger.filters.TTCalHelixFinder fitparticle: @local::Particle.muminus } - # TTCalHelixFinderDep : { @table::CprTrigger.filters.TTCalHelixFinder fitparticle: @local::Particle.eplus } - # TTCalHelixFinderDmp : { @table::CprTrigger.filters.TTCalHelixFinder fitparticle: @local::Particle.muplus } } sequences : { diff --git a/CalPatRec/inc/CalHelixFinderAlg.hh b/CalPatRec/inc/CalHelixFinderAlg.hh index 8192cd403a..cf6438df5f 100644 --- a/CalPatRec/inc/CalHelixFinderAlg.hh +++ b/CalPatRec/inc/CalHelixFinderAlg.hh @@ -103,6 +103,7 @@ namespace mu2e { // the dfdz value in the pattern-recognition stage float _mpDfDz; float _absMpDfDz; // absolute value of most probable expected dphi/dz + int _initDfDz; float _dzOverHelPitchCut; //cut on the ratio between the Dz and the predicted helix-pitch used in ::findDfDz(...) float _maxDfDz; float _minDfDz; @@ -121,7 +122,7 @@ namespace mu2e { // squared distance requed bewtween a straw hit and its predicted // position used in the patter recognition procedure float _distPatRec; - int _minDeltaNShPatRec; //minimum number of additional StrawHits required in + int _minDeltaNShPatRec; //minimum number of additional StrawHits required in //the findTrack function to set the new Helix float _mindist; // minimum distance between points used in circle initialization diff --git a/CalPatRec/src/CalHelixFinderAlg.cc b/CalPatRec/src/CalHelixFinderAlg.cc index 3997592aa6..269eea0230 100644 --- a/CalPatRec/src/CalHelixFinderAlg.cc +++ b/CalPatRec/src/CalHelixFinderAlg.cc @@ -148,26 +148,27 @@ namespace mu2e { _debug2 (pset.get ("debugLevel2" )), _hsel (pset.get>("HelixFitSelectionBits" )), _bkgsel (pset.get>("BackgroundSelectionBits")), - _maxHitEnergy (pset.get ("maxElectronHitEnergy" )), + _maxHitEnergy (pset.get ("maxElectronHitEnergy" )), _minNHits (pset.get ("minNHit" )), - _absMpDfDz (pset.get ("mostProbableDfDz" )), - _dzOverHelPitchCut (pset.get ("dzOverHelPitchCut" )), - _maxDfDz (pset.get ("maxDfDz" )), //0.01)),2018-10-11 gianipez test - _minDfDz (pset.get ("minDfDz" )), - _sigmaPhi (pset.get ("sigmaPhi" )), - _weightXY (pset.get ("weightXY" )), + _absMpDfDz (pset.get ("mostProbableDfDz" )), + _initDfDz (pset.get ("initDfDz" )), + _dzOverHelPitchCut (pset.get ("dzOverHelPitchCut" )), + _maxDfDz (pset.get ("maxDfDz" )), //0.01)),2018-10-11 gianipez test + _minDfDz (pset.get ("minDfDz" )), + _sigmaPhi (pset.get ("sigmaPhi" )), + _weightXY (pset.get ("weightXY" )), _targetcon (pset.get ("targetconsistent" )), - _weightZPhi (pset.get ("weightZPhi" )), - _weight3D (pset.get ("weight3D" )), - _maxXDPhi (pset.get ("maxXDPhi" )), - _maxPanelToHelixDPhi(pset.get ("maxPanelToHelixDPhi" )), // 75 degrees - _distPatRec (pset.get ("distPatRec" )), - _minDeltaNShPatRec (pset.get ("minDeltaNShPatRec" )), - _mindist (pset.get ("mindist" )), - _pmin (pset.get ("minP" )), - _pmax (pset.get ("maxP" )), - _tdmin (pset.get ("minAbsTanDip" )), - _tdmax (pset.get ("maxAbsTanDip" )), + _weightZPhi (pset.get ("weightZPhi" )), + _weight3D (pset.get ("weight3D" )), + _maxXDPhi (pset.get ("maxXDPhi" )), + _maxPanelToHelixDPhi(pset.get ("maxPanelToHelixDPhi" )), // 75 degrees + _distPatRec (pset.get ("distPatRec" )), + _minDeltaNShPatRec (pset.get ("minDeltaNShPatRec" )), + _mindist (pset.get ("mindist" )), + _pmin (pset.get ("minP" )), + _pmax (pset.get ("maxP" )), + _tdmin (pset.get ("minAbsTanDip" )), + _tdmax (pset.get ("maxAbsTanDip" )), _xyweights (pset.get ("xyWeights" )), _zweights (pset.get ("zWeights" )), _filter (pset.get ("filter" )), @@ -224,7 +225,8 @@ namespace mu2e { fCaloTime = cl->time(); fCaloX = tpos.x(); fCaloY = tpos.y(); - fCaloZ = tpos.z(); + float offset = _calorimeter->caloInfo().getDouble("diskCaseZLength")/2. + (_calorimeter->caloInfo().getDouble("BPPipeZOffset") + _calorimeter->caloInfo().getDouble("BPHoleZLength")+ _calorimeter->caloInfo().getDouble("FEEZLength"))/2. - _calorimeter->caloInfo().getDouble("FPCarbonZLength") - _calorimeter->caloInfo().getDouble("FPFoamZLength"); + fCaloZ = tpos.z()-offset; } @@ -725,7 +727,8 @@ namespace mu2e { float phi, phi_ref(-1e10), z_ref, dphi, dz; - float hist[20], minX(0), maxX(0.01), stepX(0.0005), nbinsX(20); // make it 20 bins + // float hist[20], minX(0), maxX(0.01), stepX(0.0005), nbinsX(20); // make it 20 bins + float hist[50], minX(0), maxX(0.025), stepX(0.0005), nbinsX(50); // make it 20 bins: gianipez test 2019-09-23 XYZVec* center = &Helix._center; XYZVec pos_ref; @@ -756,8 +759,8 @@ namespace mu2e { //----------------------------------------------------------------------------- // calorimeter cluster - point number nstations+1 //----------------------------------------------------------------------------- - float zCl = fCaloZ; - float phiCl = polyAtan2(fCaloY-center->y(),fCaloX-center->x()); + float zCl = fCaloZ; + float phiCl = polyAtan2(fCaloY-center->y(),fCaloX-center->x()); if (phiCl < 0) phiCl += 2*M_PI; phiVec[nstations] = phiCl; @@ -1584,8 +1587,9 @@ namespace mu2e { //----------------------------------------------------------------------------- int good_hit = flag.hasAllProperties(_hsel ); int bkg_hit = flag.hasAnyProperty (_bkgsel); - int used_hit = flag.hasAnyProperty (StrawHitFlag::calosel); - if (good_hit && (! bkg_hit) && (! used_hit)) { + // int used_hit = flag.hasAnyProperty (StrawHitFlag::calosel); + // if (good_hit && (! bkg_hit) && (! used_hit)) { + if (good_hit && (! bkg_hit) ) { const ComboHit& ch = Helix.chcol()->at(loc); if (ch.energyDep() > _maxHitEnergy) continue; @@ -3027,6 +3031,16 @@ namespace mu2e { calculateTrackParameters(p1,p2,p3,center,radius,phi0,dfdz); +//-------------------------------------------------------------------------------- +// gianipez test 2019-09-28 +// let's try to evaluate the dfdz NOW! +//-------------------------------------------------------------------------------- + if (_initDfDz == 1){ + int res = findDfDz(Helix, SeedIndex); + if (res ==1 ) { + dfdz = _hdfdz; + } + } float tollMax = fabs(2.*M_PI/dfdz); //------------------------------------------------------------------------------ // helix parameters, in particular, phi0, are defined at Z=p2.z() diff --git a/TrkFilters/fcl/prolog_trigger.fcl b/TrkFilters/fcl/prolog_trigger.fcl index d4c0e07fde..44649b2168 100644 --- a/TrkFilters/fcl/prolog_trigger.fcl +++ b/TrkFilters/fcl/prolog_trigger.fcl @@ -9,7 +9,7 @@ BEGIN_PROLOG # filter to require a minimum # of hits in a time slot TrkFilters : { filters : { - # filters for track hit clustering + # filters for the TimeClustering results tprSeedDeMTCFilter : { module_type : TimeClusterFilter timeClusterCollection : "TTtimeClusterFinder" @@ -32,6 +32,28 @@ TrkFilters : { minNHits : 1 #just check if there are TimeClusters triggerPath : "cprSeedDeP" } + tprSeedUCCDeMTCFilter : { + module_type : TimeClusterFilter + timeClusterCollection : "TTtimeClusterFinderUCC" + triggerPath : "tprSeedUCCDeM" + } + tprSeedUCCDePTCFilter : { + module_type : TimeClusterFilter + timeClusterCollection : "TTtimeClusterFinderUCC" + triggerPath : "tprSeedUCCDeP" + } + cprSeedUCCDeMTCFilter : { + module_type : TimeClusterFilter + timeClusterCollection : "TTCalTimePeakFinderUCC" + minNHits : 1 #just check if there are TimeClusters + triggerPath : "cprSeedUCCDeM" + } + cprSeedUCCDePTCFilter : { + module_type : TimeClusterFilter + timeClusterCollection : "TTCalTimePeakFinderUCC" + minNHits : 1 #just check if there are TimeClusters + triggerPath : "cprSeedUCCDeP" + } tprHelixIPADeMTCFilter : { module_type : TimeClusterFilter timeClusterCollection : "TTtimeClusterFinder" @@ -56,24 +78,6 @@ TrkFilters : { maxAbsLambda : 300. triggerPath : "tprSeedDeM" } - tprHelixIPADeMHSFilter : { - module_type : HelixFilter -# helixSeedCollection : "TThelixFinder:Positive" - helixSeedCollection : "TTHelixMergerDeM" - helicity : 1 - minNStrawHits : 15 - minMomentum : 30. - maxMomentum : 70. - minPt : 0 - maxChi2XY : 8. - maxChi2PhiZ : 8. - maxD0 : 500. - minD0 : 200. - minAbsLambda : 40. - maxAbsLambda : 80. - triggerPath : "tprHelixIPADeM" - } - tprSeedDePHSFilter : { module_type : HelixFilter # helixSeedCollection : "TThelixFinder:Negative" @@ -126,6 +130,94 @@ TrkFilters : { maxAbsLambda : 330. triggerPath : "cprSeedDeP" } + + # filters that uses the combohit collection filtered with the calorimeter info + tprSeedUCCDeMHSFilter : { + module_type : HelixFilter + helixSeedCollection : "TTHelixUCCMergerDeM" + helicity : 1 + minNStrawHits : 15 + minMomentum : 70. + maxMomentum : 120. + minPt : 0 + maxChi2XY : 8. + maxChi2PhiZ : 8. + maxD0 : 300. + minD0 : -150. + minAbsLambda : 140. + maxAbsLambda : 300. + triggerPath : "tprSeedUCCDeM" + } + tprSeedUCCDePHSFilter : { + module_type : HelixFilter + helixSeedCollection : "TTHelixUCCMergerDeP" + helicity : -1 + minNStrawHits : 15 + minMomentum : 60. + maxMomentum : 140. + minPt : 0 + maxChi2XY : 8. + maxChi2PhiZ : 8. + maxD0 : 300. + minD0 : -150. + minAbsLambda : 100. + maxAbsLambda : 330. + triggerPath : "tprSeedUCCDeP" + } + + cprSeedUCCDeMHSFilter : { + module_type : HelixFilter + helixSeedCollection : "TTCalHelixUCCMergerDeM" + helicity : 1 + minNStrawHits : 15 + minMomentum : 80. + maxMomentum : 140. + minPt : 0 + maxChi2XY : 5. + maxChi2PhiZ : 5. + maxD0 : 350. + minD0 : -350. + minAbsLambda : 140. + maxAbsLambda : 330. + triggerPath : "cprSeedUCCDeM" + } + cprSeedUCCDePHSFilter : { + module_type : HelixFilter + helixSeedCollection : "TTCalHelixUCCMergerDeP" + helicity : -1 + minNStrawHits : 15 + minMomentum : 60. + maxMomentum : 140. + minPt : 0 + maxChi2XY : 5. + maxChi2PhiZ : 5. + maxD0 : 300. + minD0 : -150. + minAbsLambda : 100. + maxAbsLambda : 330. + triggerPath : "cprSeedUCCDeP" + } + + + tprHelixIPADeMHSFilter : { + module_type : HelixFilter +# helixSeedCollection : "TThelixFinder:Positive" + helixSeedCollection : "TTHelixMergerDeM" + helicity : 1 + minNStrawHits : 15 + minMomentum : 30. + maxMomentum : 70. + minPt : 0 + maxChi2XY : 8. + maxChi2PhiZ : 8. + maxD0 : 500. + minD0 : 200. + minAbsLambda : 40. + maxAbsLambda : 80. + triggerPath : "tprHelixIPADeM" + } + + # filters for CE candidates (downstream eminus near 100 MeV/c) tprSeedDeMTSFilter : { module_type : SeedFilter @@ -156,6 +248,36 @@ TrkFilters : { maxD0 : 200. triggerPath : "cprSeedDeM" } + + tprSeedUCCDeMTSFilter : { + module_type : SeedFilter + kalSeedCollection : "TTKSFUCCDeM" + fitparticle : @local::Particle.eminus + fitdirection : @local::FitDir.downstream + minNStrawHits : 15 + minMomentum : 80. + maxMomentum : 200. #don't apply cut + maxChi2DOF : 20. #don't apply cut + maxMomErr : 10. #don't apply cut + minD0 : -200. + maxD0 : 200. + triggerPath : "tprSeedUCCDeM" + } + + cprSeedUCCDeMTSFilter : { + module_type : SeedFilter + kalSeedCollection : "TTCalSeedFitUCCDem" + fitparticle : @local::Particle.eminus + fitdirection : @local::FitDir.downstream + minNStrawHits : 15 + minMomentum : 80. + maxMomentum : 200. #don't apply cut + maxChi2DOF : 20. #don't apply cut + maxMomErr : 10. #don't apply cut + minD0 : -200. + maxD0 : 200. + triggerPath : "cprSeedUCCDeM" + } tprSeedDeMKFFilter : { module_type : SeedFilter kalSeedCollection : "TTKFFDeM" @@ -192,6 +314,36 @@ TrkFilters : { triggerPath : "cprSeedDeP" } + tprSeedUCCDePTSFilter : { + module_type : SeedFilter + kalSeedCollection : "TTKSFUCCDeP" + fitparticle : @local::Particle.eplus + fitdirection : @local::FitDir.downstream + minNStrawHits : 15 + minMomentum : 70. + maxMomentum : 110. #don't apply cut + maxChi2DOF : 20. #don't apply cut + maxMomErr : 10. #don't apply cut + minD0 : -200. + maxD0 : 200. + triggerPath : "tprSeedUCCDeP" + } + + cprSeedUCCDePTSFilter : { + module_type : SeedFilter + kalSeedCollection : "TTCalSeedFitUCCDep" + fitparticle : @local::Particle.eplus + fitdirection : @local::FitDir.downstream + minNStrawHits : 15 + minMomentum : 70. + maxMomentum : 110. #don't apply cut + maxChi2DOF : 20. #don't apply cut + maxMomErr : 10. #don't apply cut + minD0 : -200. + maxD0 : 200. + triggerPath : "cprSeedUCCDeP" + } + tprSeedDePKFFilter : { module_type : SeedFilter kalSeedCollection : "TTKFFDeP" @@ -327,6 +479,60 @@ TrkFilters : { triggerPath : "cprSeedDeP" } + + tprSeedUCCDeMSDCountFilter : { + module_type : DigiFilter + strawDigiCollection : makeSD + caloDigiCollection : notUsed + useStrawDigi : true + useCaloDigi : false + minNStrawDigi : 10 + maxNStrawDigi : 10000 + minNCaloDigi : -1 + maxNCaloDigi : -1 + maxCaloEnergy : -1 + triggerPath : "tprSeedUCCDeM" + } + tprSeedUCCDePSDCountFilter : { + module_type : DigiFilter + strawDigiCollection : makeSD + caloDigiCollection : notUsed + useStrawDigi : true + useCaloDigi : false + minNStrawDigi : 10 + maxNStrawDigi : 10000 + minNCaloDigi : -1 + maxNCaloDigi : -1 + maxCaloEnergy : -1 + triggerPath : "tprSeedUCCDeP" + } + + cprSeedUCCDeMSDCountFilter : { + module_type : DigiFilter + strawDigiCollection : makeSD + caloDigiCollection : notUsed + useStrawDigi : true + useCaloDigi : false + minNStrawDigi : 10 + maxNStrawDigi : 10000 + minNCaloDigi : -1 + maxNCaloDigi : -1 + maxCaloEnergy : -1 + triggerPath : "cprSeedUCCDeM" + } + cprSeedUCCDePSDCountFilter : { + module_type : DigiFilter + strawDigiCollection : makeSD + caloDigiCollection : notUsed + useStrawDigi : true + useCaloDigi : false + minNStrawDigi : 10 + maxNStrawDigi : 10000 + minNCaloDigi : -1 + maxNCaloDigi : -1 + maxCaloEnergy : -1 + triggerPath : "cprSeedUCCDeP" + } # Prescaling filters #follow the prescaler filters for Tpr Track sequences @@ -458,6 +664,66 @@ TrkFilters : { triggerPath : "cprSeedDeP" triggerFlag : ["PrescaleGoodEvents"] } + + #prescaler for the sequences that use the combohit collection filtered with the calorimeter cluster + tprSeedUCCDeMEventPrescale: { + module_type : PrescaleEvent + nPrescale : 1 + triggerPath : "tprSeedUCCDeM" + triggerFlag : ["PrescaleRandom"] + } + + tprSeedUCCDeMPrescale : { + module_type : PrescaleEvent + nPrescale : 1 + useFilteredEvents : true + triggerPath : "tprSeedUCCDeM" + triggerFlag : ["PrescaleGoodEvents"] + } + + tprSeedUCCDePEventPrescale: { + module_type : PrescaleEvent + nPrescale : 1 + triggerPath : "tprSeedUCCDeP" + triggerFlag : ["PrescaleRandom"] + } + tprSeedUCCDePPrescale : { + module_type : PrescaleEvent + nPrescale : 1 + useFilteredEvents : true + triggerPath : "tprSeedUCCDeP" + triggerFlag : ["PrescaleGoodEvents"] + } + + #follow the prescaler filters for Tpr Track sequences + cprSeedUCCDeMEventPrescale: { + module_type : PrescaleEvent + nPrescale : 1 + triggerPath : "cprSeedUCCDeM" + triggerFlag : ["PrescaleRandom"] + } + + cprSeedUCCDeMPrescale : { + module_type : PrescaleEvent + nPrescale : 1 + useFilteredEvents : true + triggerPath : "cprSeedUCCDeM" + triggerFlag : ["PrescaleGoodEvents"] + } + + cprSeedUCCDePEventPrescale: { + module_type : PrescaleEvent + nPrescale : 1 + triggerPath : "cprSeedUCCDeP" + triggerFlag : ["PrescaleRandom"] + } + cprSeedUCCDePPrescale : { + module_type : PrescaleEvent + nPrescale : 1 + useFilteredEvents : true + triggerPath : "cprSeedUCCDeP" + triggerFlag : ["PrescaleGoodEvents"] + } } @@ -482,6 +748,15 @@ TrkFilters : { tprSeedDeP : [ tprSeedDePEventPrescale, tprSeedDePSDCountFilter, @sequence::CaloClusterTrigger.Reco, @sequence::TrkHitRecoTrigger.sequences.TTprepareHits, TTtimeClusterFinder, tprSeedDePTCFilter, TThelixFinder,TTHelixMergerDeP, tprSeedDePHSFilter, TTKSFDeP, tprSeedDePTSFilter, tprSeedDePPrescale ] + + # sequences that use a collection of combohits filtered using the calorimeter cluster info + tprSeedUCCDeM : [ tprSeedUCCDeMEventPrescale, tprSeedUCCDeMSDCountFilter, @sequence::CaloClusterTrigger.Reco, + @sequence::TrkHitRecoTrigger.sequences.TTprepareHitsUCC, + TTtimeClusterFinderUCC, tprSeedUCCDeMTCFilter, TThelixFinderUCC, TTHelixUCCMergerDeM, tprSeedUCCDeMHSFilter, TTKSFUCCDeM, tprSeedUCCDeMTSFilter, tprSeedUCCDeMPrescale ] + tprSeedUCCDeP : [ tprSeedUCCDePEventPrescale, tprSeedUCCDePSDCountFilter, @sequence::CaloClusterTrigger.Reco, + @sequence::TrkHitRecoTrigger.sequences.TTprepareHitsUCC, + TTtimeClusterFinderUCC, tprSeedUCCDePTCFilter, TThelixFinderUCC, TTHelixUCCMergerDeP, tprSeedUCCDePHSFilter, TTKSFUCCDeP, tprSeedUCCDePTSFilter, tprSeedUCCDePPrescale ] + # calibration with DIO-Michel form Inner Proton Absorber tprHelixIPADeM : [ tprHelixIPADeMEventPrescale, tprHelixIPADeMSDCountFilter, @sequence::CaloClusterTrigger.Reco, @sequence::TrkHitRecoTrigger.sequences.TTprepareHits, @@ -496,6 +771,15 @@ TrkFilters : { @sequence::TrkHitRecoTrigger.sequences.TTprepareHits, TTCalTimePeakFinder, cprSeedDePTCFilter, TTCalHelixFinderDe, TTCalHelixMergerDeP, cprSeedDePHSFilter, TTCalSeedFitDep, cprSeedDePTSFilter, cprSeedDePPrescale ] + + cprSeedUCCDeM : [ cprSeedUCCDeMEventPrescale, cprSeedUCCDeMSDCountFilter, @sequence::CaloClusterTrigger.Reco, + @sequence::TrkHitRecoTrigger.sequences.TTprepareHitsUCC, + TTCalTimePeakFinderUCC, cprSeedUCCDeMTCFilter, TTCalHelixFinderUCCDe, TTCalHelixUCCMergerDeM, cprSeedUCCDeMHSFilter, + TTCalSeedFitUCCDem, cprSeedUCCDeMTSFilter, cprSeedUCCDeMPrescale ] + cprSeedUCCDeP : [ cprSeedUCCDePEventPrescale, cprSeedUCCDePSDCountFilter, @sequence::CaloClusterTrigger.Reco, + @sequence::TrkHitRecoTrigger.sequences.TTprepareHitsUCC, + TTCalTimePeakFinderUCC, cprSeedUCCDePTCFilter, TTCalHelixFinderUCCDe, TTCalHelixUCCMergerDeP, cprSeedUCCDePHSFilter, + TTCalSeedFitUCCDep, cprSeedUCCDePTSFilter, cprSeedUCCDePPrescale ] #fast tracking sequences that uses the calorimeter-time selection to reduce the number of TimeClusters and also the number of hits processed by the Delta-ray #removal algorithm diff --git a/TrkHitReco/fcl/prolog_trigger.fcl b/TrkHitReco/fcl/prolog_trigger.fcl index 4400b4cbd8..a316965e2e 100644 --- a/TrkHitReco/fcl/prolog_trigger.fcl +++ b/TrkHitReco/fcl/prolog_trigger.fcl @@ -43,6 +43,20 @@ TTmakePH : { TestRadius : true ComboHitCollection : "TTmakeSH" } +TTmakeSHUCC : { + module_type : StrawHitReco + UseCalorimeter : true + FilterHits : true + WriteStrawHitCollection : false + EventWindowMarkerLabel : "EWMProducer" +} +# combine hits in a panel +TTmakePHUCC : { + module_type : CombineStrawHits + TestFlag : false + TestRadius : true + ComboHitCollection : "TTmakeSHUCC" +} # stereo version: defer the radius test TTSmakePH : { @table::TTmakePH @@ -85,15 +99,21 @@ TrkHitRecoTrigger : { producers : { TTmakeSH : { @table::TTmakeSH } TTmakePH : { @table::TTmakePH } + TTmakeSHUCC : { @table::TTmakeSHUCC } + TTmakePHUCC : { @table::TTmakePHUCC } TTmakeSTH : { @table::TTmakeSTH } TTflagBkgHits : { @table::TTflagBkgHits } + TTflagBkgHitsUCC : { @table::TTflagBkgHits + ComboHitCollection : TTmakePHUCC + } } # sequences # production sequence to prepare hits for tracking sequences: { - TTprepareHits : [ TTmakeSH, TTmakePH,TTflagBkgHits ] - TTmakefastHits : [ TTmakeSH, TTmakePH ] - TTSprepareHits : [ TTmakeSH, TTSmakePH, TTmakeSTH ,TTSflagBkgHits ] + TTprepareHits : [ TTmakeSH, TTmakePH,TTflagBkgHits ] + TTprepareHitsUCC : [ TTmakeSHUCC, TTmakePHUCC, TTflagBkgHitsUCC ] + TTmakefastHits : [ TTmakeSH, TTmakePH ] + TTSprepareHits : [ TTmakeSH, TTSmakePH, TTmakeSTH ,TTSflagBkgHits ] } } diff --git a/TrkPatRec/fcl/prolog_trigger.fcl b/TrkPatRec/fcl/prolog_trigger.fcl index a6427d06d7..25a4365810 100644 --- a/TrkPatRec/fcl/prolog_trigger.fcl +++ b/TrkPatRec/fcl/prolog_trigger.fcl @@ -151,19 +151,38 @@ TprTrigger : { TTtimeClusterFinder : @local::TTtimeClusterFinder + TTtimeClusterFinderUCC : { @table::TTtimeClusterFinder + ComboHitCollection : "TTflagBkgHitsUCC" + } TThelixFinder : @local::TTrobustHelixFinder + TThelixFinderUCC : { @table::TTrobustHelixFinder + ComboHitCollection : "TTflagBkgHitsUCC" + TimeClusterCollection : "TTtimeClusterFinderUCC" + } TTfastHelixFinder : { @table::TTrobustHelixFinder ComboHitCollection : "TTDeltaFinder" TimeClusterCollection : "TTfastTimeClusterFinder" } TTKSFDeM : @local::TTKSFDeM TTKSFDeP : @local::TTKSFDeP + + + TTKSFUCCDeM : { @table::TTKSFDeM + ComboHitCollection : "TTmakeSHUCC" + SeedCollection : "TThelixFinderUCC:Positive" + } + TTKSFUCCDeP : { @table::TTKSFDeP + ComboHitCollection : "TTmakeSHUCC" + SeedCollection : "TThelixFinderUCC:Negative" + } + TTFKSFDeM : { @table::TTKSFDeM SeedCollection : "TTfastHelixFinder:Positive" } TTFKSFDeP : { @table::TTKSFDeP SeedCollection : "TTfastHelixFinder:Negative" } + TTKFFDeM : @local::TTKFFDeM TTKFFDeP : @local::TTKFFDeP } diff --git a/TrkReco/fcl/prolog_trigger.fcl b/TrkReco/fcl/prolog_trigger.fcl index 986cb6ae1b..def95d0e3a 100644 --- a/TrkReco/fcl/prolog_trigger.fcl +++ b/TrkReco/fcl/prolog_trigger.fcl @@ -15,6 +15,16 @@ TrkRecoTrigger : { HelixFinders : [ "TThelixFinder:Negative" ] } + TTHelixUCCMergerDeM : { + module_type : MergeHelices + HelixFinders : [ "TThelixFinderUCC:Positive" ] + } + + TTHelixUCCMergerDeP : { + module_type : MergeHelices + HelixFinders : [ "TThelixFinderUCC:Negative" ] + } + TTCalHelixMergerDeM : { module_type : MergeHelices HelixFinders : [ "TTCalHelixFinderDe:Positive" ] @@ -23,6 +33,16 @@ TrkRecoTrigger : { TTCalHelixMergerDeP : { module_type : MergeHelices HelixFinders : [ "TTCalHelixFinderDe:Negative" ] + } + + TTCalHelixUCCMergerDeM : { + module_type : MergeHelices + HelixFinders : [ "TTCalHelixFinderUCCDe:Positive" ] + } + + TTCalHelixUCCMergerDeP : { + module_type : MergeHelices + HelixFinders : [ "TTCalHelixFinderUCCDe:Negative" ] } } }