From a116097f677a1040284fd32604ea65189d9d9c5d Mon Sep 17 00:00:00 2001
From: Wouter Deconinck <wouter.deconinck@umanitoba.ca>
Date: Thu, 19 Aug 2021 16:07:54 +0000
Subject: [PATCH] Updated with newer eicd structures

---
 src/docs/part5/reconstruction_analysis.md | 333 +++++++++++-----------
 1 file changed, 159 insertions(+), 174 deletions(-)

diff --git a/src/docs/part5/reconstruction_analysis.md b/src/docs/part5/reconstruction_analysis.md
index 774b9cb..f59feea 100644
--- a/src/docs/part5/reconstruction_analysis.md
+++ b/src/docs/part5/reconstruction_analysis.md
@@ -15,33 +15,41 @@ Full simulation outputs are stored on one of several locations:
 - S3: https://dtn01.sdcc.bnl.gov:9000/minio/eictest/ATHENA/ (web interface)
 - xrootd: root://sci-xrootd.jlab.org//osgpool/eic/ATHENA/ (no preview currently available)
 
-Data at these location is organized in a predicatable structure:
+Data at these location is organized in a predicatable structure (though not all directories may be present):
 - `EVGEN/` contains all initial generated events (in hepmc3 or other format),
 - `FULL/` contains the raw full simulation output without any reconstruction,
 - `RECO/` contains the reconstruction output.
 
-Under the different top-level directories, you can find the different physics processes:
+Under the different top-level directories, you can find the different geometry versions (`EVGEN/` files are geometry-independent and are missing this level):
+- `master/` always points to a relatively recent geometry in the ATHENA master branch,
+- `acadia-v1.0-stable/` points to the first baseline geometry,
+- etc...
+
+Under the geometry versions, you will find the physics processes:
 - `SINGLE/` contains single particle initial states,
-- `DIS/` contains DIS events.
+- `DIS/` contains DIS events,
+- `EXCLUSIVE/` contains EXCLUSIVE events,
+- etc...
 
 For details on accessing these locations, please refer to https://doc.athena-eic.org/en/latest/howto/.
 
-For the purpose of this tutorial we will use the S3 interface since it does not rely on a mirroring process at Jefferson Lab.
+For the purpose of this tutorial we will use the S3 interface since it does not rely on a mirroring process at Jefferson Lab (which happens on a 4-hourly basis, at 8am EDT and so on).
 
 ## File structure of the full simulation reconstruction output
 
 Each reconstruction output file has essentially the same structure, defined by the EIC Data Model. This structure can be retrieved with `rootls`, e.g.
 ```console
-root -l s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO/SINGLE/pi+/1GeV/45to135deg/pi+_1GeV_45to135deg.0001.root
+root -l s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO/master/SINGLE/pi+/1GeV/45to135deg/pi+_1GeV_45to135deg.0001.root
 ```
 which produces the following output, two trees:
 ```console
 events  metadata
 ```
+You may encounter some (or many) warnings when you run this on a regular ROOT installation, but the ROOT files are built in such a way that they only use basic ("plain old data") types that ROOT can interpret without any helper classes. There are helper classes available inside the ATHENA container.
 
 The `events` tree is of course what we are interested in. We can explore its top-level structure as follows. We first start a ROOT session:
 ```console
-root -l s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO/SINGLE/pi+/1GeV/45to135deg/pi+_1GeV_45to135deg.0001.root
+root -l s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO/master/SINGLE/pi+/1GeV/45to135deg/pi+_1GeV_45to135deg.0001.root
 ```
 and then list the top-level branches in the `events` tree:
 ```console
@@ -51,191 +59,169 @@ This will display a large number of branches (and their size):
 ```console
 ******************************************************************************
 *Tree    :events    : Events tree                                            *
-*Entries :  1000002 : Total =     34023140832 bytes  File  Size = 8907188433 *
-*        :          : Tree compression factor =   3.82                       *
+*Entries :     1002 : Total =        44146720 bytes  File  Size =   14534550 *
+*        :          : Tree compression factor =   3.01                       *
 ******************************************************************************
-branch: mcparticles2         471802624
-branch: TrackerBarrelHits2   184032064
-branch: ReconstructedParticles   2106267
-branch: ReconstructedParticles#0   1447954
-branch: ReconstructedParticles#1   1447954
-branch: ReconstructedParticles#2   1447954
-branch: ReconstructedParticles#3   1447954
-branch: EcalBarrelHitsSimpleDigi  93024680
-branch: EcalBarrelHitsSimpleReco 142564938
-branch: EcalBarrelHitsSimpleReco#0   6351262
-branch: EcalEndcapNHitsDigi   17873069
-branch: EcalEndcapNHitsReco    9750180
-branch: EcalEndcapNHitsReco#0   2294175
-branch: EcalEndcapNClusterHits   3686937
-branch: EcalEndcapNClusterHits#0   1594591
-branch: EcalEndcapNClusters    4128541
-branch: EcalEndcapNClusters#0   1444440
-branch: EcalEndcapNClusters#1   1444440
-branch: EcalEndcapPHitsDigi   43298624
-branch: EcalEndcapPHitsReco   51470328
-branch: EcalEndcapPHitsReco#0   3366251
-branch: EcalEndcapPHitsRecoXY  48939215
-branch: EcalEndcapPHitsRecoXY#0   3383190
-branch: EcalEndcapPClusterHits   6539903
-branch: EcalEndcapPClusterHits#0   1633199
-branch: EcalEndcapPClusters    4494705
-branch: EcalEndcapPClusters#0   1444440
-branch: EcalEndcapPClusters#1   1444440
-branch: EcalBarrelHitsDigi    68681726
-branch: EcalBarrelHitsReco   441682325
-branch: EcalBarrelClusterHits  22471306
-branch: EcalBarrelLayers       7351806
-branch: EcalBarrelLayers#0     1441221
-branch: EcalBarrelClusters     7131448
-branch: EcalBarrelClusters#0   1443270
-branch: EcalBarrelClusters#1   1443270
-branch: EcalBarrelScFiHitsDigi 1636334484
-branch: EcalBarrelScFiHitsReco 3932534929
-branch: EcalBarrelScFiHitsReco#0  14507111
-branch: EcalBarrelScFiGridReco 815861620
-branch: EcalBarrelScFiGridReco#0   9424066
-branch: EcalBarrelScFiClusterHits 396488274
-branch: EcalBarrelScFiClusterHits#0   6066163
-branch: EcalBarrelScFiClusters  41044730
-branch: EcalBarrelScFiClusters#0   1447954
-branch: EcalBarrelScFiClusters#1   1447954
-branch: HcalBarrelHitsDigi    13328585
-branch: HcalBarrelHitsReco    15260047
-branch: HcalBarrelHitsReco#0   2425669
-branch: HcalBarrelHitsRecoXY  13434597
-branch: HcalBarrelHitsRecoXY#0   2410125
-branch: HcalBarrelClusterHits   2352864
-branch: HcalBarrelClusterHits#0   1451387
-branch: HcalBarrelClusters     2687875
-branch: HcalBarrelClusters#0   1443270
-branch: HcalBarrelClusters#1   1443270
-branch: HcalElectronEndcapHitsDigi   5707858
-branch: HcalElectronEndcapHitsReco   8514858
-branch: HcalElectronEndcapHitsReco#0   1928251
-branch: HcalElectronEndcapHitsRecoXY   7773148
-branch: HcalElectronEndcapHitsRecoXY#0   1922562
-branch: HcalElectronEndcapClusterHits   2375296
-branch: HcalElectronEndcapClusterHits#0   1459130
-branch: HcalElectronEndcapClusters   2726638
-branch: HcalElectronEndcapClusters#0   1452637
-branch: HcalElectronEndcapClusters#1   1452637
-branch: HcalHadronEndcapHitsDigi   4112230
-branch: HcalHadronEndcapHitsReco   5003312
-branch: HcalHadronEndcapHitsReco#0   1689929
-branch: HcalHadronEndcapHitsRecoXY   4723184
-branch: HcalHadronEndcapHitsRecoXY#0   1689633
-branch: HcalHadronEndcapClusterHits   2328711
-branch: HcalHadronEndcapClusterHits#0   1454456
-branch: HcalHadronEndcapClusters   2690491
-branch: HcalHadronEndcapClusters#0   1450880
-branch: HcalHadronEndcapClusters#1   1450880
-branch: TrackerBarrelRawHits  24139635
-branch: TrackerEndcapRawHits   3166129
-branch: VertexBarrelRawHits   29242781
-branch: VertexEndcapRawHits    2219822
-branch: TrackerBarrelRecHits  64929921
-branch: TrackerEndcapRecHits   6218655
-branch: VertexBarrelRecHits   75481339
-branch: VertexEndcapRecHits    3798116
-branch: ReconstructedParticlesInitFromTruth   1958375
-branch: outputTrackParameters   2035687
-branch: ForwardRICHHits2      20341908
-branch: ForwardRICHHitsDigi    1500666
-branch: ForwardRICHHitsReco    1858812
-branch: EcalEndcapNHits        2255311
-branch: EcalEndcapPHits        2255311
-branch: EcalBarrelHits         2248873
-branch: EcalBarrelScFiHits     2272009
-branch: HcalBarrelHits         2248873
-branch: HcalHadronEndcapHits   2280802
-branch: HcalElectronEndcapHits   2291933
-branch: TrackerEndcapHits      2558412
-branch: TrackerBarrelHits      2558412
-branch: VertexBarrelHits       2554303
-branch: VertexEndcapHits       2554303
-branch: ForwardRICHHits        2544344
+branch: mcparticles2            117074
+branch: TrackerBarrelHits2      352204
+branch: ReconstructedParticles      3763
+branch: EcalBarrelHitsSimpleDigi    132444
+branch: EcalBarrelHitsSimpleReco    162677
+branch: EcalEndcapNHitsDigi      53267
+branch: EcalEndcapNHitsReco      18557
+branch: EcalEndcapNProtoClusters      2247
+branch: EcalEndcapNClusters       5389
+branch: outputInfoCollection      2744
+branch: EcalEndcapPHitsDigi      79927
+branch: EcalEndcapPHitsReco      57765
+branch: EcalEndcapPHitsRecoXY     53667
+branch: EcalEndcapPProtoClusters      2439
+branch: EcalEndcapPClusters       5508
+branch: EcalEndcapPClustersInfo      2833
+branch: EcalBarrelHitsDigi      130174
+branch: EcalBarrelHitsReco      297904
+branch: EcalBarrelProtoClusters      3416
+branch: EcalBarrelLayers          8672
+branch: EcalBarrelClusters        9396
+branch: EcalBarrelClustersInfo      5286
+branch: EcalBarrelScFiHitsDigi   5345203
+branch: EcalBarrelScFiHitsReco   5554064
+branch: EcalBarrelScFiGridReco   1328000
+branch: EcalBarrelScFiProtoClusters     67285
+branch: EcalBarrelScFiClusters     36508
+branch: EcalBarrelScFiClustersInfo     19039
+branch: HcalBarrelHitsDigi       54355
+branch: HcalBarrelHitsReco       44131
+branch: HcalBarrelHitsRecoXY     36646
+branch: HcalBarrelProtoClusters      1935
+branch: HcalBarrelClusters        4251
+branch: HcalBarrelClustersInfo      2269
+branch: HcalEndcapNHitsDigi      11722
+branch: HcalEndcapNHitsReco      13786
+branch: HcalEndcapNHitsRecoXY     11962
+branch: HcalEndcapNProtoClusters      1903
+branch: HcalEndcapNClusters       4115
+branch: HcalEndcapNClustersInfo      2215
+branch: HcalEndcapPHitsDigi       7388
+branch: HcalEndcapPHitsReco       8158
+branch: HcalEndcapPHitsRecoXY      7660
+branch: HcalEndcapPProtoClusters      1903
+branch: HcalEndcapPClusters       4115
+branch: HcalEndcapPClustersInfo      2215
+branch: TrackerBarrelRawHits     51559
+branch: TrackerEndcapRawHits      3664
+branch: VertexBarrelRawHits      27933
+branch: VertexEndcapRawHits       2283
+branch: TrackerBarrelRecHits    148096
+branch: TrackerEndcapRecHits      7560
+branch: VertexBarrelRecHits      61902
+branch: VertexEndcapRecHits       3984
+branch: ReconstructedParticlesInitFromTruth      3277
+branch: outputTrackParameters      3519
+branch: DRICHHits2                8688
+branch: DRICHHitsDigi             1998
+branch: DRICHHitsReco             3525
+branch: EcalEndcapNHits           3717
+branch: EcalEndcapPHits           3717
+branch: EcalBarrelHits            3701
+branch: EcalBarrelScFiHits        3760
+branch: HcalBarrelHits            3701
+branch: HcalEndcapPHits           3717
+branch: HcalEndcapNHits           3717
+branch: TrackerEndcapHits         4372
+branch: TrackerBarrelHits         4372
+branch: VertexBarrelHits          4352
+branch: VertexEndcapHits          4352
+branch: DRICHHits                 4217
 ```
 
 During the development of the reconstruction, there are more branches enabled here than are strictly necessary (e.g. simulated and digitized hits, intermediate reconstruction parameters). These are all available for analysis (with fixed interfaces). In this tutorial we will focus on a few branches in particular:
 - ReconstructedParticles: contains the results from track finding and fitting,
-- EcalBarrelClusters: contains the results from the barrel Ecal cluster finding,
-- EcalBarrelScFiClusters: contains the results from the barrel Ecal ScFi cluster finding.
+- EcalBarrelImagingClusters: contains the results from the barrel Imaging Ecal cluster finding,
+- EcalBarrelScFiClusters: contains the results from the barrel ScFi Ecal cluster finding.
 
 We can inspect each of these three branches in more detail (some information removed for formatting)
 ```console
 root [14] events->Print("ReconstructedParticles*")
 ******************************************************************************
 *Tree    :events    : Events tree                                            *
