2121
2222#include " EventVisualisationDataConverter/VisualisationTrack.h"
2323#include " EventVisualisationDataConverter/VisualisationCluster.h"
24+ #include " EventVisualisationDataConverter/VisualisationCalo.h"
2425#include " EventVisualisationDataConverter/VisualisationConstants.h"
2526#include < forward_list>
2627#include < ctime>
28+ #include < gsl/span>
2729
2830namespace o2
2931{
@@ -39,19 +41,17 @@ namespace event_visualisation
3941
4042class VisualisationEvent
4143{
44+ friend class VisualisationEventJSONSerializer ;
45+ friend class VisualisationEventROOTSerializer ;
46+
4247 public:
4348 struct GIDVisualisation {
4449 bool contains[o2::dataformats::GlobalTrackID::NSources][o2::event_visualisation::EVisualisationGroup::NvisualisationGroups];
4550 };
4651 static GIDVisualisation mVis ;
47- std::string toJson ();
48- void fromJson (std::string json);
49- bool fromFile (std::string fileName);
5052 VisualisationEvent ();
5153 VisualisationEvent (std::string fileName);
5254 VisualisationEvent (const VisualisationEvent& source, EVisualisationGroup filter, float minTime, float maxTime);
53- void toFile (std::string fileName);
54- static std::string fileNameIndexed (const std::string fileName, const int index);
5555
5656 // / constructor parametrisation (Value Object) for VisualisationEvent class
5757 // /
@@ -105,6 +105,26 @@ class VisualisationEvent
105105 return mTracks .size ();
106106 }
107107
108+ gsl::span<const VisualisationCluster> getClustersSpan () const
109+ {
110+ return mClusters ;
111+ }
112+
113+ gsl::span<const VisualisationTrack> getTracksSpan () const
114+ {
115+ return mTracks ;
116+ }
117+
118+ gsl::span<const VisualisationCalo> getCalorimetersSpan () const
119+ {
120+ return mCalo ;
121+ }
122+
123+ size_t getCaloCount () const
124+ {
125+ return mCalo .size ();
126+ }
127+
108128 // Returns number of tracks with ITS contribution (including standalone)
109129 size_t getITSTrackCount () const
110130 {
@@ -118,38 +138,59 @@ class VisualisationEvent
118138 {
119139 mTracks .clear ();
120140 mClusters .clear ();
141+ mCalo .clear ();
121142 }
122143
123144 const VisualisationCluster& getCluster (int i) const { return mClusters [i]; };
124145 size_t getClusterCount () const { return mClusters .size (); } // Returns number of clusters
125146 void setWorkflowVersion (float workflowVersion) { this ->mWorkflowVersion = workflowVersion; }
126147 void setWorkflowParameters (const std::string& workflowParameters) { this ->mWorkflowParameters = workflowParameters; }
127148
128- o2::header::DataHeader::RunNumberType getRunNumber () const { return this ->mRunNumber ; }
129- void setRunNumber (o2::header::DataHeader::RunNumberType runNumber) { this ->mRunNumber = runNumber; }
130-
131149 std::string getCollisionTime () const { return this ->mCollisionTime ; }
132150 void setCollisionTime (std::string collisionTime) { this ->mCollisionTime = collisionTime; }
133151
134152 float getMinTimeOfTracks () const { return this ->mMinTimeOfTracks ; }
135153 float getMaxTimeOfTracks () const { return this ->mMaxTimeOfTracks ; } // / maximum time of tracks in the event
136154
155+ bool isEmpty () const { return getTrackCount () == 0 && getClusterCount () == 0 ; }
156+
157+ int getClMask () const { return mClMask ; }
158+ void setClMask (int value) { mClMask = value; }
159+
160+ int getTrkMask () const { return mTrkMask ; }
161+ void setTrkMask (int value) { mTrkMask = value; }
162+
163+ o2::header::DataHeader::RunNumberType getRunNumber () const { return this ->mRunNumber ; }
164+ void setRunNumber (o2::header::DataHeader::RunNumberType runNumber) { this ->mRunNumber = runNumber; }
165+
166+ o2::header::DataHeader::TFCounterType getTfCounter () const { return this ->mTfCounter ; }
167+ void setTfCounter (o2::header::DataHeader::TFCounterType value) { this ->mTfCounter = value; }
168+
169+ o2::header::DataHeader::TForbitType getFirstTForbit () const { return this ->mFirstTForbit ; }
170+ void setFirstTForbit (o2::header::DataHeader::TForbitType value) { this ->mFirstTForbit = value; }
171+
137172 private:
173+ int mClMask ; // / clusters requested during aquisition
174+ int mTrkMask ; // / tracks requested during aquisition
175+ o2::header::DataHeader::RunNumberType mRunNumber ; // / run number
176+ o2::header::DataHeader::TFCounterType mTfCounter ;
177+ o2::header::DataHeader::TForbitType mFirstTForbit ;
178+
138179 float mMinTimeOfTracks ; // / minimum time of tracks in the event
139180 float mMaxTimeOfTracks ; // / maximum time of tracks in the event
140181 float mWorkflowVersion ; // / workflow version used to generate this Event
141182 std::string mWorkflowParameters ; // / workflow parameters used to generate this Event
142183 int mEventNumber ; // / event number in file
143- o2::header::DataHeader::RunNumberType mRunNumber ; // / run number
144184 double mEnergy ; // / energy of the collision
145185 int mMultiplicity ; // / number of particles reconstructed
146186 std::string mCollidingSystem ; // / colliding system (e.g. proton-proton)
147187 std::string mCollisionTime ; // / collision timestamp
148188 std::vector<VisualisationTrack> mTracks ; // / an array of visualisation tracks
149189 std::vector<VisualisationCluster> mClusters ; // / an array of visualisation clusters
190+ std::vector<VisualisationCalo> mCalo ; // / an array of visualisation calorimeters
150191};
151192
152193} // namespace event_visualisation
153194} // namespace o2
154195
155- #endif // ALICE_O2_EVENTVISUALISATION_BASE_VISUALISATIONEVENT_H
196+ #endif // ALICE_O2_EVENTVISUALISATION_BASE_VISUALISATIONEVENT_H
0 commit comments