diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimInput/src/FPGATrackSimReadRawRandomHitsTool.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimInput/src/FPGATrackSimReadRawRandomHitsTool.cxx index b4e07b1d7d6a87e226bd4f504c76b4aaa749053e..0e685aba78dd3bca6bdcdfeb5fded6f3c5cb319a 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimInput/src/FPGATrackSimReadRawRandomHitsTool.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimInput/src/FPGATrackSimReadRawRandomHitsTool.cxx @@ -59,7 +59,7 @@ StatusCode FPGATrackSimReadRawRandomHitsTool::readData(FPGATrackSimEventInputHea // Truth Info FPGATrackSimOptionalEventInfo optional; - unsigned long int mbc = 0; // to scale up barcodes! + int mbc = 0; // to scale up barcodes! // --- Copy old data if (doReset) @@ -70,7 +70,7 @@ StatusCode FPGATrackSimReadRawRandomHitsTool::readData(FPGATrackSimEventInputHea { for (const auto& truthtrack : header->optional().getTruthTracks()) { - if (truthtrack.getBarcode() > mbc) mbc = truthtrack.getBarcode(); + if (truthtrack.getBarcode() > mbc) mbc = truthtrack.getBarcode(); optional.addTruthTrack(truthtrack); } @@ -98,12 +98,15 @@ StatusCode FPGATrackSimReadRawRandomHitsTool::readData(FPGATrackSimEventInputHea // copy Hits for (auto rawhit : m_eventHeader->hits()) { - FPGATrackSimMultiTruth origtruth = rawhit.getTruth(); - FPGATrackSimMultiTruth mt; - FPGATrackSimMultiTruth::Barcode uniquecode(rawhit.getEventIndex(),rawhit.getBarcode()+mbc); - mt.maximize(uniquecode, rawhit.getBarcodePt()); - rawhit.setBarcode(rawhit.getBarcode() + mbc); - rawhit.setTruth(mt); + if (rawhit.getBarcode() >= 0) + { + FPGATrackSimMultiTruth origtruth = rawhit.getTruth(); + FPGATrackSimMultiTruth mt; + FPGATrackSimMultiTruth::Barcode uniquecode(rawhit.getEventIndex(),rawhit.getBarcode()+mbc); + mt.maximize(uniquecode, rawhit.getBarcodePt()); + rawhit.setBarcode(rawhit.getBarcode() + mbc); + rawhit.setTruth(mt); + } header->addHit(rawhit); } diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimHit.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimHit.h index 7e525f2c18f9d91662a5ff0ecb5fec61bf10785d..d09b2eb0299b1ade02705adbe80af924023dc5e3 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimHit.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimHit.h @@ -129,12 +129,12 @@ public: // --- Truth and Other --- void setToT(unsigned v) { m_ToT = v; } - void setBarcode(unsigned long v) { m_barcode = v; } + void setBarcode(long v) { m_barcode = v; } void setBarcodePt(float v) { m_barcode_pt = v; } void setEventIndex(long v) { m_eventindex = v; } void setParentageMask(unsigned long v) { m_parentage_mask = v; } void setTruth(const FPGATrackSimMultiTruth& v) { m_truth = v; } - unsigned long getBarcode() const { return m_barcode; } + long getBarcode() const { return m_barcode; } long getEventIndex() const { return m_eventindex; } float getBarcodePt() const { return m_barcode_pt; } unsigned long getParentageMask() const { return m_parentage_mask; } @@ -193,7 +193,7 @@ protected: unsigned m_hw_word = 0; // store Strip and Pixel cluster positions as integers using the same FPGATrackSim_IM HW definition unsigned m_ToT = 0; // time over Threshold long m_eventindex = 0; // athena event index assigned to this channel - unsigned long m_barcode = 0; // geant particle barcode assigned to this channel + long m_barcode = 0; // geant particle barcode assigned to this channel float m_barcode_pt = 0; // maximum 'pt' for any 'good' geant particle contributing to the channel. // corresponds to the particle with m_barcode unsigned long m_parentage_mask = 0; // ancestor information of this channel diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimMatchInfo.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimMatchInfo.h index 50ee238c605bfc6a79ade96dc2ae5dd1772f938c..b50b59abc0f533a7413b5d5476a1f03632d674db 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimMatchInfo.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimMatchInfo.h @@ -12,7 +12,7 @@ public: FPGATrackSimMatchInfo() : m_barcode(0), m_evtindex(-1) { ; } FPGATrackSimMatchInfo(int v1, int v2) : m_barcode(v1), m_evtindex(v2) { ; } - unsigned long barcode() const { return m_barcode; } + int barcode() const { return m_barcode; } int evtindex() const { return m_evtindex; } bool operator==(const FPGATrackSimMatchInfo& o) const { return (m_barcode == o.m_barcode) && (m_evtindex == o.m_evtindex); } @@ -20,7 +20,7 @@ public: private: - unsigned long m_barcode; + int m_barcode; int m_evtindex; diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimMultiTruth.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimMultiTruth.h index a2b3f549a5f133db72a8188275ce26ede9c422c8..fbda01e1ab357f90d8328010da21eaf4fa7dabe3 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimMultiTruth.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimMultiTruth.h @@ -46,7 +46,7 @@ class FPGATrackSimMultiTruth : public TObject { public: - typedef std::pair<unsigned long, unsigned long> Barcode; // = (event index, barcode) + typedef std::pair<long, long> Barcode; // = (event index, barcode) typedef float Weight; typedef std::map<Barcode, Weight> TruthMap; @@ -69,7 +69,7 @@ public: bool isEmpty() const { return m_truth.empty(); } - unsigned long best_barcode() const; + long best_barcode() const; void add(const FPGATrackSimMultiTruth::Barcode& code, const FPGATrackSimMultiTruth::Weight& weight); void add(const FPGATrackSimMultiTruth& rval); @@ -100,10 +100,9 @@ private: }; struct TruthMapWeightLt { - unsigned long int bad = -1; /// Use value of -1 here bool operator()(const TruthMap::value_type& a, const TruthMap::value_type& b) const { - const bool a_info = (a.first.first != bad) && (a.first.second != bad); - const bool b_info = (b.first.first != bad) && (b.first.second != bad); + const bool a_info = (a.first.first != -1) && (a.first.second != -1); + const bool b_info = (b.first.first != -1) && (b.first.second != -1); return a_info && b_info ? a.second < b.second : b_info; } }; diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimOfflineTrack.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimOfflineTrack.h index 17e32ff6042f18efe43bd25322b19bc30004ca10..714ccb350209e4cfc4cb641db50bd2bf25abb87a 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimOfflineTrack.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimOfflineTrack.h @@ -18,7 +18,7 @@ public: void setPhi(double v) { m_phi = v; } void setD0(double v) { m_d0 = v; } void setZ0(double v) { m_z0 = v; } - void setBarcode(unsigned long v) { m_barcode = v; } + void setBarcode(long v) { m_barcode = v; } void setBarcodeFrac(float v) { m_barcode_frac = v; } double getPt() const { return m_qoverpt != 0 ? std::abs(sin(2 * std::atan(std::exp(-m_eta))) / m_qoverpt) : 99999999.; } @@ -27,7 +27,7 @@ public: double getD0() const { return m_d0; } double getZ0() const { return m_z0; } double getQOverPt() const { return m_qoverpt / sin(2 * std::atan(std::exp(-m_eta))); } - unsigned long getBarcode() const { return m_barcode; } + long getBarcode() const { return m_barcode; } double getBarcodeFrac() const { return m_barcode_frac; } // handling hits @@ -46,7 +46,7 @@ private: double m_d0; double m_z0; - unsigned long m_barcode; // matched geant particle barcode + long m_barcode; // matched geant particle barcode double m_barcode_frac; // largest "matching fraction" with any "good" // geant particle, corresponding to the // particle with m_barcode diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimTrack.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimTrack.h index e6984cfb0193e4c01afdf3ad85fa94dcdd3f11c4..b1286361a5a17cb546ef6ea10e909c439d6b6189 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimTrack.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimTrack.h @@ -45,8 +45,8 @@ class FPGATrackSimTrack : public TObject { //write a detmap int getNCoords() const; signed long getEventIndex() const { return m_eventindex; } - unsigned long getBarcode() const { return m_barcode; } - unsigned long barcode() const { return getBarcode(); } + signed long getBarcode() const { return m_barcode; } + signed long barcode() const { return getBarcode(); } float getBarcodeFrac() const { return m_barcode_frac; } //Should be passed as const ref to avoid excessive copying. const std::vector <FPGATrackSimHit>& getFPGATrackSimHits() const { return m_hits; } @@ -89,7 +89,7 @@ class FPGATrackSimTrack : public TObject { void setTypeMask(unsigned int v) { m_typemask = v; } void setHitMap(unsigned int v) { m_hitmap = v; } void setEventIndex(const signed long& v) { m_eventindex = v; } - void setBarcode(const unsigned long& v) { m_barcode = v; } + void setBarcode(const signed long& v) { m_barcode = v; } void setBarcodeFrac(const float& v) { m_barcode_frac = v; } void setValidCand(bool v) { m_isValidCand = v; } @@ -145,7 +145,7 @@ class FPGATrackSimTrack : public TObject { std::vector<FPGATrackSimHit> m_hits; //[m_nlayers] hits associated to the track signed long m_eventindex = -1; // matched particle event index - unsigned long m_barcode = -1; // matched geant particle barcode + signed long m_barcode = -1; // matched geant particle barcode float m_barcode_frac = 0.0F; // largest "matching fraction" with any "good" // geant particle, corresponding to the // particle with m_barcode diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimTruthTrack.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimTruthTrack.h index 7bd941d8eb4162dbcb9f7ddc577a6be723e332dc..d5f0992c9acd34d2ca3ae7f8e0f4135911b271fa 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimTruthTrack.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/FPGATrackSimObjects/FPGATrackSimTruthTrack.h @@ -28,7 +28,7 @@ public: void setPDGCode(int v) { m_pdgcode = v; } void setStatus(int v) { m_status = v; } - void setBarcode(unsigned long v) { m_barcode = v; } + void setBarcode(int v) { m_barcode = v; } void setEventIndex(int v) { m_evtindex = v; } void setBarcodeFracOffline(double v) { m_barcode_frac_offline = v; } @@ -54,8 +54,8 @@ public: int getPDGCode() const { return m_pdgcode; } int getStatus() const { return m_status; } int status() const { return m_status; } - unsigned long getBarcode() const { return m_barcode; } - unsigned long barcode() const { return m_barcode; } + int getBarcode() const { return m_barcode; } + int barcode() const { return m_barcode; } int getEventIndex() const { return m_evtindex; } double getBarcodeFracOffline() const { return m_barcode_frac_offline; } @@ -88,7 +88,7 @@ private: int m_pdgcode; int m_status; - unsigned long m_barcode; + int m_barcode; int m_evtindex; double m_barcode_frac_offline; // largest "matching fraction" with any "good" // xAOD::TruthParticle, corresponding to the diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/src/FPGATrackSimMultiTruth.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/src/FPGATrackSimMultiTruth.cxx index fa26af647dba8d2704a1e827a812541e93e9cb39..d5ba8d8206a63c31abff9f02627864b959f0a435 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/src/FPGATrackSimMultiTruth.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimObjects/src/FPGATrackSimMultiTruth.cxx @@ -14,7 +14,7 @@ ClassImp(FPGATrackSimMultiTruth) // ================================================================ // 20-04-2009 Antonio Boveia (boveia@hep.uchicago.edu) -unsigned long FPGATrackSimMultiTruth::best_barcode() const { +long FPGATrackSimMultiTruth::best_barcode() const { Barcode code; Weight weight; return !best(code, weight) ? -999 : code.second; diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimSGInput/src/FPGATrackSimSGToRawHitsTool.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimSGInput/src/FPGATrackSimSGToRawHitsTool.cxx index 2672e813b3a77848f232512a30c77425f06856fa..57847bde352b4dc58e0da3838682ccce8e0a0040 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimSGInput/src/FPGATrackSimSGToRawHitsTool.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimSGInput/src/FPGATrackSimSGToRawHitsTool.cxx @@ -150,8 +150,6 @@ StatusCode FPGATrackSimSGToRawHitsTool::readOfflineTracks(std::vector<FPGATrackS tmpOfflineTrack.setQOverPt(trackParticle->pt() > 0 ? trackParticle->charge() / trackParticle->pt() : 0); tmpOfflineTrack.setEta(trackParticle->eta()); tmpOfflineTrack.setPhi(trackParticle->phi()); - tmpOfflineTrack.setD0(trackParticle->d0()); - tmpOfflineTrack.setZ0(trackParticle->z0()); const Trk::TrackStates* trackStates = trackParticle->track()->trackStateOnSurfaces(); if (trackStates == nullptr) { @@ -294,16 +292,7 @@ FPGATrackSimSGToRawHitsTool::readPixelSimulation(HitIndexMap& hitIndexMap, unsig tmpSGhit.setEventIndex(index); else tmpSGhit.setEventIndex(std::numeric_limits<long>::max()); - - if (bestParent) { - unsigned int id2, barcode2; - bestExtcode.uniqueID(id2, barcode2); - tmpSGhit.setBarcode(id2); - } - else { - tmpSGhit.setBarcode(std::numeric_limits<unsigned long>::max()); - } - + tmpSGhit.setBarcode((long)(bestParent ? bestExtcode.uid() : std::numeric_limits<long>::max())); // FIXME tmpSGhit.setBarcodePt(static_cast<unsigned long>(std::ceil(bestParent ? bestParent->momentum().perp() : 0.))); tmpSGhit.setParentageMask(parentMask.to_ulong()); @@ -376,16 +365,8 @@ FPGATrackSimSGToRawHitsTool::readStripSimulation(HitIndexMap& hitIndexMap, unsig tmpSGhit.setEventIndex(index); else tmpSGhit.setEventIndex(std::numeric_limits<long>::max()); - - if (bestParent) { - unsigned int id2, barcode2; - bestExtcode.uniqueID(id2, barcode2); - tmpSGhit.setBarcode(id2); - } - else { - tmpSGhit.setBarcode(std::numeric_limits<unsigned long>::max()); - } - + + tmpSGhit.setBarcode((long)(bestParent ? bestExtcode.uid() : std::numeric_limits<long>::max())); // FIXME tmpSGhit.setBarcodePt(static_cast<unsigned long>(std::ceil(bestParent ? bestParent->momentum().perp() : 0.))); tmpSGhit.setParentageMask(parentMask.to_ulong()); tmpSGhit.setX(0.5 * (endsOfStrip.first.x() + endsOfStrip.second.x())); @@ -533,17 +514,7 @@ FPGATrackSimSGToRawHitsTool::readOfflineClusters(std::vector <FPGATrackSimCluste clusterEquiv.setEventIndex(index); else clusterEquiv.setEventIndex(std::numeric_limits<long>::max()); - - if (bestParent) { - unsigned int id2, barcode2; - bestExtcode.uniqueID(id2, barcode2); - clusterEquiv.setBarcode(id2); - } - else { - clusterEquiv.setBarcode(std::numeric_limits<unsigned long>::max()); - } - - + clusterEquiv.setBarcode((long)(bestParent ? bestExtcode.uid() : std::numeric_limits<long>::max())); // FIXME clusterEquiv.setBarcodePt(static_cast<unsigned long>(std::ceil(bestParent ? bestParent->momentum().perp() : 0.))); clusterEquiv.setParentageMask(parentMask.to_ulong()); clusterOut.setClusterEquiv(clusterEquiv); @@ -612,15 +583,8 @@ FPGATrackSimSGToRawHitsTool::readOfflineClusters(std::vector <FPGATrackSimCluste else clusterEquiv.setEventIndex(std::numeric_limits<long>::max()); - if (bestParent) { - unsigned int id2, barcode2; - bestExtcode.uniqueID(id2, barcode2); - clusterEquiv.setBarcode(id2); - } - else { - clusterEquiv.setBarcode(std::numeric_limits<unsigned long>::max()); - } + clusterEquiv.setBarcode((long)(bestParent ? bestExtcode.uid() : std::numeric_limits<long>::max())); // FIXME clusterEquiv.setBarcodePt(static_cast<unsigned long>(std::ceil(bestParent ? bestParent->momentum().perp() : 0.))); clusterEquiv.setParentageMask(parentMask.to_ulong()); clusterOut.setClusterEquiv(clusterEquiv); @@ -735,11 +699,7 @@ FPGATrackSimSGToRawHitsTool::readTruthTracks(std::vector <FPGATrackSimTruthTrack tmpSGTrack.setPZ(track_truth_p * track_truth_costheta); tmpSGTrack.setPDGCode(pdgcode); tmpSGTrack.setStatus(particle->status()); - - unsigned int id2, barcode2; - extBarcode2.uniqueID(id2, barcode2); - tmpSGTrack.setBarcode(id2); - + tmpSGTrack.setBarcode(extBarcode2.uid()); // FIXME index_type index2, position2; extBarcode2.eventIndex(index2, position2); tmpSGTrack.setEventIndex(index2);