69 if (not tagPixelTrack.label().empty()){
75 produces< std::vector<CTPPSLocalTrackLite> >();
87 std::unique_ptr< std::vector<CTPPSLocalTrackLite> > pOut(
new std::vector<CTPPSLocalTrackLite>() );
98 for (
const auto& rpv : *inputSiStripTracks ) {
99 const uint32_t rpId = rpv.detId();
100 for (
const auto& trk : rpv ) {
101 if ( !trk.isValid() )
continue;
102 pOut->emplace_back( rpId, trk.getX0(), trk.getX0Sigma(), trk.getY0(), trk.getY0Sigma() );
116 for (
const auto& rpv : *inputDiamondTracks ) {
117 const unsigned int rpId = rpv.detId();
118 for (
const auto& trk : rpv ) {
119 if ( !trk.isValid() )
continue;
120 pOut->emplace_back( rpId, trk.getX0(), trk.getX0Sigma(), trk.getY0(), trk.getY0Sigma(), trk.getT() );
132 <<
"Wrong number of parameters in pixel track Tx/Ty range";
138 for (
const auto& rpv : *inputPixelTracks ) {
139 const uint32_t rpId = rpv.detId();
140 for (
const auto& trk : rpv ) {
141 if ( !trk.isValid() )
continue;
144 pOut->emplace_back( rpId, trk.getX0(), trk.getX0Sigma(), trk.getY0(), trk.getY0Sigma() );
161 desc.
add<
bool>(
"includeStrips",
true)->setComment(
"whether tracks from Si strips should be included");
163 ->setComment(
"input TOTEM strips' local tracks collection to retrieve" );
165 desc.
add<
bool>(
"includeDiamonds",
true)->setComment(
"whether tracks from diamonds strips should be included");
167 ->setComment(
"input diamond detectors' local tracks collection to retrieve" );
169 desc.
add<
bool>(
"includePixels",
true)->setComment(
"whether tracks from pixels should be included");
171 ->setComment(
"input pixel detectors' local tracks collection to retrieve" );
172 desc.
add<
bool>(
"doNothing",
true )
173 ->setComment(
"disable the module" );
175 desc.
add<std::vector<double> >(
"pixelTrackTxRange",std::vector<double>({-0.03,0.03}) );
176 desc.
add<std::vector<double> >(
"pixelTrackTyRange",std::vector<double>({-0.04,0.04}) );
178 descr.
add(
"ctppsLocalTrackLiteDefaultProducer", desc );
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
std::vector< double > pixelTrackTxRange_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
void produce(edm::Event &, const edm::EventSetup &) override
CTPPSLocalTrackLiteProducer(const edm::ParameterSet &)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
~CTPPSLocalTrackLiteProducer() override
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Distills the essential track data from all RPs.
edm::EDGetTokenT< edm::DetSetVector< CTPPSPixelLocalTrack > > pixelTrackToken_
bool isUninitialized() const
edm::EDGetTokenT< edm::DetSetVector< CTPPSDiamondLocalTrack > > diamondTrackToken_
edm::EDGetTokenT< edm::DetSetVector< TotemRPLocalTrack > > siStripTrackToken_
static void fillDescriptions(edm::ConfigurationDescriptions &)
std::vector< double > pixelTrackTyRange_