Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CalPatRec/fcl/prolog.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,15 @@ 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
minDfDz : 0.002
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
Expand Down
37 changes: 33 additions & 4 deletions CalPatRec/fcl/prolog_trigger.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 }
}
}
}

Expand All @@ -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"
Expand All @@ -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 : {
Expand Down
3 changes: 2 additions & 1 deletion CalPatRec/inc/CalHelixFinderAlg.hh
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down
62 changes: 38 additions & 24 deletions CalPatRec/src/CalHelixFinderAlg.cc
Original file line number Diff line number Diff line change
Expand Up @@ -148,26 +148,27 @@ namespace mu2e {
_debug2 (pset.get<int> ("debugLevel2" )),
_hsel (pset.get<vector<string>>("HelixFitSelectionBits" )),
_bkgsel (pset.get<vector<string>>("BackgroundSelectionBits")),
_maxHitEnergy (pset.get<float> ("maxElectronHitEnergy" )),
_maxHitEnergy (pset.get<float> ("maxElectronHitEnergy" )),
_minNHits (pset.get<int> ("minNHit" )),
_absMpDfDz (pset.get<float> ("mostProbableDfDz" )),
_dzOverHelPitchCut (pset.get<float> ("dzOverHelPitchCut" )),
_maxDfDz (pset.get<float> ("maxDfDz" )), //0.01)),2018-10-11 gianipez test
_minDfDz (pset.get<float> ("minDfDz" )),
_sigmaPhi (pset.get<float> ("sigmaPhi" )),
_weightXY (pset.get<float> ("weightXY" )),
_absMpDfDz (pset.get<float> ("mostProbableDfDz" )),
_initDfDz (pset.get<int> ("initDfDz" )),
_dzOverHelPitchCut (pset.get<float> ("dzOverHelPitchCut" )),
_maxDfDz (pset.get<float> ("maxDfDz" )), //0.01)),2018-10-11 gianipez test
_minDfDz (pset.get<float> ("minDfDz" )),
_sigmaPhi (pset.get<float> ("sigmaPhi" )),
_weightXY (pset.get<float> ("weightXY" )),
_targetcon (pset.get<int> ("targetconsistent" )),
_weightZPhi (pset.get<float> ("weightZPhi" )),
_weight3D (pset.get<float> ("weight3D" )),
_maxXDPhi (pset.get<float> ("maxXDPhi" )),
_maxPanelToHelixDPhi(pset.get<float> ("maxPanelToHelixDPhi" )), // 75 degrees
_distPatRec (pset.get<float> ("distPatRec" )),
_minDeltaNShPatRec (pset.get<float> ("minDeltaNShPatRec" )),
_mindist (pset.get<float> ("mindist" )),
_pmin (pset.get<float> ("minP" )),
_pmax (pset.get<float> ("maxP" )),
_tdmin (pset.get<float> ("minAbsTanDip" )),
_tdmax (pset.get<float> ("maxAbsTanDip" )),
_weightZPhi (pset.get<float> ("weightZPhi" )),
_weight3D (pset.get<float> ("weight3D" )),
_maxXDPhi (pset.get<float> ("maxXDPhi" )),
_maxPanelToHelixDPhi(pset.get<float> ("maxPanelToHelixDPhi" )), // 75 degrees
_distPatRec (pset.get<float> ("distPatRec" )),
_minDeltaNShPatRec (pset.get<float> ("minDeltaNShPatRec" )),
_mindist (pset.get<float> ("mindist" )),
_pmin (pset.get<float> ("minP" )),
_pmax (pset.get<float> ("maxP" )),
_tdmin (pset.get<float> ("minAbsTanDip" )),
_tdmax (pset.get<float> ("maxAbsTanDip" )),
_xyweights (pset.get<bool> ("xyWeights" )),
_zweights (pset.get<bool> ("zWeights" )),
_filter (pset.get<bool> ("filter" )),
Expand Down Expand Up @@ -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;
}


Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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()
Expand Down
Loading