|
|
Go to the documentation of this file.
47 trk_algo_56_(iConfig.getParameter<
edm::
ParameterSet>(
"trackingAlgorithmParams")) {
48 produces<edm::DetSetVector<CTPPSDiamondLocalTrack> >();
54 auto pOut = std::make_unique<edm::DetSetVector<CTPPSDiamondLocalTrack> >();
61 pOut->find_or_insert(id_45);
68 for (
const auto& vec : *
recHits) {
70 for (
const auto&
hit : vec) {
75 switch (detid.arm()) {
83 edm::LogWarning(
"CTPPSDiamondLocalTrackFitter") <<
"Invalid arm for rechit: " << detid.arm();
103 ->setComment(
"input rechits collection to retrieve");
106 trackingAlgoParams.
add<
double>(
"threshold", 1.5)
107 ->
setComment(
"minimal number of rechits to be observed before launching the track recognition algorithm");
108 trackingAlgoParams.
add<
double>(
"thresholdFromMaximum", 0.5);
109 trackingAlgoParams.
add<
double>(
"resolution", 0.01 )
110 ->setComment(
"spatial resolution on the horizontal coordinate (in mm)");
111 trackingAlgoParams.
add<
double>(
"sigma", 0.1);
112 trackingAlgoParams.
add<
double>(
"startFromX", -0.5 )
113 ->setComment(
"starting horizontal coordinate of rechits for the track recognition");
114 trackingAlgoParams.
add<
double>(
"stopAtX", 19.5 )
115 ->setComment(
"ending horizontal coordinate of rechits for the track recognition");
116 trackingAlgoParams.
add<
double>(
"tolerance", 0.1 )
117 ->setComment(
"tolerance used for checking if the track contains certain hit");
119 trackingAlgoParams.
add<
std::string>(
"pixelEfficiencyFunction",
"(x>[0]-0.5*[1])*(x<[0]+0.5*[1])+0*[2]")
121 "efficiency function for single pixel\n"
122 "can be defined as:\n"
123 " * Precise: (TMath::Erf((x-[0]+0.5*[1])/([2]/4)+2)+1)*TMath::Erfc((x-[0]-0.5*[1])/([2]/4)-2)/4\n"
125 "(x>[0]-0.5*[1])*(x<[0]+0.5*[1])+((x-[0]+0.5*[1]+[2])/"
126 "[2])*(x>[0]-0.5*[1]-[2])*(x<[0]-0.5*[1])+(2-(x-[0]-0.5*[1]+[2])/[2])*(x>[0]+0.5*[1])*(x<[0]+0.5*[1]+[2])\n"
127 " * Legacy: (1/(1+exp(-(x-[0]+0.5*[1])/[2])))*(1/(1+exp((x-[0]-0.5*[1])/[2])))\n"
128 " * Default (sigma ignored): (x>[0]-0.5*[1])*(x<[0]+0.5*[1])+0*[2]\n"
130 " [0]: centre of pad\n"
131 " [1]: width of pad\n"
132 " [2]: sigma: distance between efficiency ~100 -> 0 outside width");
134 trackingAlgoParams.
add<
double>(
"yPosition", 0.0)->
setComment(
"vertical offset of the outcoming track centre");
135 trackingAlgoParams.
add<
double>(
"yWidth", 0.0)->
setComment(
"vertical track width");
136 trackingAlgoParams.
add<
bool>(
"excludeSingleEdgeHits",
true)
137 ->setComment(
"exclude rechits with missing leading/trailing edge");
140 ->setComment(
"list of parameters associated to the track recognition algorithm");
142 descr.
add(
"ctppsDiamondLocalTracks",
desc);
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Reconstructed hit in diamond detectors.
CTPPSDiamondTrackRecognition trk_algo_56_
CTPPSDiamondLocalTrackFitter(const edm::ParameterSet &)
Log< level::Warning, false > LogWarning
void addHit(const CTPPSDiamondRecHit &recHit) override
Feed a new hit to the tracks recognition algorithm.
void clear() override
Reset internal state of a class instance.
#define DEFINE_FWK_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Class performing smart reconstruction for PPS Diamond Detectors.
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
static constexpr int TIMESLICE_WITHOUT_LEADING
static void fillDescriptions(edm::ConfigurationDescriptions &)
void produce(edm::Event &, const edm::EventSetup &) override
CTPPSDiamondTrackRecognition trk_algo_45_
edm::EDGetTokenT< edm::DetSetVector< CTPPSDiamondRecHit > > recHitsToken_
int produceTracks(edm::DetSet< CTPPSDiamondLocalTrack > &tracks) override
Produce a collection of tracks for the current station, given its hits collection.
void setComment(std::string const &value)
~CTPPSDiamondLocalTrackFitter() override