Skip to content
Snippets Groups Projects
Commit e451a4cd authored by Sylvester Joosten's avatar Sylvester Joosten
Browse files

Fix new container

parent d910f88a
Branches
Tags
1 merge request!68Fix new container
......@@ -35,7 +35,7 @@ from Configurables import Jug__Reco__SimpleClustering as SimpleClustering
from Configurables import Jug__Reco__CalorimeterIslandCluster as IslandCluster
from Configurables import Jug__Reco__ClusterRecoCoG as RecoCoG
podioinput = PodioInput("PodioReader", collections=["mcparticles","CrystalEcalHits","EcalBarrelAstroPixHits"], OutputLevel=DEBUG)
podioinput = PodioInput("PodioReader", collections=["mcparticles","CrystalEcalHits","EcalBarrelHits"], OutputLevel=DEBUG)
## copiers to get around input --> output copy bug. Note the "2" appended to the output collection.
copier = MCCopier("MCCopier",
......@@ -49,8 +49,8 @@ emcaldigi = CrystalEndcapsDigi("ecal_digi",
inputHitCollection="CrystalEcalHits",
outputHitCollection="RawDigiEcalHits")
ecdigi = EMCalorimeterDigi("ec_barrel_digi",
inputHitCollection="EcalBarrelAstroPixHits",
outputHitCollection="RawEcalBarrelAstroPixHits")
inputHitCollection="EcalBarrelHits",
outputHitCollection="RawEcalBarrelHits")
crystal_ec_reco = CrystalEndcapsReco("crystal_ec_reco",
inputHitCollection="RawDigiEcalHits",
......@@ -58,15 +58,15 @@ crystal_ec_reco = CrystalEndcapsReco("crystal_ec_reco",
minModuleEdep=1.0*units.MeV)
ecal_reco = EMCalReconstruction("ecal_reco",
inputHitCollection="RawEcalBarrelAstroPixHits",
outputHitCollection="RecEcalBarrelAstroPixHits",
inputHitCollection="RawEcalBarrelHits",
outputHitCollection="RecEcalBarrelHits",
samplingFraction=0.25,
minModuleEdep=0.0*units.MeV)
ec_barrel_cluster = IslandCluster("ec_barrel_cluster",
inputHitCollection="RecEcalBarrelAstroPixHits",
outputClusterCollection="EcalBarrelAstroPixClusters",
splitHitCollection="splitEcalBarrelAstroPixHitCollection",
inputHitCollection="RecEcalBarrelHits",
outputClusterCollection="EcalBarrelClusters",
splitHitCollection="splitEcalBarrelHitCollection",
minClusterCenterEdep=1*units.MeV,
groupRange=2.0,
OutputLevel=DEBUG)
......@@ -78,7 +78,7 @@ crystal_ec_cluster = IslandCluster("crystal_ec_cluster",
OutputLevel=DEBUG)
simple_cluster = SimpleClustering("simple_cluster",
inputHitCollection="RecEcalBarrelAstroPixHits",
inputHitCollection="RecEcalBarrelHits",
outputClusters="SimpleClusters",
OutputLevel=DEBUG)
......
......@@ -47,7 +47,7 @@ from Configurables import Jug__Reco__SamplingECalHitsMerger as SamplingECalHitsM
from Configurables import Jug__Reco__CalorimeterIslandCluster as IslandCluster
from Configurables import Jug__Reco__ClusterRecoCoG as RecoCoG
podioinput = PodioInput("PodioReader", collections=["mcparticles","EcalBarrelAstroPixHits"], OutputLevel=DEBUG)
podioinput = PodioInput("PodioReader", collections=["mcparticles","EcalBarrelHits"], OutputLevel=DEBUG)
# Thrown Information
copier = MCCopier("MCCopier",
......@@ -56,13 +56,13 @@ copier = MCCopier("MCCopier",
OutputLevel=DEBUG)
# Geant4 Information
embarrelcopier = CalCopier("CalBarrelCopier",
inputCollection="EcalBarrelAstroPixHits",
outputCollection="EcalBarrelAstroPixHits2",
inputCollection="EcalBarrelHits",
outputCollection="EcalBarrelHits2",
OutputLevel=DEBUG)
# Digitization
embarreldigi = EcalTungstenSamplingDigi("ecal_barrel_digi",
inputHitCollection="EcalBarrelAstroPixHits",
outputHitCollection="RawEcalBarrelAstroPixHits",
inputHitCollection="EcalBarrelHits",
outputHitCollection="RawEcalBarrelHits",
inputEnergyUnit=units.GeV,
inputTimeUnit=units.ns,
dynamicRangeADC=700*units.keV,
......@@ -71,8 +71,8 @@ embarreldigi = EcalTungstenSamplingDigi("ecal_barrel_digi",
OutputLevel=DEBUG)
# Reconstruction
embarrelreco = EcalTungstenSamplingReco("ecal_barrel_reco",
inputHitCollection="RawEcalBarrelAstroPixHits",
outputHitCollection="RecoEcalBarrelAstroPixHits",
inputHitCollection="RawEcalBarrelHits",
outputHitCollection="RecoEcalBarrelHits",
dynamicRangeADC=700*units.keV,
pedestalSigma=40,
OutputLevel=DEBUG)
......@@ -82,23 +82,23 @@ embarrelreco = EcalTungstenSamplingReco("ecal_barrel_reco",
# xy_merger sum layers/slices, masking (8+3+4, 8+3+4+5+10-1)
embarrelxymerger = SamplingECalHitsMerger("ecal_barrel_xy_merger",
cellIDMaskRanges=[(15, 29)],
inputHitCollection="RecoEcalBarrelAstroPixHits",
outputHitCollection="RecoEcalBarrelAstroPixHitsXY")
inputHitCollection="RecoEcalBarrelHits",
outputHitCollection="RecoEcalBarrelHitsXY")
# xy_merger sum modules, masking (8+3+4+5+10, 8+3+4+5+10+32-1)
embarrelzmerger = SamplingECalHitsMerger("ecal_barrel_z_merger",
cellIDMaskRanges=[(30, 61)],
inputHitCollection="RecoEcalBarrelAstroPixHits",
outputHitCollection="RecoEcalBarrelAstroPixHitsZ")
inputHitCollection="RecoEcalBarrelHits",
outputHitCollection="RecoEcalBarrelHitsZ")
# Clustering
embarrelcluster = IslandCluster("ecal_barrel_cluster",
inputHitCollection="RecoEcalBarrelAstroPixHitsXY",
outputClusterCollection="EcalBarrelAstroPixClusters",
inputHitCollection="RecoEcalBarrelHitsXY",
outputClusterCollection="EcalBarrelClusters",
minClusterCenterEdep=0.5*units.MeV,
splitCluster=False,
groupRanges=[2.0*units.cm, 2.0*units.cm, 2.0*units.cm])
# Reconstruct the cluster with Center of Gravity method
embarrelclusterreco = RecoCoG("ecal_barrel_clusterreco",
clusterCollection="EcalBarrelAstroPixClusters",
clusterCollection="EcalBarrelClusters",
logWeightBase=6.2)
out = PodioOutput("out", filename=output_rec_file)
......
......@@ -42,7 +42,7 @@ from Configurables import Jug__Reco__CrystalEndcapsReco as CrystalEndcapsReco
from Configurables import Jug__Reco__CalorimeterIslandCluster as IslandCluster
from Configurables import Jug__Reco__ClusterRecoCoG as RecoCoG
podioinput = PodioInput("PodioReader", collections=["mcparticles","CrystalEcalHits","EcalBarrelAstroPixHits","EcalEndcapHits"], OutputLevel=DEBUG)
podioinput = PodioInput("PodioReader", collections=["mcparticles","CrystalEcalHits","EcalBarrelHits","EcalEndcapHits"], OutputLevel=DEBUG)
## copiers to get around input --> output copy bug. Note the "2" appended to the output collection.
copier = MCCopier("MCCopier",
......@@ -56,13 +56,13 @@ calcopier = CalCopier("CalCopier",
OutputLevel=DEBUG)
embarrelcopier = CalCopier("CalBarrelCopier",
inputCollection="EcalBarrelAstroPixHits",
outputCollection="EcalBarrelAstroPixHits2",
inputCollection="EcalBarrelHits",
outputCollection="EcalBarrelHits2",
OutputLevel=DEBUG)
embarreldigi = EcalTungstenSamplingDigi("ecal_barrel_digi",
inputHitCollection="EcalBarrelAstroPixHits",
outputHitCollection="RawEcalBarrelAstroPixHits",
inputHitCollection="EcalBarrelHits",
outputHitCollection="RawEcalBarrelHits",
inputEnergyUnit=units.GeV,
inputTimeUnit=units.ns,
dynamicRangeADC=700*units.keV,
......
......@@ -91,10 +91,10 @@ void emcal_barrel_electrons_analysis(const char* input_fname = "rec_emcal_barrel
// Define variables
auto d1 = d0.Define("Ethr", Ethr, {"mcparticles2"})
.Define("ErecXY", ErecXY, {"RecoEcalBarrelAstroPixHitsXY"})
.Define("ErecZ", ErecZ, {"RecoEcalBarrelAstroPixHitsZ"})
.Define("ncluster", ncluster, {"EcalBarrelAstroPixClusters"})
.Define("Ecluster", Ecluster, {"EcalBarrelAstroPixClusters"})
.Define("ErecXY", ErecXY, {"RecoEcalBarrelHitsXY"})
.Define("ErecZ", ErecZ, {"RecoEcalBarrelHitsZ"})
.Define("ncluster", ncluster, {"EcalBarrelClusters"})
.Define("Ecluster", Ecluster, {"EcalBarrelClusters"})
.Define("fsam", fsam, {"Ecluster","Ethr"})
;
......
......@@ -6,22 +6,22 @@
#include "ROOT/RDataFrame.hxx"
#include <iostream>
#include "dd4pod/Geant4ParticleCollection.h"
#include "dd4pod/CalorimeterHitCollection.h"
#include "dd4pod/Geant4ParticleCollection.h"
#include "dd4pod/TrackerHitCollection.h"
#include "eicd/RawCalorimeterHitCollection.h"
#include "eicd/RawCalorimeterHitData.h"
#include "eicd/CalorimeterHitCollection.h"
#include "eicd/CalorimeterHitData.h"
#include "eicd/ClusterCollection.h"
#include "eicd/ClusterData.h"
#include "eicd/RawCalorimeterHitCollection.h"
#include "eicd/RawCalorimeterHitData.h"
#include "TCanvas.h"
#include "TStyle.h"
#include "TMath.h"
#include "TH1.h"
#include "TF1.h"
#include "TH1.h"
#include "TH1D.h"
#include "TMath.h"
#include "TStyle.h"
using ROOT::RDataFrame;
using namespace ROOT::VecOps;
......@@ -45,7 +45,8 @@ void emcal_barrel_pions_analysis(const char* input_fname = "rec_emcal_barrel_uni
// Thrown Energy [GeV]
auto Ethr = [](std::vector<dd4pod::Geant4ParticleData> const& input) {
std::vector<double> result;
result.push_back(TMath::Sqrt(input[2].psx*input[2].psx + input[2].psy*input[2].psy + input[2].psz*input[2].psz + input[2].mass*input[2].mass));
result.push_back(TMath::Sqrt(input[2].psx * input[2].psx + input[2].psy * input[2].psy +
input[2].psz * input[2].psz + input[2].mass * input[2].mass));
return result;
};
......@@ -92,17 +93,18 @@ void emcal_barrel_pions_analysis(const char* input_fname = "rec_emcal_barrel_uni
// Define variables
auto d1 = d0.Define("Ethr", Ethr, {"mcparticles2"})
.Define("ErecXY", ErecXY, {"RecoEcalBarrelAstroPixHitsXY"})
.Define("ErecZ", ErecZ, {"RecoEcalBarrelAstroPixHitsZ"})
.Define("ncluster", ncluster, {"EcalBarrelAstroPixClusters"})
.Define("Ecluster", Ecluster, {"EcalBarrelAstroPixClusters"})
.Define("fsam", fsam, {"Ecluster","Ethr"})
;
.Define("ErecXY", ErecXY, {"RecoEcalBarrelHitsXY"})
.Define("ErecZ", ErecZ, {"RecoEcalBarrelHitsZ"})
.Define("ncluster", ncluster, {"EcalBarrelClusters"})
.Define("Ecluster", Ecluster, {"EcalBarrelClusters"})
.Define("fsam", fsam, {"Ecluster", "Ethr"});
// Define Histograms
auto hEthr = d1.Histo1D({"hEthr", "Thrown Energy; Thrown Energy [GeV]; Events", 100, 0.0, 6.5}, "Ethr");
auto hErecXY = d1.Histo1D({"hErecXY", "Reconstructed Energy in XY merger; Reconstructed Energy [GeV]; Events", 100, 0.0, 6.5}, "ErecXY");
auto hErecZ = d1.Histo1D({"hErecZ", "Reconstructed Energy in Z merger; Reconstructed Energy [GeV]; Events", 100, 0.0, 6.5}, "ErecZ");
auto hErecXY = d1.Histo1D(
{"hErecXY", "Reconstructed Energy in XY merger; Reconstructed Energy [GeV]; Events", 100, 0.0, 6.5}, "ErecXY");
auto hErecZ = d1.Histo1D(
{"hErecZ", "Reconstructed Energy in Z merger; Reconstructed Energy [GeV]; Events", 100, 0.0, 6.5}, "ErecZ");
auto hNCluster = d1.Histo1D({"hNCluster", "Number of Clusters; # of Clusters; Events", 100, 0.0, 100.0}, "ncluster");
auto hEcluster = d1.Histo1D({"hEcluster", "Cluster Energy; Cluster Energy [GeV]; Events", 100, 0.0, 6.5}, "Ecluster");
auto hfsam = d1.Histo1D({"hfsam", "Sampling Fraction; Sampling Fraction; Events", 100, 0.0, 0.1}, "fsam");
......@@ -163,8 +165,9 @@ void emcal_barrel_pions_analysis(const char* input_fname = "rec_emcal_barrel_uni
hfsam->SetLineWidth(2);
hfsam->SetLineColor(kBlue);
hfsam->Fit("gaus", "", "", 0.01, 0.1);
hfsam->GetFunction("gaus")->SetLineWidth(2);
hfsam->GetFunction("gaus")->SetLineColor(kRed);
// Commented out for now as giving issues with new container (S. Joosten)
// hfsam->GetFunction("gaus")->SetLineWidth(2);
// hfsam->GetFunction("gaus")->SetLineColor(kRed);
hfsam->DrawClone();
c6->SaveAs("results/emcal_barrel_pions_fsam.png");
c6->SaveAs("results/emcal_barrel_pions_fsam.pdf");
......
......@@ -46,7 +46,7 @@ from Configurables import Jug__Reco__SimpleClustering as SimpleClustering
podioinput = PodioInput("PodioReader",
collections=["mcparticles","SiTrackerEndcapHits","SiTrackerBarrelHits","EcalBarrelAstroPixHits"])#, OutputLevel=DEBUG)"SiVertexBarrelHits",
collections=["mcparticles","SiTrackerEndcapHits","SiTrackerBarrelHits","EcalBarrelHits"])#, OutputLevel=DEBUG)"SiVertexBarrelHits",
## copiers to get around input --> output copy bug. Note the "2" appended to the output collection.
copier = MCCopier("MCCopier",
......@@ -57,8 +57,8 @@ trkcopier = TrkCopier("TrkCopier",
outputCollection="SiTrackerBarrelHits2")
ecal_digi = EMCalorimeterDigi("ecal_digi",
inputHitCollection="EcalBarrelAstroPixHits",
outputHitCollection="RawEcalBarrelAstroPixHits")
inputHitCollection="EcalBarrelHits",
outputHitCollection="RawEcalBarrelHits")
ufsd_digi = UFSDTrackerDigi("ufsd_digi",
inputHitCollection="SiTrackerBarrelHits",
......@@ -76,13 +76,13 @@ ufsd_digi2 = UFSDTrackerDigi("ufsd_digi2",
ecal_reco = EMCalReconstruction("ecal_reco",
inputHitCollection="RawEcalBarrelAstroPixHits",
outputHitCollection="RecEcalBarrelAstroPixHits",
inputHitCollection="RawEcalBarrelHits",
outputHitCollection="RecEcalBarrelHits",
minModuleEdep=0.0*units.MeV,
OutputLevel=WARNING)
simple_cluster = SimpleClustering("simple_cluster",
inputHitCollection="RecEcalBarrelAstroPixHits",
inputHitCollection="RecEcalBarrelHits",
outputClusters="SimpleClusters",
minModuleEdep=1.0*units.MeV,
maxDistance=50.0*units.cm,
......
......@@ -51,7 +51,7 @@ from Configurables import Jug__Reco__SimpleClustering as SimpleClustering
podioinput = PodioInput("PodioReader",
collections=["mcparticles","SiTrackerEndcapHits","SiTrackerBarrelHits","EcalBarrelAstroPixHits"])#, OutputLevel=DEBUG)
collections=["mcparticles","SiTrackerEndcapHits","SiTrackerBarrelHits","EcalBarrelHits"])#, OutputLevel=DEBUG)
#"SiVertexBarrelHits",
dummy = MC2DummyParticle("MC2Dummy",
......@@ -67,8 +67,8 @@ trkcopier = TrkCopier("TrkCopier",
outputCollection="SiTrackerBarrelHits2")
ecal_digi = EMCalorimeterDigi("ecal_digi",
inputHitCollection="EcalBarrelAstroPixHits",
outputHitCollection="RawEcalBarrelAstroPixHits")
inputHitCollection="EcalBarrelHits",
outputHitCollection="RawEcalBarrelHits")
ufsd_digi = UFSDTrackerDigi("ufsd_digi",
inputHitCollection="SiTrackerBarrelHits",
......@@ -88,13 +88,13 @@ ufsd_digi2 = UFSDTrackerDigi("ufsd_digi2",
ecal_reco = EMCalReconstruction("ecal_reco",
inputHitCollection="RawEcalBarrelAstroPixHits",
outputHitCollection="RecEcalBarrelAstroPixHits",
inputHitCollection="RawEcalBarrelHits",
outputHitCollection="RecEcalBarrelHits",
minModuleEdep=0.0*units.MeV)
#OutputLevel=DEBUG)
simple_cluster = SimpleClustering("simple_cluster",
inputHitCollection="RecEcalBarrelAstroPixHits",
inputHitCollection="RecEcalBarrelHits",
outputClusters="SimpleClusters",
minModuleEdep=1.0*units.MeV,
maxDistance=50.0*units.cm)
......
......@@ -27,28 +27,35 @@ source options/env.sh
pushd ${DETECTOR_PREFIX}
## We need an up-to-date copy of the detector
if [ ! -d ${JUGGLER_DETECTOR} ]; then
## start clean to avoid issues...
if [ -d ${JUGGLER_DETECTOR} ]; then
echo "cleaning up ${JUGGLER_DETECTOR}"
rm -rf ${JUGGLER_DETECTOR}
fi
echo "Fetching ${JUGGLER_DETECTOR}"
git clone -b ${JUGGLER_DETECTOR_VERSION} https://eicweb.phy.anl.gov/EIC/detectors/${JUGGLER_DETECTOR}.git
else
echo "Updating ${JUGGLER_DETECTOR}"
pushd ${JUGGLER_DETECTOR}
git branch
git fetch origin
git checkout ${JUGGLER_DETECTOR_VERSION}
popd
fi
#else
#echo "Updating ${JUGGLER_DETECTOR}"
#pushd ${JUGGLER_DETECTOR}
#git branch
#git fetch origin
#git checkout ${JUGGLER_DETECTOR_VERSION}
#popd
#fi
## We also need an up-to-date copy of the accelerator. For now this is done
## manually. Down the road we could maybe automize this with cmake
if [ ! -d accelerator ]; then
echo "cleaning up accelerator"
rm -rf accelerator
fi
echo "Fetching accelerator"
git clone https://eicweb.phy.anl.gov/EIC/detectors/accelerator.git
else
echo "Updating accelerator"
pushd accelerator
git pull --ff-only
popd
fi
#else
# echo "Updating accelerator"
# pushd accelerator
# git pull --ff-only
# popd
#fi
## Now symlink the accelerator definition into the detector definition
echo "Linking accelerator definition into detector definition"
ln -s -f ${DETECTOR_PREFIX}/accelerator/eic ${DETECTOR_PATH}/eic
......@@ -59,7 +66,7 @@ echo "Building and installing the ${JUGGLER_DETECTOR} package"
mkdir -p ${DETECTOR_PREFIX}/build
pushd ${DETECTOR_PREFIX}/build
cmake ${DETECTOR_PATH} -DCMAKE_INSTALL_PREFIX=${LOCAL_PREFIX} && make -j30 install
cmake ${DETECTOR_PATH} -DCMAKE_INSTALL_PREFIX=${LOCAL_PREFIX} -DCMAKE_CXX_STANDARD=17 && make -j30 install || exit 1
## =============================================================================
## Step 3: That's all!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment