ATLAS Offline Software
Loading...
Searching...
No Matches
FPGATrackSimTrackStream.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGFPGATrackSimOBJECTS_FPGATrackSimTRACKSTREAM_H
6#define TRIGFPGATrackSimOBJECTS_FPGATrackSimTRACKSTREAM_H
7
8#include "FPGATrackSimTrack.h"
9
10#include <TClonesArray.h>
11
12#include <iostream>
13#include <utility>
14
16
17public:
22
23 const unsigned long& runNumber() const { return m_run_number; }
24 const unsigned long& eventNumber() const { return m_event_number; }
25 void setRunNumber(const unsigned long& val) { m_run_number = val; }
26 void setEventNumber(const unsigned long& val) { m_event_number = val; }
27
28 void addTrack(const FPGATrackSimTrack&);
29 FPGATrackSimTrack* getTrack(int) const;
30 int findTrack(int trackid, int bankid);
31 int getNTracks() const { return m_ntracks; }
32 void buildTrackMap();
33
34 void addTrackI(const FPGATrackSimTrack&);
35 FPGATrackSimTrack* getTrackI(int) const;
36 int getNTracksI() const { return m_ntracksI; }
37
38 int getNConn() const { return m_nconn; }
40
41 void addNCombs(int v) { m_ncombs += v; }
42 void addNFits(int v) { m_nfits += v; }
43 void addNFitsMajority(int v) { m_nfits_maj += v; }
46 void addNFitsRecovery(int v) { m_nfits_rec += v; }
47 void addNAddFitsRecovery(int v) { m_nfits_addrec += v; }
48 void addNFitsBad(int v) { m_nfits_bad += v; }
49 void addNFitsHWRejected(int v) { m_nfits_rej += v; }
50 void addNFitsBadMajority(int v) { m_nfits_badmaj += v; }
52 void addNConnections(int v) { m_nconn += v; }
54
55 int getNCombs() const { return m_ncombs; }
56 int getNFits() const { return m_nfits; }
57 int getNFitsMajority() const { return m_nfits_maj; }
58 int getNFitsMajority_pix() const { return m_nfits_maj_pix; }
59 int getNFitsMajority_SCT() const { return m_nfits_maj_SCT; }
60 int getNFitsRecovery() const { return m_nfits_rec; }
61 int getNAddFitsRecovery() const { return m_nfits_addrec; }
62 int getNFitsBad() const { return m_nfits_bad; }
63 int getNFitsHWRejected() const { return m_nfits_rej; }
64 int getNFitsBadMajority() const { return m_nfits_badmaj; }
66 int getNConnections() const { return m_nconn; }
67
68 void addNCombsI(int v) { m_ncombsI += v; }
69 void addNFitsI(int v) { m_nfitsI += v; }
70 void addNFitsMajorityI(int v) { m_nfits_majI += v; }
73 void addNFitsRecoveryI(int v) { m_nfits_recI += v; }
75 void addNFitsBadI(int v) { m_nfits_badI += v; }
76 void addNFitsHWRejectedI(int v) { m_nfits_rejI += v; }
79
80 int getNCombsI() const { return m_ncombsI; }
81 int getNFitsI() const { return m_nfitsI; }
82 int getNFitsMajorityI() const { return m_nfits_majI; }
85 int getNFitsRecoveryI() const { return m_nfits_recI; }
86 int getNAddFitsRecoveryI() const { return m_nfits_addrecI; }
87 int getNFitsBadI() const { return m_nfits_badI; }
88 int getNFitsHWRejectedI() const { return m_nfits_rejI; }
89 int getNFitsBadMajorityI() const { return m_nfits_badmajI; }
91
92 void clear();
93
94 int Print(int level = 0, std::ostream& out = std::cout);
95
96private:
97 unsigned long m_run_number; // run number
98 unsigned long m_event_number; // event number
99
100 int m_ntracks; // number of stored tracks
101 TClonesArray* m_tracks; //-> list of stored tracks
102
103 int m_ncombs; // number of combinations
104 int m_nfits; // number of fitted combinations
105 int m_nfits_maj; // number of fitted combinations in majority roads
106 int m_nfits_maj_SCT; // number of fitted combinations in majority roads, missing hit in SCT layer
107 int m_nfits_maj_pix; // number of fitted combinations in majority roads, missing hit in pixel layer
108 int m_nfits_rec; // number of full fits attempted to recover
109 int m_nfits_addrec; // additional fits performed because the recovery
110 int m_nfits_bad; // # fits with a bad chi^2
111 int m_nfits_rej; // # of fits rejected because the HW
112 int m_nfits_badmaj; // # fits with a bad chi^2
113 int m_nfits_rejmaj; // # of fits rejected because the HW
114 /* PS: m_ntracks, if only good tracks are saved, has to be equal
115 to m_nfits-m_nfits_bad-m_nfits_rej */
116
117 int m_ntracksI; // number of stored tracks in the intermediate step
118
119 TClonesArray* m_tracksI; //-> list of stored tracks in the intermedieate step
120
121
122 // duplicate the counters for the 2nd stage
136
137 std::map< std::pair<int, int>, int > m_trackIdMap;
138 // Used to optimize the findTrack function.
139
140 ClassDefNV(FPGATrackSimTrackStream, 2)
141};
142
143
144#endif // TRIGFPGATrackSimOBJECTS_FPGATrackSimTRACKSTREAM_H
void setEventNumber(const unsigned long &val)
int findTrack(int trackid, int bankid)
this method, passing a track ID and a bank ID, return the ID of the corresponding track.
void addTrack(const FPGATrackSimTrack &)
add a track in the final list
FPGATrackSimTrack * getTrack(int) const
return a given track, identified by its position in the list
FPGATrackSimTrack * getTrackI(int) const
return a given track, identified by its position in the list
const unsigned long & runNumber() const
void setRunNumber(const unsigned long &val)
FPGATrackSimTrackStream & operator=(const FPGATrackSimTrackStream &s)
void clear()
reset the list of the tracks and the statistical informatino collected for this event
const unsigned long & eventNumber() const
int Print(int level=0, std::ostream &out=std::cout)
print a debug message summaryzing the information for the tracks found in one event for a given bank.
std::map< std::pair< int, int >, int > m_trackIdMap
void addTrackI(const FPGATrackSimTrack &)
add a track in the final list