1 #ifndef FastSimulation_CTPPSFastTrackingProducer_h 2 #define FastSimulation_CTPPSFastTrackingProducer_h 31 #include "CLHEP/Units/GlobalSystemOfUnits.h" 32 #include "CLHEP/Units/GlobalPhysicalConstants.h" 33 #include <CLHEP/Vector/LorentzVector.h> 49 #include "H_Parameters.h" 50 #include "H_BeamLine.h" 51 #include "H_RecRPObject.h" 52 #include "H_BeamParticle.h" 84 void ReconstructArm(H_RecRPObject* pps_station,
double x1,
double y1,
double x2,
double y2,
double& tx,
double& ty,
double& eloss);
85 void MatchCellId(
int cellId, vector<int> vrecCellId, vector<double> vrecTof,
bool&
match,
double& recTof);
86 bool SearchTrack(
int ,
int ,
int Direction,
double&
xi,
double&
t,
double& partP,
double&
pt,
double& thx,
double& thy,
double& x0,
double& y0,
double& xt,
double& yt,
double& X1d,
double& Y1d,
double& X2d,
double& Y2d);
87 void LorentzBoost(LorentzVector& p_out,
const string& frame);
91 void ProjectToToF(
const double x1,
const double y1,
const double x2,
const double y2,
double& xt,
double& yt) {
97 std::map<unsigned int, H_BeamParticle*>
m_beamPart;
117 std::unique_ptr<CTPPSTrkDetector>
det1F;
118 std::unique_ptr<CTPPSTrkDetector>
det1B;
119 std::unique_ptr<CTPPSTrkDetector>
det2F;
120 std::unique_ptr<CTPPSTrkDetector>
det2B;
void beginStream(edm::StreamID) override
void MatchCellId(int cellId, vector< int > vrecCellId, vector< double > vrecTof, bool &match, double &recTof)
CLHEP::HepLorentzVector LorentzVector
std::unique_ptr< CTPPSTrkDetector > det2B
~CTPPSFastTrackingProducer() override
std::unique_ptr< H_BeamLine > m_beamlineCTPPS1
virtual void endEvent(edm::Event &event, const edm::EventSetup &eventSetup)
void FastReco(int Direction, H_RecRPObject *station)
void ReconstructArm(H_RecRPObject *pps_station, double x1, double y1, double x2, double y2, double &tx, double &ty, double &eloss)
std::unique_ptr< H_RecRPObject > pps_stationB
std::unique_ptr< CTPPSToFDetector > detToF_F
void TrackerStationClear()
std::unique_ptr< CTPPSTrkDetector > det2F
void endStream() override
std::unique_ptr< H_RecRPObject > pps_stationF
std::vector< double > fToFCellWidth
std::vector< int > recCellId_F
CTPPSFastTrackingProducer(const edm::ParameterSet &)
std::unique_ptr< CTPPSTrkDetector > det1B
virtual void beginEvent(edm::Event &event, const edm::EventSetup &eventSetup)
std::vector< double > recTof_F
std::unique_ptr< CTPPSTrkStation > TrkStation_B
std::unique_ptr< CTPPSToFDetector > detToF_B
std::vector< double > recTof_B
std::map< unsigned int, H_BeamParticle * > m_beamPart
std::vector< CTPPSFastRecHit > CTPPSFastRecHitContainer
void TrackerStationStarting()
std::unique_ptr< H_BeamLine > m_beamlineCTPPS2
void ProjectToToF(const double x1, const double y1, const double x2, const double y2, double &xt, double &yt)
void Get_t_and_xi(const LorentzVector *p, double &t, double &xi)
std::vector< int > recCellId_B
std::unique_ptr< CTPPSTrkStation > TrkStation_F
std::vector< CTPPSFastTrack > theCTPPSFastTrack
edm::EDGetTokenT< CTPPSFastRecHitContainer > _recHitToken
std::unique_ptr< CTPPSTrkDetector > det1F
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
void LorentzBoost(LorentzVector &p_out, const string &frame)
void produce(edm::Event &, const edm::EventSetup &) override
void ReadRecHits(edm::Handle< CTPPSFastRecHitContainer > &)
bool SearchTrack(int, int, int Direction, double &xi, double &t, double &partP, double &pt, double &thx, double &thy, double &x0, double &y0, double &xt, double &yt, double &X1d, double &Y1d, double &X2d, double &Y2d)