16 #include "CLHEP/Random/RandFlat.h"
41 std::cout <<
"FP420TrackMain constructor::" << std::endl;
42 std::cout <<
"sn0=" << sn0_ <<
" pn0=" << pn0_ <<
" xytype=" <<
xytype_ << std::endl;
43 std::cout <<
"trackMode = " << trackMode_ << std::endl;
44 std::cout <<
"dXX=" << dXX_ <<
" dYY=" << dYY_ << std::endl;
45 std::cout <<
"chiCutX=" << chiCutX_ <<
" chiCutY=" << chiCutY_ << std::endl;
67 double gapSupplane = 1.6;
73 double ZBoundDet = 0.020;
74 double ZSiElectr = 0.250;
75 double ZCeramDet = 0.500;
86 std::cout <<
"FP420TrackMain constructor::" << std::endl;
87 std::cout <<
" zD2=" << zD2_ <<
" zD3=" << zD3_ <<
" zinibeg =" <<
zinibeg_ << std::endl;
93 std::cout <<
" ZKapton=" << ZKapton <<
" ZBoundDet=" << ZBoundDet << std::endl;
94 std::cout <<
" ZSiElectr=" << ZSiElectr <<
" ZCeramDet=" << ZCeramDet << std::endl;
95 std::cout <<
" ZSiDet=" <<
ZSiDet_ <<
" gapSupplane=" << gapSupplane << std::endl;
101 if ( trackMode_ ==
"TrackProducerSophisticatedFP420" ) {
124 std::cout <<
"ERROR:FP420TrackMain: No valid finder selected" << std::endl;
142 int number_detunits = 0;
143 int number_localelectroderechits = 0;
173 for (
int det=1; det<
dn0; det++) {
176 if(det==2) StID = 2222;
177 std::vector<TrackFP420> collector;
195 if (
trackMode_ ==
"TrackProducerSophisticatedFP420" ) {
204 if (collector.size()>0){
206 inputRange.first = collector.begin();
207 inputRange.second = collector.end();
212 unsigned int StID0 = 0;
213 toutput->
put(inputRange,StID0);
217 toutput->
put(inputRange,StID);
219 number_localelectroderechits += collector.size();
225 std::cout <<
"FP420TrackMain: execution in mode " <<
trackMode_ <<
" generating " << number_localelectroderechits <<
" tracks in " << number_detunits <<
" detectors" << std::endl;
232 for (
int det=1; det<
dn0; det++) {
234 if(det==2) StID = 2222;
235 std::vector<TrackFP420> collector;
238 outputRange = toutput->
get(StID);
242 for ( ;sort_begin != sort_end; ++sort_begin ) {
243 collector.push_back(*sort_begin);
247 std::cout <<
"=======FP420TrackMain:check size = " << collector.size() <<
" det = " << det << std::endl;
250 vector<TrackFP420>::const_iterator simHitIter = collector.begin();
251 vector<TrackFP420>::const_iterator simHitIterEnd = collector.end();
253 for (;simHitIter != simHitIterEnd; ++simHitIter) {
257 std::cout <<
" ax = " << itrack.
ax() <<
" bx = " << itrack.
bx() << std::endl;
258 std::cout <<
" ay = " << itrack.
ay() <<
" by = " << itrack.
by() << std::endl;
262 std::cout <<
" =======================" << std::endl;
268 std::cout <<
"======= FP420TrackMain: end of check " << std::endl;
T getParameter(std::string const &) const
std::vector< TrackFP420 > trackFinderSophisticated(edm::Handle< ClusterCollectionFP420 > input, int det)
T getUntrackedParameter(std::string const &, T const &) const
inputRange
Get input source.
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.
void put(Range input, unsigned int stationID)
bool UseHalfPitchShiftInYW_
TrackProducerFP420 * finderParameters_