-*Entries :  1000002 : Total =     34023140832 bytes  File  Size = 8907188433 *
-*        :          : Tree compression factor =   3.82                       *
+*Entries :     1002 : Total =        44146720 bytes  File  Size =   14534550 *
+*        :          : Tree compression factor =   3.01                       *
 ******************************************************************************
 *Br    0 :ReconstructedParticles : Int_t ReconstructedParticles_             *
-*Br    1 :ReconstructedParticles.pid : Long64_t pid[ReconstructedParticles_] *
-*Br    2 :ReconstructedParticles.energy :                                    *
-*         | Double_t energy[ReconstructedParticles_]                         *
-*Br    3 :ReconstructedParticles.p.x : Double_t x[ReconstructedParticles_]   *
-*Br    4 :ReconstructedParticles.p.y : Double_t y[ReconstructedParticles_]   *
-*Br    5 :ReconstructedParticles.p.z : Double_t z[ReconstructedParticles_]   *
-*Br    6 :ReconstructedParticles.charge :                                    *
-*         | Double_t charge[ReconstructedParticles_]                         *
-*Br    7 :ReconstructedParticles.mass :                                      *
-*         | Double_t mass[ReconstructedParticles_]                           *
-*Br    8 :ReconstructedParticles.clusters_begin :                            *
-*         | UInt_t clusters_begin[ReconstructedParticles_]                   *
-*Br    9 :ReconstructedParticles.clusters_end :                              *
-*         | UInt_t clusters_end[ReconstructedParticles_]                     *
-*Br   10 :ReconstructedParticles.tracks_begin :                              *
-*         | UInt_t tracks_begin[ReconstructedParticles_]                     *
-*Br   11 :ReconstructedParticles.tracks_end :                                *
-*         | UInt_t tracks_end[ReconstructedParticles_]                       *
-*Br   12 :ReconstructedParticles.particles_begin :                           *
-*         | UInt_t particles_begin[ReconstructedParticles_]                  *
-*Br   13 :ReconstructedParticles.particles_end :                             *
-*         | UInt_t particles_end[ReconstructedParticles_]                    *
+*Br    1 :ReconstructedParticles.ID.value : Int_t value[ReconstructedParticles_]                             *
+*Br    2 :ReconstructedParticles.p.x : Float_t x[ReconstructedParticles_]    *
+*Br    3 :ReconstructedParticles.p.y : Float_t y[ReconstructedParticles_]    *
+*Br    4 :ReconstructedParticles.p.z : Float_t z[ReconstructedParticles_]    *
+*Br    5 :ReconstructedParticles.v.x : Float_t x[ReconstructedParticles_]    *
+*Br    6 :ReconstructedParticles.v.y : Float_t y[ReconstructedParticles_]    *
+*Br    7 :ReconstructedParticles.v.z : Float_t z[ReconstructedParticles_]    *
+*Br    8 :ReconstructedParticles.time : Float_t time[ReconstructedParticles_]*
+*Br    9 :ReconstructedParticles.pid : Int_t pid[ReconstructedParticles_]    *
+*Br   10 :ReconstructedParticles.status : Short_t status[ReconstructedParticles_]                          *
+*Br   11 :ReconstructedParticles.charge : Short_t charge[ReconstructedParticles_]                          *
+*Br   12 :ReconstructedParticles.momentum : Float_t momentum[ReconstructedParticles_]                        *
+*Br   13 :ReconstructedParticles.energy : Float_t energy[ReconstructedParticles_]                          *
+*Br   14 :ReconstructedParticles.mass : Float_t mass[ReconstructedParticles_]*
+*Br   15 :ReconstructedParticles.weight.value :                              *
+*         | Float_t value[ReconstructedParticles_]                           *
 *............................................................................*
 
