--- name: servicex description: >- Use when delivering analysis-ready columns from remote HEP datasets with ServiceX: defining FileList, XRootD, Rucio, or CERN Open Data inputs, choosing an uproot query, limiting branches and events, and diagnosing delivery or authorization failures. --- # ServiceX ServiceX performs server-side selection and transformation so an analysis downloads only needed events and columns. Use the query type supported by the deployed ServiceX instance and the actual input format. ## Minimal uproot-raw request ```python from servicex import dataset, deliver, query request = { "Sample": [ { "Name": "sample", "Dataset": dataset.FileList( ["root://storage.example.org//path/to/file.root"] ), "Query": query.UprootRaw( [ { "treename": "Events", "filter_name": ["mass", "weight"], "cut": "mass > 0", } ] ), } ] } delivered = deliver(request) print(delivered["sample"]) ``` Choose the dataset source deliberately: - `dataset.FileList([...])` for explicit HTTP or XRootD URLs. - `dataset.XRootD("root://.../*")` for an endpoint-side wildcard. - `dataset.Rucio(...)` only when the deployment can resolve and read that DID. - `dataset.CERNOpenData(record_id)` for a supported public record. Start with one file, a few branches, and a restrictive cut. Inspect the input tree with uproot first, then confirm that the ServiceX deployment supports the chosen query transformer. The service—not the local client—must be able to read every source file. Do not treat delivery success as validation of physics units, selections, or weights. Use the current [ServiceX user guide](https://tryservicex.org/guide/) for query, delivery, caching, and deployment-specific configuration.