GNN classification/Regression for reconstructed HEP events.
conda create --name gnnana python=3.8
conda activate gnnana
conda install -c conda-forge jupyterlab
conda install -c conda-forge root
git clone https://github.com/xju2/root_gnn.git
cd root_gnn
pip install -e .Download the W' and QCD data from https://zenodo.org/record/3981290#.XzQs5zVlAUFthe folder data, and split the W' data into wboson_big.txt and wboson_small.txt.
- Graph Construction
create_tfrecord data/wboson_big.txt tfRec/fully_connected --max-evts 200 --evts-per-record 200 --type WTaggerDatasetThe graphs are saved into the folder tfRec. Then split the folder into train, val, and test via the command:
split_files_for_nn tfRec inputs- Graph Training
train_classifier train_wtaggers_edges.yamlIf train_wtaggers_edges.yaml does not exist in current folder, the program will look for the default one in the package, root_gnn/configs/train_wtaggers_edges.yaml.
- Evaluation
evaluate_wtagger data/wboson_small.txt train_wtaggers_edges.yaml test --nevts 10- Metrics calculation
calculate_wtagger_metrics test.npz testTraing two event classifiers with different inputs, one from the edge classifier and the other from the anti-$k_t$ algorithm.
- Graph Construction for W boson events
create_tfrecord "tfRec/fully_connected*.tfrec" tfRec_filtered/wboson \
--type WTaggerFilteredDataset \
--signal --model-config configs/train_wtaggers_edges.yaml \
--max-evts 100 --evts-per-record 100- Graph Construction for q* events
First create
tfrecordsfor the edge classifier.
create_tfrecord data/qstar.txt tfrec_qcd/qcd --type WTaggerDataset --max-evts 100 --evts-per-record 100Apply the edge classifier on the q* events
create_tfrecord "tfrec_qcd/qcd*.tfrec" \
tfRec_filtered/qcd \
--type WTaggerFilteredDataset \
--model-config configs/train_wtaggers_edges.yaml \
--max-evts 100 --evts-per-record 100Split these files
split_files_for_nn tfRec_filtered FilteredJets- Training Global Classifier
train_classifier train_w_qcd.yaml- Graph construction for W boson events
create_tfrecord data/wboson.txt \
tfRec_ljet/wboson \
--type WTaggerLeadingJetDataset \
--signal \
--max-evts 95000 --evts-per-record 1000- Graphc osntruction for q* events
create_tfrecord data/qstar.txt \
tfRec_ljet/qcd \
--type WTaggerLeadingJetDataset \
--max-evts 95000 --evts-per-record 1000- Split the events
split_files_for_nn tfRec_ljet LeadingJets- Graph training
train_classifier train_w_qcd_ljet.yamlevaluate_w_qcd_classifier "FilteredJets/test/*.tfrec" train_w_qcd.yaml classifier_gnnevaluate_w_qcd_classifier "LeadingJets/test/*.tfrec" train_w_qcd_ljet.yaml classifier_ljet