Skip to content
Snippets Groups Projects
Commit 52ea00f3 authored by Savannah Rose Shively's avatar Savannah Rose Shively
Browse files

update trig to veto

parent 55c08668
No related tags found
No related merge requests found
Pipeline #4649512 failed
......@@ -41,7 +41,7 @@ StatusCode TrackerEfficiencyAlg::initialize() {
ATH_CHECK( m_clusterContainerKey.initialize() );
ATH_CHECK( m_waveformPreshowerHitContainerKey.initialize() );
ATH_CHECK( m_waveformCaloHitContainerKey.initialize() );
ATH_CHECK( m_waveformTriggerHitContainerKey.initialize() );
ATH_CHECK( m_waveformVetoHitContainerKey.initialize() );
ATH_CHECK(detStore()->retrieve(m_idHelper, "FaserSCT_ID"));
ATH_CHECK(m_spacePointContainerKey.initialize());
......@@ -54,12 +54,12 @@ StatusCode TrackerEfficiencyAlg::initialize() {
//Raw Integral
m_tree->Branch("presh_rawintegral", &m_presh_rawintegral, "presh_rawintegral/F");
m_tree->Branch("calo_rawintegral", &m_calo_rawintegral, "calo_rawintegral/F");
m_tree->Branch("trig_rawintegral", &m_trig_rawintegral, "trig_rawintegral/F");
m_tree->Branch("veto_rawintegral", &m_veto_rawintegral, "veto_rawintegral/F");
m_tree->Branch("presh_integral", &m_presh_integral, "presh_integral/F");
m_tree->Branch("calo_integral", &m_calo_integral, "calo_integral/F");
m_tree->Branch("calo_integral_norm", &m_calo_integral_norm, "calo_integral_norm/F");
m_tree->Branch("trig_integral", &m_trig_integral, "trig_integral/F");
m_tree->Branch("veto_integral", &m_veto_integral, "veto_integral/F");
//Preshower Counts
m_tree->Branch("presh_wfhit_count", &m_presh_wfhit_count, "presh_wfhit_count/I");
......@@ -75,10 +75,10 @@ StatusCode TrackerEfficiencyAlg::initialize() {
m_tree->Branch("calo_counts_ch4", &m_calo_counts_ch4, "calo_counts_ch4/I");
m_tree->Branch("calo_counts_ch5", &m_calo_counts_ch5, "calo_counts_ch5/I");
//Trigger Counts
m_tree->Branch("trig_wfhit_count", &m_trig_wfhit_count, "trig_wfhit_count/I");
m_tree->Branch("trig_counts_ch8", &m_trig_counts_ch8, "trig_counts_ch8/I");
m_tree->Branch("trig_counts_ch9", &m_trig_counts_ch9, "trig_counts_ch9/I");
//Veto Counts
m_tree->Branch("veto_wfhit_count", &m_veto_wfhit_count, "veto_wfhit_count/I");
m_tree->Branch("veto_counts_ch8", &m_veto_counts_ch8, "veto_counts_ch8/I");
m_tree->Branch("veto_counts_ch9", &m_veto_counts_ch9, "veto_counts_ch9/I");
//More general counts
m_tree->Branch("track_counts", &m_track_counts, "track_counts/I");
......@@ -89,18 +89,18 @@ StatusCode TrackerEfficiencyAlg::initialize() {
//Counting how many channels are active
m_tree->Branch("presh_max_channel", &m_presh_max_channel, "presh_max_channel/I");
m_tree->Branch("calo_max_channel", &m_calo_max_channel, "calo_max_channel/I");
m_tree->Branch("trig_max_channel", &m_trig_max_channel, "trig_max_channel/I");
m_tree->Branch("veto_max_channel", &m_veto_max_channel, "veto_max_channel/I");
m_tree->Branch("calo_sumintegral", &m_calo_sumintegral, "calo_sumintegral/I");
//Checking that all channels are active
m_tree->Branch("presh_check", &m_presh_check, "presh_check/I");
m_tree->Branch("calo_check", &m_calo_check, "calo_check/I");
m_tree->Branch("trig_check", &m_trig_check, "trig_check/I");
m_tree->Branch("veto_check", &m_veto_check, "veto_check/I");
m_tree->Branch("presh_alpha", &m_presh_alpha, "presh_alpha/F");
m_tree->Branch("calo_alpha", &m_calo_alpha, "calo_alpha/F");
m_tree->Branch("trig_alpha", &m_trig_alpha, "trig_alpha/F");
m_tree->Branch("veto_alpha", &m_veto_alpha, "veto_alpha/F");
//Tracker data
m_tree->Branch("x", &m_x, "x/F");
......@@ -144,13 +144,13 @@ StatusCode TrackerEfficiencyAlg::initialize() {
m_tree->Branch("calo_baseline_mean2", &m_calo_baseline_mean2, "calo_baseline_mean2/F");
m_tree->Branch("calo_baseline_rms2", &m_calo_baseline_rms2, "calo_baseline_rms2/F");
m_tree->Branch("trig_width", &m_trig_width, "trig_width/F");
m_tree->Branch("trig_localtime", &m_trig_localtime, "trig_localtime/F");
m_tree->Branch("trig_peak", &m_trig_peak, "trig_peak/F");
m_tree->Branch("trig_bcid_time", &m_trig_bcid_time, "trig_bcid_time/F");
m_tree->Branch("trig_raw_peak", &m_trig_raw_peak, "trig_raw_peak/F");
m_tree->Branch("trig_baseline_mean", &m_trig_baseline_mean, "trig_baseline_mean/F");
m_tree->Branch("trig_baseline_rms", &m_trig_baseline_rms, "trig_baseline_rms/F");
m_tree->Branch("veto_width", &m_veto_width, "veto_width/F");
m_tree->Branch("veto_localtime", &m_veto_localtime, "veto_localtime/F");
m_tree->Branch("veto_peak", &m_veto_peak, "veto_peak/F");
m_tree->Branch("veto_bcid_time", &m_veto_bcid_time, "veto_bcid_time/F");
m_tree->Branch("veto_raw_peak", &m_veto_raw_peak, "veto_raw_peak/F");
m_tree->Branch("veto_baseline_mean", &m_veto_baseline_mean, "veto_baseline_mean/F");
m_tree->Branch("veto_baseline_rms", &m_veto_baseline_rms, "veto_baseline_rms/F");
//cluster
......@@ -173,7 +173,7 @@ StatusCode TrackerEfficiencyAlg::execute(const EventContext& ctx) const
SG::ReadHandle<Tracker::FaserSCT_ClusterContainer> SCT_ClusterContainer {m_clusterContainerKey, ctx};
SG::ReadHandle<xAOD::WaveformHitContainer> waveformPreshowerHitContainer {m_waveformPreshowerHitContainerKey, ctx};
SG::ReadHandle<xAOD::WaveformHitContainer> waveformCaloHitContainer {m_waveformCaloHitContainerKey, ctx};
SG::ReadHandle<xAOD::WaveformHitContainer> waveformTriggerHitContainer {m_waveformTriggerHitContainerKey, ctx};
SG::ReadHandle<xAOD::WaveformHitContainer> waveformVetoHitContainer {m_waveformVetoHitContainerKey, ctx};
//SG::ReadHandleKey<FaserSCT_SpacePointContainer> spacePointContainer {m_Sct_spcontainerKey, ctx};
if (!waveformPreshowerHitContainer.isValid()){
......@@ -184,8 +184,9 @@ StatusCode TrackerEfficiencyAlg::execute(const EventContext& ctx) const
ATH_MSG_ERROR("Could not read " << waveformCaloHitContainer.name());
return StatusCode::FAILURE;
}
if (!waveformTriggerHitContainer.isValid()){
ATH_MSG_ERROR("Could not read " << waveformTriggerHitContainer.name());
if (!waveformVetoHitContainer.isValid()){
ATH_MSG_ERROR("Could not read " << waveformVetoHitContainer.name());
return StatusCode::FAILURE;
}
......@@ -333,45 +334,52 @@ StatusCode TrackerEfficiencyAlg::execute(const EventContext& ctx) const
}
m_calo_check=calo_check[0]+calo_check[1]+calo_check[2]+calo_check[3]+calo_check[4]+calo_check[5];
//ANALYSE TRIGGER EVENTS
m_trig_wfhit_count=0;
m_trig_counts_ch8=0;
m_trig_counts_ch9=0;
int trig_check[2] = {0,0};
float trig_maxintegral=0;
m_trig_max_channel=-1;
//ANALYSE Veto EVENTS
m_veto_wfhit_count=0;
m_veto_counts_ch8=0;
m_veto_counts_ch9=0;
int veto_check[2] = {0,0};
float veto_maxintegral=0;
m_veto_max_channel=-1;
for (const xAOD::WaveformHit* hit : *waveformTriggerHitContainer)
for (const xAOD::WaveformHit* hit : *waveformVetoHitContainer)
{
if (abs(trig_maxintegral) <abs(hit->integral())){
if (abs(veto_maxintegral) <abs(hit->integral())){
const Identifier id = hit->identify();
m_trig_rawintegral = hit->raw_integral();
m_trig_integral = hit->integral();
trig_maxintegral = hit->integral();
m_trig_alpha = hit->alpha();
m_trig_localtime = hit->localtime();
m_trig_width = hit->width();
m_trig_peak = hit->peak();
m_trig_bcid_time = hit->bcid_time();
m_trig_raw_peak = hit->raw_peak();
m_trig_baseline_mean = hit->baseline_mean();
m_trig_baseline_rms = hit->baseline_rms();
m_trig_max_channel=hit->channel();
m_veto_rawintegral = hit->raw_integral();
m_veto_integral = hit->integral();
veto_maxintegral = hit->integral();
m_veto_alpha = hit->alpha();
m_veto_localtime = hit->localtime();
m_veto_width = hit->width();
m_veto_peak = hit->peak();
m_veto_bcid_time = hit->bcid_time();
m_veto_raw_peak = hit->raw_peak();
m_veto_baseline_mean = hit->baseline_mean();
m_veto_baseline_rms = hit->baseline_rms();
m_veto_max_channel=hit->channel();
}
m_trig_wfhit_count++;
m_veto_wfhit_count++;
switch(hit->channel()){
case 8: m_trig_counts_ch8++; trig_check[0]=1; break;
case 9: m_trig_counts_ch9++; trig_check[1]=1; break;
case 8: m_veto_counts_ch8++; veto_check[0]=1; break;
case 9: m_veto_counts_ch9++; veto_check[1]=1; break;
}
}
m_trig_check=trig_check[0]+trig_check[1];
m_veto_check=veto_check[0]+veto_check[1];
Amg::Vector3D pos;
Amg::Vector3D dir;
m_x=-1;
m_y=-1;
m_z=-1;
m_px=-1;
m_py=-1;
m_pz=-1;
m_track_counts=0;
......@@ -426,41 +434,7 @@ StatusCode TrackerEfficiencyAlg::execute(const EventContext& ctx) const
//deion
SG::ReadHandle<Tracker::FaserSCT_ClusterContainer> clusterContainer { m_clusterContainer, ctx };
ATH_CHECK(clusterContainer.isValid());
/*
for (auto collection : *clusterContainer)
{
Identifier id = collection->identify();
//int station = m_sctHelper->station(id);
int clusters = (int) collection->size();
//std::cout <<station <<'\n';
m_stationClusters+=clusters;
for (auto cluster : *collection) {
if (cluster == nullptr) continue;
auto clusterID = cluster->identify();
m_clusterIds.push_back(clusterID);
int layer = m_sctHelper->layer(id);
auto pos = cluster->globalPosition();
//m_layerclusters={layer,x,y,z,onTrack}
m_layerclusters[0].push_back(layer);
m_layerclusters[1].push_back(pos.x());
m_layerclusters[2].push_back(pos.y());
m_layerclusters[3].push_back(pos.z());
if(std::find(m_trackClusterIds.begin(), m_trackClusterIds.end(), clusterID) != m_trackClusterIds.end()) {
m_layerclusters[4].push_back(1); //Cluster is on track
} else {
m_layerclusters[4].push_back(0); //Cluster is not on track
}
}
}
*/
m_layerspacepoints[0].clear();
m_layerspacepoints[1].clear();
m_layerspacepoints[2].clear();
m_layerspacepoints[3].clear();
m_layerspacepoints[4].clear();
for (int i=0; i<5; i++) {m_layerspacepoints[i].clear();}
SG::ReadHandle<FaserSCT_SpacePointContainer> spacePointContainer {m_spacePointContainerKey, ctx};
ATH_CHECK(spacePointContainer.isValid());
for (const FaserSCT_SpacePointCollection* spacePointCollection : *spacePointContainer) {
......@@ -492,7 +466,6 @@ StatusCode TrackerEfficiencyAlg::execute(const EventContext& ctx) const
} else {
m_layerspacepoints[4].push_back(0); //Cluster is not on track
}
//m_layerspacepoints[4].push_back(-1);
}
}
......
......@@ -65,7 +65,7 @@ class TrackerEfficiencyAlg : public AthReentrantAlgorithm, AthHistogramming
SG::ReadHandleKey<Tracker::FaserSCT_ClusterContainer> m_clusterContainerKey {this, "FaserSCT_ClusterContainer", "SCT_ClusterContainer"};
SG::ReadHandleKey<xAOD::WaveformHitContainer> m_waveformPreshowerHitContainerKey {this, "WaveformHitContainerKey", "PreshowerWaveformHits"};
SG::ReadHandleKey<xAOD::WaveformHitContainer> m_waveformCaloHitContainerKey {this, "WaveformHitContainerKey", "CaloWaveformHits"};
SG::ReadHandleKey<xAOD::WaveformHitContainer> m_waveformTriggerHitContainerKey {this, "WaveformHitContainerKey", "TriggerWaveformHits"};
SG::ReadHandleKey<xAOD::WaveformHitContainer> m_waveformVetoHitContainerKey {this, "WaveformHitContainerKey", "VetoWaveformHits"};
//SG::ReadHandleKey<FaserSCT_SpacePointContainer> m_Sct_spcontainerKey{this, "SpacePointsSCTName", "SCT_SpacePointContainer"};
SG::ReadHandleKey<FaserSCT_SpacePointContainer> m_spacePointContainerKey { this, "SpacePoints", "SCT_SpacePointContainer", "space point container"};
......@@ -114,29 +114,29 @@ class TrackerEfficiencyAlg : public AthReentrantAlgorithm, AthHistogramming
mutable int m_calo_counts_ch5=0;
mutable int m_trig_wfhit_count=0;
mutable int m_trig_counts_ch8=0;
mutable int m_trig_counts_ch9=0;
mutable int m_veto_wfhit_count=0;
mutable int m_veto_counts_ch8=0;
mutable int m_veto_counts_ch9=0;
mutable int m_track_counts=0;
mutable float m_presh_rawintegral;
mutable float m_trig_rawintegral;
mutable float m_veto_rawintegral;
mutable float m_presh_integral;
mutable float m_trig_integral;
mutable float m_veto_integral;
mutable float m_presh_alpha;
mutable float m_trig_alpha;
mutable float m_veto_alpha;
//counts how many times a channel number appears.
mutable int m_presh_max_channel=0;
mutable int m_trig_max_channel =0;
mutable int m_veto_max_channel =0;
//checks for an event in each channel
mutable int m_presh_check;
mutable int m_calo_check;
mutable int m_trig_check;
mutable int m_veto_check;
mutable float m_presh_localtime;
mutable float m_presh_width;
......@@ -174,13 +174,13 @@ class TrackerEfficiencyAlg : public AthReentrantAlgorithm, AthHistogramming
mutable float m_calo_sumintegral2=0;
mutable float m_calo_alpha2;
mutable float m_trig_localtime;
mutable float m_trig_width;
mutable float m_trig_peak;
mutable float m_trig_bcid_time;
mutable float m_trig_raw_peak;
mutable float m_trig_baseline_mean;
mutable float m_trig_baseline_rms;
mutable float m_veto_localtime;
mutable float m_veto_width;
mutable float m_veto_peak;
mutable float m_veto_bcid_time;
mutable float m_veto_raw_peak;
mutable float m_veto_baseline_mean;
mutable float m_veto_baseline_rms;
//deion
mutable unsigned int m_stationClusters;
......
......@@ -6,6 +6,15 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from AthenaConfiguration.ComponentFactory import CompFactory
from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
from argparse import ArgumentParser
parser=ArgumentParser(description="EventLooper")
parser.add_argument("-f","--file",type=str)
parser.add_argument("-m","--maxevents",type=int,default=1000)
opts=parser.parse_args()
def NtupleDumperAlgCfg(flags, **kwargs):
# Initialize GeoModel
from FaserGeoModel.FaserGeoModelConfig import FaserGeometryCfg
......@@ -46,11 +55,11 @@ if __name__ == "__main__":
Configurable.configurableRun3Behavior = True
# Configure
ConfigFlags.Input.Files = [
'/eos/experiment/faser/rec/2022/p0008//008119/Faser-Physics-008119-00168-p0008-xAOD.root',
# inp = '/eos/experiment/faser/rec/2022/p0008//008119/Faser-Physics-008119-00168-p0008-xAOD.root'
inp = opts.file
name = inp.split('-xAOD')[0]
ConfigFlags.Input.Files = [inp]
]
ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-02" # Always needed; must match FaserVersionS
ConfigFlags.IOVDb.DatabaseInstance = "OFLP200" # Use MC conditions for now
ConfigFlags.Input.ProjectName = "data21" # Needed to bypass autoconfig
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment