Skip to content
Closed

sync #315

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
34cf39f
Adapt geofile info following geofile updates
Jun 20, 2025
23c60b1
Modify geofiles using updated base files
Jun 20, 2025
aeaa7b3
Add to the geofile only the calibration consts relevant for the speci…
Jun 20, 2025
91760a7
Adapt sndlhcGSimpleNtpConverter to new more detailed FLUKA input
schuetha Jul 1, 2025
ffcea18
Add CHANGELOG to keep track of sw changes and releases
siilieva Jun 30, 2025
77007bd
Fix flag logic to allow choosing the 2024 testbeam W target
Jul 4, 2025
5269db9
Unit fix for the selectScifiHits default
Jul 9, 2025
5ab8a06
2dED: Add option to filter SciFi hits by time
siilieva Jul 9, 2025
81340c9
Adding various options to 2dEventDisplay. (#245)
cvilelahep Jul 9, 2025
82e87a8
update changelog before patch release v1.0.1
siilieva Jul 16, 2025
9fd2bd2
Introducing analysis classes for SciFi and US planes (#266)
FelixofRivia Jul 23, 2025
3bc90c3
Add the timing correction to the hit timing and replace C-style casts…
Ridz31 Jun 19, 2025
687dfd0
Introduced hitPositionVectorsPerStation() and implemented RRangeCast …
Ridz31 Jul 24, 2025
f60cbc6
Utilised the hitPositionVectorsPerStation() in findCentreOfGravityPer…
Ridz31 Jul 24, 2025
2c774bf
Introduced the Summed Hit Density Weights to sndSciFiTools
Ridz31 Jul 24, 2025
3fd4ed8
fix class linking
Aug 14, 2025
c0fe18f
use const &
Aug 18, 2025
4ea17d5
Update CHANGELOG before new minor release v1.1.0
Aug 25, 2025
5d051e1
Add SciFi spatial alignment for targets 251 to 254
Aug 30, 2025
609bf3e
Add SciFi time alignment for targets 251 to 254
Aug 31, 2025
141cccb
Add MuFi spatial alignment for 2025
Aug 31, 2025
6cc3902
Add DS time alignment for target runs 251 to 254
Sep 1, 2025
d526213
Add MCevent builder FairTask (#277)
Pedro1102 Sep 8, 2025
24d197c
Update CHANGELOG before new release with MCEventBuilder
Sep 8, 2025
c008e6f
Unifiy data/MC channel index determination in Scifi/US planes (#282)
alessia-orlando Sep 26, 2025
afb2578
Alignment of target 255
Sep 29, 2025
c71d7af
Break loop over event chuncks after first one if option is saveFirst2…
Sep 29, 2025
c4b4368
MCEventBuilder: save the outgoing neutrino in NC events to 1st chunk
Sep 29, 2025
582ff56
Update CHANGELOG before patch release v1.2.1
Sep 29, 2025
413b711
Workaround for re-running digitization on old MC
Oct 9, 2025
1dd8ed4
Shower tools (#283)
FelixofRivia Oct 14, 2025
95781f4
Make MCEventBuilder arguments required
cvilelahep Oct 15, 2025
34bad6a
Change pythia8 decayer configuration method.
Oct 28, 2025
a2c2f9a
add US hit bar function: get number of bars with n hits > thr (parame…
Oct 15, 2025
8b6e7d2
fix timeref intervals
Oct 15, 2025
a1ee0da
Finish 2025 det alignment: add consts for targets 256-258
Nov 11, 2025
a63c0f7
set default for csv tables
Oct 15, 2025
e296092
use large sipm only + use const&
Oct 15, 2025
6d60edd
Adding python script to make run lists with DB info.
Oct 13, 2025
5da0704
ScifiPlane: Improve centroid error estimation
Oct 24, 2025
14904e7
USPlane: Fix FindCentroid method
Oct 24, 2025
c5863be
USPlane: Improve centroid error estimation
Nov 12, 2025
3732af9
USPlane: Utilize left/right measurements to determine X position alon…
Oct 24, 2025
38f5e5a
2dED: Add option to plot shower direction
Oct 24, 2025
5a5846e
2dED: Plot tracks starting from most upstream Veto
Oct 29, 2025
5b1186f
2dED: change the canvas size for better readibility when saving to file
Nov 13, 2025
eb5c56a
MuFilterHit:Fix GetImpactT method
Nov 17, 2025
5e83de1
MuFilterHit: Add GetImpactXpos method
Nov 17, 2025
cda0fe6
MuFilterHit: Use GetSystem() and GetPlane() in the class member funct…
Nov 19, 2025
c3763e6
ScifiPlane: remove invalid hits in the plane constructor
Nov 17, 2025
c62da50
ShowerTools: add Scifi and US spatial anisotropy
Nov 17, 2025
f257a51
Disable web-viewer when checking for geo overlaps
Jun 27, 2025
0f7c121
Use ConstructedAt as TClonesArray.__setitem__ pythonization was removed
Jun 27, 2025
a52e174
Use the pyExit digi hack only when running with the cpp DigiTask
Jun 27, 2025
863e430
Account for removal of attribute pythonization of TDirectory
Jun 27, 2025
7a8f294
add to CHANGELOG the adjustments for 2025 Oct7 stack
Oct 8, 2025
9501622
G4conf: Remove neutron and hadronic process verbosity settings
siilieva Nov 25, 2025
8d0aa0d
prepare CHANGELOG for new v1.3.0+2025-11 release
Dec 1, 2025
0cc213b
Fix US MeV to qdc calibaration constants
Nov 20, 2025
b035b9a
MuFilterHit:Make selection of channels with positive signal explicit
Nov 20, 2025
a2931b9
MuFilterHit: Add option to skip small SiPMs in numerous functions
Nov 20, 2025
7273f81
MuFilterHit: remove code that is never used
Nov 20, 2025
ecbf1d3
USPlane:add use_small_sipms flag manage usage of small SiPMs
Nov 25, 2025
6e1e774
run_digi: remove hardcoded US MeV->qdc const
Dec 5, 2025
6da5cba
MuFilterHit: Only US has short SiPMs, fix isShort() method
Dec 8, 2025
f4a90ac
update data and geo csv for 2025
Dec 16, 2025
a8c8535
add is_mc option to sndConfiguration
Dec 15, 2025
256731e
use is_mc directly from configuration
Dec 15, 2025
663d48c
remove unnecessary ;
Dec 15, 2025
0d5660e
Updating large SiPM callibration constant name in MuFilterHit class
cvilelahep Jan 9, 2026
5c1628e
not used
Jan 15, 2026
49ab15d
fix warnigns
Jan 15, 2026
8775ae4
fix Wreturn-type
Jan 15, 2026
61350fd
fix warnings
Jan 16, 2026
ecd5869
remove unused GetLogger
Jan 16, 2026
ae13bc5
Add DB authentication
Jan 21, 2026
94cd389
Fix format issue in modifyGeo: affected run_256, scifi5 positions
siilieva Feb 13, 2026
51e8d6f
GSimpleNtpConverter:fix typo
Dec 19, 2025
94cd951
Particle gun: add generation run ID
Dec 19, 2025
5e5ec6b
Record simulation run and event ID
Dec 19, 2025
27dd50f
Digi task: pass header info to digi file
Dec 19, 2025
df212cd
Digi cpp task: Remove redundant forceful exit
Dec 19, 2025
70c43d1
use GetImpactXpos from sndsw
Mar 9, 2026
feaef40
add veto and ds plane classes
Mar 9, 2026
0594d13
Geant4 physics list: change to FTFP_BERT_HP_EMZ
Mar 3, 2026
594b25a
Geant4: remove the 1MeV particle production threshold!
Mar 3, 2026
f3ad15d
Geant4: set the particle production range cut through sndsw
Mar 3, 2026
39c7482
run_simSND: Set the kin E threshold for tracks' storage from the comm…
Mar 4, 2026
40b3bb2
MuFi signal speed: refine points used for fit
Mar 13, 2026
4e17490
digi: Update MuFilter signal speed and attenuation length
Mar 17, 2026
68f7cfc
TB digi: Update MuFilter signal speed and attenuation length
Mar 17, 2026
145307c
MuFi digi: use Veto 3 attenuation length
Mar 17, 2026
768bd29
run_digi: Read digi params from geofile, if these exist
Mar 17, 2026
cce8037
update CHANGELOG before next release v1.4.0
siilieva Mar 20, 2026
7bdb313
Add detector alignment for targets 261 and 262
Apr 8, 2026
2abc418
FS extraction support for 2025
Nov 19, 2025
d55592d
Conversion: identify and skip mini DT
Dec 26, 2025
5a5d0a8
Conversion: Write the 2025 bunch structure to the coverted data file
Dec 26, 2025
21ed0df
Add feature from issue #216: added dark mode for 2dEventDisplay, incl…
jutesare Apr 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 150 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# Changelog

All notable changes to this project will be documented in this file.
The latest changes are placed on top get assigned to the corresponding
software release.

The software versioning scheme is vMAJOR.MINOR.PATCH+DATE-comment, where
- PATCH - quick bug fixes
- MINOR - new classes or functionality, updates to adapt to new external packages
- MAJOR - additions of the detectors, breaking changes - hopefully we won't have such
- DATE - to ease communication and mimic our CVMFS releases
- comment - a short description of changes if available
- e.g. v1.0.0+2025-07-updateScifi


The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
There could be several types of changes:
- `Added` for new features.
- `Changed` for changes in existing functionality.
- `Deprecated` for soon-to-be removed features.
- `Removed` for now removed features.
- `Fixed` for any bug fixes.
- `Security` in case of vulnerabilities.

We start with the first sndsw release: v1.0.0+2025-07-updateScifi.
Shall there be a strong will/need, one can go back and create and
fill in the logs for previous stacks.

## v1.4.0+2026-01-G4cutoff

### Added

- Geant4 range cut set to 2mm
- Record simulation run and event ID
- `is_mc` option for sndConfiguration, used in all sndPlane classes
- Veto and DS plane classes
- 2025 data file locations for the analysis tools

### Changed

- Geant4 physics list to FTFP_BERT_HP_EMZ
- retire small SiPMs: add a flag to skip(default) them in analysis

### Removed

- Geant4 production cut at 1MeV
- hard coded digi params in run_digi macro

### Fixed

- MeV to qdc conversion for US
- Scifi station 5 rotation for target 256
- revised the drift velocity and attenuation length of Veto/US/DS using 2022-2025 data


## v1.3.0+2025-11-showerToolsAndP8Decayer

### Added

- shower tools: start, stop, shower direction
- 2dED: Add option to plot shower direction
- python script to make run lists with DB info
- SciFi and US anisotropy tools
- USPlane: GetNHitBars() returting N bars with fired SiPMs above threshold
- MuFilterHit: Add GetImpactXpos method
- add time window selection for US(test_beam_2023 configuration)
- alignment of targets 256-258

### Changed

- G4conf: Remove obsolete neutron and hadronic process verbosity settings
- improve centroid error: use propagation of uncertainty respecting the weight(=qdc) per hit.
- USPlane: Utilize left/right measurements to determine X position along bar
- USPlane: use only small SiPMs to determine if plane HasShower()
- set default csv tables for geofiles and data ROOT files
- these changes in are not backward-compatible, but only affect analysis code that is not part of sndsw
- remove invalid SciFi hits from ScifiPlane's constructor
- 2dED: Plot tracks starting from most upstream Veto

### Fixed

- change pythia8 decayer configuration method
- heavy mesons and taus are decay’ed using external Pythia8 decayer
- USPlane: Fix FindCentroid method
- Fix reference SciFi time intervals to values used in prev analysis
- MuFilterHit: fix GetImpactT method
- multiple fixes due to drop of attribute pythonization for TDirectory and TClonesArray
- Disable web-viewer when checking for geo overlaps (workaround!)

## v1.2.1+2025-09

### Added

- alignment of target 255

### Changed

- optimize the MCEventBuider:
- break loop over chunks after first one if using option saveFirst25nsOnly
- in NC neutrino events, the outgoing neutrino is now saved in the first chunk

### Fixed

- fix in SciFi and US plane classes to allow channel indexing in MC and data alike

## v1.2.0+2025-09-MCEventBuilder

### Added

- MCEventBuilder Fair Task

## v1.1.0+2025-08-BolognaTools

### Added

- analysys classes for SciFi and US planes, together with parameter configuraions for TI18 and testbeams setups
- SciFi tools: hit density

## v1.0.1+2025-07-fixTB24Wtarget

### Fixed

- flag logic to select target geometry for testbeam 2024
- unit fix for selectScifiHits's `time_lower_range` default

### Added

- options for the 2dEvent display: filter hits in time, plot collision axis and more.

## v1.0.0+2025-07-updateScifi

### Added

- CHANGELOG
- Data file and geometry getters from run number

### Changed

- Major update on the TI18 and baby SciFi detector geometry
- Update on the testbeams system geometry to take care of air gaps

### Fixed

- Units for energy and snd_TDC2ns in the cpp units header
- storage of Emulsion(using a flag) and Veto points(always)
- Adapted to the latest FairRoot v19

### Removed

- TI18 MC geometry config file is gone. We use a single one for data and simulation
153 changes: 153 additions & 0 deletions analysis/makeRunListDB.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
import pymongo
import argparse
import xml.etree.ElementTree as ET
from datetime import datetime
from collections import defaultdict
import os

parser = argparse.ArgumentParser(
prog="makeRunListDB",
description="Extracts a list of runs from the SND@LHC DB, matching the conditions given in the arguments. Produces an XML file with the run list and a summary of the selection.")
parser.add_argument("--username", type=str, help="Database username. Contact database maintainer to obtain it", required=True)
parser.add_argument("--password", type=str, help="Database password. Contact database maintainer to obtain it", required=True)
parser.add_argument("--name", type=str, help="Run list name", required=True)
parser.add_argument("--years", nargs="+", type=int, help="Years to be included, e.g. 2022 2023", required=True)
parser.add_argument("--min_events", type=int, help="Minimum number of events in run", default=0)
parser.add_argument("--min_lumi", type=float, help="Minimum integrated luminosity for a run to be included, in fb-1", default=0.)
parser.add_argument("--min_stable_time", type=float, help="Minimum stable beams time of the corresponding LHC fill for a run to be included, in minutes", default=0.)
parser.add_argument("--particle_B1", type=str, help="Beam 1 particle, e.g. p+ or PB82", required=True)
parser.add_argument("--particle_B2", type=str, help="Beam 2 particle, e.g. p+ or PB82", required=True)
parser.add_argument("--min_energy", type=float, help="Minimum beam energy (in GeV)", default=0.)
parser.add_argument("--max_energy", type=float, help="Maximum beam energy (in GeV)", default=0.)
parser.add_argument("--min_bunches_IP1", type=int, help="Minimum number of bunches colliding at IP1", default=0)
parser.add_argument("--max_bunches_IP1", type=int, help="Maximum number of bunches colliding at IP1", default=0)
parser.add_argument("--include_runs", nargs="+", type=int, help="Runs to include, regardless of the other criteria", default=[])
parser.add_argument("--exclude_runs", nargs="+", type=int, help="Runs to exclude from the list", default=[])
args = parser.parse_args()

client = pymongo.MongoClient('sndrundb.cern.ch', username=args.username, password=args.password, authSource='sndrundb', authMechanism='SCRAM-SHA-1')

db = client.sndrundb

pipeline = []

# Get the run list corresponding to the selected years
pipeline.append({"$match": {"$expr": {"$in": [{"$year": "$start"}, args.years]}}})

# Select runs with a minimum of min_events events:
if args.min_events > 0:
pipeline.append({"$match": {"events": {"$gt": args.min_events}}})

# Combine data fill from the LPC
pipeline.append({"$lookup": {"from": "FILL_LPC", "localField": "fill", "foreignField": "_id", "as": "LPC"}})

if args.min_lumi > 0.:
# Select runs with at least min_lumi integrated luminosity
pipeline.append({"$match": {"LPC.ATLAS_Int_Lumi": {"$gt": args.min_lumi*1e6}}})

if args.min_stable_time > 0.:
# Select runs with at least min_stable_time minutes of stable beams
pipeline.append({"$match": {"LPC.Stable_time": {"$gt": args.min_stable_time/60.}}})

# Select B1 particle
pipeline.append({"$match": {"LPC.Particle_B1": args.particle_B1}})

# Select B2 particle
pipeline.append({"$match": {"LPC.Particle_B2": args.particle_B2}})

if args.min_energy > 0:
# Select runs with args.min_energy energy
pipeline.append({"$match": {"LPC.Energy": {"$gt": args.min_energy}}})

if args.max_energy > 0:
# Select runs with args.max_energy energy
pipeline.append({"$match": {"LPC.Energy": {"$lt": args.max_energy}}})

if args.min_bunches_IP1 > 0:
# Select runs with at least min_bunches_IP1 bunches colliding at IP1
pipeline.append({"$match": {"LPC.Coll_IP_1_5": {"$gt": args.min_bunches_IP1}}})

if args.max_bunches_IP1 > 0:
# Select runs with at most max_bunches_IP1 bunches colliding at IP1
pipeline.append({"$match": {"LPC.Coll_IP_1_5": {"$lt": args.max_bunches_IP1}}})

if len(args.exclude_runs) > 0:
pipeline.append({"$match": {"runNumber": {"$nin" : args.exclude_runs}}})

# Expression for Calculating run length from start and stop datetimes
run_length_expr = {"$dateDiff": {"startDate": "$start", "endDate": "$stop", "unit": "minute"}}

# Extract the following data from the DB
projection = {"$project":{"_id": 0, # Do not extract DB entry ID
"run_number": "$runNumber", # Run number
"n_events": "$events", # Number of events
"start": 1, # Start date
"end": 1, # End date
"duration": run_length_expr, # Run duration
"n_files": {"$size": "$files"}, # Number of files
"path": {"$first": "$files.file"}, # Path of the first file
"fill_number": "$fill", # Fill number
"fill_int_lumi": {"$first": "$LPC.ATLAS_Int_Lumi"}, # Integrated luminosity
"fill_stable_time" : {"$first": "$LPC.Stable_time"}} # Stable beams duration
}

pipeline.append(projection)

result = list(db["EcsData"].aggregate(pipeline))

if len(args.include_runs) > 0:
include_pipeline = []
include_pipeline.append({"$match": {"runNumber": {"$in": args.include_runs}}})
include_pipeline.append(projection)

include_result = list(db["EcsData"].aggregate(include_pipeline))

result.extend(list(include_result))

result.sort(key=lambda x: x["run_number"])

# Get the time now
now = datetime.now()

# Format into xml tree
root = ET.Element("runlist")

meta_data = ET.SubElement(root, "meta")
ET.SubElement(meta_data, "name").text = args.name
ET.SubElement(meta_data, "datetime").text = now.strftime("%Y-%m-%dT%H:%M:%S.%f")
selection = ET.SubElement(meta_data, "selection")
ET.SubElement(selection, "years").text = ','.join([str(y) for y in args.years])
for criterion in ["min_events", "min_lumi", "min_stable_time", "particle_B1", "particle_B2", "min_energy", "max_energy", "min_bunches_IP1", "max_bunches_IP1", "exclude_runs", "include_runs"]:
ET.SubElement(selection, criterion).text = str(getattr(args, criterion))
runs = ET.SubElement(root, "runs")

# Counters for summary statistics
n_runs = 0
totals = defaultdict(int)

# Run loop
for run in result:
this_run = ET.SubElement(runs, "run")
totals["n_runs"] += 1
for field_name in ["run_number", "start", "end", "n_events", "duration", "n_files", "fill_number", "fill_int_lumi", "fill_stable_time", "path"]:
try:
data = run[field_name]
except KeyError:
continue

if field_name == "path":
data = os.path.dirname(data)

ET.SubElement(this_run, field_name).text = str(data)

if field_name not in ["run_number", "start", "end", "fill_number", "path", "fill_int_lumi", "fill_stable_time"] and data is not None:
totals["tot_"+field_name] += data

stats = ET.SubElement(meta_data, "statistics")
for key, data in totals.items():
ET.SubElement(stats, key).text = str(data)

# Write to xml file
tree = ET.ElementTree(root)
ET.indent(tree, space=" ")
tree.write(args.name+"_"+str(now.timestamp())+".xml", encoding="utf-8", xml_declaration=True)
30 changes: 24 additions & 6 deletions analysis/tools/AnalysisToolsLinkDef.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
#pragma link C++ nestedclasses;
#pragma link C++ nestedtypedef;

#pragma link C++ class snd::Configuration+;
#pragma link C++ class snd::analysis_tools::VetoPlane+;
#pragma link C++ class snd::analysis_tools::ScifiPlane+;
#pragma link C++ class snd::analysis_tools::USPlane+;
#pragma link C++ class snd::analysis_tools::DSPlane+;

#pragma link C++ namespace snd::analysis_tools;
#pragma link C++ defined_in namespace snd::analysis_tools;

Expand All @@ -28,11 +34,23 @@
#pragma link C++ function snd::analysis_tools::densityCheck(const TClonesArray &, int, int, int, bool);
#pragma link C++ function snd::analysis_tools::showerInteractionWall(const TClonesArray &,const std::map<std::string, float> &, int, std::string);
#pragma link C++ function snd::analysis_tools::showerInteractionWall(const TClonesArray &, int, std::string);
#pragma link C++ function snd::analysis_tools::GetDataBasePath(const std::string &, int);
#pragma link C++ function snd::analysis_tools::GetTChain(const std::string &, int, int);
#pragma link C++ function snd::analysis_tools::GetTChain(std::string);
#pragma link C++ function snd::analysis_tools::GetGeoPath(const std::string &,int);
#pragma link C++ function snd::analysis_tools::GetGeometry(std::string);
#pragma link C++ function snd::analysis_tools::GetGeometry(const std::string &,int);
#pragma link C++ function snd::analysis_tools::GetDataBasePath(int, std::string);
#pragma link C++ function snd::analysis_tools::GetTChain(int, int, const std::string &);
#pragma link C++ function snd::analysis_tools::GetTChain(const std::string &);
#pragma link C++ function snd::analysis_tools::GetGeoPath(int, std::string);
#pragma link C++ function snd::analysis_tools::GetGeometry(int, const std::string &);
#pragma link C++ function snd::analysis_tools::GetGeometry(const std::string &);
#pragma link C++ function snd::analysis_tools::FillVeto(const snd::Configuration &, TClonesArray *, MuFilter *);
#pragma link C++ function snd::analysis_tools::FillScifi(const snd::Configuration &, TClonesArray *, Scifi *);
#pragma link C++ function snd::analysis_tools::FillUS(const snd::Configuration &, TClonesArray *, MuFilter *, bool);
#pragma link C++ function snd::analysis_tools::FillDS(const snd::Configuration &, TClonesArray *, MuFilter *);
#pragma link C++ function snd::analysis_tools::GetScifiShowerStart(const std::vector<snd::analysis_tools::ScifiPlane &);
#pragma link C++ function snd::analysis_tools::GetScifiShowerEnd(const std::vector<snd::analysis_tools::ScifiPlane &);
#pragma link C++ function snd::analysis_tools::GetUSShowerStart(const std::vector<snd::analysis_tools::USPlane> &);
#pragma link C++ function snd::analysis_tools::GetUSShowerEnd(const std::vector<snd::analysis_tools::USPlane> &);
#pragma link C++ function snd::analysis_tools::GetShowerInterceptAndDirection(const snd::Configuration &, const std::vector<snd::analysis_tools::ScifiPlane> &, const std::vector<snd::analysis_tools::USPlane> &);
#pragma link C++ function snd::analysis_tools::GetShoweringPlanes(const std::vector<snd::analysis_tools::ScifiPlane> &, const std::vector<snd::analysis_tools::USPlane> &);
#pragma link C++ function snd::analysis_tools::GetSciFiSpatialAnisotropy(const std::vector<ScifiPlane> &, bool);
#pragma link C++ function snd::analysis_tools::GetUSSpatialAnisotropy(const std::vector<USPlane> &, bool);

#endif
9 changes: 8 additions & 1 deletion analysis/tools/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ set(SRCS
sndSciFiTools.cxx
sndTchainGetter.cxx
sndGeometryGetter.cxx
sndConfiguration.cxx
sndVetoPlane.cxx
sndScifiPlane.cxx
sndUSPlane.cxx
sndDSPlane.cxx
sndPlaneTools.cxx
sndShowerTools.cxx
)

set(LINK_DIRECTORIES
Expand All @@ -29,4 +36,4 @@ Set(DEPENDENCIES shipLHC)

GENERATE_LIBRARY()

target_link_libraries(snd_analysis_tools -lROOTTPython)
target_link_libraries(snd_analysis_tools -lROOTTPython -lMatrix -lMathCore -lCore)
10 changes: 9 additions & 1 deletion analysis/tools/data_paths.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
min_run_number,max_run_number,path
0,5421,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2022/
4361,5421,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2022/
5422,7356,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2023/
7649,8317,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2024/run_241/
8318,8580,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2024/run_242/
Expand All @@ -13,5 +13,13 @@ min_run_number,max_run_number,path
9692,9880,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2024/run_2410/
9881,10011,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2024/run_2411/
10012,10422,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2024/run_2412/
10919,11156,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2025/run_251/
11158,11575,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2025/run_252/
11576,11675,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2025/run_253/
11676,11794,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2025/run_254/
11795,12019,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2025/run_255/
12021,12121,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2025/run_256/
12123,12411,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2025/run_257/
12412,12792,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/physics/2025/run_258/
100238,100679,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/commissioning/testbeam_June2023_H8/
100841,100985,root://eospublic.cern.ch//eos/experiment/sndlhc/convertedData/commissioning/testbeam_24/
Loading
Loading