16 #include "CLHEP/Random/RandFlat.h"
40 std::cout <<
"FP420TrackMain constructor::" << std::endl;
41 std::cout <<
"sn0=" << sn0_ <<
" pn0=" << pn0_ <<
" xytype=" <<
xytype_ << std::endl;
42 std::cout <<
"trackMode = " << trackMode_ << std::endl;
43 std::cout <<
"dXX=" << dXX_ <<
" dYY=" << dYY_ << std::endl;
44 std::cout <<
"chiCutX=" << chiCutX_ <<
" chiCutY=" << chiCutY_ << std::endl;
66 double gapSupplane = 1.6;
72 double ZBoundDet = 0.020;
73 double ZSiElectr = 0.250;
74 double ZCeramDet = 0.500;
85 std::cout <<
"FP420TrackMain constructor::" << std::endl;
86 std::cout <<
" zD2=" << zD2_ <<
" zD3=" << zD3_ <<
" zinibeg =" <<
zinibeg_ << std::endl;
94 std::cout <<
" ZKapton=" << ZKapton <<
" ZBoundDet=" << ZBoundDet << std::endl;
95 std::cout <<
" ZSiElectr=" << ZSiElectr <<
" ZCeramDet=" << ZCeramDet << std::endl;
96 std::cout <<
" ZSiDet=" <<
ZSiDet_ <<
" gapSupplane=" << gapSupplane << std::endl;
100 if (trackMode_ ==
"TrackProducerSophisticatedFP420") {
140 std::cout <<
"ERROR:FP420TrackMain: No valid finder selected" << std::endl;
153 int number_detunits = 0;
154 int number_localelectroderechits = 0;
184 for (
int det = 1; det <
dn0; det++) {
189 std::vector<TrackFP420> collector;
207 if (
trackMode_ ==
"TrackProducerSophisticatedFP420") {
215 if (!collector.empty()) {
217 inputRange.first = collector.begin();
218 inputRange.second = collector.end();
223 unsigned int StID0 = 0;
224 toutput->
put(inputRange, StID0);
228 toutput->
put(inputRange, StID);
230 number_localelectroderechits += collector.size();
235 std::cout <<
"FP420TrackMain: execution in mode " <<
trackMode_ <<
" generating " << number_localelectroderechits
236 <<
" tracks in " << number_detunits <<
" detectors" << std::endl;
242 for (
int det = 1; det <
dn0; det++) {
246 std::vector<TrackFP420> collector;
249 outputRange = toutput->
get(StID);
253 for (; sort_begin != sort_end; ++sort_begin) {
254 collector.push_back(*sort_begin);
258 std::cout <<
"=======FP420TrackMain:check size = " << collector.size() <<
" det = " << det << std::endl;
261 vector<TrackFP420>::const_iterator simHitIter = collector.begin();
262 vector<TrackFP420>::const_iterator simHitIterEnd = collector.end();
264 for (; simHitIter != simHitIterEnd; ++simHitIter) {
268 <<
" nclustery = " << itrack.
nclustery() << std::endl;
269 std::cout <<
" ax = " << itrack.
ax() <<
" bx = " << itrack.
bx() << std::endl;
270 std::cout <<
" ay = " << itrack.
ay() <<
" by = " << itrack.
by() << std::endl;
274 std::cout <<
" =======================" << std::endl;
280 std::cout <<
"======= FP420TrackMain: end of check " << std::endl;
std::vector< TrackFP420 > trackFinderSophisticated(edm::Handle< ClusterCollectionFP420 > input, int det)
T getUntrackedParameter(std::string const &, T const &) const
bool UseHalfPitchShiftInY_
std::pair< ContainerIterator, ContainerIterator > Range
bool UseHalfPitchShiftInXW_
static std::string const input
FP420TrackMain(const edm::ParameterSet &conf)
std::vector< TrackFP420 >::const_iterator ContainerIterator
const Range get(unsigned int stationID) const
bool UseHalfPitchShiftInX_
void run(edm::Handle< ClusterCollectionFP420 > &input, TrackCollectionFP420 *toutput)
Runs the algorithm.
T getParameter(std::string const &) const
void put(Range input, unsigned int stationID)
bool UseHalfPitchShiftInYW_
TrackProducerFP420 * finderParameters_