From 3fe094ce62afe117c7e1f081555690f32660c0e6 Mon Sep 17 00:00:00 2001 From: jules6077 Date: Sat, 23 Nov 2024 14:31:54 -0600 Subject: [PATCH 01/14] Some new plots I added --- ClusterShapeAnalysis/ClusterHists.h | 158 ++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) diff --git a/ClusterShapeAnalysis/ClusterHists.h b/ClusterShapeAnalysis/ClusterHists.h index 8b11fdd..42e12be 100644 --- a/ClusterShapeAnalysis/ClusterHists.h +++ b/ClusterShapeAnalysis/ClusterHists.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -8,6 +9,7 @@ namespace EVENT { class TrackerHit; + class SimTrackerHit; } //! Histograms for cluster analysis @@ -22,6 +24,7 @@ class ClusterHists // Fill histograms with a single track hit void fill(const EVENT::TrackerHit* trkhit); + void fill(const EVENT::SimTrackerHit* simtrkhit); private: TH2* h_size_theta_y; @@ -81,4 +84,159 @@ class ClusterHists TH1* h_r_vx; TH2* h_z_r_vx; TH2* h_x_y_vx; + + //time and edep for 1st layer -- juliet + TH1* h_cluster_edep_layer0; + TH1* h_cluster_edep_layer1; + TH1* h_cluster_edep_layer2; + TH1* h_cluster_edep_layer3; + TH1* h_cluster_edep_layer4; + TH1* h_cluster_edep_layer5; + TH1* h_cluster_edep_layer6; + TH1* h_cluster_edep_layer7; + TH1* h_cluster_edep_layer8; + +//time and edep for 1st layer -- juliet + TH1* h_truth_cluster_edep_layer0; + TH1* h_truth_cluster_edep_layer1; + TH1* h_truth_cluster_edep_layer2; + TH1* h_truth_cluster_edep_layer3; + TH1* h_truth_cluster_edep_layer4; + TH1* h_truth_cluster_edep_layer5; + TH1* h_truth_cluster_edep_layer6; + TH1* h_truth_cluster_edep_layer7; + TH1* h_truth_cluster_edep_layer8; + + //normalized cluster edp: + TH1* h_cluster_edep_norm_layer0; + TH1* h_cluster_edep_norm_layer1; + TH1* h_cluster_edep_norm_layer2; + TH1* h_cluster_edep_norm_layer3; + TH1* h_cluster_edep_norm_layer4; + TH1* h_cluster_edep_norm_layer5; + TH1* h_cluster_edep_norm_layer6; + TH1* h_cluster_edep_norm_layer7; + TH1* h_cluster_edep_norm_layer8; + + TH1* h_hit_edep_layer0; + TH1* h_hit_edep_layer1; + TH1* h_hit_edep_layer2; + TH1* h_hit_edep_layer3; + TH1* h_hit_edep_layer4; + TH1* h_hit_edep_layer5; + TH1* h_hit_edep_layer6; + TH1* h_hit_edep_layer7; + TH1* h_hit_edep_layer8; + + TH1* h_trackerhit_time_layer0; + TH1* h_trackerhit_time_layer1; + TH1* h_trackerhit_time_layer2; + TH1* h_trackerhit_time_layer3; + TH1* h_trackerhit_time_layer4; + TH1* h_trackerhit_time_layer5; + TH1* h_trackerhit_time_layer6; + TH1* h_trackerhit_time_layer7; + TH1* h_trackerhit_time_layer8; + //hits per cluster per layer: + TH1* h_thclen_layer0; + TH1* h_thclen_layer1; + TH1* h_thclen_layer2; + TH1* h_thclen_layer3; + TH1* h_thclen_layer4; + TH1* h_thclen_layer5; + TH1* h_thclen_layer6; + TH1* h_thclen_layer7; + TH1* h_thclen_layer8; + //New stuff + TH1* h_thclen; + TH1* h_cluster_1hits; + TH1* h_cluster_2hits; + TH1* h_cluster_3hits; + TH1* h_cluster_4hits; + TH1* h_cluster_5hits; + TH1* h_cluster_6hits; + TH1* h_cluster_7hits; + TH1* h_cluster_8hits; + TH1* h_cluster_9hits; + TH1* h_cluster_norm; + + //diff histos in cluster and hit edep: + TH1* h_diffHitCluster_edep_layer0; + TH1* h_diffHitCluster_edep_layer1; + TH1* h_diffHitCluster_edep_layer2; + TH1* h_diffHitCluster_edep_layer3; + TH1* h_diffHitCluster_edep_layer4; + TH1* h_diffHitCluster_edep_layer5; + TH1* h_diffHitCluster_edep_layer6; + TH1* h_diffHitCluster_edep_layer7; + TH1* h_diffHitCluster_edep_layer8; + + + //2D + TH2* h_toa_edepCluster; + TH2* h_3hitEDEP_vs_clusterEDEP_1; + TH2* h_3hitEDEP_vs_clusterEDEP_2; + TH2* h_3hitEDEP_vs_clusterEDEP_3; + + TH2* h_edepVhits; + TH2* h_edepVhits_layer0; + TH2* h_edepVhits_layer1; + TH2* h_edepVhits_layer2; + TH2* h_edepVhits_layer3; + TH2* h_edepVhits_layer4; + TH2* h_edepVhits_layer5; + TH2* h_edepVhits_layer6; + TH2* h_edepVhits_layer7; + + //3D Histos: + TH3* h_3DPosition_digi; + TH3* h_3DPosition_20digi; + TH3* h_3DPosition_cdigi; + TH3* h_3DPosition_20cdigi; + TH3* h_3DPosition_r_z_hit; + TH2* h_2D_r_hitNum; + TH2* h_2D_z_hitNum; + TH3* h_3DPosition_r_z_20hit; + TH3* h_3DPosition_theta_z_20hit; + TH3* h_3DPosition_theta_z_hit; + TH3* h_3DPosition_theta_r_20hit; + TH3* h_3DPosition_theta_r_hit; + + TH2* h_2D_r_20hitNum; + TH2* h_2D_z_20hitNum; + TH2* h_2D_theta_hitNum; + TH2* h_2D_theta_20hitNum; + + //theta, r, and z histos for larger than 20 hit clusters: + TH1* h_theta_20hit; + TH1* h_theta_20hit_layer0; + TH1* h_theta_20hit_layer1; + TH1* h_theta_20hit_layer2; + TH1* h_theta_20hit_layer3; + TH1* h_theta_20hit_layer4; + TH1* h_theta_20hit_layer5; + TH1* h_theta_20hit_layer6; + TH1* h_theta_20hit_layer7; + + TH1* h_r_20hit; + TH1* h_r_20hit_layer0; + TH1* h_r_20hit_layer1; + TH1* h_r_20hit_layer2; + TH1* h_r_20hit_layer3; + TH1* h_r_20hit_layer4; + TH1* h_r_20hit_layer5; + TH1* h_r_20hit_layer6; + TH1* h_r_20hit_layer7; + + TH1* h_z_20hit; + TH1* h_z_20hit_layer0; + TH1* h_z_20hit_layer1; + TH1* h_z_20hit_layer2; + TH1* h_z_20hit_layer3; + TH1* h_z_20hit_layer4; + TH1* h_z_20hit_layer5; + TH1* h_z_20hit_layer6; + TH1* h_z_20hit_layer7; + + }; From f76a27b2c91bc15b929c132b0b5df5d574388333 Mon Sep 17 00:00:00 2001 From: jules6077 Date: Sat, 23 Nov 2024 14:34:35 -0600 Subject: [PATCH 02/14] Some updated histograms --- src/ClusterHists.cc | 466 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 457 insertions(+), 9 deletions(-) diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index f11eb32..ab2125b 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -1,5 +1,6 @@ #include "ClusterShapeAnalysis/ClusterHists.h" #include "marlin/VerbosityLevels.h" +#include #include #include @@ -7,6 +8,9 @@ #include #include +#include +#include + ClusterHists::ClusterHists() { @@ -27,9 +31,26 @@ ClusterHists::ClusterHists() h_hits_by_layer = new TH1F("numhits_by_layer" , ";Layer Index; Number of Hits",8,0,8); h_theta = new TH1F("theta" , ";Theta;Number of Clusters" ,100,0,3.15); h_cluster_edep = new TH1F("Clusters_edep" , ";Energy Deposited (GeV);Clusters" ,100,0,0.0005); - h_hit_edep = new TH1F("Hits_edep" , ";Deposited charge (electrons);Hits" ,5000,0,50000); + h_hit_edep = new TH1F("Hits_edep" , ";Deposited charge (electrons);Hits" ,5000, 0, 50000);//5000, 0, 50000 Change JULIET h_edep_r = new TH2F("edep_vs_r" , ";Cluster R (x^2+y^2)^(1/2) (mm); Energy Deposited (GeV)" , 100, 20, 120, 100, 0, 0.002 ); h_edep_cluster = new TH2F("edep_vs_cluster_size" , "; Energy Deposited (GeV); Total Cluster Size" ,100, 0, 0.002, 100, -0.5, 99.5 ); + h_toa_edepCluster = new TH2F("toa_vs_edepCluster", "; Time of Arrival [ns];Energy Deposited [GeV]", 100, 0, 10, 100, 0, 0.0005); //--JULIET + h_3hitEDEP_vs_clusterEDEP_1 = new TH2F("3hitEDEP_vs_clusterEDEP1", "; Hit EDEP [GeV];Cluster EDEP [GeV]", 100, 0, 0.00005, 100, 0, 0.00005); //--JULIET + h_3hitEDEP_vs_clusterEDEP_2 = new TH2F("3hitEDEP_vs_clusterEDEP2", "; Hit EDEP [GeV];Cluster EDEP [GeV]", 100, 0, 0.0001, 100, 0.000045, 0.0001); + h_3hitEDEP_vs_clusterEDEP_3 = new TH2F("3hitEDEP_vs_clusterEDEP3", "; Hit EDEP [GeV];Cluster EDEP [GeV]", 100, 0, 0.0001, 100, 0.00009, 0.0003); + + //2D plot of each layer cluster EDEP vs # of Hits: + h_edepVhits = new TH2F("edepVhits" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + h_edepVhits_layer0 = new TH2F("edepVhits_layer0" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + h_edepVhits_layer1 = new TH2F("edepVhits_layer1" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + h_edepVhits_layer2 = new TH2F("edepVhits_layer2" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + h_edepVhits_layer3 = new TH2F("edepVhits_layer3" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + h_edepVhits_layer4 = new TH2F("edepVhits_layer4" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + h_edepVhits_layer5 = new TH2F("edepVhits_layer5" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + h_edepVhits_layer6 = new TH2F("edepVhits_layer6" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + h_edepVhits_layer7 = new TH2F("edepVhits_layer7" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); + //h_edepVhits_layer8 = new TH2F("edepVhits_layer8" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.1e-3, 100, 0, 5); + // Create position histograms for tracker hits int numbins_all = 1000; @@ -77,12 +98,154 @@ ClusterHists::ClusterHists() h_r_vx = new TH1F("r_vx " , ";r ; Num Hits" , numbins_vx, rmin_vx, rmax_vx); h_z_r_vx = new TH2F("z_r_vx" , ";z_r ; r" , numbins_vx/10, zmin_vx, zmax_vx, numbins_vx/10, rmin_vx, rmax_vx); h_x_y_vx = new TH2F("x_y_vx" , ";x_y ; r" , numbins_vx, -rmax_vx, rmax_vx, numbins_vx, -rmax_vx, rmax_vx); + + //create histograms for 1st layer in full silicon tracking detector: EDEP & Time + h_cluster_edep_layer0 = new TH1F("Clusters_edep_layer0", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer1 = new TH1F("Clusters_edep_layer1", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer2 = new TH1F("Clusters_edep_layer2", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer3 = new TH1F("Clusters_edep_layer3", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer4 = new TH1F("Clusters_edep_layer4", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer5 = new TH1F("Clusters_edep_layer5", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer6 = new TH1F("Clusters_edep_layer6", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer7 = new TH1F("Clusters_edep_layer7", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer8 = new TH1F("Clusters_edep_layer8", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + + //normalized cluster energies: + h_cluster_edep_norm_layer0 = new TH1F("Clusters_edep_norm_layer0", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_norm_layer1 = new TH1F("Clusters_edep_norm_layer1", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_norm_layer2 = new TH1F("Clusters_edep_norm_layer2", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_norm_layer3 = new TH1F("Clusters_edep_norm_layer3", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_norm_layer4 = new TH1F("Clusters_edep_norm_layer4", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_norm_layer5 = new TH1F("Clusters_edep_norm_layer5", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_norm_layer6 = new TH1F("Clusters_edep_norm_layer6", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_norm_layer7 = new TH1F("Clusters_edep_norm_layer7", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_norm_layer8 = new TH1F("Clusters_edep_norm_layer8", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + + h_truth_cluster_edep_layer0 = new TH1F("Clusters_truth_edep_norm_layer0", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_truth_cluster_edep_layer1 = new TH1F("Clusters_truth_edep_norm_layer1", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_truth_cluster_edep_layer2 = new TH1F("Clusters_truth_edep_norm_layer2", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_truth_cluster_edep_layer3 = new TH1F("Clusters_truth_edep_norm_layer3", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_truth_cluster_edep_layer4 = new TH1F("Clusters_truth_edep_norm_layer4", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_truth_cluster_edep_layer5 = new TH1F("Clusters_truth_edep_norm_layer5", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_truth_cluster_edep_layer6 = new TH1F("Clusters_truth_edep_norm_layer6", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_truth_cluster_edep_layer7 = new TH1F("Clusters_truth_edep_norm_layer7", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_truth_cluster_edep_layer8 = new TH1F("Clusters_truth_edep_norm_layer8", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + + h_hit_edep_layer0 = new TH1F("hit_edep_layer0", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); + h_hit_edep_layer1 = new TH1F("hit_edep_layer1", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); + h_hit_edep_layer2 = new TH1F("hit_edep_layer2", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); + h_hit_edep_layer3 = new TH1F("hit_edep_layer3", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); + h_hit_edep_layer4 = new TH1F("hit_edep_layer4", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); + h_hit_edep_layer5 = new TH1F("hit_edep_layer5", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); + h_hit_edep_layer6 = new TH1F("hit_edep_layer6", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); //(100, 0, 36000) + h_hit_edep_layer7 = new TH1F("hit_edep_layer7", ";Deposited charge (electrons);Hits" ,5000, 0, 50000);//5000,0,50000 + h_hit_edep_layer8 = new TH1F("hit_edep_layer8", ";Deposited charge (electrons);Hits" ,5000, 0, 50000);//5000,0,50000 + + h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,200,-10,100); + h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,200,-10,100); + h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,200,-10,100); + h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,200,-10,100); + h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,200,-10,100); + h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,200,-10,100); + h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,200,-10,100); + h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,200,-10,100); + h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,200,-10,100); + + //number of hits per cluster + h_thclen = new TH1F("thclen", ";Number of Hit Constituents; Events", 50, 0, 2000); //Total number of hit constituents + h_cluster_1hits = new TH1F("cluster_1hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + h_cluster_2hits = new TH1F("cluster_2hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + h_cluster_3hits = new TH1F("cluster_3hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + h_cluster_4hits = new TH1F("cluster_4hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + h_cluster_5hits = new TH1F("cluster_5hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + h_cluster_6hits = new TH1F("cluster_6hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + h_cluster_7hits = new TH1F("cluster_7hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + h_cluster_8hits = new TH1F("cluster_8hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + h_cluster_9hits = new TH1F("cluster_9hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); + //cluster edep needs to be divided by total number of hits in the cluster and plotted + h_cluster_norm = new TH1F("cluster_norm", ";Cluster EDP (GeV);Clusters",100, 0, 0.1e-3); + + //number of hits per cluster per layer: + h_thclen_layer0 = new TH1F("thclen_layer0", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer1 = new TH1F("thclen_layer1", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer2 = new TH1F("thclen_layer2", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer3 = new TH1F("thclen_layer3", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer4 = new TH1F("thclen_layer4", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer5 = new TH1F("thclen_layer5", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer6 = new TH1F("thclen_layer6", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer7 = new TH1F("thclen_layer7", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 50, 0, 1000); + +//Differnece in hit and cluster edep per layer: +h_diffHitCluster_edep_layer0 = new TH1F("diffHitCluster_edep_layer0", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); +h_diffHitCluster_edep_layer1 = new TH1F("diffHitCluster_edep_layer1", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); +h_diffHitCluster_edep_layer2 = new TH1F("diffHitCluster_edep_layer2", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); +h_diffHitCluster_edep_layer3 = new TH1F("diffHitCluster_edep_layer3", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); +h_diffHitCluster_edep_layer4 = new TH1F("diffHitCluster_edep_layer4", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); +h_diffHitCluster_edep_layer5 = new TH1F("diffHitCluster_edep_layer5", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); +h_diffHitCluster_edep_layer6 = new TH1F("diffHitCluster_edep_layer6", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); +h_diffHitCluster_edep_layer7 = new TH1F("diffHitCluster_edep_layer7", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); +h_diffHitCluster_edep_layer8 = new TH1F("diffHitCluster_edep_layer8", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); + +//3D HISTO for X vs Y vs Z position in digitized and truth +h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); +h_3DPosition_20digi = new TH3D ("3DPosition_20digi", "3D Digitized Position;x[mm];y[mm];z[mm]", numbins_all/10, -rmax_all, rmax_all, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); +h_3DPosition_cdigi = new TH3D ("3DPosition_cdigi", "3D Digitized Position;#theta;r[mm];z[mm]", numbins_all/10, 0, 3.14, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); +h_3DPosition_20cdigi = new TH3D ("3DPosition_20cdigi", "3D Digitized Position;#theta;r[mm];z[mm]", numbins_all/10, 0, 3.14, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); + +h_3DPosition_r_z_hit = new TH3D ("3DPosition_r_z_hit", "3D Digitized Position;Hit Num;r[mm];z[mm]", 100, 0, 400, numbins_all/10, 0, rmax_all, numbins_all/10, zmin_all, zmax_all); +h_3DPosition_r_z_20hit = new TH3D ("3DPosition_r_z_20hit", "3D Digitized Position;Hit Num;r[mm];z[mm]", 100, 0, 400, numbins_all/10, 0, rmax_all, numbins_all/10, zmin_all, zmax_all); + +h_3DPosition_theta_z_20hit = new TH3D ("3DPosition_theta_z_20hit", "3D Digitized Position;#theta;z[mm];Hit Num", numbins_all/10, 0, 3.14, numbins_all/10, zmin_all, zmax_all, numbins_all/10, 0, 400); +h_3DPosition_theta_z_hit = new TH3D ("3DPosition_theta_z_hit", "3D Digitized Position;#theta;z[mm];Hit Num", numbins_all/10, 0, 3.14, numbins_all/10, zmin_all, zmax_all, numbins_all/10, 0, 400); +h_3DPosition_theta_r_20hit = new TH3D ("3DPosition_theta_r_20hit", "3D Digitized Position;#theta;r[mm];Hit Num", numbins_all/10, 0, 3.14, numbins_all/10, 0, rmax_all, numbins_all/10, 0, 400); +h_3DPosition_theta_r_hit = new TH3D ("3DPosition_theta_r_hit", "3D Digitized Position;#theta;r[mm];Hit Num", numbins_all/10, 0, 3.14, numbins_all/10, 0, rmax_all, numbins_all/10, 0, 400); + +h_2D_r_hitNum = new TH2D ("2D_r_hitNum", "2D Digitized Radius vs Hit Density;r[mm];Hit Number", numbins_all/10, 0, rmax_all, 100, 0, 400); +h_2D_z_hitNum = new TH2D ("2D_z_hitNum", "2D Digitized Z vs Hit Density;z[mm];Hit Number", numbins_all/10, zmin_all, zmax_all, 100, 0, 400); +h_2D_r_20hitNum = new TH2D ("2D_r_20hitNum", "2D Digitized Radius vs Hit Density;r[mm];Hit Number", numbins_all/10, 0, rmax_all, 100, 0, 400); +h_2D_z_20hitNum = new TH2D ("2D_z_20hitNum", "2D Digitized Z vs Hit Density;z[mm];Hit Number", numbins_all/10, zmin_all, zmax_all, 100, 0,400); +h_2D_theta_hitNum = new TH2D ("2D_theta_hitNum", "2D Digitized #theta vs Hit Density;#theta;Hit Number", numbins_all/10, 0, 3.14, 100, 0, 400); +h_2D_theta_20hitNum = new TH2D ("2D_theta_20hitNum", "2D Digitized #theta vs Hit Density;#theta;Hit Number", numbins_all/10, 0, 3.14, 100, 0, 400); + +//individual distributions for theta, r, and z above 20 hit cluster histrogram defs: +h_theta_20hit = new TH1F("theta_20hit", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); +h_theta_20hit_layer0 = new TH1F("theta_20hit_layer0", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); +h_theta_20hit_layer1 = new TH1F("theta_20hit_layer1", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); +h_theta_20hit_layer2 = new TH1F("theta_20hit_layer2", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); +h_theta_20hit_layer3 = new TH1F("theta_20hit_layer3", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); +h_theta_20hit_layer4 = new TH1F("theta_20hit_layer4", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); +h_theta_20hit_layer5 = new TH1F("theta_20hit_layer5", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); +h_theta_20hit_layer6 = new TH1F("theta_20hit_layer6", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); +h_theta_20hit_layer7 = new TH1F("theta_20hit_layer7", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); + +h_r_20hit = new TH1F("r_20hit", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); +h_r_20hit_layer0 = new TH1F("r_20hit_layer0", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); +h_r_20hit_layer1 = new TH1F("r_20hit_layer1", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); +h_r_20hit_layer2 = new TH1F("r_20hit_layer2", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); +h_r_20hit_layer3 = new TH1F("r_20hit_layer3", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); +h_r_20hit_layer4 = new TH1F("r_20hit_layer4", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); +h_r_20hit_layer5 = new TH1F("r_20hit_layer5", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); +h_r_20hit_layer6 = new TH1F("r_20hit_layer6", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); +h_r_20hit_layer7 = new TH1F("r_20hit_layer7", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); + +h_z_20hit = new TH1F("z_20hit", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); +h_z_20hit_layer0 = new TH1F("z_20hit_layer0", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); +h_z_20hit_layer1 = new TH1F("z_20hit_layer1", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); +h_z_20hit_layer2 = new TH1F("z_20hit_layer2", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); +h_z_20hit_layer3 = new TH1F("z_20hit_layer3", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); +h_z_20hit_layer4 = new TH1F("z_20hit_layer4", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); +h_z_20hit_layer5 = new TH1F("z_20hit_layer5", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); +h_z_20hit_layer6 = new TH1F("z_20hit_layer6", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); +h_z_20hit_layer7 = new TH1F("z_20hit_layer7", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); + } void ClusterHists::fill(const EVENT::TrackerHit* trkhit) { //Calculate energy deposited float EDep = trkhit->getEDep(); + float toa = trkhit->getTime(); //time of arrival -- Juliet //Calculating theta float x = trkhit->getPosition()[0]; @@ -108,6 +271,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) for (size_t j=0; j( rawHits[j] ); + //lcio::TrackerHit *hitTracker = dynamic_cast( rawHits[j] ); h_hit_edep->Fill(hitConstituent->getEDep()); const double *localPos = hitConstituent->getPosition(); float x_local = localPos[0]; @@ -170,44 +334,238 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_z_r->Fill(z,r); h_x_y->Fill(x,y); for (size_t j=0; j( rawHits[j] ); // adding this -- Juliet + //lcio::TrackerHit *hitTracker = dynamic_cast( rawHits[j] ); h_hits_by_layer->Fill(layerID); h_z_r_hits->Fill(z,r); h_x_y_hits->Fill(x,y); + h_edepVhits->Fill(EDep, rawHits.size()); + + if(rawHits.size() > 20){ + h_3DPosition_20digi->Fill(x, y, z); + h_3DPosition_20cdigi->Fill(incidentTheta, r, z); + h_2D_r_20hitNum->Fill(r, rawHits.size()); + h_2D_z_20hitNum->Fill(z, rawHits.size()); + h_2D_theta_20hitNum->Fill(incidentTheta, rawHits.size()); + h_3DPosition_r_z_20hit->Fill(rawHits.size(), r, z); + h_3DPosition_theta_z_20hit->Fill(incidentTheta, z, rawHits.size()); + h_3DPosition_theta_r_20hit->Fill(incidentTheta, r, rawHits.size()); + //theta, r, z + h_theta_20hit->Fill(incidentTheta); + h_r_20hit->Fill(r); + h_z_20hit->Fill(z); + + } + h_3DPosition_digi->Fill(x, y, z); + h_3DPosition_cdigi->Fill(incidentTheta, r, z); + h_2D_r_hitNum->Fill(r, rawHits.size()); + h_2D_z_hitNum->Fill(z, rawHits.size()); + h_2D_theta_hitNum->Fill(incidentTheta, rawHits.size()); + h_3DPosition_r_z_hit->Fill(rawHits.size(), r, z); + h_3DPosition_theta_z_hit->Fill(incidentTheta, z, rawHits.size()); + h_3DPosition_theta_r_hit->Fill(incidentTheta, r, rawHits.size()); + + if(rawHits.size() == 3){ + if(EDep < 0.05e-3){ + h_3hitEDEP_vs_clusterEDEP_1->Fill(hitConstituent->getEDep()*3.6e-9,EDep); + } + else if(EDep >= 0.05e-3 && EDep <= 0.1e-3){ + h_3hitEDEP_vs_clusterEDEP_2->Fill(hitConstituent->getEDep()*3.6e-9,EDep); + } + else if(EDep > 0.1e-3){ + h_3hitEDEP_vs_clusterEDEP_3->Fill(hitConstituent->getEDep()*3.6e-9,EDep); + } + } + if(layerID==0){ + //remove events with hit size greater than 200: + // if(rawHits.size() > 5 || rawHits.size()< 2) continue; + // if(EDep > 0.075e-3) continue; + + if(rawHits.size() > 20){ + //theta, r, z + h_theta_20hit_layer0->Fill(incidentTheta); + h_r_20hit_layer0->Fill(r); + h_z_20hit_layer0->Fill(z); + } + + h_edepVhits_layer0->Fill(EDep, rawHits.size()); + h_z_layer0->Fill(z); h_r_layer0->Fill(r); + h_cluster_edep_layer0->Fill(EDep); //energy cluster hits in GeV in layer 1 -- Juliet + h_cluster_edep_norm_layer0->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer0->Fill(toa); //time of arrive in layer 1 -- Juliet + h_hit_edep_layer0->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer0->Fill(rawHits.size()); + //diff + h_diffHitCluster_edep_layer0->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==1){ + // if(rawHits.size() > 5 || rawHits.size() < 2) continue; + // if(EDep > 0.075e-3) continue; + + if(rawHits.size() > 20){ + //theta, r, z + h_theta_20hit_layer1->Fill(incidentTheta); + h_r_20hit_layer1->Fill(r); + h_z_20hit_layer1->Fill(z); + } + + h_edepVhits_layer1->Fill(EDep, rawHits.size()); + //h_truth_cluster_edep_layer1->Fill(hitTracker->getEDep()); h_z_layer1->Fill(z); h_r_layer1->Fill(r); + h_cluster_edep_layer1->Fill(EDep); //energy cluster hits in GeV in layer 2 -- Juliet + h_cluster_edep_norm_layer1->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet + h_hit_edep_layer1->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer1->Fill(rawHits.size()); + h_diffHitCluster_edep_layer1->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==2){ + // if(rawHits.size() > 5 || rawHits.size()< 2) continue; + // if(EDep > 0.075e-3) continue; + + if(rawHits.size() > 20){ + //theta, r, z + h_theta_20hit_layer2->Fill(incidentTheta); + h_r_20hit_layer2->Fill(r); + h_z_20hit_layer2->Fill(z); + } + + h_edepVhits_layer2->Fill(EDep, rawHits.size()); + //h_truth_cluster_edep_layer2->Fill(hitTracker->getEDep()); h_z_layer2->Fill(z); h_r_layer2->Fill(r); + h_cluster_edep_layer2->Fill(EDep); //energy cluster hits in GeV in layer 3 -- Juliet + h_cluster_edep_norm_layer2->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer2->Fill(toa); //time of arrive in layer 3 -- Juliet + h_hit_edep_layer2->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer2->Fill(rawHits.size()); + h_diffHitCluster_edep_layer2->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==3){ + // if(rawHits.size() > 5 || rawHits.size()< 2) continue; + // if(EDep > 0.075e-3) continue; + + if(rawHits.size() > 20){ + //theta, r, z + h_theta_20hit_layer3->Fill(incidentTheta); + h_r_20hit_layer3->Fill(r); + h_z_20hit_layer3->Fill(z); + } + + h_edepVhits_layer3->Fill(EDep, rawHits.size()); + //h_truth_cluster_edep_layer3->Fill(hitTracker->getEDep()); h_z_layer3->Fill(z); h_r_layer3->Fill(r); + h_cluster_edep_layer3->Fill(EDep); //energy cluster hits in GeV in layer 4 -- Juliet + h_cluster_edep_norm_layer3->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer3->Fill(toa); //time of arrive in layer 4 -- Juliet + h_hit_edep_layer3->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer3->Fill(rawHits.size()); + h_diffHitCluster_edep_layer3->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==4){ + // if(rawHits.size() > 5 || rawHits.size()< 2) continue; + // if(EDep > 0.075e-3) continue; + + if(rawHits.size() > 20){ + //theta, r, z + h_theta_20hit_layer4->Fill(incidentTheta); + h_r_20hit_layer4->Fill(r); + h_z_20hit_layer4->Fill(z); + } + + h_edepVhits_layer4->Fill(EDep, rawHits.size()); + //h_truth_cluster_edep_layer4->Fill(hitTracker->getEDep()); h_z_layer4->Fill(z); h_r_layer4->Fill(r); + h_cluster_edep_layer4->Fill(EDep); //energy cluster hits in GeV in layer 5 -- Juliet + h_cluster_edep_norm_layer4->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer4->Fill(toa); //time of arrive in layer 5 -- Juliet + h_hit_edep_layer4->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer4->Fill(rawHits.size()); + h_diffHitCluster_edep_layer4->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==5){ + // if(rawHits.size() > 5 || rawHits.size()< 2) continue; + // if(EDep > 0.075e-3) continue; + + if(rawHits.size() > 20){ + //theta, r, z + h_theta_20hit_layer5->Fill(incidentTheta); + h_r_20hit_layer5->Fill(r); + h_z_20hit_layer5->Fill(z); + } + + h_edepVhits_layer5->Fill(EDep, rawHits.size()); + //h_truth_cluster_edep_layer5->Fill(hitTracker->getEDep()); h_z_layer5->Fill(z); h_r_layer5->Fill(r); + h_cluster_edep_layer5->Fill(EDep); //energy cluster hits in GeV in layer 6 -- Juliet + h_cluster_edep_norm_layer5->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer5->Fill(toa); //time of arrive in layer 6 -- Juliet + h_hit_edep_layer5->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer5->Fill(rawHits.size()); + h_diffHitCluster_edep_layer5->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==6){ + // if(rawHits.size() > 5 || rawHits.size()< 2) continue; + // if(EDep > 0.075e-3) continue; + + if(rawHits.size() > 20){ + //theta, r, z + h_theta_20hit_layer6->Fill(incidentTheta); + h_r_20hit_layer6->Fill(r); + h_z_20hit_layer6->Fill(z); + } + + h_edepVhits_layer6->Fill(EDep, rawHits.size()); + //h_truth_cluster_edep_layer6->Fill(hitTracker->getEDep()); h_z_layer6->Fill(z); h_r_layer6->Fill(r); + h_cluster_edep_layer6->Fill(EDep); //energy cluster hits in GeV in layer 7 -- Juliet + h_cluster_edep_norm_layer6->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer6->Fill(toa); //time of arrive in layer 7 -- Juliet + h_hit_edep_layer6->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer6->Fill(rawHits.size()); + h_diffHitCluster_edep_layer6->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==7){ + // if(rawHits.size() > 5 || rawHits.size()< 2) continue; + // if(EDep > 0.075e-3) continue; + + if(rawHits.size() > 20){ + //theta, r, z + h_theta_20hit_layer7->Fill(incidentTheta); + h_r_20hit_layer7->Fill(r); + h_z_20hit_layer7->Fill(z); + } + + h_edepVhits_layer7->Fill(EDep, rawHits.size()); + //h_truth_cluster_edep_layer7->Fill(hitTracker->getEDep()); h_z_layer7->Fill(z); h_r_layer7->Fill(r); + h_cluster_edep_layer7->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet + h_cluster_edep_norm_layer7->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer7->Fill(toa); //time of arrive in layer 8 -- Julie + h_hit_edep_layer7->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer7->Fill(rawHits.size()); + h_diffHitCluster_edep_layer7->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==8){ + //if(rawHits.size() > 5 ||rawHits.size()< 2) continue; + h_z_layer8->Fill(z); h_r_layer8->Fill(r); + h_cluster_edep_layer8->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet + h_cluster_edep_norm_layer8->Fill(EDep/rawHits.size()); + h_trackerhit_time_layer8->Fill(toa); //time of arrive in layer 8 -- Julie + h_hit_edep_layer8->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet + h_thclen_layer8->Fill(rawHits.size()); + h_diffHitCluster_edep_layer8->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } } @@ -224,16 +582,44 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_edep_r->Fill(r,EDep); h_edep_cluster->Fill(EDep,cluster_size_tot); + h_thclen->Fill(rawHits.size()); // -- JULIET + if (rawHits.size() != 0){ //this if statement is pointless apparently - ask Simone about it next time + h_cluster_norm->Fill(EDep/rawHits.size()); + } + //std::cout << "EDP of " << EDep << " with raw hit num: " << rawHits.size() << " || and here is the EDEP/hitNum: "<< EDep/rawHits.size() << std::endl; + if(rawHits.size() == 1){ + h_cluster_1hits->Fill(EDep); + } + if(rawHits.size() == 2){ + h_cluster_2hits->Fill(EDep); + } + if(rawHits.size() == 3){ + h_cluster_3hits->Fill(EDep); + } + if(rawHits.size() == 4){ + h_cluster_4hits->Fill(EDep); + } + if(rawHits.size() == 5){ + h_cluster_5hits->Fill(EDep); + } + if(rawHits.size() == 6){ + h_cluster_6hits->Fill(EDep); + } + if(rawHits.size() == 7){ + h_cluster_7hits->Fill(EDep); + } + if(rawHits.size() == 8){ + h_cluster_8hits->Fill(EDep); + } + if(rawHits.size() == 9){ + h_cluster_9hits->Fill(EDep); + } - // Fill energy deposition histograms based on angle - /*float theta_deg = incidentTheta * (180/3.1416); - if(theta_deg < 5 || theta_deg > 175){ - h_edep_0deg->Fill(EDep); + //2D hist for clusterEnergy vs Time of arrival with color bar for number of hits per cluster + for(int i = 0; i < rawHits.size(); i++){ + h_toa_edepCluster->Fill(toa, EDep); } - if(theta_deg > 89 && theta_deg < 91){ - h_edep_90deg->Fill(EDep); - } */ - + // Fill based on which double layer region was hit if(layerID==0 or layerID==1){ h_cluster_pos_0->Fill(z,r); @@ -252,3 +638,65 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_size_r_tot_3->Fill(r, cluster_size_tot); } } + + +void ClusterHists::fill(const EVENT::SimTrackerHit* simtrkhit){ + +// TH1* h_truth_cluster_edep_layer0; +// TH1* h_truth_cluster_edep_layer1; +// TH1* h_truth_cluster_edep_layer2; +// TH1* h_truth_cluster_edep_layer3; +// TH1* h_truth_cluster_edep_layer4; +// TH1* h_truth_cluster_edep_layer5; +// TH1* h_truth_cluster_edep_layer6; +// TH1* h_truth_cluster_edep_layer7; + +// h_truth_cluster_edep_layer0 = new TH1F("Clusters_truth_edep_norm_layer0", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); +// h_truth_cluster_edep_layer1 = new TH1F("Clusters_truth_edep_norm_layer1", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); +// h_truth_cluster_edep_layer2 = new TH1F("Clusters_truth_edep_norm_layer2", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); +// h_truth_cluster_edep_layer3 = new TH1F("Clusters_truth_edep_norm_layer3", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); +// h_truth_cluster_edep_layer4 = new TH1F("Clusters_truth_edep_norm_layer4", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); +// h_truth_cluster_edep_layer5 = new TH1F("Clusters_truth_edep_norm_layer5", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); +// h_truth_cluster_edep_layer6 = new TH1F("Clusters_truth_edep_norm_layer6", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); +// h_truth_cluster_edep_layer7 = new TH1F("Clusters_truth_edep_norm_layer7", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); + + + std::string _encoderString = lcio::LCTrackerCellID::encoding_string(); + UTIL::CellIDDecoder decoder(_encoderString); + uint32_t layerID = decoder(simtrkhit)["layer"]; + //const lcio::LCObjectVec &rawHits = simtrkhit->getRawHits(); + //float loopsize = rawHits.size(); + +// for (size_t j=0; j( col->getElementAt(j) ) ; //-JULIET + float truthEDep = simtrkhit->getEDep();//--JUlIET + + if(layerID==0){ + h_truth_cluster_edep_layer0->Fill(truthEDep); + } + if(layerID==1){ + h_truth_cluster_edep_layer1->Fill(truthEDep); + } + if(layerID==2){ + h_truth_cluster_edep_layer2->Fill(truthEDep); + } + if(layerID==3){ + h_truth_cluster_edep_layer3->Fill(truthEDep); + } + if(layerID==4){ + h_truth_cluster_edep_layer4->Fill(truthEDep); + } + if(layerID==5){ + h_truth_cluster_edep_layer5->Fill(truthEDep); + } + if(layerID==6){ + h_truth_cluster_edep_layer6->Fill(truthEDep); + } + if(layerID==7){ + h_truth_cluster_edep_layer7->Fill(truthEDep); + } + +// } + + +} From c424aa8ef4501107d203a5a270237b814b8cf9cf Mon Sep 17 00:00:00 2001 From: jules6077 Date: Mon, 13 Jan 2025 17:25:11 -0600 Subject: [PATCH 03/14] removing needless histograms --- src/ClusterHists.cc | 367 +------------------------------------------- 1 file changed, 8 insertions(+), 359 deletions(-) diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index ab2125b..42aa532 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -35,23 +35,7 @@ ClusterHists::ClusterHists() h_edep_r = new TH2F("edep_vs_r" , ";Cluster R (x^2+y^2)^(1/2) (mm); Energy Deposited (GeV)" , 100, 20, 120, 100, 0, 0.002 ); h_edep_cluster = new TH2F("edep_vs_cluster_size" , "; Energy Deposited (GeV); Total Cluster Size" ,100, 0, 0.002, 100, -0.5, 99.5 ); h_toa_edepCluster = new TH2F("toa_vs_edepCluster", "; Time of Arrival [ns];Energy Deposited [GeV]", 100, 0, 10, 100, 0, 0.0005); //--JULIET - h_3hitEDEP_vs_clusterEDEP_1 = new TH2F("3hitEDEP_vs_clusterEDEP1", "; Hit EDEP [GeV];Cluster EDEP [GeV]", 100, 0, 0.00005, 100, 0, 0.00005); //--JULIET - h_3hitEDEP_vs_clusterEDEP_2 = new TH2F("3hitEDEP_vs_clusterEDEP2", "; Hit EDEP [GeV];Cluster EDEP [GeV]", 100, 0, 0.0001, 100, 0.000045, 0.0001); - h_3hitEDEP_vs_clusterEDEP_3 = new TH2F("3hitEDEP_vs_clusterEDEP3", "; Hit EDEP [GeV];Cluster EDEP [GeV]", 100, 0, 0.0001, 100, 0.00009, 0.0003); - - //2D plot of each layer cluster EDEP vs # of Hits: - h_edepVhits = new TH2F("edepVhits" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - h_edepVhits_layer0 = new TH2F("edepVhits_layer0" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - h_edepVhits_layer1 = new TH2F("edepVhits_layer1" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - h_edepVhits_layer2 = new TH2F("edepVhits_layer2" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - h_edepVhits_layer3 = new TH2F("edepVhits_layer3" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - h_edepVhits_layer4 = new TH2F("edepVhits_layer4" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - h_edepVhits_layer5 = new TH2F("edepVhits_layer5" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - h_edepVhits_layer6 = new TH2F("edepVhits_layer6" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - h_edepVhits_layer7 = new TH2F("edepVhits_layer7" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.0005, 100, 0, 10); - //h_edepVhits_layer8 = new TH2F("edepVhits_layer8" , "; Energy Deposited (GeV); Number of Hits" ,100, 0, 0.1e-3, 100, 0, 5); - - + // Create position histograms for tracker hits int numbins_all = 1000; int rmin_all = 0; @@ -110,27 +94,6 @@ ClusterHists::ClusterHists() h_cluster_edep_layer7 = new TH1F("Clusters_edep_layer7", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); h_cluster_edep_layer8 = new TH1F("Clusters_edep_layer8", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - //normalized cluster energies: - h_cluster_edep_norm_layer0 = new TH1F("Clusters_edep_norm_layer0", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_norm_layer1 = new TH1F("Clusters_edep_norm_layer1", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_norm_layer2 = new TH1F("Clusters_edep_norm_layer2", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_norm_layer3 = new TH1F("Clusters_edep_norm_layer3", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_norm_layer4 = new TH1F("Clusters_edep_norm_layer4", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_norm_layer5 = new TH1F("Clusters_edep_norm_layer5", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_norm_layer6 = new TH1F("Clusters_edep_norm_layer6", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_norm_layer7 = new TH1F("Clusters_edep_norm_layer7", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_norm_layer8 = new TH1F("Clusters_edep_norm_layer8", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - - h_truth_cluster_edep_layer0 = new TH1F("Clusters_truth_edep_norm_layer0", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_truth_cluster_edep_layer1 = new TH1F("Clusters_truth_edep_norm_layer1", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_truth_cluster_edep_layer2 = new TH1F("Clusters_truth_edep_norm_layer2", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_truth_cluster_edep_layer3 = new TH1F("Clusters_truth_edep_norm_layer3", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_truth_cluster_edep_layer4 = new TH1F("Clusters_truth_edep_norm_layer4", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_truth_cluster_edep_layer5 = new TH1F("Clusters_truth_edep_norm_layer5", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_truth_cluster_edep_layer6 = new TH1F("Clusters_truth_edep_norm_layer6", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_truth_cluster_edep_layer7 = new TH1F("Clusters_truth_edep_norm_layer7", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_truth_cluster_edep_layer8 = new TH1F("Clusters_truth_edep_norm_layer8", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_hit_edep_layer0 = new TH1F("hit_edep_layer0", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); h_hit_edep_layer1 = new TH1F("hit_edep_layer1", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); h_hit_edep_layer2 = new TH1F("hit_edep_layer2", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); @@ -153,18 +116,6 @@ ClusterHists::ClusterHists() //number of hits per cluster h_thclen = new TH1F("thclen", ";Number of Hit Constituents; Events", 50, 0, 2000); //Total number of hit constituents - h_cluster_1hits = new TH1F("cluster_1hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - h_cluster_2hits = new TH1F("cluster_2hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - h_cluster_3hits = new TH1F("cluster_3hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - h_cluster_4hits = new TH1F("cluster_4hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - h_cluster_5hits = new TH1F("cluster_5hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - h_cluster_6hits = new TH1F("cluster_6hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - h_cluster_7hits = new TH1F("cluster_7hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - h_cluster_8hits = new TH1F("cluster_8hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - h_cluster_9hits = new TH1F("cluster_9hits", ";Cluster EDP (GeV);Clusters",200, 0, 0.0005); - //cluster edep needs to be divided by total number of hits in the cluster and plotted - h_cluster_norm = new TH1F("cluster_norm", ";Cluster EDP (GeV);Clusters",100, 0, 0.1e-3); - //number of hits per cluster per layer: h_thclen_layer0 = new TH1F("thclen_layer0", ";Number of Hit Constituents; Events", 50, 0, 1000); h_thclen_layer1 = new TH1F("thclen_layer1", ";Number of Hit Constituents; Events", 50, 0, 1000); @@ -176,69 +127,10 @@ ClusterHists::ClusterHists() h_thclen_layer7 = new TH1F("thclen_layer7", ";Number of Hit Constituents; Events", 50, 0, 1000); h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 50, 0, 1000); -//Differnece in hit and cluster edep per layer: -h_diffHitCluster_edep_layer0 = new TH1F("diffHitCluster_edep_layer0", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); -h_diffHitCluster_edep_layer1 = new TH1F("diffHitCluster_edep_layer1", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); -h_diffHitCluster_edep_layer2 = new TH1F("diffHitCluster_edep_layer2", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); -h_diffHitCluster_edep_layer3 = new TH1F("diffHitCluster_edep_layer3", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); -h_diffHitCluster_edep_layer4 = new TH1F("diffHitCluster_edep_layer4", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); -h_diffHitCluster_edep_layer5 = new TH1F("diffHitCluster_edep_layer5", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); -h_diffHitCluster_edep_layer6 = new TH1F("diffHitCluster_edep_layer6", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); -h_diffHitCluster_edep_layer7 = new TH1F("diffHitCluster_edep_layer7", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); -h_diffHitCluster_edep_layer8 = new TH1F("diffHitCluster_edep_layer8", ";Difference in Hit and Cluster Energy Deposited (GeV);Difference" ,50,-1e-6,1e-6); - //3D HISTO for X vs Y vs Z position in digitized and truth -h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); -h_3DPosition_20digi = new TH3D ("3DPosition_20digi", "3D Digitized Position;x[mm];y[mm];z[mm]", numbins_all/10, -rmax_all, rmax_all, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); -h_3DPosition_cdigi = new TH3D ("3DPosition_cdigi", "3D Digitized Position;#theta;r[mm];z[mm]", numbins_all/10, 0, 3.14, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); -h_3DPosition_20cdigi = new TH3D ("3DPosition_20cdigi", "3D Digitized Position;#theta;r[mm];z[mm]", numbins_all/10, 0, 3.14, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); +//h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); +//h_3DPosition_cdigi = new TH3D ("3DPosition_cdigi", "3D Digitized Position;#theta;r[mm];z[mm]", numbins_all/10, 0, 3.14, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); -h_3DPosition_r_z_hit = new TH3D ("3DPosition_r_z_hit", "3D Digitized Position;Hit Num;r[mm];z[mm]", 100, 0, 400, numbins_all/10, 0, rmax_all, numbins_all/10, zmin_all, zmax_all); -h_3DPosition_r_z_20hit = new TH3D ("3DPosition_r_z_20hit", "3D Digitized Position;Hit Num;r[mm];z[mm]", 100, 0, 400, numbins_all/10, 0, rmax_all, numbins_all/10, zmin_all, zmax_all); - -h_3DPosition_theta_z_20hit = new TH3D ("3DPosition_theta_z_20hit", "3D Digitized Position;#theta;z[mm];Hit Num", numbins_all/10, 0, 3.14, numbins_all/10, zmin_all, zmax_all, numbins_all/10, 0, 400); -h_3DPosition_theta_z_hit = new TH3D ("3DPosition_theta_z_hit", "3D Digitized Position;#theta;z[mm];Hit Num", numbins_all/10, 0, 3.14, numbins_all/10, zmin_all, zmax_all, numbins_all/10, 0, 400); -h_3DPosition_theta_r_20hit = new TH3D ("3DPosition_theta_r_20hit", "3D Digitized Position;#theta;r[mm];Hit Num", numbins_all/10, 0, 3.14, numbins_all/10, 0, rmax_all, numbins_all/10, 0, 400); -h_3DPosition_theta_r_hit = new TH3D ("3DPosition_theta_r_hit", "3D Digitized Position;#theta;r[mm];Hit Num", numbins_all/10, 0, 3.14, numbins_all/10, 0, rmax_all, numbins_all/10, 0, 400); - -h_2D_r_hitNum = new TH2D ("2D_r_hitNum", "2D Digitized Radius vs Hit Density;r[mm];Hit Number", numbins_all/10, 0, rmax_all, 100, 0, 400); -h_2D_z_hitNum = new TH2D ("2D_z_hitNum", "2D Digitized Z vs Hit Density;z[mm];Hit Number", numbins_all/10, zmin_all, zmax_all, 100, 0, 400); -h_2D_r_20hitNum = new TH2D ("2D_r_20hitNum", "2D Digitized Radius vs Hit Density;r[mm];Hit Number", numbins_all/10, 0, rmax_all, 100, 0, 400); -h_2D_z_20hitNum = new TH2D ("2D_z_20hitNum", "2D Digitized Z vs Hit Density;z[mm];Hit Number", numbins_all/10, zmin_all, zmax_all, 100, 0,400); -h_2D_theta_hitNum = new TH2D ("2D_theta_hitNum", "2D Digitized #theta vs Hit Density;#theta;Hit Number", numbins_all/10, 0, 3.14, 100, 0, 400); -h_2D_theta_20hitNum = new TH2D ("2D_theta_20hitNum", "2D Digitized #theta vs Hit Density;#theta;Hit Number", numbins_all/10, 0, 3.14, 100, 0, 400); - -//individual distributions for theta, r, and z above 20 hit cluster histrogram defs: -h_theta_20hit = new TH1F("theta_20hit", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); -h_theta_20hit_layer0 = new TH1F("theta_20hit_layer0", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); -h_theta_20hit_layer1 = new TH1F("theta_20hit_layer1", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); -h_theta_20hit_layer2 = new TH1F("theta_20hit_layer2", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); -h_theta_20hit_layer3 = new TH1F("theta_20hit_layer3", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); -h_theta_20hit_layer4 = new TH1F("theta_20hit_layer4", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); -h_theta_20hit_layer5 = new TH1F("theta_20hit_layer5", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); -h_theta_20hit_layer6 = new TH1F("theta_20hit_layer6", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); -h_theta_20hit_layer7 = new TH1F("theta_20hit_layer7", "#theta (> 20 Hit Clusters);#theta;Events",numbins_all/10, 0, 3.14); - -h_r_20hit = new TH1F("r_20hit", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); -h_r_20hit_layer0 = new TH1F("r_20hit_layer0", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); -h_r_20hit_layer1 = new TH1F("r_20hit_layer1", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); -h_r_20hit_layer2 = new TH1F("r_20hit_layer2", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); -h_r_20hit_layer3 = new TH1F("r_20hit_layer3", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); -h_r_20hit_layer4 = new TH1F("r_20hit_layer4", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); -h_r_20hit_layer5 = new TH1F("r_20hit_layer5", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); -h_r_20hit_layer6 = new TH1F("r_20hit_layer6", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); -h_r_20hit_layer7 = new TH1F("r_20hit_layer7", "R (> 20 Hit Clusters);r[mm];Events",numbins_all/10, 0, rmax_all); - -h_z_20hit = new TH1F("z_20hit", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); -h_z_20hit_layer0 = new TH1F("z_20hit_layer0", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); -h_z_20hit_layer1 = new TH1F("z_20hit_layer1", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); -h_z_20hit_layer2 = new TH1F("z_20hit_layer2", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); -h_z_20hit_layer3 = new TH1F("z_20hit_layer3", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); -h_z_20hit_layer4 = new TH1F("z_20hit_layer4", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); -h_z_20hit_layer5 = new TH1F("z_20hit_layer5", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); -h_z_20hit_layer6 = new TH1F("z_20hit_layer6", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); -h_z_20hit_layer7 = new TH1F("z_20hit_layer7", "Z (> 20 Hit Clusters);z[mm];Events",numbins_all/10, zmin_all, zmax_all); - } void ClusterHists::fill(const EVENT::TrackerHit* trkhit) @@ -253,6 +145,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) float z = trkhit->getPosition()[2]; float r = sqrt(pow(x,2)+pow(y,2)); float incidentTheta = std::atan(r/z); + float theta_min = std::atan(r/z); if(incidentTheta<0) incidentTheta += M_PI; @@ -339,233 +232,82 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_hits_by_layer->Fill(layerID); h_z_r_hits->Fill(z,r); h_x_y_hits->Fill(x,y); - h_edepVhits->Fill(EDep, rawHits.size()); - - if(rawHits.size() > 20){ - h_3DPosition_20digi->Fill(x, y, z); - h_3DPosition_20cdigi->Fill(incidentTheta, r, z); - h_2D_r_20hitNum->Fill(r, rawHits.size()); - h_2D_z_20hitNum->Fill(z, rawHits.size()); - h_2D_theta_20hitNum->Fill(incidentTheta, rawHits.size()); - h_3DPosition_r_z_20hit->Fill(rawHits.size(), r, z); - h_3DPosition_theta_z_20hit->Fill(incidentTheta, z, rawHits.size()); - h_3DPosition_theta_r_20hit->Fill(incidentTheta, r, rawHits.size()); - //theta, r, z - h_theta_20hit->Fill(incidentTheta); - h_r_20hit->Fill(r); - h_z_20hit->Fill(z); - - } - h_3DPosition_digi->Fill(x, y, z); - h_3DPosition_cdigi->Fill(incidentTheta, r, z); - h_2D_r_hitNum->Fill(r, rawHits.size()); - h_2D_z_hitNum->Fill(z, rawHits.size()); - h_2D_theta_hitNum->Fill(incidentTheta, rawHits.size()); - h_3DPosition_r_z_hit->Fill(rawHits.size(), r, z); - h_3DPosition_theta_z_hit->Fill(incidentTheta, z, rawHits.size()); - h_3DPosition_theta_r_hit->Fill(incidentTheta, r, rawHits.size()); - - if(rawHits.size() == 3){ - if(EDep < 0.05e-3){ - h_3hitEDEP_vs_clusterEDEP_1->Fill(hitConstituent->getEDep()*3.6e-9,EDep); - } - else if(EDep >= 0.05e-3 && EDep <= 0.1e-3){ - h_3hitEDEP_vs_clusterEDEP_2->Fill(hitConstituent->getEDep()*3.6e-9,EDep); - } - else if(EDep > 0.1e-3){ - h_3hitEDEP_vs_clusterEDEP_3->Fill(hitConstituent->getEDep()*3.6e-9,EDep); - } - } + + + //h_3DPosition_digi->Fill(x, y, z); + //h_3DPosition_cdigi->Fill(theta_min, r, z); if(layerID==0){ - //remove events with hit size greater than 200: - // if(rawHits.size() > 5 || rawHits.size()< 2) continue; - // if(EDep > 0.075e-3) continue; - - if(rawHits.size() > 20){ - //theta, r, z - h_theta_20hit_layer0->Fill(incidentTheta); - h_r_20hit_layer0->Fill(r); - h_z_20hit_layer0->Fill(z); - } - - h_edepVhits_layer0->Fill(EDep, rawHits.size()); - h_z_layer0->Fill(z); h_r_layer0->Fill(r); h_cluster_edep_layer0->Fill(EDep); //energy cluster hits in GeV in layer 1 -- Juliet - h_cluster_edep_norm_layer0->Fill(EDep/rawHits.size()); h_trackerhit_time_layer0->Fill(toa); //time of arrive in layer 1 -- Juliet h_hit_edep_layer0->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer0->Fill(rawHits.size()); - //diff - h_diffHitCluster_edep_layer0->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==1){ - // if(rawHits.size() > 5 || rawHits.size() < 2) continue; - // if(EDep > 0.075e-3) continue; - - if(rawHits.size() > 20){ - //theta, r, z - h_theta_20hit_layer1->Fill(incidentTheta); - h_r_20hit_layer1->Fill(r); - h_z_20hit_layer1->Fill(z); - } - - h_edepVhits_layer1->Fill(EDep, rawHits.size()); - //h_truth_cluster_edep_layer1->Fill(hitTracker->getEDep()); h_z_layer1->Fill(z); h_r_layer1->Fill(r); h_cluster_edep_layer1->Fill(EDep); //energy cluster hits in GeV in layer 2 -- Juliet - h_cluster_edep_norm_layer1->Fill(EDep/rawHits.size()); h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet h_hit_edep_layer1->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer1->Fill(rawHits.size()); - h_diffHitCluster_edep_layer1->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==2){ - // if(rawHits.size() > 5 || rawHits.size()< 2) continue; - // if(EDep > 0.075e-3) continue; - - if(rawHits.size() > 20){ - //theta, r, z - h_theta_20hit_layer2->Fill(incidentTheta); - h_r_20hit_layer2->Fill(r); - h_z_20hit_layer2->Fill(z); - } - - h_edepVhits_layer2->Fill(EDep, rawHits.size()); - //h_truth_cluster_edep_layer2->Fill(hitTracker->getEDep()); h_z_layer2->Fill(z); h_r_layer2->Fill(r); h_cluster_edep_layer2->Fill(EDep); //energy cluster hits in GeV in layer 3 -- Juliet - h_cluster_edep_norm_layer2->Fill(EDep/rawHits.size()); h_trackerhit_time_layer2->Fill(toa); //time of arrive in layer 3 -- Juliet h_hit_edep_layer2->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer2->Fill(rawHits.size()); - h_diffHitCluster_edep_layer2->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==3){ - // if(rawHits.size() > 5 || rawHits.size()< 2) continue; - // if(EDep > 0.075e-3) continue; - - if(rawHits.size() > 20){ - //theta, r, z - h_theta_20hit_layer3->Fill(incidentTheta); - h_r_20hit_layer3->Fill(r); - h_z_20hit_layer3->Fill(z); - } - - h_edepVhits_layer3->Fill(EDep, rawHits.size()); - //h_truth_cluster_edep_layer3->Fill(hitTracker->getEDep()); h_z_layer3->Fill(z); h_r_layer3->Fill(r); h_cluster_edep_layer3->Fill(EDep); //energy cluster hits in GeV in layer 4 -- Juliet - h_cluster_edep_norm_layer3->Fill(EDep/rawHits.size()); h_trackerhit_time_layer3->Fill(toa); //time of arrive in layer 4 -- Juliet h_hit_edep_layer3->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer3->Fill(rawHits.size()); - h_diffHitCluster_edep_layer3->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==4){ - // if(rawHits.size() > 5 || rawHits.size()< 2) continue; - // if(EDep > 0.075e-3) continue; - - if(rawHits.size() > 20){ - //theta, r, z - h_theta_20hit_layer4->Fill(incidentTheta); - h_r_20hit_layer4->Fill(r); - h_z_20hit_layer4->Fill(z); - } - - h_edepVhits_layer4->Fill(EDep, rawHits.size()); - //h_truth_cluster_edep_layer4->Fill(hitTracker->getEDep()); h_z_layer4->Fill(z); h_r_layer4->Fill(r); h_cluster_edep_layer4->Fill(EDep); //energy cluster hits in GeV in layer 5 -- Juliet - h_cluster_edep_norm_layer4->Fill(EDep/rawHits.size()); h_trackerhit_time_layer4->Fill(toa); //time of arrive in layer 5 -- Juliet h_hit_edep_layer4->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer4->Fill(rawHits.size()); - h_diffHitCluster_edep_layer4->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==5){ - // if(rawHits.size() > 5 || rawHits.size()< 2) continue; - // if(EDep > 0.075e-3) continue; - - if(rawHits.size() > 20){ - //theta, r, z - h_theta_20hit_layer5->Fill(incidentTheta); - h_r_20hit_layer5->Fill(r); - h_z_20hit_layer5->Fill(z); - } - - h_edepVhits_layer5->Fill(EDep, rawHits.size()); - //h_truth_cluster_edep_layer5->Fill(hitTracker->getEDep()); h_z_layer5->Fill(z); h_r_layer5->Fill(r); h_cluster_edep_layer5->Fill(EDep); //energy cluster hits in GeV in layer 6 -- Juliet - h_cluster_edep_norm_layer5->Fill(EDep/rawHits.size()); h_trackerhit_time_layer5->Fill(toa); //time of arrive in layer 6 -- Juliet h_hit_edep_layer5->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer5->Fill(rawHits.size()); - h_diffHitCluster_edep_layer5->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==6){ - // if(rawHits.size() > 5 || rawHits.size()< 2) continue; - // if(EDep > 0.075e-3) continue; - - if(rawHits.size() > 20){ - //theta, r, z - h_theta_20hit_layer6->Fill(incidentTheta); - h_r_20hit_layer6->Fill(r); - h_z_20hit_layer6->Fill(z); - } - - h_edepVhits_layer6->Fill(EDep, rawHits.size()); - //h_truth_cluster_edep_layer6->Fill(hitTracker->getEDep()); h_z_layer6->Fill(z); h_r_layer6->Fill(r); h_cluster_edep_layer6->Fill(EDep); //energy cluster hits in GeV in layer 7 -- Juliet - h_cluster_edep_norm_layer6->Fill(EDep/rawHits.size()); h_trackerhit_time_layer6->Fill(toa); //time of arrive in layer 7 -- Juliet h_hit_edep_layer6->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer6->Fill(rawHits.size()); - h_diffHitCluster_edep_layer6->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==7){ - // if(rawHits.size() > 5 || rawHits.size()< 2) continue; - // if(EDep > 0.075e-3) continue; - - if(rawHits.size() > 20){ - //theta, r, z - h_theta_20hit_layer7->Fill(incidentTheta); - h_r_20hit_layer7->Fill(r); - h_z_20hit_layer7->Fill(z); - } - - h_edepVhits_layer7->Fill(EDep, rawHits.size()); - //h_truth_cluster_edep_layer7->Fill(hitTracker->getEDep()); h_z_layer7->Fill(z); h_r_layer7->Fill(r); h_cluster_edep_layer7->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet - h_cluster_edep_norm_layer7->Fill(EDep/rawHits.size()); h_trackerhit_time_layer7->Fill(toa); //time of arrive in layer 8 -- Julie h_hit_edep_layer7->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer7->Fill(rawHits.size()); - h_diffHitCluster_edep_layer7->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } if(layerID==8){ - //if(rawHits.size() > 5 ||rawHits.size()< 2) continue; - h_z_layer8->Fill(z); h_r_layer8->Fill(r); h_cluster_edep_layer8->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet - h_cluster_edep_norm_layer8->Fill(EDep/rawHits.size()); h_trackerhit_time_layer8->Fill(toa); //time of arrive in layer 8 -- Julie h_hit_edep_layer8->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer8->Fill(rawHits.size()); - h_diffHitCluster_edep_layer8->Fill(abs(EDep/rawHits.size() - hitConstituent->getEDep()*3.7e-6)); } } @@ -583,37 +325,6 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_edep_cluster->Fill(EDep,cluster_size_tot); h_thclen->Fill(rawHits.size()); // -- JULIET - if (rawHits.size() != 0){ //this if statement is pointless apparently - ask Simone about it next time - h_cluster_norm->Fill(EDep/rawHits.size()); - } - //std::cout << "EDP of " << EDep << " with raw hit num: " << rawHits.size() << " || and here is the EDEP/hitNum: "<< EDep/rawHits.size() << std::endl; - if(rawHits.size() == 1){ - h_cluster_1hits->Fill(EDep); - } - if(rawHits.size() == 2){ - h_cluster_2hits->Fill(EDep); - } - if(rawHits.size() == 3){ - h_cluster_3hits->Fill(EDep); - } - if(rawHits.size() == 4){ - h_cluster_4hits->Fill(EDep); - } - if(rawHits.size() == 5){ - h_cluster_5hits->Fill(EDep); - } - if(rawHits.size() == 6){ - h_cluster_6hits->Fill(EDep); - } - if(rawHits.size() == 7){ - h_cluster_7hits->Fill(EDep); - } - if(rawHits.size() == 8){ - h_cluster_8hits->Fill(EDep); - } - if(rawHits.size() == 9){ - h_cluster_9hits->Fill(EDep); - } //2D hist for clusterEnergy vs Time of arrival with color bar for number of hits per cluster for(int i = 0; i < rawHits.size(); i++){ @@ -638,65 +349,3 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_size_r_tot_3->Fill(r, cluster_size_tot); } } - - -void ClusterHists::fill(const EVENT::SimTrackerHit* simtrkhit){ - -// TH1* h_truth_cluster_edep_layer0; -// TH1* h_truth_cluster_edep_layer1; -// TH1* h_truth_cluster_edep_layer2; -// TH1* h_truth_cluster_edep_layer3; -// TH1* h_truth_cluster_edep_layer4; -// TH1* h_truth_cluster_edep_layer5; -// TH1* h_truth_cluster_edep_layer6; -// TH1* h_truth_cluster_edep_layer7; - -// h_truth_cluster_edep_layer0 = new TH1F("Clusters_truth_edep_norm_layer0", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); -// h_truth_cluster_edep_layer1 = new TH1F("Clusters_truth_edep_norm_layer1", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); -// h_truth_cluster_edep_layer2 = new TH1F("Clusters_truth_edep_norm_layer2", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); -// h_truth_cluster_edep_layer3 = new TH1F("Clusters_truth_edep_norm_layer3", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); -// h_truth_cluster_edep_layer4 = new TH1F("Clusters_truth_edep_norm_layer4", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); -// h_truth_cluster_edep_layer5 = new TH1F("Clusters_truth_edep_norm_layer5", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); -// h_truth_cluster_edep_layer6 = new TH1F("Clusters_truth_edep_norm_layer6", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); -// h_truth_cluster_edep_layer7 = new TH1F("Clusters_truth_edep_norm_layer7", ";Truth Energy Deposited (GeV);Clusters" ,200,0,0.0005); - - - std::string _encoderString = lcio::LCTrackerCellID::encoding_string(); - UTIL::CellIDDecoder decoder(_encoderString); - uint32_t layerID = decoder(simtrkhit)["layer"]; - //const lcio::LCObjectVec &rawHits = simtrkhit->getRawHits(); - //float loopsize = rawHits.size(); - -// for (size_t j=0; j( col->getElementAt(j) ) ; //-JULIET - float truthEDep = simtrkhit->getEDep();//--JUlIET - - if(layerID==0){ - h_truth_cluster_edep_layer0->Fill(truthEDep); - } - if(layerID==1){ - h_truth_cluster_edep_layer1->Fill(truthEDep); - } - if(layerID==2){ - h_truth_cluster_edep_layer2->Fill(truthEDep); - } - if(layerID==3){ - h_truth_cluster_edep_layer3->Fill(truthEDep); - } - if(layerID==4){ - h_truth_cluster_edep_layer4->Fill(truthEDep); - } - if(layerID==5){ - h_truth_cluster_edep_layer5->Fill(truthEDep); - } - if(layerID==6){ - h_truth_cluster_edep_layer6->Fill(truthEDep); - } - if(layerID==7){ - h_truth_cluster_edep_layer7->Fill(truthEDep); - } - -// } - - -} From 3faf54226223f558d56b56c3c6ce3c8ccfc5eb04 Mon Sep 17 00:00:00 2001 From: jules6077 Date: Mon, 13 Jan 2025 17:28:04 -0600 Subject: [PATCH 04/14] updating file to reflect all current histograms --- ClusterShapeAnalysis/ClusterHists.h | 114 +--------------------------- 1 file changed, 4 insertions(+), 110 deletions(-) diff --git a/ClusterShapeAnalysis/ClusterHists.h b/ClusterShapeAnalysis/ClusterHists.h index 42e12be..d7ebc1f 100644 --- a/ClusterShapeAnalysis/ClusterHists.h +++ b/ClusterShapeAnalysis/ClusterHists.h @@ -96,28 +96,7 @@ class ClusterHists TH1* h_cluster_edep_layer7; TH1* h_cluster_edep_layer8; -//time and edep for 1st layer -- juliet - TH1* h_truth_cluster_edep_layer0; - TH1* h_truth_cluster_edep_layer1; - TH1* h_truth_cluster_edep_layer2; - TH1* h_truth_cluster_edep_layer3; - TH1* h_truth_cluster_edep_layer4; - TH1* h_truth_cluster_edep_layer5; - TH1* h_truth_cluster_edep_layer6; - TH1* h_truth_cluster_edep_layer7; - TH1* h_truth_cluster_edep_layer8; - - //normalized cluster edp: - TH1* h_cluster_edep_norm_layer0; - TH1* h_cluster_edep_norm_layer1; - TH1* h_cluster_edep_norm_layer2; - TH1* h_cluster_edep_norm_layer3; - TH1* h_cluster_edep_norm_layer4; - TH1* h_cluster_edep_norm_layer5; - TH1* h_cluster_edep_norm_layer6; - TH1* h_cluster_edep_norm_layer7; - TH1* h_cluster_edep_norm_layer8; - +//hit energy depo per layer TH1* h_hit_edep_layer0; TH1* h_hit_edep_layer1; TH1* h_hit_edep_layer2; @@ -127,7 +106,7 @@ class ClusterHists TH1* h_hit_edep_layer6; TH1* h_hit_edep_layer7; TH1* h_hit_edep_layer8; - +//time of arriver per layer TH1* h_trackerhit_time_layer0; TH1* h_trackerhit_time_layer1; TH1* h_trackerhit_time_layer2; @@ -138,6 +117,7 @@ class ClusterHists TH1* h_trackerhit_time_layer7; TH1* h_trackerhit_time_layer8; //hits per cluster per layer: + TH1* h_thclen; TH1* h_thclen_layer0; TH1* h_thclen_layer1; TH1* h_thclen_layer2; @@ -147,96 +127,10 @@ class ClusterHists TH1* h_thclen_layer6; TH1* h_thclen_layer7; TH1* h_thclen_layer8; - //New stuff - TH1* h_thclen; - TH1* h_cluster_1hits; - TH1* h_cluster_2hits; - TH1* h_cluster_3hits; - TH1* h_cluster_4hits; - TH1* h_cluster_5hits; - TH1* h_cluster_6hits; - TH1* h_cluster_7hits; - TH1* h_cluster_8hits; - TH1* h_cluster_9hits; - TH1* h_cluster_norm; - - //diff histos in cluster and hit edep: - TH1* h_diffHitCluster_edep_layer0; - TH1* h_diffHitCluster_edep_layer1; - TH1* h_diffHitCluster_edep_layer2; - TH1* h_diffHitCluster_edep_layer3; - TH1* h_diffHitCluster_edep_layer4; - TH1* h_diffHitCluster_edep_layer5; - TH1* h_diffHitCluster_edep_layer6; - TH1* h_diffHitCluster_edep_layer7; - TH1* h_diffHitCluster_edep_layer8; - - //2D TH2* h_toa_edepCluster; - TH2* h_3hitEDEP_vs_clusterEDEP_1; - TH2* h_3hitEDEP_vs_clusterEDEP_2; - TH2* h_3hitEDEP_vs_clusterEDEP_3; - - TH2* h_edepVhits; - TH2* h_edepVhits_layer0; - TH2* h_edepVhits_layer1; - TH2* h_edepVhits_layer2; - TH2* h_edepVhits_layer3; - TH2* h_edepVhits_layer4; - TH2* h_edepVhits_layer5; - TH2* h_edepVhits_layer6; - TH2* h_edepVhits_layer7; - //3D Histos: TH3* h_3DPosition_digi; - TH3* h_3DPosition_20digi; - TH3* h_3DPosition_cdigi; - TH3* h_3DPosition_20cdigi; - TH3* h_3DPosition_r_z_hit; - TH2* h_2D_r_hitNum; - TH2* h_2D_z_hitNum; - TH3* h_3DPosition_r_z_20hit; - TH3* h_3DPosition_theta_z_20hit; - TH3* h_3DPosition_theta_z_hit; - TH3* h_3DPosition_theta_r_20hit; - TH3* h_3DPosition_theta_r_hit; - - TH2* h_2D_r_20hitNum; - TH2* h_2D_z_20hitNum; - TH2* h_2D_theta_hitNum; - TH2* h_2D_theta_20hitNum; - - //theta, r, and z histos for larger than 20 hit clusters: - TH1* h_theta_20hit; - TH1* h_theta_20hit_layer0; - TH1* h_theta_20hit_layer1; - TH1* h_theta_20hit_layer2; - TH1* h_theta_20hit_layer3; - TH1* h_theta_20hit_layer4; - TH1* h_theta_20hit_layer5; - TH1* h_theta_20hit_layer6; - TH1* h_theta_20hit_layer7; - - TH1* h_r_20hit; - TH1* h_r_20hit_layer0; - TH1* h_r_20hit_layer1; - TH1* h_r_20hit_layer2; - TH1* h_r_20hit_layer3; - TH1* h_r_20hit_layer4; - TH1* h_r_20hit_layer5; - TH1* h_r_20hit_layer6; - TH1* h_r_20hit_layer7; - - TH1* h_z_20hit; - TH1* h_z_20hit_layer0; - TH1* h_z_20hit_layer1; - TH1* h_z_20hit_layer2; - TH1* h_z_20hit_layer3; - TH1* h_z_20hit_layer4; - TH1* h_z_20hit_layer5; - TH1* h_z_20hit_layer6; - TH1* h_z_20hit_layer7; - + TH3* h_3DPosition_cdigi; }; From c40aee5c31b29f36e4e62f14db19028b21420a42 Mon Sep 17 00:00:00 2001 From: jules6077 Date: Mon, 13 Jan 2025 18:02:34 -0600 Subject: [PATCH 05/14] fixing cluster filling --- src/ClusterHists.cc | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index 42aa532..8fb36c6 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -240,72 +240,76 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) if(layerID==0){ h_z_layer0->Fill(z); h_r_layer0->Fill(r); - h_cluster_edep_layer0->Fill(EDep); //energy cluster hits in GeV in layer 1 -- Juliet - h_trackerhit_time_layer0->Fill(toa); //time of arrive in layer 1 -- Juliet + //setting cluster and time of arrive with if j == 0 becuase we do not want fill the cluster edep and toa for clusters multiple times + if(j == 0) h_cluster_edep_layer0->Fill(EDep); //energy cluster hits in GeV in layer 1 -- Juliet + if (j == 0) h_trackerhit_time_layer0->Fill(toa); //time of arrive in layer 1 -- Juliet h_hit_edep_layer0->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer0->Fill(rawHits.size()); + + //std::cout << "tracker hit time: " << toa << ", and edep cluster: "<< EDep <<", and edep hit : " << hitConstituent->getEDep() << ", with hit num: " << rawHits.size() << std::endl; + } if(layerID==1){ h_z_layer1->Fill(z); h_r_layer1->Fill(r); - h_cluster_edep_layer1->Fill(EDep); //energy cluster hits in GeV in layer 2 -- Juliet - h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet + if(j == 0) h_cluster_edep_layer1->Fill(EDep); //energy cluster hits in GeV in layer 2 -- Juliet + if(j == 0) h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet h_hit_edep_layer1->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer1->Fill(rawHits.size()); } if(layerID==2){ h_z_layer2->Fill(z); h_r_layer2->Fill(r); - h_cluster_edep_layer2->Fill(EDep); //energy cluster hits in GeV in layer 3 -- Juliet - h_trackerhit_time_layer2->Fill(toa); //time of arrive in layer 3 -- Juliet + if(j == 0) h_cluster_edep_layer2->Fill(EDep); //energy cluster hits in GeV in layer 3 -- Juliet + if(j == 0) h_trackerhit_time_layer2->Fill(toa); //time of arrive in layer 3 -- Juliet h_hit_edep_layer2->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer2->Fill(rawHits.size()); } if(layerID==3){ h_z_layer3->Fill(z); h_r_layer3->Fill(r); - h_cluster_edep_layer3->Fill(EDep); //energy cluster hits in GeV in layer 4 -- Juliet - h_trackerhit_time_layer3->Fill(toa); //time of arrive in layer 4 -- Juliet + if(j == 0) h_cluster_edep_layer3->Fill(EDep); //energy cluster hits in GeV in layer 4 -- Juliet + if(j == 0) h_trackerhit_time_layer3->Fill(toa); //time of arrive in layer 4 -- Juliet h_hit_edep_layer3->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer3->Fill(rawHits.size()); } if(layerID==4){ h_z_layer4->Fill(z); h_r_layer4->Fill(r); - h_cluster_edep_layer4->Fill(EDep); //energy cluster hits in GeV in layer 5 -- Juliet - h_trackerhit_time_layer4->Fill(toa); //time of arrive in layer 5 -- Juliet + if(j == 0) h_cluster_edep_layer4->Fill(EDep); //energy cluster hits in GeV in layer 5 -- Juliet + if(j == 0) h_trackerhit_time_layer4->Fill(toa); //time of arrive in layer 5 -- Juliet h_hit_edep_layer4->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer4->Fill(rawHits.size()); } if(layerID==5){ h_z_layer5->Fill(z); h_r_layer5->Fill(r); - h_cluster_edep_layer5->Fill(EDep); //energy cluster hits in GeV in layer 6 -- Juliet - h_trackerhit_time_layer5->Fill(toa); //time of arrive in layer 6 -- Juliet + if(j == 0) h_cluster_edep_layer5->Fill(EDep); //energy cluster hits in GeV in layer 6 -- Juliet + if(j == 0) h_trackerhit_time_layer5->Fill(toa); //time of arrive in layer 6 -- Juliet h_hit_edep_layer5->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer5->Fill(rawHits.size()); } if(layerID==6){ h_z_layer6->Fill(z); h_r_layer6->Fill(r); - h_cluster_edep_layer6->Fill(EDep); //energy cluster hits in GeV in layer 7 -- Juliet - h_trackerhit_time_layer6->Fill(toa); //time of arrive in layer 7 -- Juliet + if(j == 0) h_cluster_edep_layer6->Fill(EDep); //energy cluster hits in GeV in layer 7 -- Juliet + if(j == 0) h_trackerhit_time_layer6->Fill(toa); //time of arrive in layer 7 -- Juliet h_hit_edep_layer6->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer6->Fill(rawHits.size()); } if(layerID==7){ h_z_layer7->Fill(z); h_r_layer7->Fill(r); - h_cluster_edep_layer7->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet - h_trackerhit_time_layer7->Fill(toa); //time of arrive in layer 8 -- Julie + if(j == 0) h_cluster_edep_layer7->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet + if(j == 0) h_trackerhit_time_layer7->Fill(toa); //time of arrive in layer 8 -- Julie h_hit_edep_layer7->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer7->Fill(rawHits.size()); } if(layerID==8){ h_z_layer8->Fill(z); h_r_layer8->Fill(r); - h_cluster_edep_layer8->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet - h_trackerhit_time_layer8->Fill(toa); //time of arrive in layer 8 -- Julie + if(j == 0) h_cluster_edep_layer8->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet + if(j == 0) h_trackerhit_time_layer8->Fill(toa); //time of arrive in layer 8 -- Julie h_hit_edep_layer8->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet h_thclen_layer8->Fill(rawHits.size()); } From fea3334711aaaa747ed3139ed1fb224fbd28a8f7 Mon Sep 17 00:00:00 2001 From: jules6077 Date: Tue, 21 Jan 2025 13:42:25 -0600 Subject: [PATCH 06/14] fixing tracking time --- src/ClusterHists.cc | 102 ++++++++++++++++++++++++++++++-------------- 1 file changed, 71 insertions(+), 31 deletions(-) diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index 8fb36c6..6b5e0f4 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -11,6 +11,10 @@ #include #include +#include "DD4hep/Detector.h" +#include "DD4hep/DD4hepUnits.h" +#include "/home/julietwright/work/TrkHitsStudiesWorkspace/packages/MarlinTrkProcessors/source/Utils/include/FilterTimeHits.h" + ClusterHists::ClusterHists() { @@ -128,8 +132,8 @@ ClusterHists::ClusterHists() h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 50, 0, 1000); //3D HISTO for X vs Y vs Z position in digitized and truth -//h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); -//h_3DPosition_cdigi = new TH3D ("3DPosition_cdigi", "3D Digitized Position;#theta;r[mm];z[mm]", numbins_all/10, 0, 3.14, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); +h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); +h_3DPosition_cdigi = new TH3D ("3DPosition_cdigi", "3D Digitized Position;#theta;r[mm];z[mm]", numbins_all/10, 0, 3.14, numbins_all/10, -rmax_all, rmax_all, numbins_all/10, zmin_all, zmax_all); } @@ -138,7 +142,17 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) //Calculate energy deposited float EDep = trkhit->getEDep(); float toa = trkhit->getTime(); //time of arrival -- Juliet + // Correcting for the propagation time + dd4hep::rec::Vector3D pos = trkhit->getPosition(); + double hitR = pos.r(); + double m_beta = 1.0; + double m_time_min = -90.0; //ns + double m_time_max = 90.0; //ns + double dt = hitR / (TMath::C() * m_beta / 1e6); + toa -= dt; + + //Calculating theta float x = trkhit->getPosition()[0]; float y = trkhit->getPosition()[1]; @@ -229,22 +243,31 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) for (size_t j=0; j( rawHits[j] ); // adding this -- Juliet //lcio::TrackerHit *hitTracker = dynamic_cast( rawHits[j] ); + + //skip events out of the time range -> Correcting for the propagation time + if (toa < m_time_min || toa > m_time_max){ + continue; + } + h_hits_by_layer->Fill(layerID); h_z_r_hits->Fill(z,r); h_x_y_hits->Fill(x,y); - //h_3DPosition_digi->Fill(x, y, z); - //h_3DPosition_cdigi->Fill(theta_min, r, z); + h_3DPosition_digi->Fill(x, y, z); + h_3DPosition_cdigi->Fill(theta_min, r, z); if(layerID==0){ h_z_layer0->Fill(z); h_r_layer0->Fill(r); //setting cluster and time of arrive with if j == 0 becuase we do not want fill the cluster edep and toa for clusters multiple times - if(j == 0) h_cluster_edep_layer0->Fill(EDep); //energy cluster hits in GeV in layer 1 -- Juliet - if (j == 0) h_trackerhit_time_layer0->Fill(toa); //time of arrive in layer 1 -- Juliet + if(j==0){ + h_cluster_edep_layer0->Fill(EDep); + h_trackerhit_time_layer0->Fill(toa); + h_thclen_layer0->Fill(rawHits.size()); + } h_hit_edep_layer0->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer0->Fill(rawHits.size()); + //std::cout << "tracker hit time: " << toa << ", and edep cluster: "<< EDep <<", and edep hit : " << hitConstituent->getEDep() << ", with hit num: " << rawHits.size() << std::endl; @@ -252,66 +275,83 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) if(layerID==1){ h_z_layer1->Fill(z); h_r_layer1->Fill(r); - if(j == 0) h_cluster_edep_layer1->Fill(EDep); //energy cluster hits in GeV in layer 2 -- Juliet - if(j == 0) h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet + if(j == 0){ + h_cluster_edep_layer1->Fill(EDep); + h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet + h_thclen_layer1->Fill(rawHits.size()); + } h_hit_edep_layer1->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer1->Fill(rawHits.size()); } if(layerID==2){ h_z_layer2->Fill(z); h_r_layer2->Fill(r); - if(j == 0) h_cluster_edep_layer2->Fill(EDep); //energy cluster hits in GeV in layer 3 -- Juliet - if(j == 0) h_trackerhit_time_layer2->Fill(toa); //time of arrive in layer 3 -- Juliet + if(j==0){ + h_cluster_edep_layer2->Fill(EDep); + h_trackerhit_time_layer2->Fill(toa); + h_thclen_layer2->Fill(rawHits.size()); + } h_hit_edep_layer2->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer2->Fill(rawHits.size()); + } if(layerID==3){ h_z_layer3->Fill(z); h_r_layer3->Fill(r); - if(j == 0) h_cluster_edep_layer3->Fill(EDep); //energy cluster hits in GeV in layer 4 -- Juliet - if(j == 0) h_trackerhit_time_layer3->Fill(toa); //time of arrive in layer 4 -- Juliet + if(j==0){ + h_cluster_edep_layer3->Fill(EDep); + h_trackerhit_time_layer3->Fill(toa); + h_thclen_layer3->Fill(rawHits.size()); + } h_hit_edep_layer3->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer3->Fill(rawHits.size()); } if(layerID==4){ h_z_layer4->Fill(z); h_r_layer4->Fill(r); - if(j == 0) h_cluster_edep_layer4->Fill(EDep); //energy cluster hits in GeV in layer 5 -- Juliet - if(j == 0) h_trackerhit_time_layer4->Fill(toa); //time of arrive in layer 5 -- Juliet + if(j==0){ + h_cluster_edep_layer4->Fill(EDep); + h_trackerhit_time_layer4->Fill(toa); + h_thclen_layer4->Fill(rawHits.size()); + } h_hit_edep_layer4->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer4->Fill(rawHits.size()); } if(layerID==5){ h_z_layer5->Fill(z); h_r_layer5->Fill(r); - if(j == 0) h_cluster_edep_layer5->Fill(EDep); //energy cluster hits in GeV in layer 6 -- Juliet - if(j == 0) h_trackerhit_time_layer5->Fill(toa); //time of arrive in layer 6 -- Juliet + if(j==0){ + h_cluster_edep_layer5->Fill(EDep); + h_trackerhit_time_layer5->Fill(toa); + h_thclen_layer5->Fill(rawHits.size()); + } h_hit_edep_layer5->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer5->Fill(rawHits.size()); } if(layerID==6){ h_z_layer6->Fill(z); h_r_layer6->Fill(r); - if(j == 0) h_cluster_edep_layer6->Fill(EDep); //energy cluster hits in GeV in layer 7 -- Juliet - if(j == 0) h_trackerhit_time_layer6->Fill(toa); //time of arrive in layer 7 -- Juliet + if(j==0){ + h_cluster_edep_layer6->Fill(EDep); + h_trackerhit_time_layer6->Fill(toa); + h_thclen_layer6->Fill(rawHits.size()); + } h_hit_edep_layer6->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer6->Fill(rawHits.size()); } if(layerID==7){ h_z_layer7->Fill(z); h_r_layer7->Fill(r); - if(j == 0) h_cluster_edep_layer7->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet - if(j == 0) h_trackerhit_time_layer7->Fill(toa); //time of arrive in layer 8 -- Julie + if(j==0){ + h_cluster_edep_layer7->Fill(EDep); + h_trackerhit_time_layer7->Fill(toa); + h_thclen_layer7->Fill(rawHits.size()); + } h_hit_edep_layer7->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer7->Fill(rawHits.size()); } if(layerID==8){ h_z_layer8->Fill(z); h_r_layer8->Fill(r); - if(j == 0) h_cluster_edep_layer8->Fill(EDep); //energy cluster hits in GeV in layer 8 -- Juliet - if(j == 0) h_trackerhit_time_layer8->Fill(toa); //time of arrive in layer 8 -- Julie + if(j==0){ + h_cluster_edep_layer8->Fill(EDep); + h_trackerhit_time_layer8->Fill(toa); + h_thclen_layer8->Fill(rawHits.size()); + } h_hit_edep_layer8->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet - h_thclen_layer8->Fill(rawHits.size()); } } From 8218fc4ba56dd810e82c73f52e88ff9e4d4465ed Mon Sep 17 00:00:00 2001 From: jules6077 Date: Tue, 18 Feb 2025 03:09:12 -0600 Subject: [PATCH 07/14] update --- src/ClusterHists.cc | 60 +++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index 6b5e0f4..7d6713f 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -88,15 +88,15 @@ ClusterHists::ClusterHists() h_x_y_vx = new TH2F("x_y_vx" , ";x_y ; r" , numbins_vx, -rmax_vx, rmax_vx, numbins_vx, -rmax_vx, rmax_vx); //create histograms for 1st layer in full silicon tracking detector: EDEP & Time - h_cluster_edep_layer0 = new TH1F("Clusters_edep_layer0", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - h_cluster_edep_layer1 = new TH1F("Clusters_edep_layer1", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - h_cluster_edep_layer2 = new TH1F("Clusters_edep_layer2", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - h_cluster_edep_layer3 = new TH1F("Clusters_edep_layer3", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - h_cluster_edep_layer4 = new TH1F("Clusters_edep_layer4", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - h_cluster_edep_layer5 = new TH1F("Clusters_edep_layer5", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - h_cluster_edep_layer6 = new TH1F("Clusters_edep_layer6", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - h_cluster_edep_layer7 = new TH1F("Clusters_edep_layer7", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); - h_cluster_edep_layer8 = new TH1F("Clusters_edep_layer8", ";Energy Deposited (GeV);Clusters" ,40,0,0.0005); + h_cluster_edep_layer0 = new TH1F("Clusters_edep_layer0", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer1 = new TH1F("Clusters_edep_layer1", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer2 = new TH1F("Clusters_edep_layer2", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer3 = new TH1F("Clusters_edep_layer3", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer4 = new TH1F("Clusters_edep_layer4", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer5 = new TH1F("Clusters_edep_layer5", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer6 = new TH1F("Clusters_edep_layer6", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer7 = new TH1F("Clusters_edep_layer7", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer8 = new TH1F("Clusters_edep_layer8", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); h_hit_edep_layer0 = new TH1F("hit_edep_layer0", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); h_hit_edep_layer1 = new TH1F("hit_edep_layer1", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); @@ -107,29 +107,30 @@ ClusterHists::ClusterHists() h_hit_edep_layer6 = new TH1F("hit_edep_layer6", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); //(100, 0, 36000) h_hit_edep_layer7 = new TH1F("hit_edep_layer7", ";Deposited charge (electrons);Hits" ,5000, 0, 50000);//5000,0,50000 h_hit_edep_layer8 = new TH1F("hit_edep_layer8", ";Deposited charge (electrons);Hits" ,5000, 0, 50000);//5000,0,50000 - - h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,200,-10,100); - h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,200,-10,100); - h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,200,-10,100); - h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,200,-10,100); - h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,200,-10,100); - h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,200,-10,100); - h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,200,-10,100); - h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,200,-10,100); - h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,200,-10,100); + + h_trackerhit_time = new TH1F("trackerhit_time", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,800,-1,20); //number of hits per cluster - h_thclen = new TH1F("thclen", ";Number of Hit Constituents; Events", 50, 0, 2000); //Total number of hit constituents + h_thclen = new TH1F("thclen", ";Number of Hit Constituents; Events", 60, 0, 50); //Total number of hit constituents //number of hits per cluster per layer: - h_thclen_layer0 = new TH1F("thclen_layer0", ";Number of Hit Constituents; Events", 50, 0, 1000); - h_thclen_layer1 = new TH1F("thclen_layer1", ";Number of Hit Constituents; Events", 50, 0, 1000); - h_thclen_layer2 = new TH1F("thclen_layer2", ";Number of Hit Constituents; Events", 50, 0, 1000); - h_thclen_layer3 = new TH1F("thclen_layer3", ";Number of Hit Constituents; Events", 50, 0, 1000); - h_thclen_layer4 = new TH1F("thclen_layer4", ";Number of Hit Constituents; Events", 50, 0, 1000); - h_thclen_layer5 = new TH1F("thclen_layer5", ";Number of Hit Constituents; Events", 50, 0, 1000); - h_thclen_layer6 = new TH1F("thclen_layer6", ";Number of Hit Constituents; Events", 50, 0, 1000); - h_thclen_layer7 = new TH1F("thclen_layer7", ";Number of Hit Constituents; Events", 50, 0, 1000); - h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 50, 0, 1000); + h_thclen_layer0 = new TH1F("thclen_layer0", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer1 = new TH1F("thclen_layer1", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer2 = new TH1F("thclen_layer2", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer3 = new TH1F("thclen_layer3", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer4 = new TH1F("thclen_layer4", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer5 = new TH1F("thclen_layer5", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer6 = new TH1F("thclen_layer6", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer7 = new TH1F("thclen_layer7", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 60, 0, 50); //3D HISTO for X vs Y vs Z position in digitized and truth h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); @@ -232,6 +233,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_theta->Fill(incidentTheta); h_cluster_pos->Fill(z,r); h_clusters_by_layer->Fill(layerID); + if (toa > m_time_min && toa < m_time_max) h_trackerhit_time->Fill(toa); // tracker hit hists h_x->Fill(x); From 9dc33e35675b35f5733edc3534f26fbad81a2681 Mon Sep 17 00:00:00 2001 From: jules6077 Date: Mon, 3 Mar 2025 17:32:42 -0600 Subject: [PATCH 08/14] Updating --- ClusterShapeAnalysis/ClusterHists.h | 23 +++++++++++ src/ClusterHists.cc | 60 +++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/ClusterShapeAnalysis/ClusterHists.h b/ClusterShapeAnalysis/ClusterHists.h index d7ebc1f..42e2a46 100644 --- a/ClusterShapeAnalysis/ClusterHists.h +++ b/ClusterShapeAnalysis/ClusterHists.h @@ -85,6 +85,28 @@ class ClusterHists TH2* h_z_r_vx; TH2* h_x_y_vx; + //time and edep cut for all layers -- juliet + TH1* h_cluster_edep_Tcut; + TH1* h_cluster_edep_Tcut_layer0; + TH1* h_cluster_edep_Tcut_layer1; + TH1* h_cluster_edep_Tcut_layer2; + TH1* h_cluster_edep_Tcut_layer3; + TH1* h_cluster_edep_Tcut_layer4; + TH1* h_cluster_edep_Tcut_layer5; + TH1* h_cluster_edep_Tcut_layer6; + TH1* h_cluster_edep_Tcut_layer7; + TH1* h_cluster_edep_Tcut_layer8; + + TH1* h_trackerhit_time_Tcut; + TH1* h_trackerhit_time_Tcut_layer0; + TH1* h_trackerhit_time_Tcut_layer1; + TH1* h_trackerhit_time_Tcut_layer2; + TH1* h_trackerhit_time_Tcut_layer3; + TH1* h_trackerhit_time_Tcut_layer4; + TH1* h_trackerhit_time_Tcut_layer5; + TH1* h_trackerhit_time_Tcut_layer6; + TH1* h_trackerhit_time_Tcut_layer7; + //time and edep for 1st layer -- juliet TH1* h_cluster_edep_layer0; TH1* h_cluster_edep_layer1; @@ -107,6 +129,7 @@ class ClusterHists TH1* h_hit_edep_layer7; TH1* h_hit_edep_layer8; //time of arriver per layer + TH1* h_trackerhit_time; TH1* h_trackerhit_time_layer0; TH1* h_trackerhit_time_layer1; TH1* h_trackerhit_time_layer2; diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index 7d6713f..a94090e 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -98,6 +98,27 @@ ClusterHists::ClusterHists() h_cluster_edep_layer7 = new TH1F("Clusters_edep_layer7", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); h_cluster_edep_layer8 = new TH1F("Clusters_edep_layer8", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + //time-energy cluster cut: + h_cluster_edep_Tcut = new TH1F("Clusters_edep_Tcut", ";Energy Deposited (GeV);Clusters" ,100,0,0.0005); + h_cluster_edep_Tcut_layer0 = new TH1F("Clusters_edep_Tcut_layer0", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_Tcut_layer1 = new TH1F("Clusters_edep_Tcut_layer1", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_Tcut_layer2 = new TH1F("Clusters_edep_Tcut_layer2", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_Tcut_layer3 = new TH1F("Clusters_edep_Tcut_layer3", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_Tcut_layer4 = new TH1F("Clusters_edep_Tcut_layer4", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_Tcut_layer5 = new TH1F("Clusters_edep_Tcut_layer5", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_Tcut_layer6 = new TH1F("Clusters_edep_Tcut_layer6", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_Tcut_layer7 = new TH1F("Clusters_edep_Tcut_layer7", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + + h_trackerhit_time_Tcut = new TH1F("trackerhit_time_Tcut", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_Tcut_layer0 = new TH1F("trackerhit_time_Tcut_layer0", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_Tcut_layer1 = new TH1F("trackerhit_time_Tcut_layer1", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_Tcut_layer2 = new TH1F("trackerhit_time_Tcut_layer2", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_Tcut_layer3 = new TH1F("trackerhit_time_Tcut_layer3", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_Tcut_layer4 = new TH1F("trackerhit_time_Tcut_layer4", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_Tcut_layer5 = new TH1F("trackerhit_time_Tcut_layer5", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_Tcut_layer6 = new TH1F("trackerhit_time_Tcut_layer6", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time_Tcut_layer7 = new TH1F("trackerhit_time_Tcut_layer7", ";Time (ns);Events" ,800,-1,20); + h_hit_edep_layer0 = new TH1F("hit_edep_layer0", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); h_hit_edep_layer1 = new TH1F("hit_edep_layer1", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); h_hit_edep_layer2 = new TH1F("hit_edep_layer2", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); @@ -267,6 +288,10 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer0->Fill(EDep); h_trackerhit_time_layer0->Fill(toa); h_thclen_layer0->Fill(rawHits.size()); + if(toa < 0.2){ + h_cluster_edep_Tcut_layer0->Fill(EDep); + h_trackerhit_time_Tcut_layer0->Fill(toa); + } } h_hit_edep_layer0->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet @@ -281,6 +306,10 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer1->Fill(EDep); h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet h_thclen_layer1->Fill(rawHits.size()); + if(toa < 0.2){ + h_cluster_edep_Tcut_layer1->Fill(EDep); + h_trackerhit_time_Tcut_layer1->Fill(toa); + } } h_hit_edep_layer1->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -291,6 +320,10 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer2->Fill(EDep); h_trackerhit_time_layer2->Fill(toa); h_thclen_layer2->Fill(rawHits.size()); + if(toa < 0.2){ + h_cluster_edep_Tcut_layer2->Fill(EDep); + h_trackerhit_time_Tcut_layer2->Fill(toa); + } } h_hit_edep_layer2->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet @@ -302,6 +335,10 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer3->Fill(EDep); h_trackerhit_time_layer3->Fill(toa); h_thclen_layer3->Fill(rawHits.size()); + if(toa < 0.2){ + h_cluster_edep_Tcut_layer3->Fill(EDep); + h_trackerhit_time_Tcut_layer3->Fill(toa); + } } h_hit_edep_layer3->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -312,6 +349,10 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer4->Fill(EDep); h_trackerhit_time_layer4->Fill(toa); h_thclen_layer4->Fill(rawHits.size()); + if(toa < 0.2){ + h_cluster_edep_Tcut_layer4->Fill(EDep); + h_trackerhit_time_Tcut_layer4->Fill(toa); + } } h_hit_edep_layer4->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -322,6 +363,10 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer5->Fill(EDep); h_trackerhit_time_layer5->Fill(toa); h_thclen_layer5->Fill(rawHits.size()); + if(toa < 0.2){ + h_cluster_edep_Tcut_layer5->Fill(EDep); + h_trackerhit_time_Tcut_layer5->Fill(toa); + } } h_hit_edep_layer5->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -332,6 +377,10 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer6->Fill(EDep); h_trackerhit_time_layer6->Fill(toa); h_thclen_layer6->Fill(rawHits.size()); + if(toa < 0.2){ + h_cluster_edep_Tcut_layer6->Fill(EDep); + h_trackerhit_time_Tcut_layer6->Fill(toa); + } } h_hit_edep_layer6->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -342,6 +391,10 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer7->Fill(EDep); h_trackerhit_time_layer7->Fill(toa); h_thclen_layer7->Fill(rawHits.size()); + if(toa < 0.2){ + h_cluster_edep_Tcut_layer7->Fill(EDep); + h_trackerhit_time_Tcut_layer7->Fill(toa); + } } h_hit_edep_layer7->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -367,6 +420,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_x_y_vx->Fill(x,y); h_cluster_edep->Fill(EDep); + //NEW 2/19/2025 + if (toa > m_time_min && toa < m_time_max){ + if(toa < 0.2e-3){ + h_cluster_edep_Tcut->Fill(EDep); + h_trackerhit_time_Tcut->Fill(toa); + } + } h_edep_r->Fill(r,EDep); h_edep_cluster->Fill(EDep,cluster_size_tot); From 8a320a96aff5ae773b872f7ab6348a8b75c9af9e Mon Sep 17 00:00:00 2001 From: Juliet Wright Date: Sun, 22 Jun 2025 14:38:11 -0700 Subject: [PATCH 09/14] saving branches --- src/ClusterHists.cc | 243 ++++++++++++++++++++++++++------------------ 1 file changed, 142 insertions(+), 101 deletions(-) diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index a94090e..25cf0b8 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -13,11 +13,21 @@ #include "DD4hep/Detector.h" #include "DD4hep/DD4hepUnits.h" -#include "/home/julietwright/work/TrkHitsStudiesWorkspace/packages/MarlinTrkProcessors/source/Utils/include/FilterTimeHits.h" +#include "/global/cfs/cdirs/atlas/juliet/work/TrkHitsStudiesWorkspace/packages/MarlinTrkProcessors/source/Utils/include/FilterTimeHits.h" ClusterHists::ClusterHists() { + + //Calculate the MPV scaling + float mpv = 74e-6; //GeV + float edp_rangeMax = 10 * mpv; //GeV + //float edp_binWidth = 20e-7; //[GeV] = 2000eV, each bin has a width of 2000 eV + float edp_binNum = 60; //edp_rangeMax/edp_binWidth; //bin number will be the same for electrons and GeV units + //3.7 eV = 1 e, ou, 3.7e-9 GeV = 1e + float edp_rangeMax_e = 10 * mpv / (3.7e-9); //range in electrons + float edp_binNum_e = 5000; //10*edp_binNum; + h_size_theta_y = new TH2F("cluster_size_vs_theta_y" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); h_size_theta_x = new TH2F("cluster_size_vs_theta_x" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); h_size_theta_tot = new TH2F("cluster_size_vs_theta_tot" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); @@ -34,14 +44,14 @@ ClusterHists::ClusterHists() h_clusters_by_layer = new TH1F("numClusters_by_layer" , ";Layer Index; Number of Clusters",8,0,8); h_hits_by_layer = new TH1F("numhits_by_layer" , ";Layer Index; Number of Hits",8,0,8); h_theta = new TH1F("theta" , ";Theta;Number of Clusters" ,100,0,3.15); - h_cluster_edep = new TH1F("Clusters_edep" , ";Energy Deposited (GeV);Clusters" ,100,0,0.0005); - h_hit_edep = new TH1F("Hits_edep" , ";Deposited charge (electrons);Hits" ,5000, 0, 50000);//5000, 0, 50000 Change JULIET + h_cluster_edep = new TH1F("Clusters_edep" , ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_hit_edep = new TH1F("Hits_edep" , ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e);//5000, 0, 50000 Change JULIET h_edep_r = new TH2F("edep_vs_r" , ";Cluster R (x^2+y^2)^(1/2) (mm); Energy Deposited (GeV)" , 100, 20, 120, 100, 0, 0.002 ); h_edep_cluster = new TH2F("edep_vs_cluster_size" , "; Energy Deposited (GeV); Total Cluster Size" ,100, 0, 0.002, 100, -0.5, 99.5 ); h_toa_edepCluster = new TH2F("toa_vs_edepCluster", "; Time of Arrival [ns];Energy Deposited [GeV]", 100, 0, 10, 100, 0, 0.0005); //--JULIET // Create position histograms for tracker hits - int numbins_all = 1000; + int numbins_all = 1000; //change this for 10 mm bins int rmin_all = 0; int rmax_all = 1600; int zmin_all = -2500; @@ -88,70 +98,86 @@ ClusterHists::ClusterHists() h_x_y_vx = new TH2F("x_y_vx" , ";x_y ; r" , numbins_vx, -rmax_vx, rmax_vx, numbins_vx, -rmax_vx, rmax_vx); //create histograms for 1st layer in full silicon tracking detector: EDEP & Time - h_cluster_edep_layer0 = new TH1F("Clusters_edep_layer0", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_layer1 = new TH1F("Clusters_edep_layer1", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_layer2 = new TH1F("Clusters_edep_layer2", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_layer3 = new TH1F("Clusters_edep_layer3", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_layer4 = new TH1F("Clusters_edep_layer4", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_layer5 = new TH1F("Clusters_edep_layer5", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_layer6 = new TH1F("Clusters_edep_layer6", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_layer7 = new TH1F("Clusters_edep_layer7", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_layer8 = new TH1F("Clusters_edep_layer8", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + h_cluster_edep_layer0 = new TH1F("Clusters_edep_layer0", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_cluster_edep_layer1 = new TH1F("Clusters_edep_layer1", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_cluster_edep_layer2 = new TH1F("Clusters_edep_layer2", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_cluster_edep_layer3 = new TH1F("Clusters_edep_layer3", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_cluster_edep_layer4 = new TH1F("Clusters_edep_layer4", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_cluster_edep_layer5 = new TH1F("Clusters_edep_layer5", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_cluster_edep_layer6 = new TH1F("Clusters_edep_layer6", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_cluster_edep_layer7 = new TH1F("Clusters_edep_layer7", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); + h_cluster_edep_layer8 = new TH1F("Clusters_edep_layer8", ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); //time-energy cluster cut: - h_cluster_edep_Tcut = new TH1F("Clusters_edep_Tcut", ";Energy Deposited (GeV);Clusters" ,100,0,0.0005); - h_cluster_edep_Tcut_layer0 = new TH1F("Clusters_edep_Tcut_layer0", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_Tcut_layer1 = new TH1F("Clusters_edep_Tcut_layer1", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_Tcut_layer2 = new TH1F("Clusters_edep_Tcut_layer2", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_Tcut_layer3 = new TH1F("Clusters_edep_Tcut_layer3", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_Tcut_layer4 = new TH1F("Clusters_edep_Tcut_layer4", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_Tcut_layer5 = new TH1F("Clusters_edep_Tcut_layer5", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_Tcut_layer6 = new TH1F("Clusters_edep_Tcut_layer6", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - h_cluster_edep_Tcut_layer7 = new TH1F("Clusters_edep_Tcut_layer7", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); - - h_trackerhit_time_Tcut = new TH1F("trackerhit_time_Tcut", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_Tcut_layer0 = new TH1F("trackerhit_time_Tcut_layer0", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_Tcut_layer1 = new TH1F("trackerhit_time_Tcut_layer1", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_Tcut_layer2 = new TH1F("trackerhit_time_Tcut_layer2", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_Tcut_layer3 = new TH1F("trackerhit_time_Tcut_layer3", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_Tcut_layer4 = new TH1F("trackerhit_time_Tcut_layer4", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_Tcut_layer5 = new TH1F("trackerhit_time_Tcut_layer5", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_Tcut_layer6 = new TH1F("trackerhit_time_Tcut_layer6", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_Tcut_layer7 = new TH1F("trackerhit_time_Tcut_layer7", ";Time (ns);Events" ,800,-1,20); - - h_hit_edep_layer0 = new TH1F("hit_edep_layer0", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); - h_hit_edep_layer1 = new TH1F("hit_edep_layer1", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); - h_hit_edep_layer2 = new TH1F("hit_edep_layer2", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); - h_hit_edep_layer3 = new TH1F("hit_edep_layer3", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); - h_hit_edep_layer4 = new TH1F("hit_edep_layer4", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); - h_hit_edep_layer5 = new TH1F("hit_edep_layer5", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); - h_hit_edep_layer6 = new TH1F("hit_edep_layer6", ";Deposited charge (electrons);Hits" ,5000, 0, 50000); //(100, 0, 36000) - h_hit_edep_layer7 = new TH1F("hit_edep_layer7", ";Deposited charge (electrons);Hits" ,5000, 0, 50000);//5000,0,50000 - h_hit_edep_layer8 = new TH1F("hit_edep_layer8", ";Deposited charge (electrons);Hits" ,5000, 0, 50000);//5000,0,50000 + // h_cluster_edep_Tcut = new TH1F("Clusters_edep_Tcut", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + // h_cluster_edep_Tcut_layer0 = new TH1F("Clusters_edep_Tcut_layer0", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + // h_cluster_edep_Tcut_layer1 = new TH1F("Clusters_edep_Tcut_layer1", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + // h_cluster_edep_Tcut_layer2 = new TH1F("Clusters_edep_Tcut_layer2", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + // h_cluster_edep_Tcut_layer3 = new TH1F("Clusters_edep_Tcut_layer3", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + // h_cluster_edep_Tcut_layer4 = new TH1F("Clusters_edep_Tcut_layer4", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + // h_cluster_edep_Tcut_layer5 = new TH1F("Clusters_edep_Tcut_layer5", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + // h_cluster_edep_Tcut_layer6 = new TH1F("Clusters_edep_Tcut_layer6", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + // h_cluster_edep_Tcut_layer7 = new TH1F("Clusters_edep_Tcut_layer7", ";Energy Deposited (GeV);Clusters" ,200,0,0.0005); + + // h_trackerhit_time_Tcut = new TH1F("trackerhit_time_Tcut", ";Time (ns);Events" ,800,-1,20); + // h_trackerhit_time_Tcut_layer0 = new TH1F("trackerhit_time_Tcut_layer0", ";Time (ns);Events" ,800,-1,20); + // h_trackerhit_time_Tcut_layer1 = new TH1F("trackerhit_time_Tcut_layer1", ";Time (ns);Events" ,800,-1,20); + // h_trackerhit_time_Tcut_layer2 = new TH1F("trackerhit_time_Tcut_layer2", ";Time (ns);Events" ,800,-1,20); + // h_trackerhit_time_Tcut_layer3 = new TH1F("trackerhit_time_Tcut_layer3", ";Time (ns);Events" ,800,-1,20); + // h_trackerhit_time_Tcut_layer4 = new TH1F("trackerhit_time_Tcut_layer4", ";Time (ns);Events" ,800,-1,20); + // h_trackerhit_time_Tcut_layer5 = new TH1F("trackerhit_time_Tcut_layer5", ";Time (ns);Events" ,800,-1,20); + // h_trackerhit_time_Tcut_layer6 = new TH1F("trackerhit_time_Tcut_layer6", ";Time (ns);Events" ,800,-1,20); + // h_trackerhit_time_Tcut_layer7 = new TH1F("trackerhit_time_Tcut_layer7", ";Time (ns);Events" ,800,-1,20); + + h_hit_edep_layer0 = new TH1F("hit_edep_layer0", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e); //5000, 0, 50000); + h_hit_edep_layer1 = new TH1F("hit_edep_layer1", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e); + h_hit_edep_layer2 = new TH1F("hit_edep_layer2", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e); + h_hit_edep_layer3 = new TH1F("hit_edep_layer3", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e); + h_hit_edep_layer4 = new TH1F("hit_edep_layer4", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e); + h_hit_edep_layer5 = new TH1F("hit_edep_layer5", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e); + h_hit_edep_layer6 = new TH1F("hit_edep_layer6", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e); //(100, 0, 36000) + h_hit_edep_layer7 = new TH1F("hit_edep_layer7", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e);//5000,0,50000 + h_hit_edep_layer8 = new TH1F("hit_edep_layer8", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e);//5000,0,50000 - h_trackerhit_time = new TH1F("trackerhit_time", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,800,-1,20); - h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,800,-1,20); + h_trackerhit_time = new TH1F("trackerhit_time", ";Time (ns);Events" ,200000,0,20); //-0.2 - 0.5 + h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,200000,0,20); //number of hits per cluster - h_thclen = new TH1F("thclen", ";Number of Hit Constituents; Events", 60, 0, 50); //Total number of hit constituents + h_thclen = new TH1F("thclen", ";Number of Hit Constituents; Events", 50, 0, 50); //Total number of hit constituents //number of hits per cluster per layer: - h_thclen_layer0 = new TH1F("thclen_layer0", ";Number of Hit Constituents; Events", 60, 0, 50); - h_thclen_layer1 = new TH1F("thclen_layer1", ";Number of Hit Constituents; Events", 60, 0, 50); - h_thclen_layer2 = new TH1F("thclen_layer2", ";Number of Hit Constituents; Events", 60, 0, 50); - h_thclen_layer3 = new TH1F("thclen_layer3", ";Number of Hit Constituents; Events", 60, 0, 50); - h_thclen_layer4 = new TH1F("thclen_layer4", ";Number of Hit Constituents; Events", 60, 0, 50); - h_thclen_layer5 = new TH1F("thclen_layer5", ";Number of Hit Constituents; Events", 60, 0, 50); - h_thclen_layer6 = new TH1F("thclen_layer6", ";Number of Hit Constituents; Events", 60, 0, 50); - h_thclen_layer7 = new TH1F("thclen_layer7", ";Number of Hit Constituents; Events", 60, 0, 50); - h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 60, 0, 50); + h_thclen_layer0 = new TH1F("thclen_layer0", ";Number of Hit Constituents; Events", 50, 0, 50); + h_thclen_layer1 = new TH1F("thclen_layer1", ";Number of Hit Constituents; Events", 50, 0, 50); + h_thclen_layer2 = new TH1F("thclen_layer2", ";Number of Hit Constituents; Events", 50, 0, 50); + h_thclen_layer3 = new TH1F("thclen_layer3", ";Number of Hit Constituents; Events", 50, 0, 50); + h_thclen_layer4 = new TH1F("thclen_layer4", ";Number of Hit Constituents; Events", 50, 0, 50); + h_thclen_layer5 = new TH1F("thclen_layer5", ";Number of Hit Constituents; Events", 50, 0, 50); + h_thclen_layer6 = new TH1F("thclen_layer6", ";Number of Hit Constituents; Events", 50, 0, 50); + h_thclen_layer7 = new TH1F("thclen_layer7", ";Number of Hit Constituents; Events", 50, 0, 50); + h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 50, 0, 50); + + //number of hits per cluster for hit clusters > 15: + h_thclen_cut = new TH1F("thclen_cut", ";Number of Hit Constituents; Events", 50, 15, 65); //Total number of hit constituents + //number of hits per cluster per layer: + h_thclen_layer0_cut = new TH1F("thclen_layer0_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer1_cut = new TH1F("thclen_layer1_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer2_cut = new TH1F("thclen_layer2_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer3_cut = new TH1F("thclen_layer3_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer4_cut = new TH1F("thclen_layer4_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer5_cut = new TH1F("thclen_layer5_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer6_cut = new TH1F("thclen_layer6_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer7_cut = new TH1F("thclen_layer7_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer8_cut = new TH1F("thclen_layer8_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + + //2D histogram for all detector layers for Cluster Edep vs Number of Hits per Cluster: + h_cluster_edep_thlen = new TH2F("edep_vs_hitNum" , ";Hits/Cluster; Energy Deposited (GeV)" , 50, 15, 65, edp_binNum,0,edp_rangeMax); //3D HISTO for X vs Y vs Z position in digitized and truth h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); @@ -168,7 +194,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) dd4hep::rec::Vector3D pos = trkhit->getPosition(); double hitR = pos.r(); double m_beta = 1.0; - double m_time_min = -90.0; //ns + double m_time_min = -90.0; //ns - get min and max from the config file double m_time_max = 90.0; //ns double dt = hitR / (TMath::C() * m_beta / 1e6); toa -= dt; @@ -271,6 +297,12 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) if (toa < m_time_min || toa > m_time_max){ continue; } + + //hits/cluster cut: + if(rawHits.size() > 15){ + h_thclen_cut->Fill(rawHits.size()); + h_cluster_edep_thlen->Fill(rawHits.size(), EDep); + } h_hits_by_layer->Fill(layerID); h_z_r_hits->Fill(z,r); @@ -288,10 +320,11 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer0->Fill(EDep); h_trackerhit_time_layer0->Fill(toa); h_thclen_layer0->Fill(rawHits.size()); - if(toa < 0.2){ - h_cluster_edep_Tcut_layer0->Fill(EDep); - h_trackerhit_time_Tcut_layer0->Fill(toa); - } + if(rawHits.size() > 15) h_thclen_layer0_cut->Fill(rawHits.size()); + // if(toa < 0.2){ + // h_cluster_edep_Tcut_layer0->Fill(EDep); + // h_trackerhit_time_Tcut_layer0->Fill(toa); + // } } h_hit_edep_layer0->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet @@ -306,10 +339,11 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer1->Fill(EDep); h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet h_thclen_layer1->Fill(rawHits.size()); - if(toa < 0.2){ - h_cluster_edep_Tcut_layer1->Fill(EDep); - h_trackerhit_time_Tcut_layer1->Fill(toa); - } + if(rawHits.size() > 15) h_thclen_layer1_cut->Fill(rawHits.size()); + // if(toa < 0.2){ + // h_cluster_edep_Tcut_layer1->Fill(EDep); + // h_trackerhit_time_Tcut_layer1->Fill(toa); + // } } h_hit_edep_layer1->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -320,10 +354,11 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer2->Fill(EDep); h_trackerhit_time_layer2->Fill(toa); h_thclen_layer2->Fill(rawHits.size()); - if(toa < 0.2){ - h_cluster_edep_Tcut_layer2->Fill(EDep); - h_trackerhit_time_Tcut_layer2->Fill(toa); - } + if(rawHits.size() > 15) h_thclen_layer2_cut->Fill(rawHits.size()); + // if(toa < 0.2){ + // h_cluster_edep_Tcut_layer2->Fill(EDep); + // h_trackerhit_time_Tcut_layer2->Fill(toa); + // } } h_hit_edep_layer2->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet @@ -335,10 +370,11 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer3->Fill(EDep); h_trackerhit_time_layer3->Fill(toa); h_thclen_layer3->Fill(rawHits.size()); - if(toa < 0.2){ - h_cluster_edep_Tcut_layer3->Fill(EDep); - h_trackerhit_time_Tcut_layer3->Fill(toa); - } + if(rawHits.size() > 15) h_thclen_layer3_cut->Fill(rawHits.size()); + // if(toa < 0.2){ + // h_cluster_edep_Tcut_layer3->Fill(EDep); + // h_trackerhit_time_Tcut_layer3->Fill(toa); + // } } h_hit_edep_layer3->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -349,10 +385,11 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer4->Fill(EDep); h_trackerhit_time_layer4->Fill(toa); h_thclen_layer4->Fill(rawHits.size()); - if(toa < 0.2){ - h_cluster_edep_Tcut_layer4->Fill(EDep); - h_trackerhit_time_Tcut_layer4->Fill(toa); - } + if(rawHits.size() > 15) h_thclen_layer4_cut->Fill(rawHits.size()); + // if(toa < 0.2){ + // h_cluster_edep_Tcut_layer4->Fill(EDep); + // h_trackerhit_time_Tcut_layer4->Fill(toa); + // } } h_hit_edep_layer4->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -363,10 +400,11 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer5->Fill(EDep); h_trackerhit_time_layer5->Fill(toa); h_thclen_layer5->Fill(rawHits.size()); - if(toa < 0.2){ - h_cluster_edep_Tcut_layer5->Fill(EDep); - h_trackerhit_time_Tcut_layer5->Fill(toa); - } + if(rawHits.size() > 15) h_thclen_layer5_cut->Fill(rawHits.size()); + // if(toa < 0.2){ + // h_cluster_edep_Tcut_layer5->Fill(EDep); + // h_trackerhit_time_Tcut_layer5->Fill(toa); + // } } h_hit_edep_layer5->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -377,10 +415,11 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer6->Fill(EDep); h_trackerhit_time_layer6->Fill(toa); h_thclen_layer6->Fill(rawHits.size()); - if(toa < 0.2){ - h_cluster_edep_Tcut_layer6->Fill(EDep); - h_trackerhit_time_Tcut_layer6->Fill(toa); - } + if(rawHits.size() > 15) h_thclen_layer6_cut->Fill(rawHits.size()); + // if(toa < 0.2){ + // h_cluster_edep_Tcut_layer6->Fill(EDep); + // h_trackerhit_time_Tcut_layer6->Fill(toa); + // } } h_hit_edep_layer6->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -391,10 +430,11 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer7->Fill(EDep); h_trackerhit_time_layer7->Fill(toa); h_thclen_layer7->Fill(rawHits.size()); - if(toa < 0.2){ - h_cluster_edep_Tcut_layer7->Fill(EDep); - h_trackerhit_time_Tcut_layer7->Fill(toa); - } + if(rawHits.size() > 15) h_thclen_layer7_cut->Fill(rawHits.size()); + // if(toa < 0.2){ + // h_cluster_edep_Tcut_layer7->Fill(EDep); + // h_trackerhit_time_Tcut_layer7->Fill(toa); + // } } h_hit_edep_layer7->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -405,6 +445,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep_layer8->Fill(EDep); h_trackerhit_time_layer8->Fill(toa); h_thclen_layer8->Fill(rawHits.size()); + if(rawHits.size() > 15) h_thclen_layer8_cut->Fill(rawHits.size()); } h_hit_edep_layer8->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet } @@ -421,12 +462,12 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep->Fill(EDep); //NEW 2/19/2025 - if (toa > m_time_min && toa < m_time_max){ - if(toa < 0.2e-3){ - h_cluster_edep_Tcut->Fill(EDep); - h_trackerhit_time_Tcut->Fill(toa); - } - } + // if (toa > m_time_min && toa < m_time_max){ + // if(toa < 0.2e-3){ + // h_cluster_edep_Tcut->Fill(EDep); + // h_trackerhit_time_Tcut->Fill(toa); + // } + // } h_edep_r->Fill(r,EDep); h_edep_cluster->Fill(EDep,cluster_size_tot); From 571b16b5ef8cfb0d1b4e62e9219596712455b37b Mon Sep 17 00:00:00 2001 From: Juliet Wright Date: Sun, 22 Jun 2025 14:40:57 -0700 Subject: [PATCH 10/14] adding changes --- ClusterShapeAnalysis/ClusterHists.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ClusterShapeAnalysis/ClusterHists.h b/ClusterShapeAnalysis/ClusterHists.h index 42e2a46..7951dfb 100644 --- a/ClusterShapeAnalysis/ClusterHists.h +++ b/ClusterShapeAnalysis/ClusterHists.h @@ -150,8 +150,20 @@ class ClusterHists TH1* h_thclen_layer6; TH1* h_thclen_layer7; TH1* h_thclen_layer8; + //hits per cluster per layer cut: + TH1* h_thclen_cut; + TH1* h_thclen_layer0_cut; + TH1* h_thclen_layer1_cut; + TH1* h_thclen_layer2_cut; + TH1* h_thclen_layer3_cut; + TH1* h_thclen_layer4_cut; + TH1* h_thclen_layer5_cut; + TH1* h_thclen_layer6_cut; + TH1* h_thclen_layer7_cut; + TH1* h_thclen_layer8_cut; //2D TH2* h_toa_edepCluster; + TH2* h_cluster_edep_thlen; //3D Histos: TH3* h_3DPosition_digi; TH3* h_3DPosition_cdigi; From 5d1fe39fbcdfc78453ee3af2caa6bb970557bb14 Mon Sep 17 00:00:00 2001 From: Juliet Wright Date: Mon, 23 Jun 2025 15:27:29 -0700 Subject: [PATCH 11/14] update --- ClusterShapeAnalysis/ClusterHists.h | 1 + src/ClusterHists.cc | 132 +++++++++++++++------------- 2 files changed, 73 insertions(+), 60 deletions(-) diff --git a/ClusterShapeAnalysis/ClusterHists.h b/ClusterShapeAnalysis/ClusterHists.h index 7951dfb..01403f1 100644 --- a/ClusterShapeAnalysis/ClusterHists.h +++ b/ClusterShapeAnalysis/ClusterHists.h @@ -164,6 +164,7 @@ class ClusterHists //2D TH2* h_toa_edepCluster; TH2* h_cluster_edep_thlen; + TH2* h_cluster_edep_thlen_cut; //3D Histos: TH3* h_3DPosition_digi; TH3* h_3DPosition_cdigi; diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index 25cf0b8..83658d9 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -15,6 +15,14 @@ #include "DD4hep/DD4hepUnits.h" #include "/global/cfs/cdirs/atlas/juliet/work/TrkHitsStudiesWorkspace/packages/MarlinTrkProcessors/source/Utils/include/FilterTimeHits.h" +#include +#include +#include + +using namespace lcio; +using namespace marlin; +using namespace std; + ClusterHists::ClusterHists() { @@ -25,9 +33,9 @@ ClusterHists::ClusterHists() //float edp_binWidth = 20e-7; //[GeV] = 2000eV, each bin has a width of 2000 eV float edp_binNum = 60; //edp_rangeMax/edp_binWidth; //bin number will be the same for electrons and GeV units //3.7 eV = 1 e, ou, 3.7e-9 GeV = 1e - float edp_rangeMax_e = 10 * mpv / (3.7e-9); //range in electrons + float edp_rangeMax_e = 2 * mpv / (3.7e-9); //range in electrons float edp_binNum_e = 5000; //10*edp_binNum; - + h_size_theta_y = new TH2F("cluster_size_vs_theta_y" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); h_size_theta_x = new TH2F("cluster_size_vs_theta_x" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); h_size_theta_tot = new TH2F("cluster_size_vs_theta_tot" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); @@ -52,36 +60,38 @@ ClusterHists::ClusterHists() // Create position histograms for tracker hits int numbins_all = 1000; //change this for 10 mm bins + int numbins_r = 160; //for 10 mm bins + int numbins_z = 500; //for 10 mm bins int rmin_all = 0; int rmax_all = 1600; int zmin_all = -2500; int zmax_all = 2500; - h_x = new TH1F("x " , ";x ; Num Hits" , numbins_all, -rmax_all, rmax_all); - h_y = new TH1F("y " , ";y ; Num Hits" , numbins_all, -rmax_all, rmax_all); - h_z = new TH1F("z " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_r = new TH1F("r " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_z_r = new TH2F("z_r" , ";z_r ; r" , numbins_all/5, zmin_all, zmax_all, numbins_all/10, rmin_all, rmax_all); - h_x_y = new TH2F("x_y" , ";x_y ; r" , numbins_all, -rmax_all, rmax_all, numbins_all, -rmax_all, rmax_all); - h_z_r_hits = new TH2F("z_r_hits" , ";z_r ; r" , numbins_all/5, zmin_all, zmax_all, numbins_all/10, rmin_all, rmax_all); - h_x_y_hits = new TH2F("x_y_hits" , ";x_y ; r" , numbins_all, -rmax_all, rmax_all, numbins_all, -rmax_all, rmax_all); - h_z_layer0 = new TH1F("hits_vs_z_layer0 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_z_layer1 = new TH1F("hits_vs_z_layer1 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_z_layer2 = new TH1F("hits_vs_z_layer2 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_z_layer3 = new TH1F("hits_vs_z_layer3 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_z_layer4 = new TH1F("hits_vs_z_layer4 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_z_layer5 = new TH1F("hits_vs_z_layer5 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_z_layer6 = new TH1F("hits_vs_z_layer6 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_z_layer7 = new TH1F("hits_vs_z_layer7 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_z_layer8 = new TH1F("hits_vs_z_layer8 " , ";z ; Num Hits" , numbins_all, zmin_all, zmax_all); - h_r_layer0 = new TH1F("hits_vs_r_layer0 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_r_layer1 = new TH1F("hits_vs_r_layer1 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_r_layer2 = new TH1F("hits_vs_r_layer2 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_r_layer3 = new TH1F("hits_vs_r_layer3 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_r_layer4 = new TH1F("hits_vs_r_layer4 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_r_layer5 = new TH1F("hits_vs_r_layer5 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_r_layer6 = new TH1F("hits_vs_r_layer6 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_r_layer7 = new TH1F("hits_vs_r_layer7 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); - h_r_layer8 = new TH1F("hits_vs_r_layer8 " , ";r ; Num Hits" , numbins_all, rmin_all, rmax_all); + h_x = new TH1F("x " , ";x ; Num Hits" , numbins_r, -rmax_all, rmax_all); //mm + h_y = new TH1F("y " , ";y ; Num Hits" , numbins_r, -rmax_all, rmax_all); + h_z = new TH1F("z " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_r = new TH1F("r " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_z_r = new TH2F("z_r" , ";z_r ; r" , numbins_z, zmin_all, zmax_all, numbins_r, rmin_all, rmax_all);//numbins_all/5, zmin_all, zmax_all, numbins_all/10, rmin_all, rmax_all); + h_x_y = new TH2F("x_y" , ";x_y ; r" , numbins_r, -rmax_all, rmax_all, numbins_r, -rmax_all, rmax_all); + h_z_r_hits = new TH2F("z_r_hits" , ";z_r ; r" , numbins_z, zmin_all, zmax_all, numbins_r, rmin_all, rmax_all);//numbins_all/5, zmin_all, zmax_all, numbins_all/10, rmin_all, rmax_all); + h_x_y_hits = new TH2F("x_y_hits" , ";x_y ; r" , numbins_r, -rmax_all, rmax_all, numbins_r, -rmax_all, rmax_all); + h_z_layer0 = new TH1F("hits_vs_z_layer0 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_z_layer1 = new TH1F("hits_vs_z_layer1 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_z_layer2 = new TH1F("hits_vs_z_layer2 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_z_layer3 = new TH1F("hits_vs_z_layer3 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_z_layer4 = new TH1F("hits_vs_z_layer4 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_z_layer5 = new TH1F("hits_vs_z_layer5 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_z_layer6 = new TH1F("hits_vs_z_layer6 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_z_layer7 = new TH1F("hits_vs_z_layer7 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_z_layer8 = new TH1F("hits_vs_z_layer8 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); + h_r_layer0 = new TH1F("hits_vs_r_layer0 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_r_layer1 = new TH1F("hits_vs_r_layer1 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_r_layer2 = new TH1F("hits_vs_r_layer2 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_r_layer3 = new TH1F("hits_vs_r_layer3 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_r_layer4 = new TH1F("hits_vs_r_layer4 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_r_layer5 = new TH1F("hits_vs_r_layer5 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_r_layer6 = new TH1F("hits_vs_r_layer6 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_r_layer7 = new TH1F("hits_vs_r_layer7 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); + h_r_layer8 = new TH1F("hits_vs_r_layer8 " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); // histograms with ranges that will just show vertex tracker hits @@ -139,16 +149,16 @@ ClusterHists::ClusterHists() h_hit_edep_layer7 = new TH1F("hit_edep_layer7", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e);//5000,0,50000 h_hit_edep_layer8 = new TH1F("hit_edep_layer8", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e);//5000,0,50000 - h_trackerhit_time = new TH1F("trackerhit_time", ";Time (ns);Events" ,200000,0,20); //-0.2 - 0.5 - h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,200000,0,20); - h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,200000,0,20); - h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,200000,0,20); - h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,200000,0,20); - h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,200000,0,20); - h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,200000,0,20); - h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,200000,0,20); - h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,200000,0,20); - h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,200000,0,20); + h_trackerhit_time = new TH1F("trackerhit_time", ";Time (ns);Events" ,200,-0.2,0.5); //-0.2 - 0.5 + h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,200,-0.2,0.5); //,200000,0,20 + h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,200,-0.2,0.5); + h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,200,-0.2,0.5); + h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,200,-0.2,0.5); + h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,200,-0.2,0.5); + h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,200,-0.2,0.5); + h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,200,-0.2,0.5); + h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,200,-0.2,0.5); + h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,200,-0.2,0.5); //number of hits per cluster h_thclen = new TH1F("thclen", ";Number of Hit Constituents; Events", 50, 0, 50); //Total number of hit constituents @@ -164,20 +174,21 @@ ClusterHists::ClusterHists() h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 50, 0, 50); //number of hits per cluster for hit clusters > 15: - h_thclen_cut = new TH1F("thclen_cut", ";Number of Hit Constituents; Events", 50, 15, 65); //Total number of hit constituents + h_thclen_cut = new TH1F("thclen_cut", ";Number of Hit Constituents; Events", 100, 15, 115); //Total number of hit constituents //number of hits per cluster per layer: - h_thclen_layer0_cut = new TH1F("thclen_layer0_cut", ";Number of Hit Constituents; Events", 50, 15, 65); - h_thclen_layer1_cut = new TH1F("thclen_layer1_cut", ";Number of Hit Constituents; Events", 50, 15, 65); - h_thclen_layer2_cut = new TH1F("thclen_layer2_cut", ";Number of Hit Constituents; Events", 50, 15, 65); - h_thclen_layer3_cut = new TH1F("thclen_layer3_cut", ";Number of Hit Constituents; Events", 50, 15, 65); - h_thclen_layer4_cut = new TH1F("thclen_layer4_cut", ";Number of Hit Constituents; Events", 50, 15, 65); - h_thclen_layer5_cut = new TH1F("thclen_layer5_cut", ";Number of Hit Constituents; Events", 50, 15, 65); - h_thclen_layer6_cut = new TH1F("thclen_layer6_cut", ";Number of Hit Constituents; Events", 50, 15, 65); - h_thclen_layer7_cut = new TH1F("thclen_layer7_cut", ";Number of Hit Constituents; Events", 50, 15, 65); - h_thclen_layer8_cut = new TH1F("thclen_layer8_cut", ";Number of Hit Constituents; Events", 50, 15, 65); + h_thclen_layer0_cut = new TH1F("thclen_layer0_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer1_cut = new TH1F("thclen_layer1_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer2_cut = new TH1F("thclen_layer2_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer3_cut = new TH1F("thclen_layer3_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer4_cut = new TH1F("thclen_layer4_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer5_cut = new TH1F("thclen_layer5_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer6_cut = new TH1F("thclen_layer6_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer7_cut = new TH1F("thclen_layer7_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer8_cut = new TH1F("thclen_layer8_cut", ";Number of Hit Constituents; Events", 100, 15, 115); //2D histogram for all detector layers for Cluster Edep vs Number of Hits per Cluster: - h_cluster_edep_thlen = new TH2F("edep_vs_hitNum" , ";Hits/Cluster; Energy Deposited (GeV)" , 50, 15, 65, edp_binNum,0,edp_rangeMax); + h_cluster_edep_thlen = new TH2F("edep_vs_hitNum" , ";Hits/Cluster; Energy Deposited (GeV)" , 100, 0, 100, edp_binNum,0,edp_rangeMax); + h_cluster_edep_thlen_cut = new TH2F("edep_vs_hitNum_cut" , ";Hits/Cluster; Energy Deposited (GeV)" , 100, 15, 115, edp_binNum,0,edp_rangeMax); //3D HISTO for X vs Y vs Z position in digitized and truth h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); @@ -187,17 +198,17 @@ h_3DPosition_cdigi = new TH3D ("3DPosition_cdigi", "3D Digitized Position;#theta void ClusterHists::fill(const EVENT::TrackerHit* trkhit) { - //Calculate energy deposited + //Calculate energy deposited float EDep = trkhit->getEDep(); float toa = trkhit->getTime(); //time of arrival -- Juliet // Correcting for the propagation time - dd4hep::rec::Vector3D pos = trkhit->getPosition(); + /*dd4hep::rec::Vector3D pos = trkhit->getPosition(); double hitR = pos.r(); double m_beta = 1.0; - double m_time_min = -90.0; //ns - get min and max from the config file - double m_time_max = 90.0; //ns + double tmin = -0.09;//-90.0; //ns - get min and max from the config file + double tmax = 0.15; //90.0; //ns double dt = hitR / (TMath::C() * m_beta / 1e6); - toa -= dt; + toa -= dt;*/ @@ -280,7 +291,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_theta->Fill(incidentTheta); h_cluster_pos->Fill(z,r); h_clusters_by_layer->Fill(layerID); - if (toa > m_time_min && toa < m_time_max) h_trackerhit_time->Fill(toa); + h_trackerhit_time->Fill(toa);//if (toa > tmin && toa < tmax) h_trackerhit_time->Fill(toa); // tracker hit hists h_x->Fill(x); @@ -294,15 +305,16 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) //lcio::TrackerHit *hitTracker = dynamic_cast( rawHits[j] ); //skip events out of the time range -> Correcting for the propagation time - if (toa < m_time_min || toa > m_time_max){ - continue; - } + // if (toa < tmin || toa > tmax){ + // continue; + // } //hits/cluster cut: if(rawHits.size() > 15){ h_thclen_cut->Fill(rawHits.size()); - h_cluster_edep_thlen->Fill(rawHits.size(), EDep); + h_cluster_edep_thlen_cut->Fill(rawHits.size(), EDep); } + h_cluster_edep_thlen->Fill(rawHits.size(), EDep); h_hits_by_layer->Fill(layerID); h_z_r_hits->Fill(z,r); @@ -462,7 +474,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_cluster_edep->Fill(EDep); //NEW 2/19/2025 - // if (toa > m_time_min && toa < m_time_max){ + // if (toa > tmin && toa < tmax){ // if(toa < 0.2e-3){ // h_cluster_edep_Tcut->Fill(EDep); // h_trackerhit_time_Tcut->Fill(toa); From 327e67c8d6a38a2a9352b94b9d28dd8add2d5200 Mon Sep 17 00:00:00 2001 From: Juliet Wright Date: Mon, 23 Jun 2025 15:55:58 -0700 Subject: [PATCH 12/14] update --- src/ClusterHists.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index 83658d9..a2dd3e6 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -202,13 +202,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) float EDep = trkhit->getEDep(); float toa = trkhit->getTime(); //time of arrival -- Juliet // Correcting for the propagation time - /*dd4hep::rec::Vector3D pos = trkhit->getPosition(); + dd4hep::rec::Vector3D pos = trkhit->getPosition(); double hitR = pos.r(); double m_beta = 1.0; double tmin = -0.09;//-90.0; //ns - get min and max from the config file double tmax = 0.15; //90.0; //ns double dt = hitR / (TMath::C() * m_beta / 1e6); - toa -= dt;*/ + toa -= dt; @@ -291,7 +291,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_theta->Fill(incidentTheta); h_cluster_pos->Fill(z,r); h_clusters_by_layer->Fill(layerID); - h_trackerhit_time->Fill(toa);//if (toa > tmin && toa < tmax) h_trackerhit_time->Fill(toa); + if (toa > tmin && toa < tmax) h_trackerhit_time->Fill(toa); // tracker hit hists h_x->Fill(x); @@ -305,9 +305,9 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) //lcio::TrackerHit *hitTracker = dynamic_cast( rawHits[j] ); //skip events out of the time range -> Correcting for the propagation time - // if (toa < tmin || toa > tmax){ - // continue; - // } + if (toa < tmin || toa > tmax){ + continue; + } //hits/cluster cut: if(rawHits.size() > 15){ From dda37c849ae38dc3a1fd78fd8b0b3607825c8f70 Mon Sep 17 00:00:00 2001 From: Juliet Wright Date: Mon, 23 Jun 2025 18:09:28 -0700 Subject: [PATCH 13/14] update --- ClusterShapeAnalysis/ClusterHists.h | 3 - src/ClusterHists.cc | 126 ++++++++-------------------- 2 files changed, 33 insertions(+), 96 deletions(-) diff --git a/ClusterShapeAnalysis/ClusterHists.h b/ClusterShapeAnalysis/ClusterHists.h index 7267e07..6e3f1e4 100644 --- a/ClusterShapeAnalysis/ClusterHists.h +++ b/ClusterShapeAnalysis/ClusterHists.h @@ -118,7 +118,6 @@ class ClusterHists TH2* h_z_r_vx; TH2* h_x_y_vx; -<<<<<<< HEAD //time and edep cut for all layers -- juliet TH1* h_cluster_edep_Tcut; TH1* h_cluster_edep_Tcut_layer0; @@ -203,6 +202,4 @@ class ClusterHists TH3* h_3DPosition_digi; TH3* h_3DPosition_cdigi; -======= ->>>>>>> main }; diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index a9daa45..3c48845 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -26,26 +26,16 @@ using namespace std; ClusterHists::ClusterHists() { -<<<<<<< HEAD //Calculate the MPV scaling - float mpv = 74e-6; //GeV + float mpv = 19e-6; //GeV float edp_rangeMax = 10 * mpv; //GeV //float edp_binWidth = 20e-7; //[GeV] = 2000eV, each bin has a width of 2000 eV - float edp_binNum = 60; //edp_rangeMax/edp_binWidth; //bin number will be the same for electrons and GeV units + float edp_binNum = 200; //edp_rangeMax/edp_binWidth; //bin number will be the same for electrons and GeV units //3.7 eV = 1 e, ou, 3.7e-9 GeV = 1e float edp_rangeMax_e = 2 * mpv / (3.7e-9); //range in electrons float edp_binNum_e = 5000; //10*edp_binNum; - h_size_theta_y = new TH2F("cluster_size_vs_theta_y" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); - h_size_theta_x = new TH2F("cluster_size_vs_theta_x" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); - h_size_theta_tot = new TH2F("cluster_size_vs_theta_tot" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 11, -0.5, 10.5 ); - h_size_r_tot = new TH2F("cluster_size_vs_R_tot" , ";Cluster R (x^2+y^2)^(1/2) (mm); Cluster size" , 100, 20, 120, 11, -0.5, 10.5 ); - h_size_r_tot_0 = new TH2F("cluster_size_vs_R_tot_0" , ";Cluster R (x^2+y^2)^(1/2) (mm); Cluster size" , 100, 20, 120, 11, -0.5, 10.5 ); - h_size_r_tot_1 = new TH2F("cluster_size_vs_R_tot_1" , ";Cluster R (x^2+y^2)^(1/2) (mm); Cluster size" , 100, 20, 120, 11, -0.5, 10.5 ); - h_size_r_tot_2 = new TH2F("cluster_size_vs_R_tot_2" , ";Cluster R (x^2+y^2)^(1/2) (mm); Cluster size" , 100, 20, 120, 11, -0.5, 10.5 ); - h_size_r_tot_3 = new TH2F("cluster_size_vs_R_tot_3" , ";Cluster R (x^2+y^2)^(1/2) (mm); Cluster size" , 100, 20, 120, 11, -0.5, 10.5 ); -======= h_size_theta_y = new TH2F("cluster_size_vs_theta_y" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 31, -0.5, 30.5 ); h_size_theta_x = new TH2F("cluster_size_vs_theta_x" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 31, -0.5, 30.5 ); h_size_theta_tot = new TH2F("cluster_size_vs_theta_tot" , ";Cluster #theta; Cluster size" , 100, 0, 3.14, 31, -0.5, 30.5 ); @@ -81,7 +71,6 @@ ClusterHists::ClusterHists() h_size_r_tot_1 = new TH2F("cluster_size_vs_R_tot_1" , ";Cluster R (x^2+y^2)^(1/2) (mm); Cluster size" , 100, 20, 120, 31, -0.5, 30.5 ); h_size_r_tot_2 = new TH2F("cluster_size_vs_R_tot_2" , ";Cluster R (x^2+y^2)^(1/2) (mm); Cluster size" , 100, 20, 120, 31, -0.5, 30.5 ); h_size_r_tot_3 = new TH2F("cluster_size_vs_R_tot_3" , ";Cluster R (x^2+y^2)^(1/2) (mm); Cluster size" , 100, 20, 120, 31, -0.5, 30.5 ); ->>>>>>> main h_cluster_pos = new TH2F("cluster_position" , ";z; r" , 100, -500, 500, 100, 0, 200); h_cluster_pos_0 = new TH2F("cluster_position_0" , ";z; r" , 100, -500, 500, 100, 0, 200); h_cluster_pos_1 = new TH2F("cluster_position_1" , ";z; r" , 100, -500, 500, 100, 0, 200); @@ -90,45 +79,30 @@ ClusterHists::ClusterHists() h_clusters_by_layer = new TH1F("numClusters_by_layer" , ";Layer Index; Number of Clusters",8,0,8); h_hits_by_layer = new TH1F("numhits_by_layer" , ";Layer Index; Number of Hits",8,0,8); h_theta = new TH1F("theta" , ";Theta;Number of Clusters" ,100,0,3.15); -<<<<<<< HEAD + h_cluster_edep = new TH1F("Clusters_edep" , ";Energy Deposited (GeV);Clusters" ,edp_binNum,0,edp_rangeMax); h_hit_edep = new TH1F("Hits_edep" , ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e);//5000, 0, 50000 Change JULIET - h_edep_r = new TH2F("edep_vs_r" , ";Cluster R (x^2+y^2)^(1/2) (mm); Energy Deposited (GeV)" , 100, 20, 120, 100, 0, 0.002 ); - h_edep_cluster = new TH2F("edep_vs_cluster_size" , "; Energy Deposited (GeV); Total Cluster Size" ,100, 0, 0.002, 100, -0.5, 99.5 ); h_toa_edepCluster = new TH2F("toa_vs_edepCluster", "; Time of Arrival [ns];Energy Deposited [GeV]", 100, 0, 10, 100, 0, 0.0005); //--JULIET // Create position histograms for tracker hits int numbins_all = 1000; //change this for 10 mm bins - int numbins_r = 160; //for 10 mm bins - int numbins_z = 500; //for 10 mm bins -======= - h_cluster_edep = new TH1F("Clusters_edep" , ";Energy Deposited (GeV);Clusters" ,100,0,0.0005); + //h_cluster_edep = new TH1F("Clusters_edep" , ";Energy Deposited (GeV);Clusters" ,100,0,0.0005); h_cluster_edep_BX = new TH1F("Clusters_edep_BX" , ";Energy Deposited (GeV);Clusters/BX" ,100,0,0.0005); - h_hit_edep = new TH1F("Hits_edep" , ";Deposited charge (electrons);Hits" ,5000,0,50000); + //h_hit_edep = new TH1F("Hits_edep" , ";Deposited charge (electrons);Hits" ,5000,0,50000); h_edep_r = new TH2F("edep_vs_r" , ";Cluster R (x^2+y^2)^(1/2) (mm); Energy Deposited (GeV)" , 100, 20, 120, 100, 0, 0.002 ); h_edep_cluster = new TH2F("edep_vs_cluster_size" , "; Energy Deposited (GeV); Total Cluster Size" ,100, 0, 0.002, 100, -0.5, 99.5 ); h_avgHits = new TH1F("nHitsperCluster", ";Number of Hits / Cluster; Clusters",20,0,20); h_sysID = new TH1F("systemID", ";System ID; Number of Clusters",20,0,20); - h_cluster_timing = new TH1F("cluster_timing", "Time of arrival of clusters [ns]", 200, -1, 1); + h_cluster_timing = new TH1F("cluster_timing", "Time of arrival of clusters [ns]", 2000, -1, 1); h_hit_timing = new TH1F("hit_timing", "Time of arrival of hits [ns]", 200, -1, 1); // Create position histograms for tracker hits int numbins_z = 1000; int numbins_r = 800; ->>>>>>> main int rmin_all = 0; int rmax_all = 1600; int zmin_all = -2500; int zmax_all = 2500; -<<<<<<< HEAD - h_x = new TH1F("x " , ";x ; Num Hits" , numbins_r, -rmax_all, rmax_all); //mm - h_y = new TH1F("y " , ";y ; Num Hits" , numbins_r, -rmax_all, rmax_all); - h_z = new TH1F("z " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); - h_r = new TH1F("r " , ";r ; Num Hits" , numbins_r, rmin_all, rmax_all); - h_z_r = new TH2F("z_r" , ";z_r ; r" , numbins_z, zmin_all, zmax_all, numbins_r, rmin_all, rmax_all);//numbins_all/5, zmin_all, zmax_all, numbins_all/10, rmin_all, rmax_all); - h_x_y = new TH2F("x_y" , ";x_y ; r" , numbins_r, -rmax_all, rmax_all, numbins_r, -rmax_all, rmax_all); - h_z_r_hits = new TH2F("z_r_hits" , ";z_r ; r" , numbins_z, zmin_all, zmax_all, numbins_r, rmin_all, rmax_all);//numbins_all/5, zmin_all, zmax_all, numbins_all/10, rmin_all, rmax_all); -======= h_x = new TH1F("x " , ";x ; Num Hits" , numbins_r, -rmax_all, rmax_all); h_y = new TH1F("y " , ";y ; Num Hits" , numbins_r, -rmax_all, rmax_all); h_z = new TH1F("z " , ";z ; Num Hits" , 5000, zmin_all, zmax_all); @@ -136,7 +110,6 @@ ClusterHists::ClusterHists() h_z_r = new TH2F("z_r" , ";z_r ; r" , numbins_z, zmin_all, zmax_all, numbins_r, rmin_all, rmax_all); h_x_y = new TH2F("x_y" , ";x_y ; r" , numbins_r, -rmax_all, rmax_all, numbins_r, -rmax_all, rmax_all); h_z_r_hits = new TH2F("z_r_hits" , ";z_r ; r" , numbins_z, zmin_all, zmax_all, numbins_z, rmin_all, rmax_all); ->>>>>>> main h_x_y_hits = new TH2F("x_y_hits" , ";x_y ; r" , numbins_r, -rmax_all, rmax_all, numbins_r, -rmax_all, rmax_all); h_z_layer0 = new TH1F("hits_vs_z_layer0 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); h_z_layer1 = new TH1F("hits_vs_z_layer1 " , ";z ; Num Hits" , numbins_z, zmin_all, zmax_all); @@ -213,16 +186,16 @@ ClusterHists::ClusterHists() h_hit_edep_layer7 = new TH1F("hit_edep_layer7", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e);//5000,0,50000 h_hit_edep_layer8 = new TH1F("hit_edep_layer8", ";Deposited charge (electrons);Hits" ,edp_binNum_e,0,edp_rangeMax_e);//5000,0,50000 - h_trackerhit_time = new TH1F("trackerhit_time", ";Time (ns);Events" ,200,-0.2,0.5); //-0.2 - 0.5 - h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,200,-0.2,0.5); //,200000,0,20 - h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,200,-0.2,0.5); - h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,200,-0.2,0.5); - h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,200,-0.2,0.5); - h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,200,-0.2,0.5); - h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,200,-0.2,0.5); - h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,200,-0.2,0.5); - h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,200,-0.2,0.5); - h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,200,-0.2,0.5); + h_trackerhit_time = new TH1F("trackerhit_time", ";Time (ns);Events" ,2000,-0.1,10); //-0.2 - 0.5 + h_trackerhit_time_layer0 = new TH1F("trackerhit_time_layer0", ";Time (ns);Events" ,2000,-0.1,10); //,200000,0,20 + h_trackerhit_time_layer1 = new TH1F("trackerhit_time_layer1", ";Time (ns);Events" ,2000,-0.1,10); + h_trackerhit_time_layer2 = new TH1F("trackerhit_time_layer2", ";Time (ns);Events" ,2000,-0.1,10); + h_trackerhit_time_layer3 = new TH1F("trackerhit_time_layer3", ";Time (ns);Events" ,2000,-0.1,10); + h_trackerhit_time_layer4 = new TH1F("trackerhit_time_layer4", ";Time (ns);Events" ,2000,-0.1,10); + h_trackerhit_time_layer5 = new TH1F("trackerhit_time_layer5", ";Time (ns);Events" ,2000,-0.1,10); + h_trackerhit_time_layer6 = new TH1F("trackerhit_time_layer6", ";Time (ns);Events" ,2000,-0.1,10); + h_trackerhit_time_layer7 = new TH1F("trackerhit_time_layer7", ";Time (ns);Events" ,2000,-0.1,10); + h_trackerhit_time_layer8 = new TH1F("trackerhit_time_layer8", ";Time (ns);Events" ,2000,-0.1,10); //number of hits per cluster h_thclen = new TH1F("thclen", ";Number of Hit Constituents; Events", 50, 0, 50); //Total number of hit constituents @@ -238,21 +211,21 @@ ClusterHists::ClusterHists() h_thclen_layer8 = new TH1F("thclen_layer8", ";Number of Hit Constituents; Events", 50, 0, 50); //number of hits per cluster for hit clusters > 15: - h_thclen_cut = new TH1F("thclen_cut", ";Number of Hit Constituents; Events", 100, 15, 115); //Total number of hit constituents + h_thclen_cut = new TH1F("thclen_cut", ";Number of Hit Constituents; Events", 200, 15, 215); //Total number of hit constituents //number of hits per cluster per layer: - h_thclen_layer0_cut = new TH1F("thclen_layer0_cut", ";Number of Hit Constituents; Events", 100, 15, 115); - h_thclen_layer1_cut = new TH1F("thclen_layer1_cut", ";Number of Hit Constituents; Events", 100, 15, 115); - h_thclen_layer2_cut = new TH1F("thclen_layer2_cut", ";Number of Hit Constituents; Events", 100, 15, 115); - h_thclen_layer3_cut = new TH1F("thclen_layer3_cut", ";Number of Hit Constituents; Events", 100, 15, 115); - h_thclen_layer4_cut = new TH1F("thclen_layer4_cut", ";Number of Hit Constituents; Events", 100, 15, 115); - h_thclen_layer5_cut = new TH1F("thclen_layer5_cut", ";Number of Hit Constituents; Events", 100, 15, 115); - h_thclen_layer6_cut = new TH1F("thclen_layer6_cut", ";Number of Hit Constituents; Events", 100, 15, 115); - h_thclen_layer7_cut = new TH1F("thclen_layer7_cut", ";Number of Hit Constituents; Events", 100, 15, 115); - h_thclen_layer8_cut = new TH1F("thclen_layer8_cut", ";Number of Hit Constituents; Events", 100, 15, 115); + h_thclen_layer0_cut = new TH1F("thclen_layer0_cut", ";Number of Hit Constituents; Events", 200, 15, 215); + h_thclen_layer1_cut = new TH1F("thclen_layer1_cut", ";Number of Hit Constituents; Events", 200, 15, 215); + h_thclen_layer2_cut = new TH1F("thclen_layer2_cut", ";Number of Hit Constituents; Events", 200, 15, 215); + h_thclen_layer3_cut = new TH1F("thclen_layer3_cut", ";Number of Hit Constituents; Events", 200, 15, 215); + h_thclen_layer4_cut = new TH1F("thclen_layer4_cut", ";Number of Hit Constituents; Events", 200, 15, 215); + h_thclen_layer5_cut = new TH1F("thclen_layer5_cut", ";Number of Hit Constituents; Events", 200, 15, 215); + h_thclen_layer6_cut = new TH1F("thclen_layer6_cut", ";Number of Hit Constituents; Events", 200, 15, 215); + h_thclen_layer7_cut = new TH1F("thclen_layer7_cut", ";Number of Hit Constituents; Events", 200, 15, 215); + h_thclen_layer8_cut = new TH1F("thclen_layer8_cut", ";Number of Hit Constituents; Events", 200, 15, 215); //2D histogram for all detector layers for Cluster Edep vs Number of Hits per Cluster: h_cluster_edep_thlen = new TH2F("edep_vs_hitNum" , ";Hits/Cluster; Energy Deposited (GeV)" , 100, 0, 100, edp_binNum,0,edp_rangeMax); - h_cluster_edep_thlen_cut = new TH2F("edep_vs_hitNum_cut" , ";Hits/Cluster; Energy Deposited (GeV)" , 100, 15, 115, edp_binNum,0,edp_rangeMax); + h_cluster_edep_thlen_cut = new TH2F("edep_vs_hitNum_cut" , ";Hits/Cluster; Energy Deposited (GeV)" , 200, 15, 215, edp_binNum,0,edp_rangeMax); //3D HISTO for X vs Y vs Z position in digitized and truth h_3DPosition_digi = new TH3F("3DPosition_digi", "3D Digitized Position;x[mm];y[mm];z[mm]", 100, 0, 1600, 100, 0, 1600, 100, -2500, 2500); @@ -266,13 +239,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) float EDep = trkhit->getEDep(); float toa = trkhit->getTime(); //time of arrival -- Juliet // Correcting for the propagation time - dd4hep::rec::Vector3D pos = trkhit->getPosition(); + /*dd4hep::rec::Vector3D pos = trkhit->getPosition(); double hitR = pos.r(); double m_beta = 1.0; double tmin = -0.09;//-90.0; //ns - get min and max from the config file double tmax = 0.15; //90.0; //ns double dt = hitR / (TMath::C() * m_beta / 1e6); - toa -= dt; + toa -= dt;*/ @@ -360,11 +333,8 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_theta->Fill(incidentTheta); h_cluster_pos->Fill(z,r); h_clusters_by_layer->Fill(layerID); -<<<<<<< HEAD - if (toa > tmin && toa < tmax) h_trackerhit_time->Fill(toa); -======= + h_trackerhit_time->Fill(toa); //if (toa > tmin && toa < tmax) h_trackerhit_time->Fill(toa); h_avgHits->Fill(cluster_size_tot); ->>>>>>> main // tracker hit hists h_x->Fill(x); @@ -378,9 +348,9 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) //lcio::TrackerHit *hitTracker = dynamic_cast( rawHits[j] ); //skip events out of the time range -> Correcting for the propagation time - if (toa < tmin || toa > tmax){ - continue; - } + // if (toa < tmin || toa > tmax){ + // continue; + // } //hits/cluster cut: if(rawHits.size() > 15){ @@ -400,7 +370,6 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) if(layerID==0){ h_z_layer0->Fill(z); h_r_layer0->Fill(r); -<<<<<<< HEAD //setting cluster and time of arrive with if j == 0 becuase we do not want fill the cluster edep and toa for clusters multiple times if(j==0){ h_cluster_edep_layer0->Fill(EDep); @@ -417,16 +386,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) //std::cout << "tracker hit time: " << toa << ", and edep cluster: "<< EDep <<", and edep hit : " << hitConstituent->getEDep() << ", with hit num: " << rawHits.size() << std::endl; -======= h_size_theta_tot_0->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_0->Fill(incidentTheta, cluster_size_x); h_size_theta_y_0->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } if(layerID==1){ h_z_layer1->Fill(z); h_r_layer1->Fill(r); -<<<<<<< HEAD if(j == 0){ h_cluster_edep_layer1->Fill(EDep); h_trackerhit_time_layer1->Fill(toa); //time of arrive in layer 2 -- Juliet @@ -438,16 +404,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) // } } h_hit_edep_layer1->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet -======= h_size_theta_tot_1->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_1->Fill(incidentTheta, cluster_size_x); h_size_theta_y_1->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } if(layerID==2){ h_z_layer2->Fill(z); h_r_layer2->Fill(r); -<<<<<<< HEAD if(j==0){ h_cluster_edep_layer2->Fill(EDep); h_trackerhit_time_layer2->Fill(toa); @@ -460,16 +423,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) } h_hit_edep_layer2->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet -======= h_size_theta_tot_2->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_2->Fill(incidentTheta, cluster_size_x); h_size_theta_y_2->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } if(layerID==3){ h_z_layer3->Fill(z); h_r_layer3->Fill(r); -<<<<<<< HEAD if(j==0){ h_cluster_edep_layer3->Fill(EDep); h_trackerhit_time_layer3->Fill(toa); @@ -481,16 +441,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) // } } h_hit_edep_layer3->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet -======= h_size_theta_tot_3->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_3->Fill(incidentTheta, cluster_size_x); h_size_theta_y_3->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } if(layerID==4){ h_z_layer4->Fill(z); h_r_layer4->Fill(r); -<<<<<<< HEAD if(j==0){ h_cluster_edep_layer4->Fill(EDep); h_trackerhit_time_layer4->Fill(toa); @@ -502,16 +459,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) // } } h_hit_edep_layer4->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet -======= h_size_theta_tot_4->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_4->Fill(incidentTheta, cluster_size_x); h_size_theta_y_4->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } if(layerID==5){ h_z_layer5->Fill(z); h_r_layer5->Fill(r); -<<<<<<< HEAD if(j==0){ h_cluster_edep_layer5->Fill(EDep); h_trackerhit_time_layer5->Fill(toa); @@ -523,16 +477,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) // } } h_hit_edep_layer5->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet -======= h_size_theta_tot_5->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_5->Fill(incidentTheta, cluster_size_x); h_size_theta_y_5->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } if(layerID==6){ h_z_layer6->Fill(z); h_r_layer6->Fill(r); -<<<<<<< HEAD if(j==0){ h_cluster_edep_layer6->Fill(EDep); h_trackerhit_time_layer6->Fill(toa); @@ -544,16 +495,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) // } } h_hit_edep_layer6->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet -======= h_size_theta_tot_6->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_6->Fill(incidentTheta, cluster_size_x); h_size_theta_y_6->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } if(layerID==7){ h_z_layer7->Fill(z); h_r_layer7->Fill(r); -<<<<<<< HEAD if(j==0){ h_cluster_edep_layer7->Fill(EDep); h_trackerhit_time_layer7->Fill(toa); @@ -565,16 +513,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) // } } h_hit_edep_layer7->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet -======= h_size_theta_tot_7->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_7->Fill(incidentTheta, cluster_size_x); h_size_theta_y_7->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } if(layerID==8){ h_z_layer8->Fill(z); h_r_layer8->Fill(r); -<<<<<<< HEAD if(j==0){ h_cluster_edep_layer8->Fill(EDep); h_trackerhit_time_layer8->Fill(toa); @@ -582,11 +527,9 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) if(rawHits.size() > 15) h_thclen_layer8_cut->Fill(rawHits.size()); } h_hit_edep_layer8->Fill(hitConstituent->getEDep()); //energy in electrons -- Juliet -======= h_size_theta_tot_8->Fill(incidentTheta, cluster_size_tot); h_size_theta_x_8->Fill(incidentTheta, cluster_size_x); h_size_theta_y_8->Fill(incidentTheta, cluster_size_y); ->>>>>>> main } } @@ -600,7 +543,6 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) h_x_y_vx->Fill(x,y); h_cluster_edep->Fill(EDep); -<<<<<<< HEAD //NEW 2/19/2025 // if (toa > tmin && toa < tmax){ // if(toa < 0.2e-3){ @@ -608,9 +550,7 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) // h_trackerhit_time_Tcut->Fill(toa); // } // } -======= h_cluster_edep_BX->Fill(EDep); ->>>>>>> main h_edep_r->Fill(r,EDep); h_edep_cluster->Fill(EDep,cluster_size_tot); From 44dad496c0365727e2aa239a58adb996324bf671 Mon Sep 17 00:00:00 2001 From: Juliet Wright Date: Mon, 30 Jun 2025 16:50:39 -0700 Subject: [PATCH 14/14] Fixing timing plots --- src/ClusterHists.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ClusterHists.cc b/src/ClusterHists.cc index 3c48845..bc8b1a7 100644 --- a/src/ClusterHists.cc +++ b/src/ClusterHists.cc @@ -239,13 +239,13 @@ void ClusterHists::fill(const EVENT::TrackerHit* trkhit) float EDep = trkhit->getEDep(); float toa = trkhit->getTime(); //time of arrival -- Juliet // Correcting for the propagation time - /*dd4hep::rec::Vector3D pos = trkhit->getPosition(); + dd4hep::rec::Vector3D pos = trkhit->getPosition(); double hitR = pos.r(); double m_beta = 1.0; - double tmin = -0.09;//-90.0; //ns - get min and max from the config file - double tmax = 0.15; //90.0; //ns + // double tmin = -0.09;//-90.0; //ns - get min and max from the config file + // double tmax = 0.15; //90.0; //ns double dt = hitR / (TMath::C() * m_beta / 1e6); - toa -= dt;*/ + toa -= dt;