From bd38b24f6366e80b37e49851ab02e2ea44547142 Mon Sep 17 00:00:00 2001 From: jmyrcha Date: Sun, 29 May 2022 12:13:40 +0200 Subject: [PATCH] Merge pull request #8993 from jmyrcha/dev3 o2-eve: version number in o2-eve window title --- .../ConfigurationManager.h | 2 ++ .../VisualisationEvent.h | 4 ++-- .../src/VisualisationEventJSONSerializer.cxx | 2 +- .../Geometry/simple_geom_MCH.root | Bin 40129 -> 34842 bytes EventVisualisation/View/src/Initializer.cxx | 4 ++-- EventVisualisation/View/src/main.cxx | 2 +- .../include/EveWorkflow/EveWorkflowHelper.h | 1 - .../include/EveWorkflow/O2DPLDisplay.h | 1 - .../Workflow/src/AO2DConverter.cxx | 2 +- .../Workflow/src/EveWorkflowHelper.cxx | 5 +++-- .../Workflow/src/O2DPLDisplay.cxx | 9 +++++---- 11 files changed, 17 insertions(+), 15 deletions(-) diff --git a/EventVisualisation/Base/include/EventVisualisationBase/ConfigurationManager.h b/EventVisualisation/Base/include/EventVisualisationBase/ConfigurationManager.h index 8df289b118ccc..d4b7f46bf73cd 100644 --- a/EventVisualisation/Base/include/EventVisualisationBase/ConfigurationManager.h +++ b/EventVisualisation/Base/include/EventVisualisationBase/ConfigurationManager.h @@ -23,6 +23,8 @@ namespace o2 { namespace event_visualisation { +/// Version of the software +const static std::string o2_eve_version = "1.20"; /// Configuration Manager allows an easy access to the config file. /// diff --git a/EventVisualisation/DataConverter/include/EventVisualisationDataConverter/VisualisationEvent.h b/EventVisualisation/DataConverter/include/EventVisualisationDataConverter/VisualisationEvent.h index 35c74b7eed846..e7dd01719de62 100644 --- a/EventVisualisation/DataConverter/include/EventVisualisationDataConverter/VisualisationEvent.h +++ b/EventVisualisation/DataConverter/include/EventVisualisationDataConverter/VisualisationEvent.h @@ -150,7 +150,7 @@ class VisualisationEvent const VisualisationCluster& getCluster(int i) const { return mClusters[i]; }; size_t getClusterCount() const { return mClusters.size(); } // Returns number of clusters - void setWorkflowVersion(float workflowVersion) { this->mWorkflowVersion = workflowVersion; } + void setWorkflowVersion(const std::string& workflowVersion) { this->mWorkflowVersion = workflowVersion; } void setWorkflowParameters(const std::string& workflowParameters) { this->mWorkflowParameters = workflowParameters; } std::string getCollisionTime() const { return this->mCollisionTime; } @@ -185,7 +185,7 @@ class VisualisationEvent float mMinTimeOfTracks; /// minimum time of tracks in the event float mMaxTimeOfTracks; /// maximum time of tracks in the event - float mWorkflowVersion; /// workflow version used to generate this Event + std::string mWorkflowVersion; /// workflow version used to generate this Event std::string mWorkflowParameters; /// workflow parameters used to generate this Event int mEventNumber; /// event number in file double mEnergy; /// energy of the collision diff --git a/EventVisualisation/DataConverter/src/VisualisationEventJSONSerializer.cxx b/EventVisualisation/DataConverter/src/VisualisationEventJSONSerializer.cxx index 7f2c6e933b67a..8d414777a0024 100644 --- a/EventVisualisation/DataConverter/src/VisualisationEventJSONSerializer.cxx +++ b/EventVisualisation/DataConverter/src/VisualisationEventJSONSerializer.cxx @@ -73,7 +73,7 @@ std::string VisualisationEventJSONSerializer::toJson(const VisualisationEvent& e tree.AddMember("firstTForbit", rapidjson::Value().SetInt(event.mFirstTForbit), allocator); tree.AddMember("collisionTime", rapidjson::Value().SetString(event.mCollisionTime.c_str(), event.mCollisionTime.size()), allocator); - tree.AddMember("workflowVersion", rapidjson::Value().SetFloat(event.mWorkflowVersion), allocator); + tree.AddMember("workflowVersion", rapidjson::Value().SetString(event.mWorkflowVersion.c_str(), event.mWorkflowVersion.size()), allocator); tree.AddMember("workflowParameters", rapidjson::Value().SetString(event.mWorkflowParameters.c_str(), event.mWorkflowParameters.size()), allocator); // Tracks tree.AddMember("trackCount", rapidjson::Value().SetInt(event.getTrackCount()), allocator); diff --git a/EventVisualisation/Geometry/simple_geom_MCH.root b/EventVisualisation/Geometry/simple_geom_MCH.root index 3f915befe399f83d24f57190e1fbdb24ad81754d..6cb692fa4434a5468aed1d85ca4d5d354784f2c6 100644 GIT binary patch literal 34842 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 literal 40129 zcmeFZWmFu^+BQ0P@P`1w0)*fY+=7!3EVu`E2=4A7f#B{k5S+o?CAhnLkO}TO$Z7KI zXYcQ<@5hn#o*!qe&05nl-Bn#(RefK#Tz3@?wzf_n&{+=%1TqGJ(mH^T4Dj0-_`m_5 zT14Pr0s?&nE)vLr;A*-KbGZJ(*{`)+A!tTxJpxMqZ~dKuo*D|WsBnP?S^jAmcp3G#lqU1MN~{lj>W*r+{lE**u;g!mYwP8%gh8QcXDuNu`qEku{LLM zaJJ!KaWuEKvog_pD$|n{m1K5!8p;1)Qy`?L-u~$^2viAlwifvO=`{$Hn(}`&6<;oa z5hJUf{<&ZDX~b}9Pxs@hh`E?ZnAj?RHn1}hb8~VqFmgfwy8oAot=%gtTQhSb1FKgy zw#Fu!GS7;>fKFAB-Qf0hP`vQP9#)&96h3@Fq*sD}-IAm5<%caj@!Bh=H*tUE1o&~{ z;2VkJAjRpkR4~3!+0QVwcHP}c_wd+NXEp)m6zdl2a~U6=D^544TTAHkCYG8 zTE^JAj!~>0mf4&V<&7VjVcob0a~tLvRLfC;1)Wd7vJO;F|8BX`eHAjNRXv;U!I_=n zOju-n#jmpXF!DW_t01C}5pDfM&>H`m+Nwq|_v4UGPT_No@LC;Qi+m}@M7__m3dla6 z4cE+!LhgMfCM*60>)m_HPcs2mVoTKGdO3s7<#{C=uPeCwA~#t2FaDEZoy} zJ%fOZ-Sb6{P;xU2f#Rs8%*}ST$4JIZShEj?)nYvhbDT+PAro}z_g8KC+6=i_xs8cW zOm3iEx!=<9^;YZi#Jk&oGWDigU#>nvwS?b3xKkXtKST=M-DG(V`|zY`Ka3CWeY?x? z9=$*CFT_s0XR&OAh6b0RH#m~w&Rujhq@8ifSCm;YC7u~QG)1|BTi0JhmZ!J<@U>j3 zZ`X(@T(8?K`K~tXDMra1il*-uU4K0;dpcc)HLR-j^Nd*WUXOhzzJW&imObBU30&e` zWz2JYzLKO5t=qjjbRA6~OiC5qBOycybfbG&MhfjUokd^w)6?)nHRX#&Q`e@Y~F!ZZH z+u*HM%0pe<{2i^W_sMY>zUrw^8_R;nh?wcjrH@`&)30|Fqp-zA$8BcePOH}Y3gtFk zJ=GCNVi5iN)rM9M8K{Q@s(T_e?cEW1C^?s-E#u7z`i<)B(VRKHr>^d=+ojU&wP2&R zt4LpCNB28<;f9NhmF|O~yQ)U~6%YA}DE_Te-pPhi*9Ps)fYZ?D zS0}UKGSF6==MF)$PCb^0iJ^BW_%5wicgd<(y{&qC+bJXWB)u2IM#7J}ZQoj0xXy&G zPwVu2k1#1*_wQ+41m)2hjPlWCdTqSFF46NOrWU`nZ#eTx*sg>fVjGvc3XVxXLQSN3%(!76F5K{d}0J=S8*MB4=t0H_3#|j zz3DdP?s-F}!K2R_AVPQ!`K<-|7tpH)?PJ3Ws>CV}2h2yEKFDlPBx-}QuTIzQ=n^Tuj#lh7X!SuB?-?mvGaeO- zAC_Ki%H6a@#Xl0%rzIlj9!*E_U&z=pn~lOW?%bgc(UE6&5ykYbyQ0iyUJt{2NE*+L!X2q^Qr6Zfkgc(V{GW1&MkXG zU#~g2dy`k-)1!6bZTOA-JhOH*tu@_LSE@*oQpT%>BDLHx5V;WWh2~ zdo!Dk;D-Ogi~=Go0o>}F_@~1Q-S=F(*8eWO8EkHi?iYIi`kn^u++ANj^q6CU-V_YD zKXeL{x!F!)Rki)PXp|W_;|VXmm@i;A_J6T|O}MWG-&?t%wtuuyo-ZI($0cIEb4Qi!wFsi(C(Got zp10@UUqm3CJ3*auMdX9)@*k0h=AEa*4P>K7AvhsP22Diy@T`6Cb81AGs+vN0Mfy?n z_ME?8DxY=?{r7MLOn;T&H;MxBZMsjkfTW!HEy6hrkwQ) zuJEpKR81rWphLJrBuN)?JKip4+l(?rVQe)Xdk|#YD_h%k`-K-on&i8O1S=d-N;c>0KXs* zM*C9}Z-oKER6Tuo^=9*=+u%Lf!HRQVo#!&(e!M4p_`z?37HI6ack(-e{s(^};Frv1 zEnJcZ0f$7a=~`hnLsQJ6Kee9c1!|Ra{eWT)HONqAqq2uMEul~Dsx+GjA$F$SGfCCIT?8DjxH8{|=$JV~mC2gRcKJ#5f zl@kXVsMq13+e91r4%?0i9nlv9@QR=IFW_l!ZlI0y0pR`{p-5)NfO3=8dxH2Ej(;Ot zyMqYOCL0rp{bE9;YhnM^2QEjG=`1HQ#?WxpQ#(%at$l$*7> z!!r=D8J8z4(uNI^3@QbWNY9E3NSeKhLf?eTam0wiu13~`&rt?pz#~^}P|RT?p}~C= zb;m%UBi#}+mqV6=3q;5fHJ3w@L!e{Y>4L*0gaZVg4Q?X4nkxG&0+G)5<6v1(>9_SR>Foe_Wvv7h5XE~rX9??sUHv+^6kN1$s%1?{}3+6bPLho`C9pr4aR z%7crG02D|DmO@5cFUFe8+8Y-y?n@|$1L#ECC_Ej@L^fxYKd%TX04q~w5f1=XAN}3i z8$de>#C#d(0P>TuqgLPnRA~ky=m_gj?z};K0T&84k>x3V6?%x-FJ*>Wj`yi2BGJf~ zto#dUS(gvKosfw8*wOi-g+8W;doj`s+#XQ<@7XhUBKs&h`yNU;kJOI5_FkV-q%zbm z)L+_97Szv-G~hSrHwb_WP8(Gl$qHH0h06}J9I5`rt9i9GzBLbh5|PS-cC0nzHE};< zet!pj0y_Ylss37iTK3ZN zs66r9Fx+0c!M~a(Ta#L&Uo-bJ_VhRNGxLXnDzjRWdol;pbsyf5geSSzyG!AUCUqI; zN&obP+onEneoc%N*+@yOpO4!x0KtistRJ!P?ZH;zk0Yx$dKu5PP2F$w@}x3OymTp% zW+PKN{2AbU-j&irBs~9|fplj6<84RyXU_7`!9kt3J4C zFLXbI9~=W92e5Mhh(bQ}{~K;%KmG%^*NXpvTQuE&;3gUOAGlF{{14ooQ~wROCp7=l zd>V8k0%%@Vs>92jC#t zMq>9`gm2kD){pE-6esdmrR4Yo{dGlbU6xQ_ts=sH6M%@3Y`t^%I7yzliUP_Jot1~? zT2hkbaQxMWbPAf_Meak9Yq4P!4Qh1EgWF0OS=3^ z!KKkoFW^J{xbwsEewxPWx&lLFWdTY&9j+`kl z1Hb2Y@$cDV=flp;vdlV*-iOymu%jpkER|S$cRO`Ejh}HMyh*!B`xdCb6jX{>3eSx| z)kIv6JO{6h9%aR7M`|Znj`?cdMIXfu!45!dx(IJMdOhl^`Qdh^_L6pMP`?ezA?OhC z5MI)SM*(gLVF^8IUuex|4Q}n7pD{KZHbNw*2`)wuO#oQ{O8_p)3j3Jq81I-cA?&BhVhet2!A~O^^(0!R@!m=f{+a|5BuT=jXV0^C*xc>WThy zK}|O_ar#9an!um3j8uzZ{fMO^MOIq0?M$DLnK;HGk=*u~!0$70kk%f>>b$hco989; zy@B7(5>;w1^{Vrnewa&cx=IDSpPv1`k)G)l z&d@rO_Bm2}GT{jomf>&z1p>fbZ52=Zw^RE+Zm|BbhyMcTzwP13nLP?%4>KaQ^nhR= zFuE!a2Y#0#D1LlJ@*qC=bkMGfHC8of0hA6mu>-#e()pu$S25q>yh=Z8mlDDLx5Ja3 zA;OZ$!+#jyt(QqIVh%`6_~|R&+#T$(BLu+O?d6|M)Zk!G5Ix(3cL(jfMA$?q@lOEl z;DG}CI`-Y3U5fg@_nS~4>jb3ST`?urU)gURkhK(Le?ab~`Rv;f#Q{v3%lMtsG4=m$ zri2>+Pn_;$SyJ$lM#76D~9Xr%|4rK$VZ5y-C{#{i~BZ|6dZof+b;8@2&zE;br=5^ck#1r z9+WfZu7di;kclTlrqqkutI&~eBz!n=wT6qUG1mq z^K5eX%@rq=bNn1(?m3zT;?WQ~2c%w_5N&+b%!$a?>M+2q6Dv)Ft(_x&&=Ym= z!23}~AqM=&2>op-xi2&)xHmof((r5Tb^Wm@6hmMp0 z8|c}3qwWUWJg@g{YcdSdTC^GRA^6D~bSMDgwE91$XZ24Er~UuL^gMZbfa&?i(-SLQ zEHa(^5oH7Y1lVL*V{6C+kCLwJ^TMA8shzLH1ywS=zoibRwkop z5(-dkf1$Yb)Eu>(Pkbg;0uUobw(&i2y0%DrtuLPc?se6V#CtbBS0B6z4>(~>XYvLI zJ>oXwE8RqkVWjg-H9+AjZlXoV;x#Z7wQmrJmHy~c#cSC0E=<1aNNl^m^|U?av8`25 z;s%LOgg;9Oa*V@@hnv?7ngO!;tqIVP2CeL1|LclUTmjv)*R^dCCX{%~V}eb{jd zDK-ET`$o5Ur2>YdkTzTYe>E3$Ny`2|0q!h`oErUS{buuIVhzt|`6bjMS-V=Ia!2$Z zW?YsLh~S@?YVA$Rr;4x10UB-fe}qO8Aa@05H0VwJg^5FkJTMBQajehSPN0J9Tf|Jt zG1N@C>1`48Ow2K&SLw_mSY!BqXy|1>Tp;SeN<%z<3Z$ci?&TaNc2LjZJ*qZ@=B|)# z;o<^)@>l7wW0X@KK=(pV+^r8Eiw?=jt8{-6<|ve?5jGK_G2+jtQF3ss&j^Pig7k&) z=n&~Jx7aW;o#F^`d5PX45n=)S7%%=?%*^T>Tof67M1Z;KL6nS~hzT3vf1Y_q&(ucN z_#$TVgifE+j*njm0rpxSgP&|LqSs)RFmuFaf*hL@t`d$<9V7FO29%>U6hUh!jG8nQ zk*_a|p9HYqe8TCTd?M~jWE_4R{#A1)^K)Q?A)piYLg<;zz;lL>w?WiTp$)WJ!(Xbng_NQ}x#;#5c&2L5D=kER8%=wCU9CO8P|n zx)Jy8?PxB|&tayp zlEE`0GsAHMTrwUV0y6?LilhsY9km^PInk^6>2|L67i*e+##;V+etZ5vU|x&B??>WC z0vB_DIN-0-4zO%C$Tn~`NHz$PF8p>VcC>Z`B9%@4XlrC^x_-u2a90S}AZ&Ol&u4Cg zZisW3QTvK(Y-{#wr~pgmN9&*Omk+drlmVB4l!4F}cxg)9+jVl289j&1Wk@qE11uc~ zmzi|iEm-%@Wo!SJ`&D+a0({VP0v(}csx0Ga3^f^+5*4ZkRXj z*49~ba)j|ROHFpo<8G=Z*D|qKJ31EZ_|Q0U1CdrQW}<(#t|b|0Syf8h5XJpCMMA!( zV7oLWD>%t%_zmmgQz;Hdp@V#;&(suB=!jOip|zZil+A#wwVcn$w)#!3^*X$FD-rt3 zR-&q9FAf>X?7sC>oVpvAkDH!hYpGQQPO{I){ZBhJ$hz6pfVB%Hz#4^UN_87n{qE-o zGUElk$B(GN7?GttW9{;D#6+g!1m{6GW>-QF{@%Y&$k9f(Mux+zISuoQk2k+5xGkv@ zXCCjvI z4Z-sqVM&Ek+mO-5QUQIvSg5bA$BgP`PL{6eO<@zihKYXAX>3i0j?dV(S@VIyXn9x? zy{GP7^^LB8NC)6d-|?;=L zM=GJ+tU{I>X>#L9J`4I+NYZXZx*pEvGHur71Oz_V&F2;yZ+N!l^RLUa^8k`NKq+L{x0fMwd4GzinSdhTwZ`nI-t_UE{A z-Hzu0;zI&U{O4UU9X}lECZ|sIv?~-(CMJD@Y#tcL-ephRDZ5gmyF4sTPO)sRx2E3a zzU4hAwCF!)r+{vaL<*Ov9*s3Vh#u!B)a4&qZq6RA1a)XUOj%Ut7t(CEzPtU#Q_tq^ znIZ=~cj~jevaC#VUXJ45=XeK&a=5X#J4jq$rDdB1yHrA*jWe3O-FVqV+hfgsTU=aZ zGxv9L2DsVMZ`_~Sx#wmxuuCA}_$C|1%(l{XOsmp%##YaE!5&2 zxu%oZTsFy2@jHrG=HR4pX|Wlq5-yED&QzBrr7JPf>; z_4-wRvgCQya?+_`BQxGr&|E3|hG@Y~Z+`dnK%Q1e=K=gQ)6SiFNl4|+sjRN&uFt@d zJcTe;K-FF0^wYG5trE7%2VHWeza0!O9M8y0`E-Zg8@2?4NE@C0eU*MeIbFRL==Y9G z@z=$!-^5@ZHq|ngMz2m=!=Gz^cNpkY-nXN@O3L82%0dUl=}^yRuBjdkn;|@Iw#F_u z+)nV=!uQ}v8ljBv*%*A7sZ%7qXO|aPIR6l61 z|9)9J)$sLJ1J-O0M|jdshG#+|7@V5Q@BC4>Umx*#e93x8(sFPV2xv|)^Qonz(uK`d=-_( zKvR{|260o}5b1E9At7oMu6kXQ5}Xgo38AyZ(e}&;)dS z-&hcvD5=J5RF+Xlo1We{chl}H*t*mp9+%w9lAad*6K}G0Vr-`@YqeB^G#VpCtMo@6 zH6^||>RgYix9nwavB3{AHwbFl24gRpe+?z|pbcDi;>S@GXJW7#(v+~qtif?o7Cp7* z1hjUh!JBN77)$nCPKus})7`$n@vIVMfwoAfmw(jebG}@^1pi)V=!CWRCw|L_yXmAs zJ@;RxmRd0KQk(mI*SoqZjkC00G0qW9^_l6z*UXH}qjO< zPD#W^b2594>8b{dp3GrkM!m$B$OxK4ek^mu`Qy@Y)g=IP_W!EO2GlH4*n3p;5~}h()8tCLz=3zPn$yy2hzmZ{nWj zvjwaC9*~_2R3rHz+j7uHQnYVz?80U<(@37xR@my(xO1s@inWK)ZjRtgpJEOh?{nMpSB~=0Jt(1pURqb z@cFcHl8)QG|9kRbyy)?QKUQm@+g_jg;pn*`&B5@REvd55PPNq;)6u6{Ux%X;;kV9T z9uqosVVJQC6_=@&25--oJz)Iqh53AhuEeQCNk!3N?1M+;-m*1!`PLfbPA!AQ@1a`0 zPOZ6Vco5ewi>#lZBu6>2w5{xvDW3vW3eQS>l{{3B%RO7NE+vk%2992yv42U#ql`+# z(UdyrP*+n53nTNjw|G73CZk6lnqV=jKQxPN^Yhh7QmfBwmEpZ_rR!UB>HUC`AwRb% z)n9Dh%h(>e$<{8uE&FarHh1K`;pTTdl%^k-lLRh;GZw_YHL%UZ3Ex$nlui?9%=)T2 zjQh_rx-n&wC0H-v#`T5o#BAHh*cDw2gezt-dcFz6IP_rTl3QeJajXPc(-G^VrP?|$EHQgRb%376dH ziCalI^Lq1{{J3O3h3h)jAb*Lwb73ZbKL!hy4=eN79o2HQD_vI;wAWc=XOaI_=2|H0 zFr6(M;tt1zRKtjZu^{Uq!rdrVxroej45p1l{JR2##r61=GRny@0Z% z?+?ft`AdP#la%$CoiEFatlyJ6ZP9E}3jP*@%=D+DhSKG<)@)i!q_O-cKTy;3{XxX? zes?2wS9%dA&D`69UuAA!&?=>tlp#myCI#PRG3%$gP1m^rNQy6lmwVlt=5r+Dk9`@`<^PXU@B6GMY{pvS6X4S#7fRg5+yn=%k*g*lZ2*X^O-wH z)amcaBK6@mG`$9#$?6+*3g-`m(O0f?DgqzHWx(6Qs5HeAK&e&(9Bztlw-i%=aw}aX zHBC)<^wwf+v&%&>)9AJBLx8-6R0D3W-s8yNoT;pM%fYs7|1&r7v34u_0g!ddK~)Hub?KcV#t_$15iLgR zN-lT*5!pgcjGF#lFpl@JYz)qH6Io4oU(+w*f!M#%vluDhEHAPcQ|zW`XnOy1F!HAV zAzH!#hLdI~Sm^P|v+!^5z_Q*mq&EuwbQ1yaeY_BfZ1iEpHCJKKg9PUwNOM*qqmi0X zFmOmp0-?MVJCr4|-1_Qx^})tF`0+CP!O0sDN^AqmvesJhp_`j&nxbjA2jqg33`uEc z%I9mx?Be&!oW9tBG^yy3I=D#rI}FX(!fc12Fs2hWHJ-!q6AFmiwLZ;>`w z#?PHK(W=+9FKyI}FQ^f$co__#<1WM51MR(ah1Fkd@oPtk?jG$-{}q1?x|JZ?>$6i8w2~N{ z$={PE3~2%>gT`SBa?S)CdMhg5N|(NR)k_RVkg3BAMs4VO%vge^y3JVX$RV)#L61qF z@A6~jjwQ6J*p|X7*8_vrDYfK)w%*MU>5O~t2=B(i0mf94&QfJJB(5QsDmU=95Pq_* z1>-(b-T5qau4DJ-CZ7+24z)P0db`!Hsv80qf%#F_wNak(`5gPJrPNC`l5+XG&@}@Q zTkt_pEvCDxjvYzhywBHn>NY>WUS^*>rj0cAJhB^ZueXt?hSf#>HKVv~=@Go%bhPL5 zP+2zVIeq=X^+>hR=fNSBc{)cXdQI?$OOPhhqkFuD`6@nnLax5X5j$iIPJ545h#I+^9*%=2jPZ!y=2bFsX)~Hs}P7)f%v6ND5huELBU^vK#~=-==WJJ&x6x*obr<+y=sb zLoS|;B7J5R-}DBp6R`;pWOfinH-H$tTEJZ?ihY;CqAn4?z>zPN2*8m`E7j{>LQ1KY zu7P0$?z-%3LqvcHWqdt4m)CGrsU-_qh2SF2dXA}(- zZt#YAf-tYm+B)J9C}qvle5-iKP#^D0yr8Vws=Z*Yc``v#CqUv_g|CL(;P`_3hr_h; zQx7gxJ8!&lxMy!wFTS%d&HTs6NEUgh0CS*tQ_{dJMBdP%^>;lx2-$%vu26pjORfUC z-jP!3W|2fH-qA<3SMhSH@`O)@^LQnt8%k+OpDghe$9=ZpeHQSv37P(2>Q8BE&Yy#9 z);C3cx~?ee%4)^#ns-Adk(20?StoO`TFD!{zZ_ms5+uw!ie8v~JZ%~(d9}EwIs2;< zsS6~fQ`)g0EhP0i{dxeb1g4BvmJ4y6`$sc=iyok_qd3|@wdphtQ<0->bih5OAm>`G z)#jkaHC>qP;GwEp&4gk01Jd1fBjagZdI7mtSZ8FZGhgs2i29fdAxpt+U%2}c|rN!hf?UU|k`bR+$xhcua|S*8ubZ#-om zT%O@{gj11pchZ?=1f&-*y5_s^1yOvj!}?&L>qht*6#*%BLx9kG@(H|ULU7jM=|-Fi z18hIqv=y&=DgQ05Ldxu0hooToe&M!H=&Mw!g1dS#6F#uDdk|Vq#P`e2CsqGrx4-nE z5N@98fbTkQ^Kz18gohdsPAx$9)0hv^%xg67;sj{_EuTJ*fG#B$19Yj%#n%oVDRGs@ zm^g0w73$f4Jfy|Q#-~oCV(JpTU%M z{h&G3oLT%nphNC_BHMp(#hqsR(ZUh4?!MrhkeEJP@pPxuOE63m@W>XZp8T;nSkN`= zXQsbBBfu+Tqa3l~JSt$nEile@PZl5I4C4-FoZ=Gl{B>@AbG@stZU0uO=)8T)8-6~@ zjmRq0c1it1C59ChJ4rkiN;>l#wnLfXY8U6BmANC=p%uVBbrzh!4QE~Z<=uX{yYmhe zwCAvUuprq3DA)@ikVOCr(>?dW*Tc%-7al?8v0R6APO*XuoGBL$ecXd=hT8^0A_@vo zTH5S*;L%NJ4a<*&N4G4KW{YE!D+Bh~4UObnfGCT{_C4J#I~^t|Np~fZ#y)&Z0IR3l zDqnVt<#7oSrkD^DG3e=TLN{k=79Fu#8!`?y3DYdg)w++oq5#i^G3V>M`HT(sX+}zG zxo)W{1D!DFg^sZ|5Z;WOVqAzpx0wSRb3;hpa-WGh@UKWjw z>a3NSzV`2eAGuJx6NkQ;T*eYMvkxb&bH)*M9|p1`U`k|7Dwu8(vrR55ENDBvh%Y@^ zM=~eSB=<5ANAyQB=`lN~09*T|jZc1Gf81qbN>x$ZNr`6UAw0e+=VBjvR~>}jeR+bN zwz2Toy9}wBuaO>Dn`$B)9N6E(&{cvLIPBsoj``LJVnCwlqYLzYo$-)No(yar*w8WA5VpI@fz#{9Eef3i;SuvnvHKMzi zB5cM(Uh5!_`jf{{7rX1+gWHTQN!42vrlke4T^_g}>i zHEs5Kjkd`7ST!~))&YzCFRnA7osl;gds>1hE5dGSiQ;O9-#HrFu9m#tuN(x<%bJol zP3>}+b{~^)r&Df{>ROFwU5rVoT`{$3-jA-nd4BqWV4wdscOMOMcBlpm^@$$ciq}i` zSp7-uJy^^Q)oFnIu6eX?NS;0)Of*v;s!6$D-??weDF52Loba>8ge_4;lG z;r)u^b?~a^qwn4?@}ak;og0sbw43gZ!oGW}{JO!97c~T<>8{YT_ajHMtHLi^E@$$$ z8@FD-(g#agBkxaqTRfOu2ZvjGZHcdzuxop+WG$Q~53gu@lUs&xZ3#JOU4J>ogN4ua z*Ym+;_zuup-@ejE`S*v%f~hCo@q;CE;L_yB`;yg)g)+BUH{V;^ZvwPJp1+A$tSdb( zn}0!V2bU1ya)613pSaR zY6&wp*lLelFwMF%y1Tpde-mmuY6}H>>mSZBG`+n#6LS&%mZn!Xojs{K?|SGivpITN z(U|rqd-K~;sEFcd)>>nR2a2)gP&MkG#w!e4PdyPH-8or$T)vcGCb)qGBxzJ z_<{4&y}KXuD8bQturSEh;KDAx<>}TbC=Fy3dVI%}sQsJ&;HTjXa~k!z4p30dGOPhR z{XXW}|IKH$6=n71-H96{(`)N&Fr)wZEwg)ktIpAZQzD}p3o7p{Pxz3Ui}W3`rqN22 z@~AvUpE3KwB-?!k5+_Qfe~$>RpXRA)yCUe`g>wx4E%Im7m*`_hC4L)zGa@8wZkbGD ze{zCypx*+daC`*!%fScyMyp8Wo_R@cP&^xjCUVclS9Sbt+JpD&`T6rKvsZU+<=}r4 z)B8@)F2D5K%$Y>Ubm|I@@PwzLBm*{e1iP~MaRUp>$4Oohkxt(4AVh^l>|~6$0B29h z!~6LY(EiQ}2I6;lU=zqWe|qd96}IoB_mAp0>}B=x88L~%GOU@K1~vK)$}xF??w0v-I*HyJ`0(w}b>FO)y`3$VgHeb*Bv zJ&W?LNEYuU=g;u&B?mUulA@4nj1dT~P@H=+c@h!?45A*tKwt>RGDuac*58`y&V{@P z`&4Dx;eM8&_bi6?Zv1<4VAk618S(&CfMKX_v(seV2sr4T++A;Ul+S4E)ETPEe_%n0 z{B29TRw|dL)4h_zHAy_d+sxj??X$v%)W}}FXCr1S??2XZn!ZfDLAk@v-oTBh9c8m$ znZSXlCqB={TKyrZyk0BKeXv8{ft|c}vxQfd)~5e{XJJ~JJF5QcX}`b#uv^5l+rW4R zCy+cH-NJ^r0^3~LSq(^mXjk{l`VlqT#yFnSN4~BCZ zkx6WQuSsmTBGJ)g`Zi*>Wv}631HwxlmPnU{EA6=@nRUjU3(gRNzuIIdCpp7{!h5dU zQajlxIXD7$6F)_KN>@(uRFYdwQ^Y-UJav?RZE2jHN$NT!+|Fwn@ky{47WGb;3#Ik$ zRLf+I6BbMEYtU}Wqx<%_1MK46>-7*H$>LL^n(OWZ`Bok7c3)*nyY6~rs$?0}jfVDk zQvUufDcL}2I(#_CBKeZ{5-Wk&`S{K4;(mNhMc5?*wjdV)EbMJl|4Dv?AUDdFYs(Qb zU$w;-ij=VilrtXqFp`_hgv~3gK)ni6_nif5M)fFxRc7*%gGb0MqC=EQf+P2RVBOcqvdk?J0KofRUo zozoB{sO)GJt}BjFiS=3<0YCh{JVLwN@WH@Hzj?wamk<@JDeJ3_+6(?xu1kUiGmAvG z2ve0F@e=JCiw=vNk)-=oZXZtTwblO@OPl zU_@2Etm_vyZQ%G{KBf^ahi2P$zi?qa-zj>TgS{eZZZ_X&RG5t6R^G3B&5zGE1|C?FE6FWs72~J-I`y4V@V5Q_D$% zH`8>lxAL}ZGl&A3OD?8HLUFR@pX$eNR)BoaTcLHX@B{Y7BQqG zAtcn007RycDOCC>1Iy#&vGpoL3?^!=M|^eH-^Ll~eejcC_Y<3Np{iIm1_uhX-Bii? zo#)Jm0|9M79c25MTW^FKX=bGddsEwF{VnCgPXC6?9ggq)<6&{;{iw|XN8)9q-sMN4 z%R_6N`LK{rLv}Sy#G{ILo!t<|s6=zZS>DlT`&^yCW4d>0Fvqx0QbZLI!X~o_BnF}u z;d_O6v$5`co~80N;JpBG4Bm_n@~QqzxS#p0w~ErZARk9{%K6L`4*iyv(zY1Y-#7>_ zd(KbZ7u-96>DcKw!nuQn{YsbYsXke!*yB=H=5l!l#P1X78Cz}=vHey}?`nsvuFL-# zD+<3J?m=W3kASp~v(P>BK zxdgh#Iy49~Nq#RWkw zmd7j8-ey}H8@>kuDetv)g(fmPT{z=fN9-m1>Kpq*h)R@3@k(=&q{a2rp#YKOSGF@w%qrF9R$UD5=V@T?}mKB z8Yghy&B~V*^^(#wv;}=e^8Ef{fqH@HZLe;5nnX*DcS!Ull3We=x|1uZXfz6E&x1*) zxr&MSyI^$xGrPqS;yS@IZ8hIvDy3xWr#(iumMa6(XO<;xLdF-f{4uu>abzwV?-HR9 z&3n}|s)!rNE=z1UMC4x!~co*u`vIe5fM8G(pPM1W;n{qXSjv zP=}0oNBX){)#g+QjpE0{ipsaAKfUWM?cTTX&oeF4g}|8a@2`ekHdua$Gx^M-$F{Yv zys_puw%qH+9m0RSnzI!C49m}%F|^ZKs`(_57Au!(bfjRcV-qsZ;)rywrV6>=?l;vF z`O9}ZiCk^$VgBsVn7plJN3R-~&)?zkWK|+Hi~T0kr())s!xnY9E(bH6Kn@7GUh`rz z&e-+f(o(JIehT8^7z6X{8ZoL_gl}>o`K)K4ieypGsNjOOj5757f-p#6zLt)_7qN87 zV&!6fzf`{N=(a+9C}$1b7SC?vMfPkwGg#AOrD)>Iy8vki$RS~)NO+lu0s~e8M9__Wzzu`Q^uww#{JOXMFQoP zRGyQOgiQltLgvJa9%}6ouK@15oMTh{i}{u&_yx6L&kdLZm22-#nnKe{?cf&b4TqvO z9#kWyYI%KzWl|1vS6V&O;yQ2bh^ANSYWT+Bo`K#ZyQMEFCQwrH#0}G)Vd1LXf1#4M~5*~l9F_M^A8dJ%rm8ZQ=J^6yeVJQ$?i=!-jv-GBv z^|K|b_<08pz4(5lxhOqLvJ}Mmi(s&iS)GM&un>?`nA>1+=?|(>@^s#Hbb)Zw3lS7C zLzKgLL!Uy#=ur(7_8+%h%GOFt73Oq6LjdFKhL=hxmpwO!il7e8x8irGr6u@j?0C6_ zT~+;dZwIPnqQy_{b{FrcM?Ade;4EKi@2l{IcJ`X;JZ;{_ji%+5f#s&Eg|~-8JelQq zrIZR+{+xq6GwZDW0See<;Hbho*5ZZ*qxDp2uQPTp(zPfq_E&~1Dam*lZl*Pm7Xz{s zTZjdo4huQ;X3B};Q+Dvc_<4S?(7yVb7vSmeFPc(u9<>iUOKuDN$dH~^b>3qeQj*Ri zYhAaIlkcwML&XQDreAt7i2B6F)tK)h7DR<48d!{|pUj*b!osiTy7R}`O41~;63r1g z4Cmzh{-i3VP!%ZR*(qoIaWkJ%JeJ(K0PzH`6uPqsfoA^34np z*)CttOLvx}vpkfXgqe8X^TS=x=HUXo$7QFjykD)g#%K_lo_pcNI^y}oIBq78=_P_h zebktaEe|2|Rp_fIutpECRSF|CmB}v+|2-Q!$^Clo2Iw*{T6wt^T9H&dTRa3FQn(^z zOnGLEC(7=0^JnNzLEKQBYQ6z+bhpzJn~Ia6y@!&XB)8WTmSo;XfIFwFlB&qQOf`iv2%(TZ(V@u{M(z%4>MH1HJqovHNA3!<&t zLov~YR;`f>pr!e<-)~G`GSPgTYzBf5cui2aUuk==2$l%2wi3<>CBm?`x}K^(1z1}d zkqX}eTA-7~&Eyeb=d-~WqhgL3x91jtfTF`9VDOyr;oFgb7%@!}XL8|Gf>MNJo}wrY zv?j%sqLV0OJ19r-9O)9808hwF_Id#=-Mwk)^PkRykbs^17&m@Y6VfQ9>!CLf{0ymgNO7NEud5%* zA*4wDp6|^SiX0mZ%*Y-^Q09sm@9jP+U$6M~PW{ry+L-Fx-aUo&>x8DZ!75Xgf6^F= z4mGZ(TnS}5>MreCu?};r+6E#z!LiLioN&;ScKI|ds{x~Wzw3*+ft&0_=W>j~M(;gL z&jWDP9pRGiJ|TK5$%V)lL8K`y5YuWb$)51NnT;IRQtx$fLcTEMMrZu-=tY~S^GAM5 zXvrh}8$l;ZmUp}B+a4R;8vcbdj4X2BN`Z7~K0*G^expq37Q3!wg8cXD{a<%By9=XE z%MI@BKweYj4wQL?1he{KeG&}x)ubKagp~y9`QpV0!0iATjjF4CNk5`x@8XZcvFvS+ z^l5@|_ApfWs&}IiSLAx{;frv_^>4=B`@q=OaBIEh zB6ibMk!z2+qlu`_5P*|&_|I_*|K#0Wd(C4%YWkPZK51epaSYo9jR5!O?!Ia7hc~Q0 zoWpZ!9#xZvtG%qf7dbPiBNtU#1#>k1%pBHsxDT?`o4Pf$gi>Ofah>5NI@H#M&{8eg_P4HG= zZ}MvD!tO^%^OaGX*3G2hqgMb6k9P8};Dr}QM$DK4Tq2f4zq*`+y|(bJe|DW~A|PE# zR!v1V*Ix5G{vUk31yoe;`aKRJBB69BC0z<45<@rA-CZKm-5}lFQqs*xcS$!$cMaX$ z@H>Nk?)TpNzw5u&EC|{)TQ>!Y*e)DJSvjN%Sru+3J5wOZy=^#E;ifeZ>1FmZ}pS#pVF6F$j&04Iq zPD#(v+V4Pc!yM(Mb*j9hJWsdc>BiG)-GpeKir}{w5G<&{;JrszJ@AEfi7Yhx)6~H1 zIONpLZvAIAf$I>yEoS=(AN}*U4tr#5B7>Uo`^Q%VSO=&00PR0w zVG(4#DCz#BUHhke}VP9>Nu|ZXta=#1QmFQe7o_PxyPuZJ^Xbwnr<^^}4X4|3~q0aj9nT!n-ts zSO=~Ox_Uz#j~jVn<4GU8+mHE2fq`$q=@=hh_lY!={noetULk*On)DT;hB7zv15o5@ zRX+DKGq~K!leqhkgEQ_l7P!ae+$C?ff>%CUkcrKd8-VPrceugu0zG*b-Iyo0A-e3C0efeJZrLa7?Zz$2hSRJuVm@B%0x zf1vQtL=7SEP0oy9LLC<*F}k6cS|VAahV<`?G@JL8HGy)88K_q7A%AshoMUQ;>Ech| z^Il0T>oER7HyIr2(|O>rJ*P%pa6fY`Z+XA*Zvx!~!v|P6p|COZ*EK1+$zeCZQ+5FL zar1sSHLMFpA2tfOqcrWegx?G*z)2D1Rr(Cv=D0t20{o36W8c>~cdI60B7+c|nO2jj zA-6clpk}>x-csjokhV{8%ZgV?5_=SfX#)2&l9}+qF$|g+8U|&boPsT=Zi1VwEqU@QEXCeH1S6)hE?l_ zuk#Gogp0NdB)$%-CSir&P%ALdB&}qj+rESjAPo|`N%TsXw(bw}qS9%Fe9 zmB^xSdaJiUELW}AJglARG<%`#jD^wd&LXkO8evXI!|Lh5^#x>msLZal)^DfBcs9<( z8mTHae#R%FJf3QjCj|Y+T)FI<*s^mn60Q90FcW;haZ`)#27)C)A%>(%YQC0jLmXxS zW()vNt)KAYad&go`a$h(fbDA@1TNiA#zkFy3Rz3%>9PktjvNTe1+Do6I;2%Ol`Afg z?c6xLqPyjQ^=!6II^K?{3~bGx2yfls-ULinzal7xe5J-Fi$+T%RD-8vBsRTEq7WM! zYYqv%0rQF`b5Kre?=nw!O<3V=X*WkpKe^aGOLwWH?jv&IUA? zG^BF^3=yzn)ZTR?gYSOg+%ns&c%bf=+TZVl#07g;ZbZ(xKiyE1E+CrFDtH7C6Hs4+ z>ZE_Cdbzz~AJp0aE$cs)%6|oL_GkW|?Mdr-+VE#h;)$r^+_>h`G^V2CRbnUilQomO zYT~op9Wnq?0MKUMYQ5o3=4Ua~LU;pMVJC9|V+zzl2tX6#%AGR*-jI;UsYSDP2{j7N zHdV8f^>3_+?6lRErlP6WuT`}6GE5b9llvF`4OCQ+SLl;PB zId{=4%1vI@Iwi2QYHEZWMnKIN<1Bl&ZHdl97?aY?G3*k>6H}WXRP!R5QR&T^&;){J zEh46$OI`@}Cs2OYIH)yMfZK@`FqedG()AZD$b40%NA64RWxMpw<57CE>Y$Cg;i($IK8mv{CW-{a^{cDM<5R8OWzDvk)Z0p zSEn~&{$PaTfJT2MC+h_|;oJt5<5pD9cL_e&nWKS4{jMWHBY$459gAN&zT}q66$KEu zWlc4aC{^g4CV*-&(~56z(-Dw)?iz}Y;c}B}l>KmqWb5Dgn)EF^h^|$4G`p{!s5hfs zt4cPzI@t@QkME*N9~_*uBk(T*CAoh}x-SX`oRs%zo%diS9e`{-S$nA)RCpx^c&53_hcArPNQV z#~{BB7^%(M3rfU%5&gFLjLhUX_vPcIGlYl#rsmBe$si7ve_UFr$-jd}d~3JE^|QM^ zX>Bd>Rq0izUiYbh35$=5jz=F{`^F|0mh5WlsBm37zPJyn&9mL+4aB-wdjffy$FUm( zOiFPxejxk!U5GW`@j%w$~TH`|m9V<#<@1l{~Q;I$Ml-XCqoXV}(K z`q4B5bzXA7UXhIDuau+Tu)CM;CLtFelXRu1jnsadTocK_)QNqzrq-McgAK?%NjZR! zk{=^EE{0dpP8<{CRMHRCXIS;VvjfIqxzFwFmQMg@U}(bQeq_G_pdas;39cnbHPuNI zUEsOyV~>`8E@to3U@xv#bU$B6a*+Pgw!>ma_2a(X*30I_B;s(@yEJgIj{2kMGOWz& z)Oz$4t5WnxSk_aaw}2?L_J=NX?At=N#?GQQt2snw1Bx~TpcJu*6LgjeV*Ok$;bYvD$%QbinLP6DBgd;xH!L$j8-ijF5uykA|GRUv~c8nAx(#3 zZ~&m^VIl%ChE*??D!u{u`jAU?Jso5}w#fG=Wgkw2FcC8YeMSWNxk;!2I)7>lY|y+Q z`Thw{l3XzIrv~OTr^e+t5llp@ay8g4*kVtXmLp#EAB4k1n^3qbSQ^HQbMqJO>VVaH z3_w$(a>-dPC^z+V=YQeuTrweX=$$Ap^0z^u>#QWWh~(oPSed%aDJyA86F;u(^wk_* zptdYF`gHRJP*lc;`)C|tV4M7c09g;SoP)Uz6#`J;|Lj zjSVMo)?cRTx;n@+J;s&!rPe6fWDOoq0xU5S=VhF^XOWo3H>(w)-8ZZMxS&Une*l{BuQ`(5lTuncgp}}-pM@qiTcxkS z#LB0bg|53{XGRZSNx*&Mv*AmCxU+Hk^}qTO{9nY-y9$n?q29q<{WJC&(WJWW5?DVQ&}M>ULH)V?+?bafgH6JT}F zHi^}?5WlS^ig!oi#(Qww3ZGjg4p-7LcTA8?%+20$dqBO=KLGcKxJpF>z-qz_msPzzdJz zM=u6GpOy4~Nfm|H{y}tHb@ADf2*hyHf9;IRM|o~sv<%8uR;S0^hKmG09gmWk58^x? zj$TV#*SOxUY)N|%g1x~a`P@M>8nu{c2_`j)&#c+e^7D7c_}Km@K06RIW0 zKFfT3T?Od^f&@Tj0QsU0s!aedYK(ns_{Z2u_hRL<&?DPV^|R)sLt)W#VQ29~hw1rZ z@r2A%7I>HL%Jdw4WQ;>FL4fh){}^N!>>})=kp&P5pzrk0D4%e_n&$KtxRNx)m&QJW zJ99fyyozD-9Zu`Iq4jP^w32$SFv^;&YcHwIqW5D{%@_^&#SGnx^?ZL1+Dd=am{%2w zP0Up$BlT<1MaLYdd%fm~9gFv4xd9(_33(*l4~UH8*O(Q&g!Qiil)u_=&E|Z6TGF$X zS0r(k#}D`)EvAJ1(!zQ<*DSNEUgQt9;WRW*8m6bmBmvrPEux#9!bI+)@sfiUxZS@$ ztbG6ykD^HSFIu>55~Do?t917KnHyR-JXtab!83sQ$zxehP*xUszIyDu_!Tby5>)8# z(O^nL$W6^{J_%SY#pCXN(Ka7WG9A=EEZ%d~9s=xM<0?uv)64pW%oTY*$XA>m&hQX4K5v!F8)&}xYSr^k=6|$*?8aG+m8#C32d;e z*V8kpA-j$)vfa~m#2L^n!jYE#agXc?_7!)A;t45#?)GYFpJKw;}k@ zmLJ+jO%Dn}k~d7pOVRJ1rBosphpQ<;!C!9{@ITR`8fk!5lWqPTZ`%o=BP8iBr+zM7 z61e;^D6|<=MCD)VeVVw^klvfBk-ZNm;{>yUoQ#wKdjCwbLo%-2W!`CI6G$ z^NAzM8z|0OnE^dPe~WF)-gD*ofNakOJM)L6XiM=vZ$qf1`o}z-&#}Qgk#e%4oBXYT z^K=8KqB-M=46hhVU9Dd}%rn}>E4m*<9E9B)Q9VfUE`jHA8rauPPT=H=iM@va=WqP9 z4~cjxa!MXpHCIzjH5d=*f<^^ot3m^Q3kG^lgg1yR61{olG0GhMu#Yvd0$h=OV^K$d z-RG12!Z!LJEPvt6Hcy~#-O8h&t7&D&K>t+yI6fp_WN7a=X|S>QSbdTE;KuFV^{I=M zl1{-{8~hR>2nlFhV&Q76@zdj92#tP=nG=m0{}g|_no#$=;|kCghIGF>TfOKEXuzi$ zj?Vkq9?@9C&a6l1Xa)3%O6z&y=3W+Wp*^wQ^#-s1&h+;vGwT0XcpJHgjr=m@U@;i^ zzIZF98T(`*AE+5Th5UM32{7(>wNV+oVRStQ4FSLoA1=QHpxg%D0=GlvY8j`uyc!M) zR7O>YQHw-(X{+WHz2Ix<4k0Sn_2zBF`&Q*~pf`ff0}BqYoI`o?-{w17WB97nKXSY* z7Zy-RU0`1L+h&+I=MM3mbXP&{d)au_)0(EXR#=W;;aGn1FLu8GpRc11v|W7O69N4B z(Ec3Co`B^_pg%_r$9K#z5M>5R|5-?9P%BHq8_>AZ2kN+svdu2uCC@YiE8S`>4#CF! zWYK*rtt5O&qs@$m)~+k@_%I_x{=_4A{u;Yu2e&MM|5AG8@bdUFoGyE2dZ^EjO;U#*8ulsMqJvpERo|7G;h zroqbEW9%4U>|{p#Y6gF70UbK8Boj`TK`ZiZAZIiDV~QB>*`M4+Okbe-sqQaJ)Y#G| zG#)Rbm7pr>6=dFa1y~;7_cq(O!5@L1k~15_Lj+lm7Li}|N`I3!XMYi-GRJ*fDH{A^ z?w`b5L0f{y^;X$!JuH5M_6*W462!zqr*?c4JWsdS7WFmLmsNzXQWrTRV4 z*||Ik4VM#Mhv8Vcm_SNATkXjYmz}602?toa?g!4=e*(CZ_4X)tg;_V8N~;-ER}Hxa zXa-bOO@=Z~hB((l0UcyY-HuILQaUE>3O(D$*GKIuW;Mo{t*j8G5c_%mFCCizx5q-f z=pAlYu2!Y*NbQwQN!d9<`D-|sgx+`y~`=!7wrH% zpiLZh8RLBpYeaMcwCrS^GUwicpz=z4LDOg7R~aNvlWXMxM*)i6SWBC|xCt!)6-FlW zV9yw%Wp|M)?Gn{=<{k|l_8sH%@?gg}(~3gN4x`wT zBrfZRhaydnS&n9>YSt^lv*jS3A&nz0=aQQ1Za%Y;IWS^BvxYJ!)aQ`&{&Pzo;*ap^ zLoa=0XQ1a=GRWl*kq4F;$r$@B#h)S(pjjR~qjS%>6@}~@Lv_{Y(Gn+UE5t}VRqlQm zpz-cIK5D#xgjdH=VkWqs$^vcT1foaHD$%0c+ZHOvJR^-psbZ8F7xn|(#ruqmaY~a( z5evkPTR@QNL1j39NTwGx3|y=pkz$*2%iHb^>rX_(D%0pDLH1){rsf{iLu?YBE%~ zMVXG4|Kr1;%6;@)R4E6{eXqP9 zmz-?!fsbnX>agl^P_?2JTSqlnwBXb24P15fXw|z54Qx}u6+&|isSvdq5`Gj09{m-7 zl=-~!rH98K1YCn|=Ah9iEmdz|J(L3-jW8%r6x80YsiXRjJGkuIy)#ydcp_>*VvP;d zO~@Twnea>1b|9s$XY7@7tb&7-;i~dUESggmy%Hvq7td~2e+N4l*Q~ls2aH#wapEMK z)a=((nbl(cfC?9qmR(#%MET+D6YK5Tj96?=j;m+J#|dJQz@q@TsKWCt*)b%#7m2aO ziU29RGj#M~%jqno3=i9(1N#%ukgO$1Bu`Tg=+avdMr=76rVKya+UZQwRJjzDXa%Hbhg(p5P*{90<5Nw1+}fF+ zI?+2&a1!=A5dJ&R?9ce*ar<4TX03>7ye7`V#5v%gpre-?2A2HFhO7F?vT&jJ_>3|| zO^~-a{r{Z2voJ1H`B|JOUg5E z7n_&$o(u2<8ZjyTT9wyCB?|O2CI3C|&zFv{kXmfw|6c?1?c5k@zJAB3+JdfIwP(F` zktUen((HVc;$LmdjsZ&0EUnaoDC5C6QR4h>4bg2TJg@tsyZ!6Q*F+Weqx+OEdRFW1 z6pEw=)he#~J=|>Ps7)rDyw%kQAF83f%%?r@Kri!nrkT3d8TAy)DYS>v0}C6lP|bt5 z9}&e_4|4)lB&xa+bp@@kL?L%AuP~OI^%pD$jV0UOJr!ezUc$7g(J2GqiC4Oq;>Uip z&9Ylc@BiI0z*?#OY4)Mo;l9*fQIUwJ;ry@3_2I<>QG5jVLW7#%b=xfEAUW{b4nX%Bs{z9FVD zg3t?w*QW-kd8+qg&xKase_cxh(bQUKIR_G@rYPlv9wp z*xs5-jGuh->?z}|&D+>&e7jS&Sf5YBCjNP5bo(w(@%1jhnHW)=6ilY zPQwoiTpA7QdZq+H=_Mn(_T%_t_`PACzZ&9<@FinP@aLo5V-j! zcJ@1DuI45}@G@oCSnoQi7@IVpT#4s%1Mm%#?>a*KJ?OwKGc`=7x}Dx+_?X@7_5T*VNseSLB5q<5bAqi|{=JT5O zr%WjzxaXT-e(%b*J&Li&iB`bKU6M;)GR-;CQaxH4J*aLkvL(G!o3!AxdV&g8>~S&Y zC_mXJJoH>?9x$W^o+NPBbbDLGQ-vZbfv--Xb?jR4ZrodmC$LxPFxTF(F$dq?7M4Pm zMy5&Kd(wbL`TCQ>Gm%dbCc>Y@6wZGqu2!M0i4E4z2IJUt0%J}|i%wzW+2l#nK;0({ zF-j5=A9MspASSai{pm8q>v7P@K_E{i zDh7~?PB$y8?|SPJFcAmPj8c-DqnKQ9*C~t~yu2uk5KAdt?RskIL6a0l)P&;{8~uC0 zKfgC*;*)ox%C#`oet$^DU-JNq4_>zwhz|n0&QKUtl@5syN>wND0zc+7Kz4q;$qvUe6F!@M6nT>sO6NmUotM8QHI?BX{a)L%IGY~ zx?4gA5(sK{Y82+ih;2p3fP6>C!HCs7l_4yD`_8T;mG^n==k_2Wl6FoDq$c|Gb#F97 z-A#(gIUr7;8QBa3l)!pUq2}a7qY2eNYg#5DimH1CAu4cTlf2@P#UP!dM+=^4z=YNN z+Cki3$AddZeAcnHKXg=aW8*Y)7f3Z-!6{#Tj$+zi)1e$r#Qh_xsjn)(%kMkHXuFZ= zmm&yQdMlwf$kJ zJT_V!CG(Cq0MK4G8s+;jbv+x;ebc)&PFw42dB$KAHoWI};K~|jJwa>Ir9OAm07L}f z%vd4_je?(WgrSW~+H3Fwp|T3GW!9>S`Y}=(uz?VPxkgS!bx44`>qzC0LH-z?j_i{g zKeVPQL4zw{hP^f1-tzVYo5WHcr%Cl71gFx ziAPeLts%kLqMExB52{@tmSa>32fjlw7Y5IB=e02J&9tj{sd~|OhPC@))jcikG;HGeN>XxQ7t+$r zpTddZCJm4Db%a3f{THsMKP!JJ*-p^9oPOG@1gl{Q-j1~4z^j)+!z&kGyEf@G+KG7V zP5vkuN8}G&IL2#L9PSL_sLDn;z|_F>;UGjgDh>{8=mGG=%gcD(|D&U@ej z4cecbJ(Z=WRC-2AuEfQ+Tad8%v=j}~%Bi#S>2>PViW2tn++6MDOz=zY+dQ!n$Fr3Y z%-Jo*QitP^Ue!WV34?OqAVz+0?y3U)kjksaks@7~`l(F$)VaNPmr|cBeexya@Av{Z zm$IZ4PnXOlwjla<3t0XW(kz|kGes5(mO&zMX*m>qU#@$B__Xl|c>$ePG3RJb8#FnYx>cBk0&p|nj}#LWszQw!^c1gCWY9y#!kOw}608u2VVpzw} zt$OBpvzG2{Ifnr8fs!|as+R`SuV173v(d5HN%8(hn|u9Mv;Ob**x7&y$0Yc>e*Dmz zel>r7Prq)h3B8fi3FRda_D~|n$Z*|POi@PD{^p+giE0lnCTj~1^6lWv&4Xa!{S4vR zo?_Kp69Rqx(lO(pG=1f<8E_ybRP7x+@uRDs7cbS zvlF}6we?EXXit<%fXswT-_g75!ZD3vd}SfghQ~e|BGc9niwutPzBwrri0rWO!hjC?#GmTne7@c*@yVF5&`aRw(-K1sx$#2ieRuZqu zzo-dbim(RzFX9_p*aSXvAiW%w;x|wMom+_k=lH42+L31v2mZd|@5;ZiVi7#dg<>=S z?cH4-9`%Q#^0;X6q`qjFa3}D{t9pA7ADU8(MpM<~y1w>+H=iBFJj8X#6aVg88^J-> zJe5}4LB*9-mD1trpqk-bjgQtz*$YV5bVf_sV{in*X>1$xOa6pYl|SK>jtY&vCGB6Z z6aAoTnhx{USn&$~BVG@@Igse;-sYjc(C zPtkg+&uZ;DHklb_=_{@AWaGFIa-S5cfW^$$-aF5eAgO~w@^sKBG+~xwm<4v_=#*at z)W)^}7*}?%S66T#FeL%lLyJSuHP)5DgU9^C20ve{hFQbSv?eNdb{DzXUA@2i@h$ay z@0nEWoMvHBtbRE>oxhHWR+VQFfjX87zE7Tx5o%kwIP{Q9W3VRj*a1%)_t9qE3DRQq z!4f}NQhd4(q0kde)SbX$Z7QQ>Mgf{Gr~<4NkHcQ$_oM)iHeiH;Tb?i%K9(>Z1@$>v zr+Y7nVq&6H=YzWNe1q|_$^H5Zw6^e}(_Z8c4#j2e$pbhVFkZz@(>S*^XIGIeQ*t%> zz*OCJWN3WT_EweY*S;&C-^fQ?v|sQTrFyc@%^Fw55eW--GvOQ9_+xz23 zCUk^=*)WyO(9LNo$Svp>s?VTyxDp@)%#b>nkFXkC+1HS4ygV$lKu9@C*5Y;LrHo26_Ypd0FkStBa#&utDtJNnv z*bSjTkTd6G1m4&|qbXruBXJ}##!0MAAn?evrbc$TXF51u_P0`P24Ik5Lv=~P2}mruL3 zb9zrCQw>eLLdsDk*_A;x?_D%`*suWfVyt{^c6VG_%De?p_2f=fKiX%-C^{@u2{bBQ1G%M+ z-f@}+IMw||Bz@{kh&2mq5PR<;q&}9^Ra&jDhl2(DS!+wneb=robM1$A(b%FJuu;=P zC(nqt-b2+}>hndlmq8~oeCX1p9cBbigMhW?o#CU^uO!%yhU2JmVAgv6{0~qW^lSV; z@>|)E>TzkobzkB+qmknqHgS&+_8l}`yZM*M^|Tj0a2=)$*nqy(nCwNCBNS9TuR1pj zwuZHa&H8|bh(CrYSPLWfDq#3%#gJ-c)OyuXc>$7Req53Kec>juIa%dnev~BmK>hNl z`8V9BgDhZy_C7;nQD<{OGwm26s-m6>elBZ6nkfJf!3+(xk`El{YVqj7IB=zfzpbUv zhO*ae6*zxViL(&ZRHww(S0tDcsPRnW-E<9vBA&(uxwHsgN$(t%z!~v8l+-I&f1$lg z2UxQ7XHe~3c)X1@?#hOiv|w?I+d5K7m%2yg@z7-Gy(EP+!Og^Upg53^K|qmR-^Y_>3dicN{swBWK@RZb@& zB}D6V*aHN5Y33eDrTsRHQUqFcIu#Ib8n8aPYXIwwH+w_Zg#$m4^EVi)gIENA{vpgS zOZU2tl)_%17fDi)d?-rx0Wd%mahEzkssHYQxYBz_N$)X<_89L8^|rgL+A#26eC&%d#*)5 zLaP$)z2rj(jVNp!x(Fk*;TJ2ruGg*&-S3?Dr}%Z?V~#nxXj*KU#cp!8+6ibDPRnw0 zj+ay?NdGgWDD4go_x)@){|%go$=YrkhBuv;cm@+6Y8ytqXc3||*V|H}I2BZJpLCl(rPAKZ5zG`Opo zfSWRph=h|u0aYc0HtIGta8uG96>w9Ss+Dn5fHBv!EeRe3Vt8<$rFqOlBR%^LY9T%Q zq|nA!+?44~ZU%OadA%ptDbwGNGsoi9F1rC zqvjb*8qSXC3k-lbyP?eZ3}D7O5P%u?RSh%i*ucgl-U0%W8CnK^-8TwlNsFtjdnvsl zZhZL1W5Qrm{<2=oxiA0MfDZpQ?Jqk868lR#Sl}bb!u>5(&(NR0B`q1Bg@%AR0oY zzVLEo%72}KQpw%kQsL<$-Jt%O92x6Gm9_p8CHnA?qd}n_BPll*Z?UG6-v?pZ_lR|| zJBx9Zpi_VwtMf2~p&1go#sxK++L){YZ1Tx-KCs(##v3G*Plr`HE>Hg;DJ3A6Fjkk~ z0TZ148w!2DHLSP52I?DjudK@2(u+(RSV?oU{kWod+SH~4`5huP=Wwz6J74_NRQE_C z-Wk55UVE9{Np1TQk9Fhhts&PTBUE*|T_IoyjKY1iZpwuC+S9m9Wq;y6k}FKXTjr=2 zjLk~5Y3y8On264dXy}-IhwjNQ&~NkmqQ>O# zf8r)@YE{??U;z!+Js||>-y_%lONjYO9pplxgjfb3#05}7e4;=<{x3p24G?0%M?!1_ zCB(8+i}%EIKRLiKFt}1MPhnu>tiP7pKY`(efrWwbk${1LF@RT)Ft)Kpk+-!r)HO4- z7B&BDfgxyNr)TQ)#?;u{#LxhEv$0i^cn*&XV=V{c2)n0Y5;Hzx2`<@wB$MecpAMPyMr4m4i*q%JtW*#juX&=4zN#Z|K~ z0YjE?Zx!=3K4ak1R$PB+G*y?R_QFyc8Jm1pFl$pK&sBzz!Q~iw157AZ_BUDS>JJ0M zX>Z^rN1wQvVAM@6JDV$g$x*MOi`=QP=M`*Y1H==TQzkN4nK$gpxpUq%(h;6J2}=p0 z$=pVBp`0!$&w?&J>sojztivY)2bZ+afTti+6RiY+K79wh1@A=OD$cQ1i}k>~XIh)a zD)+fqtt<%WC4)mG$nQ#d@rLxZEfKf|cVjoxzj~*jzsKgg-A-f~g3+x0yat7BE}i|f zEuF0Amnx}Flzo<0HQW?6_0ctrg8}%ylQ{F;K8_7#uY{F8;(m|6{UITUZ)N|oJJzF~ zzCVix-xChUXw8vHOkwsIN zU9SLVEqFpv-9vTT)~!rRROPqtx1HKo2FvH}C5oS%=o@)IhCYqA@*qBqP*=WgA%**9 zl*M&mtl%|VAb6mm?0L-S))n$Osu<>hxN|!H_{eS}kusCl0C9@T_^14ShMCg(=V1F5 z%PONG{!!mex4=$>PoKxj?x@4>dykzmOCTrjB8RG;y+*<_Fe@=_XZ7eIT9u1jRyEMs z;vAJ?=c%Gs=vLx!VBPk4U1S$_6~C*~o>mxB-6vh%-K;;Ys)xY=A%-zgGr;X>8HGom zZY9?N+w>!4Ho698cl^R22q?l(HHXjXs-Tq=pUywrRMDgfX(MgOA>o59l_cvGn#4@@ ze=_2~Eq0?hOUoVwM|1y-MkjHTA**FCH0VbQ^D1%W-6{^s+LJxkZ4Xv5@s~8(0xu`> zw7G_$1Jb1bnrAr??Kh-B$Bd zE%HjO^5~O45@AVcP4e;rRvy0 zGRmBBby?0PLqgMSR>_R)KAqh-nRb-@n4Z0!XLKA{UUw^+xORmaK1Q{g`6nK8E;x*w zkBgn%Eu(;BWzrJq=UTz}#tgTKC4avvBVX8QwC*$)_%JJmJ0_<0wIch?q=~}SVOgz* z?M8=pVl9^)MQYNl?a7GomtKUI4foH)L|Ai)Nx9TL9n`b+-@uA@l@yx0E7e`mkZ?1* zW9~5`dDojM5^A+)PA+ocxe&VF}bM% zpOIEPy6(~Drm9!uYZ!2}A(KWY&_86N$1VNrQ$YY5k(hO-WzKn}QJ=ybPN921=Yg`y zXmKh>gsiqqy!)Jk*7cFx!9~Tvz`)F@$;OS}w{d?0cnGibetmN#Re7&rsRvBaZ&uz_ z!-!*SJ%n4KjF4UdaTo2;#b@a2lyKz+KpEf;IS9uqo@<;D@R09MWF`13m}S*IeU zr_xmcIO!VaPP)>LMjZ@B^@eH9XMN!^E1wETb4&7EZn=z(+@^2Lacd3Xpd0@U`S_l6R!a)z+u|hr8DSrU z6iiZ|pfAsa^~H){o`q}*%$0>Rhkk2ac*0+4SGWIUf7M{gnV)B80K5S+vV<6 zA9V`ZeAL2qJwN*;y^umT1VK)=59=fZeUUiDG`15`w|-J{b=~1_E&Mg~HFOk>z9t0g z$W^H6edX|cyF*KrOCXoN%V*SY|B}QR%j~6T*Go2(kcgM5y2secO6|+S56+tXFYl@n zQsSsz3c{Z8s@Yj9d*Jj;PikR&!&F@&mdRex=MsIEN|{xe^--!hQ%tjKW)7SXW+VwV zPyTio-*2GNf9%S~TKM&MFJ3z&jFjuk(2MFBaU7(RmE;^Q(8KQ!-OC@)v(CMl^`4{I z#8dluKDjh?;T^h!9g?*Tu%az+s`~Z(iVCS|1y8zW?TfIk#!6a>{x{Xy6uXW)GqakZ z_23G#4@iQGBF^T((R$sM@$WrlzgHxe8!T-h8iT5-T&`Z{frc>mElgi`?F$W)Ld1Dk@(EC&zB zG8r|&T2NNayoE{E6}I>KN~g^-YqenO+ZyUo+5#1mO}3Vt@SDZkfg#F8a>9(EFFR$Q zgkhP$q-P2~IDQH%O)d)U$1gF_#eF&@^IiHf1)yY5oQbbNeZXhku|rYx>*+ALE`B( z#pKG!B?aqubRKjW_+&WA?(F9FLOG#Q_0=zPS?OXlE+09K6?cpjSLF_=aTDwLy%=bN z-fabc7wy2QXD|_W$DaSB@k-~1vIB&!r6>M4x10KB*R1!BS}*(AX5JraXMW1EFm%@r5#HE$X_ZPs5cNymr%$DJI-R{x&`$F{ zX5vQ;P#+MyL)~6`BhokK#JZ`oqBDk6G;JvvYr#TbXzsuXd-i(J#ImgWDwX|vG@WAc zhtJ*AXxP5zV@qxkX0ah$Rg_-F?^TXpW|PhyhXRk3yR&^(C2_}2KL%dmmsCnO1dCHr zUaT%YFkmf)bD~aWlbkM2&Y-c7z+xW3{*+4Kj4?ms7UC~c6A_!g0EsaAX-%PtBfG;B zwU$VYTgH927(CB-)AmY>r{7&1#nYkaC~n+&U}BQ*iu0&y`xyN<8k2Qc2tUE^PsJ>+ zEMLw(9}ui8R$1!27}t+wRk3ZYc-oPo|Wpelk z4U~Tic@n9nJp5Z;N_RSWewU^pC`=@e?mQ+%6i{T~M3z*#kmQ4&YQ=FRsQHZzd2&3h zw|`^ppL7fhifhr0`?};^96766WXuc3Gjuo{RjZ!tZjq<1Bg|2d@KP`x2DQt^A>ZGo z`j{)rnj8tNdNd=Da_0s*ss$wAl5$6p>$QL~a5O25hj)IW-6gJVJr|s1n~RnCkT-lR zCX5nDpO|=*AM%YpDHNih*(;(QER1X8K1=Y+;--%!!_#s^9s~58|FdNk*H}i+laW!o znG3Z2o(S!)Dm93$U@<&q-2tq(pLd68=|&0;Wye#4?T(t9HIACTr|VZ(z54XUT(-vK zp<0%(#*b@e`}}Qbo%g3h*wQ-8I-Bq)**DG-YAQ@&FdrBXDy2dK%oQCg^{Us`T&drQ zGiPJ@FDFlBJgGDV(b`Z9DKQzPkoKEw(;2{62OC9gRPH!&Buv~Mad~c*;Z^N#OAxd`1Zk?+pXLsy}jl!e}CIj8)`;N+t zmvgw#IuS1Mrq z4H!O$WsR!sz`zw({x3Zx@V{x*7DOAP)jn~zkXR0-z0(38$awMnP!dUc*T(qabg!;$IAhUihv)7^=tlvaW(HSrMNy&IH5PhnQXTpeVQsDAd zxq1kq6o1!q-qWUrTj-WKW2a(8&C|X)gQNa3yP`VXddISiqbHrSDfi`GUQ^y(S{g}a zi}&mED!G*Op;yaiNR%4HvKj-t=TY!4<{jC&O7%=D*IGP8M^9}GmPGf~J{3#$b6|GN z8%>3!bQBncxH8s=<#7xr{xlp*L7pHxx3W`^q%HXRN1itY?H7|yMr{nC2%LbVHR#IVa=X(BME9d^t^y0^H5#>-Jw{@(E#K9~%n^Sah zX}KjG%XJ)PK4Xk+Y(u#m;)}BAAfu7(pjx@6MU>23;vj1_)liH`92=s zf8hJm`|)^RUa!~B&mZ2ghUN~HJhFA4==EQ!4tzZ_;rCzD%Ql$59JVO~rRx5)9N}_L z8E@V_;Cyqoq|w}u#(#)BM9&xn;ZcG4H;i8RG}_(LNyQNkrrG71&zlZurOY3TFib?s12YW*W~E6RZOk2dluMt)~|>MlhOF#W2mP1$*5;=i@T0p=`hre$J(88E&;8 zEEgv~$$QX-7Bc#bcl28>j@fIU=3Gn$4;*iihR!Qy_SEVhI+cClI5WV>0i}>CtXT2( z%hmRvHjZ_2-gkkVuf?+zkMvpj+^^z+vOGSNM>BjK_P04Clq%^8+`axnZr;dSY9$d(XXFCkGr4ZYSBy(BXTT2?v{+AS ztxVm|HkbI;?}x`l1{_Mpx%YA@48t`;%}3S+KmRTkeK}v9^Y|t-wWM$JOdynh(Ono2 z+W;QV=(lCjzeqW6eEpZJQT*{-hh=hPVqz^*%EU zPO;BcIdYYBrTN*(&(iPKo^~TZZQ=?p5YnWVTX6 z@*clYL{hz%3`oiWDQe#C7+4;koPR0RGa2@ydS?)A1S+0h0S6n@hhMyvFvoi$)nO#x zwOcA(xomU(!A+8g9L;-vcKXtX@BtLA+Fo*9c=*Y{h?CQQ#EThZ&1Xv{bd@O}OZC}` zaOltYr&?O!Q*YEqmebe?bDbPZy?)*weG?S`$YG3#|Y zYq;Ze7R3!Z1AGhgzKxHZDmcApL&KfpS3|xwiL#Q9H{0SN&e_m2UF?L#Grt^=Y6l?h z7`4y2AzYt`iO!mEBGE!3pH5d8F%a{x^N|Tj#(hbZCf>2Tdtjrx84>Q67k(`z^|5># z>a!;zYO=(}5RJ))<;@ULq0vR30`!AP7Ai{68>I<3sx~2ALjN4EH1$4jF86xwo*@V~ z0x^?aUY;X^Yi*KCe|HFZY}90T(^`bMTEdj9>So$+6gRzWWvEQqPr`Xf zVS@8V`xM<7-%(Y~ELZA*O@mKiCb{<{iDPN}M4OyWNl*PTfj>Q+3bRzzv8}vhzqnto zA51kVp4^g~_(0hTR9)MJDNFR)8=UfL;}|wov^d?BKQO|)9iOqaRa4Q0dp*6P(pEOB z2}7>Bj@c7nT|V<0&E=tx36J|=y^zQnFF_v2ue}irZ0>T~ObD83XIaI~og&eki^wFC zfsQuU5lae5nvd&zy7R>Hsl?qX!aB_QQE$h=S5vuzm?Uk);H&XZC#Nq@d+aMdy|qi= zVWS}9<_+64UC!w%O^@8B={HOMrRitz1i%FrPK*Lz5m5;+N2KRD7>0ny037U2>Q{)P(Zd!{hIij|0QPr Sm;e926U)*u+vDH`a{mA@Jp48Q diff --git a/EventVisualisation/View/src/Initializer.cxx b/EventVisualisation/View/src/Initializer.cxx index 3b589fd9d08c4..6fe1ff8a9b1c8 100644 --- a/EventVisualisation/View/src/Initializer.cxx +++ b/EventVisualisation/View/src/Initializer.cxx @@ -19,7 +19,6 @@ #include "EventVisualisationView/Initializer.h" #include "EventVisualisationBase/ConfigurationManager.h" -#include "EventVisualisationBase/GeometryManager.h" #include "EventVisualisationView/EventManager.h" #include "EventVisualisationView/MultiView.h" #include "EventVisualisationDataConverter/VisualisationConstants.h" @@ -75,6 +74,8 @@ void Initializer::setup() // Setup windows size, fullscreen and focus TEveBrowser* browser = gEve->GetBrowser(); + std::string title = std::string("o2-eve v:") + o2_eve_version; + browser->SetWindowName(title.c_str()); browser->GetTabRight()->SetTab(1); browser->MoveResize(0, 0, gClient->GetDisplayWidth(), gClient->GetDisplayHeight() - 32); @@ -94,7 +95,6 @@ void Initializer::setup() // Temporary: // Later this will be triggered by button, and finally moved to configuration. gEve->AddEvent(&EventManager::getInstance()); - // eventManager.getDataSource()->refresh(); if (Options::Instance()->online()) { frame->StartTimer(); diff --git a/EventVisualisation/View/src/main.cxx b/EventVisualisation/View/src/main.cxx index 0eb7c876156cb..92b38ab12fc2d 100644 --- a/EventVisualisation/View/src/main.cxx +++ b/EventVisualisation/View/src/main.cxx @@ -33,7 +33,7 @@ using namespace o2::event_visualisation; int main(int argc, char** argv) { - LOG(info) << "Welcome in O2 event visualisation tool (v1.02)"; + LOG(info) << "Welcome in O2 event visualisation tool (" << o2_eve_version << ")"; if (!Options::Instance()->processCommandLine(argc, argv)) { exit(-1); diff --git a/EventVisualisation/Workflow/include/EveWorkflow/EveWorkflowHelper.h b/EventVisualisation/Workflow/include/EveWorkflow/EveWorkflowHelper.h index d44071fb37325..0ebf85c99769b 100644 --- a/EventVisualisation/Workflow/include/EveWorkflow/EveWorkflowHelper.h +++ b/EventVisualisation/Workflow/include/EveWorkflow/EveWorkflowHelper.h @@ -176,7 +176,6 @@ class EveWorkflowHelper int numberOfFiles, o2::dataformats::GlobalTrackID::mask_t trkMask, o2::dataformats::GlobalTrackID::mask_t clMask, - float workflowVersion, o2::header::DataHeader::RunNumberType runNumber, o2::framework::DataProcessingHeader::CreationTime creationTime); diff --git a/EventVisualisation/Workflow/include/EveWorkflow/O2DPLDisplay.h b/EventVisualisation/Workflow/include/EveWorkflow/O2DPLDisplay.h index 411d827f70f2e..36dca94d6e7d5 100644 --- a/EventVisualisation/Workflow/include/EveWorkflow/O2DPLDisplay.h +++ b/EventVisualisation/Workflow/include/EveWorkflow/O2DPLDisplay.h @@ -46,7 +46,6 @@ class TPCFastTransform; class O2DPLDisplaySpec : public o2::framework::Task { public: - static constexpr float mWorkflowVersion = 1.02; // helps recognizing version of workflow which produce data O2DPLDisplaySpec(bool useMC, o2::dataformats::GlobalTrackID::mask_t trkMask, o2::dataformats::GlobalTrackID::mask_t clMask, std::shared_ptr dataRequest, const std::string& jsonPath, diff --git a/EventVisualisation/Workflow/src/AO2DConverter.cxx b/EventVisualisation/Workflow/src/AO2DConverter.cxx index 271edd1a2b0d4..17051cc58897a 100644 --- a/EventVisualisation/Workflow/src/AO2DConverter.cxx +++ b/EventVisualisation/Workflow/src/AO2DConverter.cxx @@ -54,7 +54,7 @@ void AO2DConverter::process(o2::aod::Collisions const& collisions, EveWorkflowHe mHelper->drawAODMFT(track, c.collisionTime()); } - mHelper->save(jsonPath, collisions.size(), GlobalTrackID::MASK_ALL, GlobalTrackID::MASK_NONE, mWorkflowVersion, mRunNumber, mCreationTime); + mHelper->save(jsonPath, collisions.size(), GlobalTrackID::MASK_ALL, GlobalTrackID::MASK_NONE, mRunNumber, mCreationTime); mHelper->clear(); } } diff --git a/EventVisualisation/Workflow/src/EveWorkflowHelper.cxx b/EventVisualisation/Workflow/src/EveWorkflowHelper.cxx index 92e402f4de093..91b6db58e1100 100644 --- a/EventVisualisation/Workflow/src/EveWorkflowHelper.cxx +++ b/EventVisualisation/Workflow/src/EveWorkflowHelper.cxx @@ -13,6 +13,7 @@ /// \author julian.myrcha@cern.ch #include +#include "EventVisualisationBase/ConfigurationManager.h" #include "EventVisualisationDataConverter/VisualisationEventSerializer.h" #include "ReconstructionDataFormats/GlobalTrackID.h" #include "EveWorkflow/FileProducer.h" @@ -199,9 +200,9 @@ void EveWorkflowHelper::draw() void EveWorkflowHelper::save(const std::string& jsonPath, int numberOfFiles, o2::dataformats::GlobalTrackID::mask_t trkMask, o2::dataformats::GlobalTrackID::mask_t clMask, - float workflowVersion, o2::header::DataHeader::RunNumberType runNumber, o2::framework::DataProcessingHeader::CreationTime creation) + o2::header::DataHeader::RunNumberType runNumber, o2::framework::DataProcessingHeader::CreationTime creation) { - mEvent.setWorkflowVersion(workflowVersion); + mEvent.setWorkflowVersion(o2_eve_version); mEvent.setRunNumber(runNumber); std::time_t timeStamp = std::time(nullptr); std::string asciiTimeStamp = std::asctime(std::localtime(&timeStamp)); diff --git a/EventVisualisation/Workflow/src/O2DPLDisplay.cxx b/EventVisualisation/Workflow/src/O2DPLDisplay.cxx index ada063f5e4b6a..dffdb663859ab 100644 --- a/EventVisualisation/Workflow/src/O2DPLDisplay.cxx +++ b/EventVisualisation/Workflow/src/O2DPLDisplay.cxx @@ -14,6 +14,7 @@ #include "EveWorkflow/O2DPLDisplay.h" #include "EveWorkflow/EveWorkflowHelper.h" +#include "EventVisualisationBase/ConfigurationManager.h" #include "DetectorsBase/Propagator.h" #include "DataFormatsGlobalTracking/RecoContainer.h" #include "DataFormatsTPC/WorkflowHelper.h" @@ -67,7 +68,7 @@ void customize(std::vector& workflowOptions) #include "Framework/runDataProcessing.h" // main method must be included here (otherwise customize not used) void O2DPLDisplaySpec::init(InitContext& ic) { - LOG(info) << "------------------------ O2DPLDisplay::init version " << this->mWorkflowVersion << " ------------------------------------"; + LOG(info) << "------------------------ O2DPLDisplay::init version " << o2_eve_version << " ------------------------------------"; mData.init(); mData.mConfig->configProcessing.runMC = mUseMC; @@ -78,7 +79,7 @@ void O2DPLDisplaySpec::run(ProcessingContext& pc) if (!this->mEveHostNameMatch) { return; } - LOG(info) << "------------------------ O2DPLDisplay::run version " << this->mWorkflowVersion << " ------------------------------------"; + LOG(info) << "------------------------ O2DPLDisplay::run version " << o2_eve_version << " ------------------------------------"; // filtering out any run which occur before reaching next time interval auto currentTime = std::chrono::high_resolution_clock::now(); std::chrono::duration elapsed = currentTime - this->mTimeStamp; @@ -125,7 +126,7 @@ void O2DPLDisplaySpec::run(ProcessingContext& pc) helper.mEvent.setRunNumber(dh->runNumber); helper.mEvent.setTfCounter(dh->tfCounter); helper.mEvent.setFirstTForbit(dh->firstTForbit); - helper.save(this->mJsonPath, this->mNumberOfFiles, this->mTrkMask, this->mClMask, this->mWorkflowVersion, dh->runNumber, dph->creation); + helper.save(this->mJsonPath, this->mNumberOfFiles, this->mTrkMask, this->mClMask, dh->runNumber, dph->creation); } auto endTime = std::chrono::high_resolution_clock::now(); @@ -156,7 +157,7 @@ void O2DPLDisplaySpec::finaliseCCDB(ConcreteDataMatcher& matcher, void* obj) WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { - LOG(info) << "------------------------ defineDataProcessing " << O2DPLDisplaySpec::mWorkflowVersion << " ------------------------------------"; + LOG(info) << "------------------------ defineDataProcessing " << o2_eve_version << " ------------------------------------"; WorkflowSpec specs;