72 produces<DetSetVector<TotemRPLocalTrack>>();
80 LogVerbatim(
"TotemRPLocalTrackFitter") <<
">> TotemRPLocalTrackFitter::produce";
96 for (
const auto &rpv : *input)
98 unsigned int rpDecId = rpv.detId();
101 unsigned int n_U=0, n_V=0;
102 unsigned int idx_U=0, idx_V=0;
103 for (
unsigned int pi = 0;
pi < rpv.size();
pi++)
131 if (n_U != 1 || n_V != 1)
135 <<
">> TotemRPLocalTrackFitter::produce > Impossible to combine U and V patterns in RP " << rpDecId
136 <<
" (n_U=" << n_U <<
", n_V=" << n_V <<
").";
142 if (!rpv[idx_U].getFittable() || !rpv[idx_V].getFittable())
147 for (
auto &ids : rpv[idx_U].getHits())
154 for (
auto &ids : rpv[idx_V].getHits())
162 const unsigned int armIdx = rpDecId / 100;
163 const unsigned int stIdx = (rpDecId / 10) % 10;
164 const unsigned int rpIdx = rpDecId % 10;
177 unsigned int n_hits = 0;
178 for (
auto &hds : track.
getHits())
179 n_hits += hds.size();
182 <<
" track in RP " << rpDecId <<
": valid = " << track.
isValid() <<
", hits = " << n_hits;
Detector ID class for TOTEM Si strip detectors.
T getParameter(std::string const &) const
TotemRPLocalTrackFitter(const edm::ParameterSet &conf)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void push_back(const T &t)
virtual void produce(edm::Event &e, const edm::EventSetup &c) override
CLHEP::Hep3Vector GetRPGlobalTranslation(int copy_no) const
position of a RP package (translation z corresponds to the first plane - TODO check it) ...
edm::ESWatcher< VeryForwardRealGeometryRecord > geometryWatcher
A watcher to detect geometry changes.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
void reset()
Resets the reconstruction-data cache.
def setup(process, global_tag, zero_tesla=False)
virtual ~TotemRPLocalTrackFitter()
ProjectionType getProjection() const
Fits tracks trough a single RP.
A track fit through a single RP.
Event setup record containing the real (actual) geometry information.
static std::string const input
reference find_or_insert(det_id_type id)
const edm::DetSetVector< FittedRecHit > & getHits() const
bool fitTrack(const edm::DetSetVector< TotemRPRecHit > &hits, double z_0, const TotemRPGeometry &tot_geom, TotemRPLocalTrack &fitted_track)
performs the track fit, returns true if successful
A linear pattern in U or V projection. The intercept b is taken at the middle of a RP: (geometry->Get...
TotemRPLocalTrackFitterAlgorithm fitter_
The instance of the fitter module.
Algorithm for fitting tracks through a single RP.
bool check(const edm::EventSetup &iSetup)
ESHandle< TrackerGeometry > geometry
edm::InputTag tagUVPattern
Selection of the pattern-recognition module.
edm::EDGetTokenT< edm::DetSetVector< TotemRPUVPattern > > patternCollectionToken