File indexing completed on 2024-04-12 23:04:09
0001
0002 #ifndef usercode_PrimaryVertexAnalyzer_VertexTimeAlgorithmFromTracksPID_h
0003 #define usercode_PrimaryVertexAnalyzer_VertexTimeAlgorithmFromTracksPID_h
0004
0005 #include "VertexTimeAlgorithmBase.h"
0006
0007 #include "FWCore/Utilities/interface/EDGetToken.h"
0008 #include "DataFormats/Common/interface/ValueMap.h"
0009
0010 class VertexTimeAlgorithmFromTracksPID : public VertexTimeAlgorithmBase {
0011 public:
0012 VertexTimeAlgorithmFromTracksPID(const edm::ParameterSet& conf, edm::ConsumesCollector& iC);
0013 ~VertexTimeAlgorithmFromTracksPID() override = default;
0014
0015 static void fillPSetDescription(edm::ParameterSetDescription& iDesc);
0016
0017 void setEvent(edm::Event& iEvent, edm::EventSetup const& iSetup) override;
0018
0019 bool vertexTime(float& vtxTime, float& vtxTimeError, TransientVertex const& vtx) const override;
0020
0021 protected:
0022 struct TrackInfo {
0023 double trkWeight;
0024 double trkTimeErrorHyp[3];
0025 double trkTimeHyp[3];
0026 };
0027
0028 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDTimeToken_;
0029 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDTimeErrorToken_;
0030 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDTimeQualityToken_;
0031 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDTofPiToken_;
0032 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDTofKToken_;
0033 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDTofPToken_;
0034 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDSigmaTofPiToken_;
0035 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDSigmaTofKToken_;
0036 edm::EDGetTokenT<edm::ValueMap<float>> const trackMTDSigmaTofPToken_;
0037
0038 double const minTrackVtxWeight_;
0039 double const minTrackTimeQuality_;
0040 double const probPion_;
0041 double const probKaon_;
0042 double const probProton_;
0043 double const Tstart_;
0044 double const coolingFactor_;
0045
0046 edm::ValueMap<float> trackMTDTimes_;
0047 edm::ValueMap<float> trackMTDTimeErrors_;
0048 edm::ValueMap<float> trackMTDTimeQualities_;
0049 edm::ValueMap<float> trackMTDTofPi_;
0050 edm::ValueMap<float> trackMTDTofK_;
0051 edm::ValueMap<float> trackMTDTofP_;
0052 edm::ValueMap<float> trackMTDSigmaTofPi_;
0053 edm::ValueMap<float> trackMTDSigmaTofK_;
0054 edm::ValueMap<float> trackMTDSigmaTofP_;
0055 };
0056
0057 #endif