-root [6] events->Print("EcalBarrelClusters*")
+root [6] events->Print("EcalBarrelScFiClusters*")
 ******************************************************************************
 *Tree    :events    : Events tree                                            *
-*Entries :   500002 : Total =     22026619265 bytes  File  Size = 6339571464 *
-*        :          : Tree compression factor =   3.47                       *
+*Entries :     1002 : Total =        44146720 bytes  File  Size =   14534550 *
+*        :          : Tree compression factor =   3.01                       *
 ******************************************************************************
-*Br    0 :EcalBarrelClusters : Int_t EcalBarrelClusters_                     *
-*Br    1 :EcalBarrelClusters.clusterID : Int_t clusterID[EcalBarrelClusters_]*
-*Br    2 :EcalBarrelClusters.nhits : Int_t nhits[EcalBarrelClusters_]        *
-*Br    3 :EcalBarrelClusters.energy : Double_t energy[EcalBarrelClusters_]   *
-*Br    4 :EcalBarrelClusters.edep : Double_t edep[EcalBarrelClusters_]       *
-*Br    5 :EcalBarrelClusters.radius : Double_t radius[EcalBarrelClusters_]   *
-*Br    6 :EcalBarrelClusters.skewness :                                      *
-*         | Double_t skewness[EcalBarrelClusters_]                           *
-*Br    7 :EcalBarrelClusters.leakcorr :                                      *
-*         | Double_t leakcorr[EcalBarrelClusters_]                           *
-*Br    8 :EcalBarrelClusters.eta : Double_t eta[EcalBarrelClusters_]         *
-*Br    9 :EcalBarrelClusters.position.x : Double_t x[EcalBarrelClusters_]    *
-*Br   10 :EcalBarrelClusters.position.y : Double_t y[EcalBarrelClusters_]    *
-*Br   11 :EcalBarrelClusters.position.z : Double_t z[EcalBarrelClusters_]    *
-*Br   12 :EcalBarrelClusters.polar.r : Double_t r[EcalBarrelClusters_]       *
-*Br   13 :EcalBarrelClusters.polar.theta :                                   *
-*         | Double_t theta[EcalBarrelClusters_]                              *
-*Br   14 :EcalBarrelClusters.polar.phi : Double_t phi[EcalBarrelClusters_]   *
-*Br   15 :EcalBarrelClusters.cl_theta :                                      *
-*         | Double_t cl_theta[EcalBarrelClusters_]                           *
-*Br   16 :EcalBarrelClusters.cl_phi : Double_t cl_phi[EcalBarrelClusters_]   *
-*Br   17 :EcalBarrelClusters.hits_begin :                                    *
-*         | UInt_t hits_begin[EcalBarrelClusters_]                           *
-*Br   18 :EcalBarrelClusters.hits_end : UInt_t hits_end[EcalBarrelClusters_] *
-*Br   19 :EcalBarrelClusters.layers_begin :                                  *
-*         | UInt_t layers_begin[EcalBarrelClusters_]                         *
-*Br   20 :EcalBarrelClusters.layers_end :                                    *
-*         | UInt_t layers_end[EcalBarrelClusters_]                           *
+*Br    0 :EcalBarrelScFiClusters : Int_t EcalBarrelScFiClusters_             *
+*Br    1 :EcalBarrelScFiClusters.ID.value :                                  *
+*         | Int_t value[EcalBarrelScFiClusters_]                             *
+*Br    2 :EcalBarrelScFiClusters.type : Int_t type[EcalBarrelScFiClusters_]  *
+*Br    3 :EcalBarrelScFiClusters.energy :                                    *
+*         | Float_t energy[EcalBarrelScFiClusters_]                          *
+*Br    4 :EcalBarrelScFiClusters.energyError :                               *
+*         | Float_t energyError[EcalBarrelScFiClusters_]                     *
+*Br    5 :EcalBarrelScFiClusters.time : Float_t time[EcalBarrelScFiClusters_]*
+*Br    6 :EcalBarrelScFiClusters.nhits :                                     *
+*         | UInt_t nhits[EcalBarrelScFiClusters_]                            *
+*Br    7 :EcalBarrelScFiClusters.position.x :                                *
+*         | Float_t x[EcalBarrelScFiClusters_]                               *
+*Br    8 :EcalBarrelScFiClusters.position.y :                                *
+*         | Float_t y[EcalBarrelScFiClusters_]                               *
+*Br    9 :EcalBarrelScFiClusters.position.z :                                *
+*         | Float_t z[EcalBarrelScFiClusters_]                               *
+*Br   10 :EcalBarrelScFiClusters.positionError.xx :                          *
+*         | Float_t xx[EcalBarrelScFiClusters_]                              *
+*Br   11 :EcalBarrelScFiClusters.positionError.yy :                          *
+*         | Float_t yy[EcalBarrelScFiClusters_]                              *
+*Br   12 :EcalBarrelScFiClusters.positionError.zz :                          *
+*         | Float_t zz[EcalBarrelScFiClusters_]                              *
+*Br   13 :EcalBarrelScFiClusters.positionError.xy :                          *
+*         | Float_t xy[EcalBarrelScFiClusters_]                              *
+*Br   14 :EcalBarrelScFiClusters.positionError.xz :                          *
+*         | Float_t xz[EcalBarrelScFiClusters_]                              *
+*Br   15 :EcalBarrelScFiClusters.positionError.yz :                          *
+*         | Float_t yz[EcalBarrelScFiClusters_]                              *
+*Br   16 :EcalBarrelScFiClusters.radius :                                    *
+*         | Float_t radius[EcalBarrelScFiClusters_]                          *
+*Br   17 :EcalBarrelScFiClusters.skewness :                                  *
+*         | Float_t skewness[EcalBarrelScFiClusters_]                        *
+*Br   18 :EcalBarrelScFiClustersInfo : Int_t EcalBarrelScFiClustersInfo_     *
+*Br   19 :EcalBarrelScFiClustersInfo.clusterID.value :                       *
+*         | Int_t value[EcalBarrelScFiClustersInfo_]                         *
+*Br   20 :EcalBarrelScFiClustersInfo.polar.r :                               *
+*         | Float_t r[EcalBarrelScFiClustersInfo_]                           *
+*Br   21 :EcalBarrelScFiClustersInfo.polar.theta :                           *
+*         | Float_t theta[EcalBarrelScFiClustersInfo_]                       *
+*Br   22 :EcalBarrelScFiClustersInfo.polar.phi :                             *
+*         | Float_t phi[EcalBarrelScFiClustersInfo_]                         *
+*Br   23 :EcalBarrelScFiClustersInfo.eta :                                   *
+*         | Float_t eta[EcalBarrelScFiClustersInfo_]                         *
 *............................................................................*
 ```
 
 The ReconstructedParticles branch contains the momentum, e.g. `ReconstructedParticles.p.x` for the x-component, and references to other entities related to this particle (clusters, tracks, particles).
 
-Note: Due to conditions that are currently being addressed, some momentum vectors use `p.x` whereas others use `p.px`.
-
 ## Analysis of full simulation reconstruction output with traditional ROOT commands
 
 After opening the reconstruction output file, let's make some pretty plots. We start with:
@@ -245,12 +231,12 @@ root -l s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO/SINGLE/pi+/1GeV/45
 and in the ROOT session:
 ```console
 root [1] .ls
