35 desc.add<
bool>(
"enableGE0",
true);
36 desc.add<
bool>(
"enableGE12",
false);
41 ge0AlgoConfigDesc.
add<
bool>(
"allowWideSegments",
true);
42 ge0AlgoConfigDesc.add<
bool>(
"doCollisions",
true);
43 ge0AlgoConfigDesc.add<
double>(
"maxChi2Additional", 100);
44 ge0AlgoConfigDesc.add<
double>(
"maxChi2Prune", 50);
45 ge0AlgoConfigDesc.add<
double>(
"maxChi2GoodSeg", 50);
46 ge0AlgoConfigDesc.add<
double>(
"maxPhiSeeds", 0.001096605744)->
setComment(
"Assuming 384 strips");
47 ge0AlgoConfigDesc.add<
double>(
"maxPhiAdditional", 0.001096605744)->setComment(
"Assuming 384 strips");
48 ge0AlgoConfigDesc.add<
double>(
"maxETASeeds", 0.1)->setComment(
"Assuming 8 eta partitions");
49 ge0AlgoConfigDesc.add<
double>(
"maxTOFDiff", 25);
50 ge0AlgoConfigDesc.add<
bool>(
"requireCentralBX",
true)
51 ->setComment(
"require that a majority of hits come from central BX");
52 ge0AlgoConfigDesc.add<
unsigned int>(
"minNumberOfHits", 4);
53 ge0AlgoConfigDesc.add<
unsigned int>(
"maxNumberOfHits", 300);
54 ge0AlgoConfigDesc.add<
unsigned int>(
"maxNumberOfHitsPerLayer", 100);
59 recAlgoConfigDesc.add<
unsigned int>(
"minHitsPerSegment", 2);
60 recAlgoConfigDesc.add<
bool>(
"preClustering",
true)
61 ->setComment(
"False => all hits in chamber are given to the fitter");
62 recAlgoConfigDesc.add<
double>(
"dXclusBoxMax", 1)->setComment(
"Clstr Hit dPhi");
63 recAlgoConfigDesc.add<
double>(
"dYclusBoxMax", 5)->setComment(
"Clstr Hit dEta");
64 recAlgoConfigDesc.add<
bool>(
"preClusteringUseChaining",
true)
65 ->setComment(
"True ==> use Chaining() , False ==> use Clustering() Fnct");
66 recAlgoConfigDesc.add<
double>(
"dPhiChainBoxMax", .02)->setComment(
"Chain Hit dPhi");
67 recAlgoConfigDesc.add<
double>(
"dEtaChainBoxMax", .05)->setComment(
"Chain Hit dEta");
68 recAlgoConfigDesc.add<
int>(
"maxRecHitsInCluster", 4)->setComment(
"Does 4 make sense here?");
69 recAlgoConfigDesc.add<
bool>(
"clusterOnlySameBXRecHits",
true)
70 ->setComment(
"only working for (preClustering && preClusteringUseChaining)");
75 edm::LogVerbatim(
"GEMSegmentBuilder") <<
"[GEMSegmentBuilder::build] Total number of rechits in this event: " 81 std::map<uint32_t, std::vector<const GEMRecHit*> > ensembleRH;
98 ensembleRH[
id.rawId()].push_back(&(*it2));
102 for (
auto enIt = ensembleRH.begin(); enIt != ensembleRH.end(); ++enIt) {
104 std::map<uint32_t, const GEMEtaPartition*> ens;
108 for (
auto rechit = enIt->second.begin(); rechit != enIt->second.end(); ++rechit) {
113 #ifdef EDM_ML_DEBUG // have lines below only compiled when in debug mode 115 <<
"[GEMSegmentBuilder::build] -----------------------------------------------------------------------------";
116 LogTrace(
"GEMSegmentBuilder") <<
"[GEMSegmentBuilder::build] found " <<
gemRecHits.size()
117 <<
" rechits in GEM Super Chamber " <<
chamber->id() <<
" ::";
119 auto gemid = (*rh)->gemId();
121 auto rhLP = (*rh)->localPosition();
125 LogTrace(
"GEMSegmentBuilder") <<
"[RecHit :: Loc x = " << std::showpos << std::setw(9)
127 <<
" BX = " << (*rh)->BunchX() <<
" -- " << gemid.rawId() <<
" = " << gemid <<
" ]";
134 #ifdef EDM_ML_DEBUG // have lines below only compiled when in debug mode 135 LogTrace(
"GEMSegmentBuilder") <<
"[GEMSegmentBuilder::build] run the segment reconstruction algorithm now";
139 std::vector<GEMSegment> segv;
144 #ifdef EDM_ML_DEBUG // have lines below only compiled when in debug mode 145 LogTrace(
"GEMSegmentBuilder") <<
"[GEMSegmentBuilder::build] found " << segv.size();
150 #ifdef EDM_ML_DEBUG // have lines below only compiled when in debug mode 151 LogTrace(
"GEMSegmentBuilder") <<
"[GEMSegmentBuilder::build] found " << segv.size()
152 <<
" segments in GEM Super Chamber " << mid;
154 <<
"[GEMSegmentBuilder::build] -----------------------------------------------------------------------------";
158 oc.put(mid, segv.begin(), segv.end());
static void fillDescription(edm::ParameterSetDescription &descriptions)
Log< level::Info, true > LogVerbatim
void setComment(std::string const &value)
const GEMEtaPartition * etaPartition(GEMDetId id) const
Return a GEMEtaPartition given its id.
T getParameter(std::string const &) const
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
const GEMGeometry * geom_
void build(const GEMRecHitCollection *rechits, GEMSegmentCollection &oc)
std::pair< const GEMSuperChamber *, std::map< uint32_t, const GEMEtaPartition * > > GEMEnsemble
GEMSegmentBuilder(const edm::ParameterSet &)
C::const_iterator const_iterator
constant access iterator type
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::unique_ptr< GEMSegmentAlgorithmBase > ge0Algo
~GEMSegmentBuilder()
Destructor.
edm::ParameterSet ge0AlgoPSet
edm::ParameterSet segAlgoPSet
std::unique_ptr< GEMSegmentAlgorithmBase > segAlgo
const GEMSuperChamber * superChamber(GEMDetId id) const
void setGeometry(const GEMGeometry *g)