LDMX Software
EcalTPSelector.h
Go to the documentation of this file.
1
7#ifndef ECALTPSELECTOR_H
8#define ECALTPSELECTOR_H
9
10// LDMX Framework
13#include "Framework/Configure/Parameters.h" // Needed to import parameters from configuration file
14#include "Framework/Event.h"
15#include "Framework/EventProcessor.h" //Needed to declare processor
17#include "Recon/Event/HgcrocTrigDigi.h"
18#include "TrigUtilities.h"
19#include "Trigger/Event/TrigCaloHit.h"
20#include "Trigger/Event/TrigEnergySum.h"
21
22namespace trigger {
23
29 public:
30 EcalTPSelector(const std::string& name, framework::Process& process)
31 : framework::Producer(name, process) {}
32
34
35 virtual void produce(framework::Event& event);
36
37 // helpers
38 void decodeTP(ldmx::HgcrocTrigDigi tp, double& x, double& y, double& z,
39 double& e);
40 /* double primitiveToEnergy(int tp, int layer); */
41
42 private:
43 // name of collection for EcalTPs to be passed as input
44 std::string tpCollName_;
45 // name of output collection
46 std::string passCollName_;
47
48 unsigned int maxCentralTPs_{12};
49 unsigned int maxOuterTPs_{8};
50
51 // From:
52 // Tools/python/HgcrocEmulator.py
53 // ECal/python/digi.py
54 // ECal/src/EcalRecProducer.cxx
55 /* float gain_ = 320. / 0.1 / 1024; //
56 * mV/ADC */
57 /* float mVtoMeV_ = 0.130 / (37000.0 * (0.1602 / 1000.) * (1. / 0.1)); //
58 * MeV/mV */
59 /* std::vector<float> layerWeights = { */
60 /* 2.312, 4.312, 6.522, 7.490, 8.595, 10.253, 10.915, 10.915, 10.915, 10.915,
61 * 10.915, */
62 /* 10.915, 10.915, 10.915, 10.915, 10.915, 10.915, 10.915, 10.915, 10.915, 10.915,
63 */
64 /* 10.915, 10.915, 14.783, 18.539, 18.539, 18.539, 18.539, 18.539, 18.539, 18.539,
65 */
66 /* 18.539, 18.539, 9.938}; */
67 /* float secondOrderEnergyCorrection_ = 4000. / 3940.5; */
68 /* float mipSiEnergy_ = 0.130; */
69 /* float adHoc_ = 1.0; // my adhoc correction factor, to match v14 :( */
70 /* int hgc_compression_factor_ = 8; */
71};
72} // namespace trigger
73
74#endif /* ECALTPSELECTOR_H */
Class that translates raw positions of ECal module hits into cells in a hexagonal readout.
Class that defines the relationship between precision cells and trigger cells and provides geometry i...
Base classes for all user event processing components to extend.
Class implementing an event buffer system for storing event data.
Class that represents a digitized hit in a calorimeter cell readout by an HGCROC.
Implements an event buffer system for storing event data.
Definition Event.h:41
Class which represents the process under execution.
Definition Process.h:36
Base class for a module which produces a data product.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:27
Contains the trigger output for a single trigger hgcroc channel.
virtual void produce(framework::Event &event)
Process the event and put new data products into it.
virtual void configure(framework::config::Parameters &ps)
Callback for the EventProcessor to configure itself from the given set of parameters.