-TNetXNGFile**           root://sci-xrootd.jlab.org//osgpool/eic/ATHENA/RECO/SINGLE/pi+/1GeV/45to135deg/pi+_1GeV_45to135deg.0001.root    data file
- TNetXNGFile*           root://sci-xrootd.jlab.org//osgpool/eic/ATHENA/RECO/SINGLE/pi+/1GeV/45to135deg/pi+_1GeV_45to135deg.0001.root    data file
+TS3WebFile**            s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO/master/SINGLE/pi+/1GeV/45to135deg/pi+_1GeV_45to135deg.0001.root   data file
+ TS3WebFile*            s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO/master/SINGLE/pi+/1GeV/45to135deg/pi+_1GeV_45to135deg.0001.root   data file
   KEY: TTree    events;1        Events tree
   KEY: TTree    metadata;1      Metadata tree
-events->Draw("ReconstructedParticlesInitFromTruth.p.px")
-events->Draw("EcalBarrelClusters.polar.phi:EcalBarrelClusters.polar.theta", "EcalBarrelClusters.edep", "colz")
+events->Draw("ReconstructedParticles.p.x")
+events->Draw("EcalBarrelImagingClustersInfo.polar.phi:EcalBarrelImagingClustersInfo.polar.theta", "EcalBarrelScFiClusters.energy", "colz")
 ```
 These types of plots will likely be limited to simple data inspection.
 
@@ -293,12 +279,11 @@ auto Q2(const std::vector<ROOT::Math::PxPyPzEVector>& mom) {
   return Q2Vec;
 }
 
-ROOT::RDataFrame d("events", "s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO//DIS/crossDivNrgCrab/DIS_NC_Q2gt10_crossDivNrgCrab_25mRad_5x41_v2.root");
+ROOT::RDataFrame d("events", "s3https://dtn01.sdcc.bnl.gov:9000/eictest/ATHENA/RECO/master/DIS/NC/5x41/minQ2=1/pythia8NCDIS_5x41_minQ2=1_beamEffects_xAngle=-0.025_hiDiv_1.0001.root");
 
 auto d0 = d.Define("p", momenta_from_reconstruction, {"ReconstructedParticles"}).Define("Q2", Q2, {"p"});
 
 auto h_Q2_sim = d0.Histo1D({"h_Q2_sim", "; GeV; counts", 100, -5, 25}, "Q2");
 auto& h1_Q2_sim = *h_Q2_sim;
 h1_Q2_sim.DrawClone("hist");
-
 ```
-- 
GitLab