@@ -200,7 +200,8 @@ def __init__(self,name="HcalVetoResults") :
200200 self .build1DHistogram ('num_valid_hits' ,
201201 'Total number of valid HCAL hits' , 500 , - 0.5 , 499.5 )
202202 self .build1DHistogram ('max_section' ,
203- 'Maximal PE hit section' , 5 , - 0.5 , 4.5 )
203+ 'Maximal PE hit section' ,
204+ ['Back' , 'Top' , 'Bottom' , 'Right' , 'Left' ])
204205 self .build1DHistogram ('max_pos_z' ,
205206 'Maximal PE hit postion Z [mm]' , 6000 , 200. , 6200 )
206207 self .build1DHistogram ('veto_pass' ,
@@ -646,10 +647,11 @@ def __init__(self) :
646647 # elements are hydrogen and carbon (for trigger pads) and tungsten target
647648 self .build1DHistogram ('dark_brem_element' ,
648649 'Element in which Dark Brem Occurred' ,
649- 12 , 0 , 12 )
650+ ["did not happen" , "H 1" , "C 6" , "O 8" , "Na 11" , "Si 14" ,
651+ "Ca 20" , "Cu 29" , "Y 39" , "Lu 71" , "W 74" , "unlisted" ])
650652 self .build1DHistogram ('dark_brem_material' ,
651653 'Material in which Dark Brem Occurred' ,
652- 8 , 0 , 8 )
654+ [ "Unknown" , "C" , "PCB" , "Glue" , "Si" , "Al" , "W / LYSO" , "PVT" ] )
653655
654656
655657class HCalRawDigi (ldmxcfg .Analyzer ) :
@@ -736,17 +738,56 @@ def __init__(self,name='PN', count_light_ions=True) :
736738
737739 self .sim_particles_passname = ''
738740
741+ event_type_labels = [
742+ "Nothing hard" , # 0
743+ "1 n" , # 1
744+ "2 n" , # 2
745+ "#geq 3 n" , # 3
746+ "1 #pi" , # 4
747+ "2 #pi" , # 5
748+ "1 #pi_{0}" , # 6
749+ "1 #pi A" , # 7
750+ "1 #pi 2 A" , # 8
751+ "2 #pi A" , # 9
752+ "1 #pi_{0} A" , # 10
753+ "1 #pi_{0} 2 A" , # 11
754+ "#pi_{0} #pi A" , # 12
755+ "1 p" , # 13
756+ "2 p" , # 14
757+ "pn" , # 15
758+ "K^{0}_{L} X" , # 16
759+ "K X" , # 17
760+ "K^{0}_{S} X" , # 18
761+ "exotics" , # 19
762+ "multi-body" , # 20
763+ ]
764+ event_type_compact_labels = [
765+ "1 n" , # 0
766+ "K#pm X" , # 1
767+ "1 K^{0}" , # 2
768+ "2 n" , # 3
769+ "Soft" , # 4
770+ "Other" , # 5
771+ ]
739772
740773 self .count_light_ions = count_light_ions
741- self .build1DHistogram ("event_type" , "" , 24 , - 1 , 23 )
742- self .build1DHistogram ("event_type_500mev" , "" , 24 , - 1 , 23 )
743- self .build1DHistogram ("event_type_2000mev" , "" , 24 , - 1 , 23 )
744- self .build1DHistogram ("event_type_compact" , "" , 8 , - 1 , 7 )
745- self .build1DHistogram ("event_type_compact_500mev" , "" , 8 , - 1 , 7 )
746- self .build1DHistogram ("event_type_compact_2000mev" , "" , 8 , - 1 , 7 )
747- self .build1DHistogram ("1n_event_type" , "" , 7 , - 1 , 6 )
748- self .build1DHistogram ("pn_vertex_volume" , "" , 13 , - 0.5 , 12.5 )
749- self .build1DHistogram ("pn_interaction_material" , "" , 10 , - 0.5 , 9.5 )
774+ self .build1DHistogram ("event_type" , "" , event_type_labels )
775+ self .build1DHistogram ("event_type_500mev" , "" , event_type_labels )
776+ self .build1DHistogram ("event_type_2000mev" , "" , event_type_labels )
777+ self .build1DHistogram ("event_type_compact" , "" , event_type_compact_labels )
778+ self .build1DHistogram ("event_type_compact_500mev" , "" , event_type_compact_labels )
779+ self .build1DHistogram ("event_type_compact_2000mev" , "" , event_type_compact_labels )
780+ self .build1DHistogram ("1n_event_type" , "" , [
781+ "nn" , "pn" , "#pi^{+}n" , "#pi^{0}n" , "other"
782+ ])
783+ self .build1DHistogram ("pn_vertex_volume" , "" , [
784+ "Didn't happen" , "Else" , "W Cooling" , "C Cooling" , "PCB" ,
785+ "CarbonBasePlate" , "Absorber" , "Sensor" , "Glue" , "Motherboard"
786+ ])
787+ self .build1DHistogram ("pn_interaction_material" , "" , [
788+ "Didn't happen" , "Else" , "Si" , "W" , "FR4" , "Steel" , "Epoxy" ,
789+ "PVT" , "Glue" , "Air"
790+ ])
750791 self .build1DHistogram ("pn_particle_mult" , "Photo-nuclear Multiplicity" , 200 , 0 , 200 )
751792 self .build1DHistogram ("pn_neutron_mult" , "Photo-nuclear Neutron Multiplicity" , 200 ,0 , 200 )
752793 self .build1DHistogram ("pn_gamma_energy" , "#gamma Energy [MeV]" , 100 , 0 , 10000 )
@@ -859,7 +900,7 @@ def __init__(self,name='TrkDeDxMassEstFeatures') :
859900 self .build1DHistogram ("mass_estimate_very_low_p_pion" , "Mass Estimate for pions [MeV]" , 20 , 0. , 200. )
860901 self .build1DHistogram ("mass_estimate_very_low_p_kaon" , "Mass Estimate for kaons [MeV]" , 60 , 200. , 800. )
861902 self .build1DHistogram ("mass_estimate_very_low_p_proton" , "Mass Estimate for proton [MeV]" , 40 , 800. , 1200. )
862- self .build1DHistogram ("track_type" , "Track Type" , 3 , 0 , 3 )
903+ self .build1DHistogram ("track_type" , "Track Type" , [ 'Other' , 'Tagger' , 'Recoil' ] )
863904
864905
865906class TrigScintSimDQM (ldmxcfg .Analyzer ) :
@@ -998,21 +1039,43 @@ def __init__(self, name='SampleValidation') :
9981039 self .sim_particles_passname = ''
9991040 self .target_scoring_plane_passname = ''
10001041
1001- # primary histograms
1002- self .build1DHistogram ("primaries_pdgid" , "ID of primary particles" , 20 , 0 , 20 )
1042+ pdgid_bin_labels = [
1043+ "e^{+}" , # 0
1044+ "e^{-}" , # 1
1045+ "#mu^{+}" , # 2
1046+ "#mu^{-}" , # 3
1047+ "#gamma" , # 4
1048+ "p^{+}" , # 5
1049+ "n^{0}" , # 6
1050+ "#pi^{+}" , # 7
1051+ "#pi^{-}" , # 8
1052+ "#pi^{0}" , # 9
1053+ "K^{+}" , # 10
1054+ "K^{-}" , # 11
1055+ "k_{L}" , # 12
1056+ "k_{S}" , # 13
1057+ "light-N" , # 14
1058+ "heavy-N" , # 15
1059+ "#Lambda / #Sigma / #Xi" , # 16
1060+ "A'" , # 17
1061+ "else" ,
1062+ ]
1063+
1064+ #primary histograms
1065+ self .build1DHistogram ("primaries_pdgid" , "ID of primary particles" , pdgid_bin_labels )
10031066 self .build1DHistogram ("primaries_energy" , "Energy of primary particles [MeV]" , 90 , 0 , 9000 ) # range applicable for 4 GeV beam
10041067 self .build2DHistogram ("beam_smear" , "x [mm]" , 30 , - 150 , 150 , "y [mm]" , 30 , - 150 , 150 )
1005- self .build1DHistogram ("primarydaughters_pdgid" , "ID of primary daughters" , 20 , 0 , 20 )
1068+ self .build1DHistogram ("primarydaughters_pdgid" , "ID of primary daughters" , pdgid_bin_labels )
10061069 self .build1DHistogram ("daughterphoton_energy" , "Energy spectrum of all photons from primary [MeV]" , 170 , 0 , 8500 )
10071070
1008- # primary daughter of interest (brem / dark brem) histograms
1009- self .build1DHistogram ("harddaughters_pdgid" , "ID of primary daughters" , 20 , 0 , 20 )
1071+ #primary daughter of interest(brem / dark brem) histograms
1072+ self .build1DHistogram ("harddaughters_pdgid" , "ID of primary daughters" , pdgid_bin_labels )
10101073 self .build1DHistogram ("harddaughters_startZ" , "Start z position of hard primary daughter [mm]" , 100 , - 500 , 500 )
10111074 self .build1DHistogram ("harddaughters_endZ" , "End z position of hard primary daughter [mm]" , 100 , - 500 , 500 )
10121075 self .build1DHistogram ("harddaughters_energy" , "Energy spectrum of hard primary daughter [MeV]" , 130 , 2000 , 8500 )
10131076
1014- # daughters of hard brem histograms
1015- self .build1DHistogram ("hardbremdaughters_pdgid" , "ID of hard brem daughters" , 20 , 0 , 20 )
1077+ #daughters of hard brem histograms
1078+ self .build1DHistogram ("hardbremdaughters_pdgid" , "ID of hard brem daughters" , pdgid_bin_labels )
10161079 self .build1DHistogram ("hardbremdaughters_startZ" , "Start z position of hard brem daughters [mm]" , 200 , - 1000 , 1000 )
10171080 self .build1DHistogram ("hardbremdaughters_endZ" , "End z position of hard brem daughters [mm]" , 70 , - 1000 , 6000 )
10181081 self .build1DHistogram ("hardbremdaughters_energy" , "Energy of hard brem daughters [MeV]" , 170 , 0 , 8500 )
@@ -1053,7 +1116,7 @@ def __init__(self,name='EcalClusterAnalyzer') :
10531116 self .ecal_sim_hit_coll = "EcalSimHits"
10541117 self .ecal_sim_hit_pass = "" #use whatever pass is available
10551118
1056- # Pass name for ecal digis and rec hits
1119+ #Pass name for ecal digis and rec hits
10571120 self .rec_hit_coll_name = 'EcalRecHits'
10581121 self .rec_hit_pass_name = ''
10591122
@@ -1066,9 +1129,10 @@ def __init__(self,name='EcalClusterAnalyzer') :
10661129 self .build1DHistogram ("number_of_clusters_first_layer" , "Number of CLUE clusters on the first layer" , 5 , - 0.5 , 4.5 )
10671130 self .build1DHistogram ("number_of_clusters_per_layer" , "Number of CLUE clusters per layer" , 5 , - 0.5 , 4.5 )
10681131 self .build1DHistogram ("number_of_clusters" , "Total number of CLUE clusters" , 51 , - 0.5 , 50.5 )
1069- self .build1DHistogram ("correctly_predicted_events" , "Correct Cluster Count" , 3 , 0. , 3. )
1132+ self .build1DHistogram ("correctly_predicted_events" , "Correct Cluster Count" ,
1133+ ["Underpredicted" , "Correct" , "Overpredicted" ])
10701134
1071- # Need to mod for more than two electrons
1135+ #Need to mod for more than two electrons
10721136 self .build1DHistogram ("ancestors" , "Ancestors of particles" , 4 , 0. , 4. )
10731137
10741138 self .build1DHistogram ("same_ancestor" , "Percentage of hits in cluster coming from the electron that produced most hits" , 21 , 0. , 105. )
0 commit comments