diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMainMon.h b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMainMon.h index 08954483b8e91c9a12c54021c638b0b2c0f2ad81..ae0f61151a9100a0ed9156f6ae334acceb65cc63 100755 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMainMon.h +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMainMon.h @@ -131,6 +131,8 @@ class PixelMainMon:public ManagedMonitorToolBase int ParseDetailsString(std::string & detailsMod); bool OnTrack(Identifier id, bool isCluster); int getErrorCategory(int bit, bool isibl); + std::string makeHistname(std::string set, bool ontrk); + std::string makeHisttitle(std::string set, std::string axis, bool ontrk); StatusCode BookClustersMon(void); StatusCode BookClustersLumiBlockMon(void); @@ -252,6 +254,7 @@ class PixelMainMon:public ManagedMonitorToolBase bool m_doLumiBlock; //store module status, error etc for each lumiblock bool m_doRefresh; bool isFirstBook; + bool m_doDegFactorMap; bool m_doHeavyIonMon; //modifications for heavy ion monitoring @@ -265,6 +268,7 @@ class PixelMainMon:public ManagedMonitorToolBase bool m_isNewRun; bool m_isNewLumiBlock; bool m_newLowStatInterval; + TH1F_LW* m_hit_ToT_dbm[PixLayerDBM::COUNT]; double m_occupancy_cut; @@ -279,7 +283,7 @@ class PixelMainMon:public ManagedMonitorToolBase TH1F_LW* m_mu_vs_lumi; PixelMonModulesProf* m_hiteff_mod; - TH1F_LW* m_events_per_lumi; + TH1F_LW* m_events_per_lumi; TProfile_LW* m_hits_per_lumi; TProfile_LW* m_avgocc_per_lumi; TProfile_LW* m_avgocc_ratioIBLB0_per_lumi; @@ -287,8 +291,8 @@ class PixelMainMon:public ManagedMonitorToolBase TProfile_LW* m_hits_per_lumi_mod[PixLayer::COUNT]; TProfile_LW* m_avgocc_per_lumi_mod[PixLayer::COUNT]; - TH2F_LW* m_maxocc_per_lumi_mod[PixLayer::COUNT]; - TH1F_LW* m_nlargeevt_per_lumi_mod[PixLayer::COUNT]; + TH2F_LW* m_maxocc_per_lumi_mod[PixLayer::COUNT]; + TH1F_LW* m_nlargeevt_per_lumi_mod[PixLayer::COUNT]; //TH1F_LW* m_hit_ToT[PixLayerIBL2D3D::COUNT]; TH1F_LW* m_hit_ToT[PixLayerIBL2D3DDBM::COUNT]; @@ -297,20 +301,7 @@ class PixelMainMon:public ManagedMonitorToolBase TH1F_LW* m_hit_ToT_tmp_mod[PixLayer::COUNT]; TProfile2D_LW* m_ToT_etaphi_mod[PixLayer::COUNT]; - //TH2F_LW* m_ToT_vs_eta_IBL; - //TH2F_LW* m_ToT_vs_eta_B0; - //TH2F_LW* m_ToT_vs_eta_B1; - //TH2F_LW* m_ToT_vs_eta_B2; - //TH2F_LW* m_ToT_vs_phi_IBL; - //TH2F_LW* m_ToT_vs_phi_B0; - //TH2F_LW* m_ToT_vs_phi_B1; - //TH2F_LW* m_ToT_vs_phi_B2; - TH2F_LW* m_nlowToT_vs_clussize_IBL; - TH2F_LW* m_nlowToT_vs_clussize_B0; - TH2F_LW* m_nlowToT_vs_clussize_B1; - TH2F_LW* m_nlowToT_vs_clussize_B2; - TH2F_LW* m_nlowToT_vs_clussize_ECC; - TH2F_LW* m_nlowToT_vs_clussize_ECA; + TH2F_LW* m_nlowToT_vs_clussize_mod[PixLayer::COUNT]; TH1I_LW* m_Lvl1ID_PIX; TH1I_LW* m_Lvl1ID_IBL; @@ -321,7 +312,6 @@ class PixelMainMon:public ManagedMonitorToolBase TProfile_LW* m_BCID_Profile; PixelMon2DLumiProfiles* m_Lvl1ID_diff_mod_ATLAS_per_LB; PixelMon2DLumiProfiles* m_Lvl1ID_absdiff_mod_ATLAS_per_LB; - //TH1F_LW* m_Lvl1A_mod[PixLayer::COUNT]; TH1F_LW* m_Lvl1A_mod[PixLayerDBM::COUNT]; TH1F_LW* m_Lvl1A_10min_mod[PixLayer::COUNT]; TH1I_LW* m_Lvl1ID_diff_mod_ATLAS_mod[PixLayer::COUNT]; @@ -329,9 +319,7 @@ class PixelMainMon:public ManagedMonitorToolBase TH2I_LW* m_diff_ROD_BCID; PixelMon2DMaps* m_occupancy; PixelMon2DMaps* m_occupancy_10min; - //PixelMon2DMaps* m_average_occupancy; - PixelMon2DMaps* m_average_pixocc; - PixelMon2DMaps* m_average_pixocc2; + PixelMon2DMapsLW* m_average_pixocc; PixelMon2DMaps* m_hitmap_mon; PixelMon2DMaps* m_hitmap_tmp; PixelMonModules1D* m_FE_chip_hit_summary; @@ -362,14 +350,10 @@ class PixelMainMon:public ManagedMonitorToolBase PixelMonModules2D* m_pixel_noise_map; PixelMonModules1D* m_pixel_occupancy_spectrum; PixelMonModules1D* m_hit_num_mod; - //int m_HitPerEventArray_disksA[48][3]; - //int m_HitPerEventArray_disksC[48][3]; - //int m_HitPerEventArray_lI[14][20]; - //int m_HitPerEventArray_l0[22][13]; - //int m_HitPerEventArray_l1[38][13]; - //int m_HitPerEventArray_l2[52][13]; - - //track histograms + + //----------------- + // track histograms + //----------------- TH1F_LW* m_track_res_phi; TH1F_LW* m_track_pull_phi; TH1F_LW* m_track_res_eta; @@ -382,21 +366,21 @@ class PixelMainMon:public ManagedMonitorToolBase TH1F_LW* m_track_chi2_bcl1_highpt; TH1F_LW* m_track_chi2_bcl0_highpt; TH1F_LW* m_track_chi2_bclgt1_highpt; - TH1F_LW* m_track_clusToT; - TH1F_LW* m_track_qOverP; - TH1F_LW* m_track_qOverP_inv; - TH1F_LW* m_track_pt; - TH1F_LW* m_track_d0; - TH1F_LW* m_track_z0; - TH1F_LW* m_track_phi0; - TH1F_LW* m_track_theta; - TH1F_LW* m_track_eta; + //TH1F_LW* m_track_clusToT; + //TH1F_LW* m_track_qOverP; + //TH1F_LW* m_track_qOverP_inv; + //TH1F_LW* m_track_pt; + //TH1F_LW* m_track_d0; + //TH1F_LW* m_track_z0; + //TH1F_LW* m_track_phi0; + //TH1F_LW* m_track_theta; + //TH1F_LW* m_track_eta; TH1I_LW* m_tracks_per_lumi; TH1F_LW* m_trackRate_per_lumi; TProfile_LW* m_tracksPerEvt_per_lumi; TProfile_LW* m_tracksPerEvtPerMu_per_lumi; - TH2F_LW* m_track_dedx; - TH1F_LW* m_track_mass_dedx; + //TH2F_LW* m_track_dedx; + //TH1F_LW* m_track_mass_dedx; TH2F_LW* m_clustot_vs_pt; TH1F_LW* m_clustot_lowpt; TH1F_LW* m_1hitclustot_lowpt; @@ -406,78 +390,35 @@ class PixelMainMon:public ManagedMonitorToolBase TH1F_LW* m_2hitclustot_highpt; PixelMonModulesProf* m_tsos_hiteff_vs_lumi; - PixelMon2DMaps* m_tsos_hitmap; - PixelMon2DMaps* m_tsos_holemap; - PixelMon2DMaps* m_tsos_outliermap; + PixelMon2DMapsLW* m_tsos_hitmap; + PixelMon2DMapsLW* m_tsos_holemap; + PixelMon2DMapsLW* m_tsos_outliermap; + + TProfile2D_LW* m_degFactorMap; + TProfile_LW* m_degFactorMap_per_lumi; + TProfile2D_LW* m_degFactorMap_eta_per_lumi; + //TProfile2D_LW* m_degFactorMap_phi_per_lumi; //cluster histograms TProfile_LW* m_clusters_per_lumi; TProfile_LW* m_clusters_per_lumi_mod[PixLayer::COUNT]; - TProfile_LW* m_clusters_per_lumi_PIX; TProfile_LW* m_largeclusters_per_lumi; TProfile_LW* m_verylargeclusters_per_lumi; TH1I_LW* m_totalclusters_per_lumi; TH1I_LW* m_totalclusters_per_lumi_mod[PixLayer::COUNT]; TH1I_LW* m_highNclusters_per_lumi; - TH1F_LW* m_cluster_ToT_PIX; - TH1F_LW* m_cluster_ToT_ECA; - TH1F_LW* m_cluster_ToT_IBL; - TH1F_LW* m_cluster_ToT_IBL2D; - TH1F_LW* m_cluster_ToT_IBL3D; - TH1F_LW* m_cluster_ToT_B0; - TH1F_LW* m_cluster_ToT_B1; - TH1F_LW* m_cluster_ToT_B2; - TH1F_LW* m_cluster_ToT_ECC; - TH1F_LW* m_bigcluster_ToT_ECA; - TH1F_LW* m_bigcluster_ToT_IBL; - TH1F_LW* m_bigcluster_ToT_B0; - TH1F_LW* m_bigcluster_ToT_B1; - TH1F_LW* m_bigcluster_ToT_B2; - TH1F_LW* m_bigcluster_ToT_ECC; - TH1F_LW* m_1cluster_ToT_ECA; - TH1F_LW* m_1cluster_ToT_IBL; - TH1F_LW* m_1cluster_ToT_B0; - TH1F_LW* m_1cluster_ToT_B1; - TH1F_LW* m_1cluster_ToT_B2; - TH1F_LW* m_1cluster_ToT_ECC; - TH1F_LW* m_2cluster_ToT_ECA; - TH1F_LW* m_2cluster_ToT_IBL; - TH1F_LW* m_2cluster_ToT_B0; - TH1F_LW* m_2cluster_ToT_B1; - TH1F_LW* m_2cluster_ToT_B2; - TH1F_LW* m_2cluster_ToT_ECC; - TH1F_LW* m_3cluster_ToT_ECA; - TH1F_LW* m_3cluster_ToT_IBL; - TH1F_LW* m_3cluster_ToT_B0; - TH1F_LW* m_3cluster_ToT_B1; - TH1F_LW* m_3cluster_ToT_B2; - TH1F_LW* m_3cluster_ToT_ECC; + TH1F_LW* m_cluster_ToT1d_mod[PixLayerIBL2D3D::COUNT]; + TH1F_LW* m_1cluster_ToT_mod[PixLayer::COUNT]; + TH1F_LW* m_2cluster_ToT_mod[PixLayer::COUNT]; + TH1F_LW* m_3cluster_ToT_mod[PixLayer::COUNT]; + TH1F_LW* m_bigcluster_ToT_mod[PixLayer::COUNT]; /////////////// - TH1F_LW* m_bigcluster_Q_ECA; - TH1F_LW* m_bigcluster_Q_IBL; - TH1F_LW* m_bigcluster_Q_B0; - TH1F_LW* m_bigcluster_Q_B1; - TH1F_LW* m_bigcluster_Q_B2; - TH1F_LW* m_bigcluster_Q_ECC; - TH1F_LW* m_1cluster_Q_ECA; - TH1F_LW* m_1cluster_Q_IBL; - TH1F_LW* m_1cluster_Q_B0; - TH1F_LW* m_1cluster_Q_B1; - TH1F_LW* m_1cluster_Q_B2; - TH1F_LW* m_1cluster_Q_ECC; - TH1F_LW* m_2cluster_Q_ECA; - TH1F_LW* m_2cluster_Q_IBL; - TH1F_LW* m_2cluster_Q_B0; - TH1F_LW* m_2cluster_Q_B1; - TH1F_LW* m_2cluster_Q_B2; - TH1F_LW* m_2cluster_Q_ECC; - TH1F_LW* m_3cluster_Q_ECA; - TH1F_LW* m_3cluster_Q_IBL; - TH1F_LW* m_3cluster_Q_B0; - TH1F_LW* m_3cluster_Q_B1; - TH1F_LW* m_3cluster_Q_B2; - TH1F_LW* m_3cluster_Q_ECC; + TH1F_LW* m_cluster_Q_mod[PixLayerIBL2D3D::COUNT]; + TH1F_LW* m_1cluster_Q_mod[PixLayer::COUNT]; + TH1F_LW* m_2cluster_Q_mod[PixLayer::COUNT]; + TH1F_LW* m_3cluster_Q_mod[PixLayer::COUNT]; + TH1F_LW* m_bigcluster_Q_mod[PixLayer::COUNT]; PixelMonProfiles* m_clussize_map; PixelMonProfiles* m_cluscharge_map; @@ -491,41 +432,17 @@ class PixelMainMon:public ManagedMonitorToolBase TH1F_LW* m_cluster_groupsize_mod[PixLayer::COUNT]; TH1F_LW* m_cluster_LVL1A; TH1F_LW* m_cluster_LVL1A_highToT; - TH1F_LW* m_cluster_LVL1A_PIX; - TH1F_LW* m_cluster_LVL1A_ECA; - TH1F_LW* m_cluster_LVL1A_ECC; - TH1F_LW* m_cluster_LVL1A_IBL; - TH1F_LW* m_cluster_LVL1A_B0; - TH1F_LW* m_cluster_LVL1A_B1; - TH1F_LW* m_cluster_LVL1A_B2; - TH1F_LW* m_cluster_charge_ECA; - TH1F_LW* m_cluster_charge_ECC; - TH1F_LW* m_cluster_charge_IBL; - TH1F_LW* m_cluster_charge_B0; - TH1F_LW* m_cluster_charge_B1; - TH1F_LW* m_cluster_charge_B2; + TH1F_LW* m_cluster_LVL1A1d_mod[PixLayer::COUNT]; TProfile_LW* m_clusterSize_eta; - TH2F_LW* m_clusToT_vs_eta_IBL; - TH2F_LW* m_clusToT_vs_eta_B0; - TH2F_LW* m_clusToT_vs_eta_B1; - TH2F_LW* m_clusToT_vs_eta_B2; + TH2F_LW* m_clusToT_vs_eta_mod[PixLayer::COUNT]; TH2F_LW* m_clusQ_vs_eta_mod[PixLayer::COUNT]; - TH2F_LW* m_ToT_vs_clussize_IBL; - TH2F_LW* m_ToT_vs_clussize_B0; - TH2F_LW* m_ToT_vs_clussize_B1; - TH2F_LW* m_ToT_vs_clussize_B2; - TH2F_LW* m_Q_vs_clussize_IBL; - TH2F_LW* m_Q_vs_clussize_B0; - TH2F_LW* m_Q_vs_clussize_B1; - TH2F_LW* m_Q_vs_clussize_B2; - TH2F_LW* m_Q_vs_clussize_ECC; - TH2F_LW* m_Q_vs_clussize_ECA; + TH2F_LW* m_ToT_vs_clussize_mod[PixLayer::COUNT]; + TH2F_LW* m_Q_vs_clussize_mod[PixLayer::COUNT]; TH2F_LW* m_clussize_vs_eta_mod[PixLayer::COUNT]; PixelMon2DMaps* m_cluster_occupancy; DBMMon2DMaps * m_clusocc_DBM; PixelMon2DMaps* m_clusocc_sizenot1; - //PixelMon2DMaps* m_average_cluster_occupancy; PixelMonModulesProf* m_cluseff_mod; PixelMonModules1D* m_cluster_ToT_mod; PixelMonModules1D* m_cluster_size_mod; @@ -568,27 +485,9 @@ class PixelMainMon:public ManagedMonitorToolBase PixelMonModules1D* m_Status_modules; PixelMonProfiles* m_status; PixelMon2DMaps* m_dqStatus; - TProfile_LW* m_badModules_per_lumi; - TProfile_LW* m_badModules_per_lumi_ECA; - TProfile_LW* m_badModules_per_lumi_ECC; - TProfile_LW* m_badModules_per_lumi_IBL; - TProfile_LW* m_badModules_per_lumi_B0; - TProfile_LW* m_badModules_per_lumi_B1; - TProfile_LW* m_badModules_per_lumi_B2; - TProfile_LW* m_disabledModules_per_lumi; - TProfile_LW* m_disabledModules_per_lumi_PIX; - TProfile_LW* m_disabledModules_per_lumi_ECA; - TProfile_LW* m_disabledModules_per_lumi_ECC; - TProfile_LW* m_disabledModules_per_lumi_IBL; - TProfile_LW* m_disabledModules_per_lumi_B0; - TProfile_LW* m_disabledModules_per_lumi_B1; - TProfile_LW* m_disabledModules_per_lumi_B2; - TProfile_LW* m_baddisabledModules_per_lumi_ECA; - TProfile_LW* m_baddisabledModules_per_lumi_ECC; - TProfile_LW* m_baddisabledModules_per_lumi_IBL; - TProfile_LW* m_baddisabledModules_per_lumi_B0; - TProfile_LW* m_baddisabledModules_per_lumi_B1; - TProfile_LW* m_baddisabledModules_per_lumi_B2; + TProfile_LW* m_badModules_per_lumi_mod[PixLayerIBL2D3D::COUNT]; + TProfile_LW* m_disabledModules_per_lumi_mod[PixLayerIBL2D3D::COUNT]; + TProfile_LW* m_baddisabledModules_per_lumi_mod[PixLayerIBL2D3D::COUNT]; //ROD Error histograms TH1F_LW* m_error1; @@ -630,12 +529,8 @@ class PixelMainMon:public ManagedMonitorToolBase TProfile_LW* m_errorStates_per_lumi_mod[PixLayer::COUNT-1][16]; TProfile2D_LW* m_ErrorBit_per_lumi_mod[PixLayerIBL2D3D::COUNT]; TProfile2D_LW* m_Error_per_lumi_mod[PixLayerIBL2D3D::COUNT]; - //TProfile_LW* m_sync_rod_BCID_per_lumi_mod[PixLayer::COUNT-1]; TH1I_LW* m_bad_mod_errors_mod[PixLayer::COUNT]; TH2F_LW* m_errors_etaid_mod[PixLayer::COUNT]; - //TH2F_LW* m_errors_etaid_per_evt_mod[PixLayer::COUNT]; - //TH2F_LW* m_mod_errormap_IBL; - //TH1I_LW* m_mod_errors_IBL; PixelMon2DLumiMaps* m_errors_int_LB[16]; diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMon2DMapsLW.h b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMon2DMapsLW.h index 6d7106404f4f87296d09e800f1c1167c1fe9e40d..426c338dd8f751b99e91dc73035312178cbc3fb3 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMon2DMapsLW.h +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMon2DMapsLW.h @@ -32,8 +32,11 @@ class PixelMon2DMapsLW TH2F_LW* B2; TH2F_LW* A; TH2F_LW* C; + TH2F_LW* DBMA; + TH2F_LW* DBMC; void Fill(Identifier &id, const PixelID* pixID, bool doIBL, bool errorHist); void FillNormalized(PixelMon2DMapsLW* old, int nevent); + void WeightingFill(Identifier &id, const PixelID* pixID, bool doIBL, float weight); void Scale(double number); StatusCode regHist(ManagedMonitorToolBase::MonGroup &group, bool doIBL, bool errorHist); private: diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMonModules.h b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMonModules.h index 25b0a431bb062a2b6fe63a946cb288d9af8f475f..5c1d109fab1193ac5d00263d988a22470a28c891 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMonModules.h +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMonModules.h @@ -9,7 +9,9 @@ class TH2F; class TH1F; +class TH1F_LW; class TProfile; +class TProfile_LW; class Identifier; class PixelID; class StatusCode; @@ -67,20 +69,20 @@ class PixelMonModulesProf : public PixelMonModules virtual ~PixelMonModulesProf(); StatusCode regHist(ManagedMonitorToolBase* thisptr, std::string path, ManagedMonitorToolBase::Interval_t Run, bool doIBL); //StatusCode regHist(ManagedMonitorToolBase* thisptr, std::string path, ManagedMonitorToolBase::Interval_t Run, ManagedMonitorToolBase::MgmtAttr_t m=ATTRIB_MANAGED,bool doIBL); - TProfile* IBL[20][14]; - TProfile* B0[13][22]; - TProfile* B1[13][38]; - TProfile* B2[13][52]; - TProfile* A[3][48]; - TProfile* C[3][48]; + TProfile_LW* IBL[20][14]; + TProfile_LW* B0[13][22]; + TProfile_LW* B1[13][38]; + TProfile_LW* B2[13][52]; + TProfile_LW* A[3][48]; + TProfile_LW* C[3][48]; virtual void formatHist(std::string opt="", bool doIBL=false); //pass the bin lables here if needed void Fill(double value0, double value1, Identifier &id, const PixelID* pixID,bool doIBL); void SetBinLabel(const char* lable, int binN); virtual void Reset(); - double GetBinContent(double value, Identifier &id, const PixelID* pixID); + //double GetBinContent(double value, Identifier &id, const PixelID* pixID); private: - TProfile* Dummy; //shouldn't be used unless messed up; - TProfile* &getHist(int i); //make looping over all the histos easier. + TProfile_LW* Dummy; //shouldn't be used unless messed up; + TProfile_LW* &getHist(int i); //make looping over all the histos easier. }; class PixelMonModules2D : public PixelMonModules diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMonProfiles.h b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMonProfiles.h index 47e827d446d86e36f8e258eb60a3d5a70342ca12..e1f6fe267a3604185412244bdd0e6635392874f5 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMonProfiles.h +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMonProfiles.h @@ -7,7 +7,8 @@ #include "AthenaMonitoring/ManagedMonitorToolBase.h" #include <string.h> -class TProfile2D; +//class TProfile2D; +class TProfile2D_LW; class Identifier; class PixelID; class StatusCode; @@ -22,14 +23,14 @@ class PixelMonProfiles public: PixelMonProfiles(std::string name, std::string title); ~PixelMonProfiles(); - TProfile2D* IBL2D; - TProfile2D* IBL3D; - TProfile2D* IBL; - TProfile2D* B0; - TProfile2D* B1; - TProfile2D* B2; - TProfile2D* A; - TProfile2D* C; + TProfile2D_LW* IBL2D; + TProfile2D_LW* IBL3D; + TProfile2D_LW* IBL; + TProfile2D_LW* B0; + TProfile2D_LW* B1; + TProfile2D_LW* B2; + TProfile2D_LW* A; + TProfile2D_LW* C; void Fill(Identifier &id, const PixelID* pixID, float Index, bool doIBL); void SetMaxValue(float max); StatusCode regHist(ManagedMonitorToolBase::MonGroup &group); diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Clusters.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Clusters.cxx index 34a11039b1dfe02a51a8f0e525a3cd8ff30f333e..d1f00252af749f5c242bafdc58a32a7b3dce1048 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Clusters.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Clusters.cxx @@ -64,323 +64,221 @@ StatusCode PixelMainMon::BookClustersMon(void) std::string addOnTrack = "_OnTrack"; - int hxbin = 0; double hxmin = 0.; double hxmax = 0.; - //int hybin = 0; double hymin = 0.; double hymax = 0.; - int nbins_LB = 2500; double min_LB = -0.5; double max_LB = min_LB + (1.0*nbins_LB); + int nbins_LB = 2500; double min_LB = -0.5; double max_LB = min_LB + (1.0*nbins_LB); int nbins_npix = 300; double min_npix = -0.5; double max_npix = min_npix + (1.0*nbins_npix); - int nbins_nwid = 50; double min_nwid = -0.5; double max_nwid = min_nwid + (1.0*nbins_nwid); - int nbins_eta = 13; double min_eta = -6.5; double max_eta = min_eta + (1.0*nbins_eta); - int nbins_tot = 300; double min_tot = -0.5; double max_tot = min_tot + (1.0*nbins_tot); + int nbins_nwid = 50; double min_nwid = -0.5; double max_nwid = min_nwid + (1.0*nbins_nwid); + int nbins_eta = 13; double min_eta = -6.5; double max_eta = min_eta + (1.0*nbins_eta); + int nbins_tot = 300; double min_tot = -0.5; double max_tot = min_tot + (1.0*nbins_tot); + int nbins_ibl_tot = 150; double min_ibl_tot = -0.5; double max_ibl_tot = min_tot + (1.0*nbins_tot); + int nbins_Q = 70; double min_Q = -0.5; double max_Q = min_Q + (3000.0*nbins_Q); + int nbins_nevt = 50; double min_nevt = -0.5; double max_nevt = min_nevt + (1.0*nbins_nevt); + int nbins_lvl1 = 14; double min_lvl1 = -1.5; double max_lvl1 = min_lvl1 + (1.0*nbins_lvl1); std::string atext_LB = ";lumi block"; std::string atext_clu = ";# clusters/event"; std::string atext_npix = ";# pixels/cluster"; std::string atext_nclu = ";# clusters"; + std::string atext_nevt = ";# events"; std::string atext_cluw = ";cluster width"; std::string atext_eta = ";Module eta index"; - std::string atext_tot = ";ToT"; + std::string atext_tot = ";ToT [BC]"; + std::string atext_Q = ";Charge [e]"; + std::string atext_lvl1 = ";LVL1A"; std::string tmp; std::string tmp2; std::string atitles; + std::string hname; + std::string htitles; std::string modlabel[8]; modlabel[0]="ECA"; modlabel[1]="ECC"; modlabel[2]="B0"; modlabel[3]="B1"; modlabel[4]="B2"; modlabel[5]="IBL"; modlabel[6]="IBL2D"; modlabel[7]="IBL3D"; - tmp = "ClusterSize_v_eta"; tmp2 = "Cluster size as a function of barrel module eta"; atitles = ";Module eta index;cluster width"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_clusterSize_eta = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_eta, min_eta, max_eta)); + hname = makeHistname("ClusterSize_vs_eta", false); + htitles = makeHisttitle("Average cluster size as a function of barrel module eta", (atext_eta+atext_cluw), false); + sc = clusterExpert.regHist(m_clusterSize_eta = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_eta, min_eta, max_eta)); - tmp = "LargeClusters_per_lumi"; tmp2 = "Clusters (with >10 pixels) per event per LB"; atitles = ";lumi block;# clusters/event"; - if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterShift.regHist(m_largeclusters_per_lumi = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); + hname = makeHistname("LargeClusters_per_lumi", true); + htitles = makeHisttitle("Avetarge number of large clusters (with >10 pixels) per event", (atext_LB+atext_clu), true); + sc = clusterShift.regHist(m_largeclusters_per_lumi = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); - tmp = "VeryLargeClusters_per_lumi"; tmp2 = "Clusters (with >50 pixels) per event per LB"; atitles = ";lumi block;# clusters/event"; - if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterShift.regHist(m_verylargeclusters_per_lumi = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); + hname = makeHistname("VeryLargeClusters_per_lumi", true); + htitles = makeHisttitle("Average number of very large clusters (with >50 pixels) per event", (atext_LB+atext_clu), true); + sc = clusterShift.regHist(m_verylargeclusters_per_lumi = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); - tmp = "HighNClusters_per_lumi"; tmp2 = "Rate of events with >1000 clusters/event per LB"; atitles = ";lumi block;# event"; - if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_highNclusters_per_lumi = TH1I_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); + hname = makeHistname("HighNClusters_per_lumi", true); + htitles = makeHisttitle("Number of events with >1000 clusters/event", (atext_LB+atext_nevt), true); + sc = clusterExpert.regHist(m_highNclusters_per_lumi = TH1I_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); - tmp = "Clusters_per_lumi"; tmp2 = "Number of pixel clusters per event per LB"; atitles = ";lumi block;# clusters/event"; - if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterShift.regHist(m_clusters_per_lumi = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); + hname = makeHistname("Clusters_per_lumi", true); + htitles = makeHisttitle("Average number of pixel clusters per event", (atext_LB+atext_clu), true); + sc = clusterShift.regHist(m_clusters_per_lumi = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); - tmp = "Clusters_per_lumi"; tmp2 = "Number of pixel clusters per event per LB"; atitles = ";lumi block;# clusters/event"; - sc = clusterShift.regHist(m_clusters_per_lumi_PIX = TProfile_LW::create((tmp + "_PIX").c_str(), (tmp2 + ", Pixel" + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); + hname = makeHistname("TotalClusters_per_lumi", true); + htitles = makeHisttitle("Total number of pixel clusters", (atext_LB+atext_nclu), true); + sc = clusterShift.regHist(m_totalclusters_per_lumi = TH1I_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); - tmp = "TotalClusters_per_lumi"; tmp2 = "Total number of pixel clusters per event per LB"; atitles = ";lumi block;# clusters"; - if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterShift.regHist(m_totalclusters_per_lumi = TH1I_LW::create(tmp.c_str() , (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); + hname = makeHistname("Cluster_groupsize", true); + htitles = makeHisttitle("Number of pixels in a cluster", (atext_npix+atext_nclu), true); + sc = clusterExpert.regHist(m_cluster_groupsize = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_npix, min_npix, max_npix)); - tmp = "Cluster_groupsize"; tmp2 = "Number of pixels per cluster"; atitles = ";# pixels/cluster;# clusters"; - if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_cluster_groupsize = TH1F_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_npix, min_npix, max_npix)); + hname = makeHistname("Cluster_column_width", false); + htitles = makeHisttitle("Column width of a cluster", (atext_cluw+atext_nclu), false); + sc = clusterExpert.regHist(m_cluster_col_width = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_nwid, min_nwid, max_nwid)); - tmp = "Cluster_column_width"; tmp2 = "Column width of cluster"; atitles = ";cluster width;# clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_cluster_col_width = TH1F_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_nwid, min_nwid, max_nwid)); + hname = makeHistname("Cluster_row_width", false); + htitles = makeHisttitle("Row width of a cluster", (atext_cluw+atext_nclu), false); + sc = clusterExpert.regHist(m_cluster_row_width = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_nwid, min_nwid, max_nwid)); - tmp = "Cluster_row_width"; tmp2 = "Row width of cluster"; atitles = ";cluster width;# clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_cluster_row_width = TH1F_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_nwid, min_nwid, max_nwid)); + hname = makeHistname("Cluster_LVL1A", true); + htitles = makeHisttitle("Cluster Level 1 Accept", (atext_lvl1+atext_nclu), true); + sc = timeShift.regHist(m_cluster_LVL1A = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_lvl1, min_lvl1, max_lvl1)); /// Histograms for each layer for(int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ - tmp = "Clusters_per_lumi"; tmp2 = "Number of pixel clusters per event per LB"; atitles = ";lumi block;# clusters/event"; - sc = clusterExpert.regHist(m_clusters_per_lumi_mod[i] = TProfile_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); - tmp = "TotalClusters_per_lumi"; tmp2 = "Total number of pixel clusters per event per LB"; atitles = ";lumi block;# clusters"; - sc = clusterExpert.regHist(m_totalclusters_per_lumi_mod[i] = TH1I_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); - tmp = "Cluster_groupsize"; tmp2 = "Number of pixels per cluster"; atitles = ";# pixels/cluster;# clusters"; - sc = clusterExpert.regHist(m_cluster_groupsize_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_npix+1, min_npix, max_npix+1)); - tmp = "Cluster_column_width"; tmp2 = "Column width of cluster"; atitles = ";cluster width;# clusters"; - sc = clusterExpert.regHist(m_cluster_col_width_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_nwid, min_nwid, max_nwid)); - tmp = "Cluster_row_width"; tmp2 = "Row width of cluster"; atitles = ";cluster width;# clusters"; - sc = clusterExpert.regHist(m_cluster_row_width_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atext_cluw + atext_nclu).c_str(), nbins_nwid, min_nwid, max_nwid)); - } - - - if(m_doESD && !m_doOnline){ - hxbin = 200; hxmin = 0.; hxmax = 200000.; - - tmp = "clusQ_vs_eta"; tmp2 = "Cluster Q vs Eta"; atitles = ";Module eta index;Charge"; - for(int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ - sc = clusterExpert.regHist(m_clusQ_vs_eta_mod[i] = TH2F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_eta, min_eta, max_eta, hxbin, hxmin, hxmax)); + hname = makeHistname(("Clusters_per_lumi_"+modlabel[i]), false); + htitles = makeHisttitle(("Average number of pixel clusters per event per LB, "+modlabel[i]), (atext_LB+atext_clu), false); + sc = clusterExpert.regHist(m_clusters_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + + hname = makeHistname(("TotalClusters_per_lumi_"+modlabel[i]), false); + htitles = makeHisttitle(("Total number of pixel clusters per LB, "+modlabel[i]), (atext_LB+atext_nclu), false); + sc = clusterExpert.regHist(m_totalclusters_per_lumi_mod[i] = TH1I_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + + hname = makeHistname(("Cluster_groupsize_"+modlabel[i]), false); + htitles = makeHisttitle(("Number of pixels in a cluster, "+modlabel[i]), (atext_npix+atext_nclu), false); + sc = clusterExpert.regHist(m_cluster_groupsize_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_npix+1, min_npix, max_npix+1)); + + hname = makeHistname(("Cluster_column_width_"+modlabel[i]), false); + htitles = makeHisttitle(("Column width of a cluster, "+modlabel[i]), (atext_cluw+atext_nclu), false); + sc = clusterExpert.regHist(m_cluster_col_width_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_nwid, min_nwid, max_nwid)); + + hname = makeHistname(("Cluster_row_width_"+modlabel[i]), false); + htitles = makeHisttitle(("Row width of a cluster, "+modlabel[i]), (atext_cluw+atext_nclu), false); + sc = clusterExpert.regHist(m_cluster_row_width_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_nwid, min_nwid, max_nwid)); + + //hname = makeHistname(("Cluster_ToT_"+modlabel[i]), false); + //htitles = makeHisttitle(("Cluster ToT, "+modlabel[i]), (atext_tot+atext_nclu), false); + //sc = clusterExpert.regHist(m_cluster_ToT1d_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot)); + + hname = makeHistname(("1Hit_Cluster_ToT_"+modlabel[i]), false); + htitles = makeHisttitle(("ToT for 1-hit clusters, "+modlabel[i]), (atext_tot+atext_nclu), false); + sc = clusterExpert.regHist(m_1cluster_ToT_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot)); + + hname = makeHistname(("2Hit_Cluster_ToT_"+modlabel[i]), false); + htitles = makeHisttitle(("ToT for 2-hit clusters, "+modlabel[i]), (atext_tot+atext_nclu), false); + sc = clusterExpert.regHist(m_2cluster_ToT_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot)); + + hname = makeHistname(("3Hit_Cluster_ToT_"+modlabel[i]), false); + htitles = makeHisttitle(("ToT for 3-hit clusters, "+modlabel[i]), (atext_tot+atext_nclu), false); + sc = clusterExpert.regHist(m_3cluster_ToT_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot)); + + hname = makeHistname(("BigHit_Cluster_ToT_"+modlabel[i]), false); + htitles = makeHisttitle(("ToT for cluster size > 3, "+modlabel[i]), (atext_tot+atext_nclu), false); + sc = clusterExpert.regHist(m_bigcluster_ToT_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot)); + + //hname = makeHistname(("Cluster_Q_"+modlabel[i]), false); + //htitles = makeHisttitle(("Charge, "+modlabel[i]), (atext_Q+atext_nclu), false); + //sc = clusterExpert.regHist(m_cluster_Q_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_Q, min_Q, max_Q)); + + hname = makeHistname(("1Hit_Cluster_Q_"+modlabel[i]), false); + htitles = makeHisttitle(("Charge for 1-hit clusters, "+modlabel[i]), (atext_Q+atext_nclu), false); + sc = clusterExpert.regHist(m_1cluster_Q_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_Q, min_Q, max_Q)); + + hname = makeHistname(("2Hit_Cluster_Q_"+modlabel[i]), false); + htitles = makeHisttitle(("Charge for 2-hit clusters, "+modlabel[i]), (atext_Q+atext_nclu), false); + sc = clusterExpert.regHist(m_2cluster_Q_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_Q, min_Q, max_Q)); + + hname = makeHistname(("3Hit_Cluster_Q_"+modlabel[i]), false); + htitles = makeHisttitle(("Charge for 3-hit clusters, "+modlabel[i]), (atext_Q+atext_nclu), false); + sc = clusterExpert.regHist(m_3cluster_Q_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_Q, min_Q, max_Q)); + + hname = makeHistname(("BigHit_Cluster_Q_"+modlabel[i]), false); + htitles = makeHisttitle(("Charge for cluster size > 3, "+modlabel[i]), (atext_Q+atext_nclu), false); + sc = clusterExpert.regHist(m_bigcluster_Q_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_Q, min_Q, max_Q)); + + hname = makeHistname(("Cluster_LVL1A_"+modlabel[i]), true); + if(i != PixLayer::kIBL) htitles = makeHisttitle(("Cluster Level 1 Accept with ToT > 15, "+modlabel[i]), (atext_lvl1+atext_nclu), false); + else htitles = makeHisttitle(("Cluster Level 1 Accept with ToT > 4, "+modlabel[i]), (atext_lvl1+atext_nclu), false); + sc = timeExpert.regHist(m_cluster_LVL1A1d_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_lvl1, min_lvl1, max_lvl1)); + + if(m_doESD && !m_doOnline){ + hname = makeHistname(("ClusterQ_vs_eta_"+modlabel[i]), false); + htitles = makeHisttitle(("Cluster charge vs eta, "+modlabel[i]), (atext_eta+atext_Q), false); + sc = clusterExpert.regHist(m_clusQ_vs_eta_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nbins_eta, min_eta, max_eta, nbins_Q, min_Q, max_Q)); + + hname = makeHistname(("Cluster_groupsize_vs_eta_"+modlabel[i]), false); + htitles = makeHisttitle(("Number of pixels per cluster vs eta, "+modlabel[i]), (atext_eta+atext_npix), false); + sc = clusterExpert.regHist(m_clussize_vs_eta_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nbins_eta, min_eta, max_eta, nbins_npix, min_npix, max_npix)); + + hname = makeHistname(("ClusterToT_vs_eta_"+modlabel[i]), false); + htitles = makeHisttitle(("Cluster ToT vs eta, "+modlabel[i]), (atext_eta+atext_tot), false); + sc = clusterExpert.regHist(m_clusToT_vs_eta_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nbins_eta, min_eta, max_eta, nbins_tot, min_tot, max_tot)); + + hname = makeHistname(("ClusterToT_vs_groupsize_"+modlabel[i]), false); + htitles = makeHisttitle(("Cluster ToT vs groupsize, "+modlabel[i]), (atext_tot+atext_npix), false); + sc= clusterExpert.regHist(m_ToT_vs_clussize_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot, nbins_npix, min_npix, max_npix)); + + hname = makeHistname(("ClusterQ_vs_groupsize_"+modlabel[i]), false); + htitles = makeHisttitle(("Cluster Charge vs groupsize, "+modlabel[i]), (atext_tot+atext_npix), false); + sc= clusterExpert.regHist(m_Q_vs_clussize_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nbins_Q, min_Q, max_Q, nbins_npix, min_npix, max_npix)); + + hname = makeHistname(("nlowToT_vs_clussize_"+modlabel[i]), false); + htitles = makeHisttitle(("# Low ToT Hits vs groupsize, "+modlabel[i]), (atext_npix+atext_nevt), false); + sc= clusterExpert.regHist(m_nlowToT_vs_clussize_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nbins_npix, min_npix, max_npix, nbins_nevt, min_nevt, max_nevt)); } - tmp = "clustersize_vs_eta"; tmp2 = "Cluster Size vs Eta"; atitles = ";Module eta index;Cluster size"; - for(int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ - sc = clusterExpert.regHist(m_clussize_vs_eta_mod[i] = TH2F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_eta, min_eta, max_eta,40,-0.5,39.5)); + } + for(int i=0; i<PixLayerIBL2D3D::COUNT; i++){ + hname = makeHistname(("Cluster_ToT_"+modlabel[i]), false); + htitles = makeHisttitle(("Cluster ToT, "+modlabel[i]), (atext_tot+atext_nclu), false); + if( i<PixLayer::kIBL ){ + sc = clusterExpert.regHist(m_cluster_ToT1d_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot)); + }else if(m_doIBL){ + sc = clusterExpert.regHist(m_cluster_ToT1d_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_ibl_tot, min_ibl_tot, max_ibl_tot)); } - //tmp = "m_clusToT_vs_eta"; tmp2 = "Cluster ToT vs Eta"; - tmp = "clusToT_vs_eta"; tmp2 = "Cluster ToT vs Eta"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_clusToT_vs_eta_B0 = TH2F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + atext_eta + atext_tot).c_str(), nbins_eta, min_eta, max_eta, nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_clusToT_vs_eta_B1 = TH2F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + atext_eta + atext_tot).c_str(), nbins_eta, min_eta, max_eta, nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_clusToT_vs_eta_B2 = TH2F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + atext_eta + atext_tot).c_str(), nbins_eta, min_eta, max_eta, nbins_tot, min_tot, max_tot)); - //tmp = "m_clustersize_vs_eta"; tmp2 = "Cluster Size vs Eta"; - //tmp = "m_ToT_vs_clussize"; tmp2 = "Cluster ToT vs Size"; - tmp = "ToT_vs_clussize"; tmp2 = "Cluster ToT vs Size"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc= clusterExpert.regHist(m_ToT_vs_clussize_B0 = TH2F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";Cluster Size" + atext_tot).c_str(),40,-0.5,39.5, nbins_tot, min_tot, max_tot)); - sc= clusterExpert.regHist(m_ToT_vs_clussize_B1 = TH2F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";Cluster Size" + atext_tot).c_str(),40,-0.5,39.5, nbins_tot, min_tot, max_tot)); - sc= clusterExpert.regHist(m_ToT_vs_clussize_B2 = TH2F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";Cluster Size" + atext_tot).c_str(),40,-0.5,39.5, nbins_tot, min_tot, max_tot)); - - hxbin = 200; hxmin = 0.; hxmax = 200000.; - //tmp = "m_Q_vs_clussize"; tmp2 = "Cluster Q vs Size"; - tmp = "Q_vs_clussize"; tmp2 = "Cluster Q vs Size"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc= clusterExpert.regHist(m_Q_vs_clussize_B0 = TH2F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";Clsuter Size;Charge").c_str(),40,-0.5,39.5,hxbin, hxmin, hxmax)); - sc= clusterExpert.regHist(m_Q_vs_clussize_B1 = TH2F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";Clsuter Size;Charge").c_str(),40,-0.5,39.5,hxbin, hxmin, hxmax)); - sc= clusterExpert.regHist(m_Q_vs_clussize_B2 = TH2F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";Clsuter Size;Charge").c_str(),40,-0.5,39.5,hxbin, hxmin, hxmax)); - sc= clusterExpert.regHist(m_Q_vs_clussize_ECC = TH2F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC"+ m_histTitleExt + ";Clsuter Size;Charge").c_str(),40,-0.5,39.5,hxbin, hxmin, hxmax)); - sc= clusterExpert.regHist(m_Q_vs_clussize_ECA = TH2F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA"+ m_histTitleExt + ";Clsuter Size;Charge").c_str(),40,-0.5,39.5,hxbin, hxmin, hxmax)); - //tmp = "m_nlowToT_vs_clussize"; tmp2 = "# Low ToT Hits vs Size"; - tmp = "nlowToT_vs_clussize"; tmp2 = "# Low ToT Hits vs Size"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc= clusterExpert.regHist(m_nlowToT_vs_clussize_B0 = TH2F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";Cluster Size; frac low ToT hits").c_str(),40,-0.5,39.5,40,-0.5,39.5)); - sc= clusterExpert.regHist(m_nlowToT_vs_clussize_B1 = TH2F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";Cluster Size; frac low ToT hits").c_str(),40,-0.5,39.5,40,-0.5,39.5)); - sc= clusterExpert.regHist(m_nlowToT_vs_clussize_B2 = TH2F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";Cluster Size; frac low ToT hits").c_str(),40,-0.5,39.5,40,-0.5,39.5)); - sc= clusterExpert.regHist(m_nlowToT_vs_clussize_ECC = TH2F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC"+ m_histTitleExt + ";Cluster Size; frac low ToT hits").c_str(),40,-0.5,39.5,40,-0.5,39.5)); - sc= clusterExpert.regHist(m_nlowToT_vs_clussize_ECA = TH2F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA"+ m_histTitleExt + ";Cluster Size; frac low ToT hits").c_str(),40,-0.5,39.5,40,-0.5,39.5)); + hname = makeHistname(("Cluster_Q_"+modlabel[i]), false); + htitles = makeHisttitle(("Charge, "+modlabel[i]), (atext_Q+atext_nclu), false); + sc = clusterExpert.regHist(m_cluster_Q_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_Q, min_Q, max_Q)); } + if (m_doOnTrack || m_doOnPixelTrack) { sc = clusterExpert.regHist(m_clustersOnOffTrack_per_lumi = TProfile_LW::create("ClustersOnOffTrack_per_lumi",("Fraction pixel clusters on track per event per LB" + m_histTitleExt + ";lumi block; fraction clusters/event").c_str(),2500,-0.5,2499.5)); } - tmp = "Cluster_ToT"; tmp2 = "Cluster ToT"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterShift.regHist(m_cluster_ToT_PIX = TH1F_LW::create((tmp + "_PIX").c_str(), (tmp2 + ":Pixel" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_cluster_ToT_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ":ECA" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_cluster_ToT_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ":ECC" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_cluster_ToT_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ":B0" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_cluster_ToT_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ":B1" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_cluster_ToT_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ":B2" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - tmp = "Big_Cluster_ToT"; tmp2 = "ToT for Clusters of size>3"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_bigcluster_ToT_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_bigcluster_ToT_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_bigcluster_ToT_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_bigcluster_ToT_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_bigcluster_ToT_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - tmp = "1Hit_Cluster_ToT"; tmp2 = "ToT for 1-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_1cluster_ToT_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_1cluster_ToT_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_1cluster_ToT_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_1cluster_ToT_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_1cluster_ToT_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - tmp = "2Hit_Cluster_ToT"; tmp2 = "ToT for 2-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_2cluster_ToT_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_2cluster_ToT_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_2cluster_ToT_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_2cluster_ToT_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_2cluster_ToT_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - tmp = "3Hit_Cluster_ToT"; tmp2 = "ToT for 3-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_3cluster_ToT_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_3cluster_ToT_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_3cluster_ToT_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_3cluster_ToT_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - sc = clusterExpert.regHist(m_3cluster_ToT_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + atext_tot + atext_nclu).c_str(), nbins_tot, min_tot, max_tot)); - - //if(m_doESD && !m_doOnline){ - hxbin = 50; hxmin = 0.; hxmax = 200000.; // 1bin = 4ke - tmp = "Big_Cluster_Q"; tmp2 = "Charge for Clusters of size>3"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_bigcluster_Q_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_bigcluster_Q_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_bigcluster_Q_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_bigcluster_Q_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_bigcluster_Q_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - tmp = "1Hit_Cluster_Q"; tmp2 = "Charge for 1-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_1cluster_Q_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_1cluster_Q_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_1cluster_Q_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_1cluster_Q_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_1cluster_Q_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - tmp = "2Hit_Cluster_Q"; tmp2 = "Charge for 2-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_2cluster_Q_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_2cluster_Q_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_2cluster_Q_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_2cluster_Q_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_2cluster_Q_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - tmp = "3Hit_Cluster_Q"; tmp2 = "Charge for 3-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_3cluster_Q_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_3cluster_Q_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_3cluster_Q_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_3cluster_Q_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_3cluster_Q_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - //} - - tmp = "Cluster_LVL1A"; tmp2 = "Cluster Level 1 Accept"; - if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = timeShift.regHist(m_cluster_LVL1A = TH1F_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + ";LVL1A" + atext_nclu).c_str(), 14,-1.5,12.5)); - tmp = "Cluster_LVL1A"; tmp2 = "Cluster Level 1 Accept"; - sc = timeShift.regHist(m_cluster_LVL1A_PIX = TH1F_LW::create((tmp + "_PIX").c_str(), (tmp2 + " with ToT>15, Pixel" + m_histTitleExt + ";LVL1A" + atext_nclu).c_str(), 18,-1.5,16.5)); - sc = timeExpert.regHist(m_cluster_LVL1A_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + " with ToT>15, B0" + m_histTitleExt + ";LVL1A" + atext_nclu).c_str(), 14,-1.5,12.5)); - sc = timeExpert.regHist(m_cluster_LVL1A_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + " with ToT>15, B1" + m_histTitleExt + ";LVL1A" + atext_nclu).c_str(), 14,-1.5,12.5)); - sc = timeExpert.regHist(m_cluster_LVL1A_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + " with ToT>15, B2" + m_histTitleExt + ";LVL1A" + atext_nclu).c_str(), 14,-1.5,12.5)); - sc = timeExpert.regHist(m_cluster_LVL1A_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + " with ToT>15, ECA" + m_histTitleExt + ";LVL1A" + atext_nclu).c_str(), 14,-1.5,12.5)); - sc = timeExpert.regHist(m_cluster_LVL1A_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + " with ToT>15, ECC" + m_histTitleExt + ";LVL1A" + atext_nclu).c_str(), 14,-1.5,12.5)); - sc = timeExpert.regHist(m_cluster_LVL1A_highToT = TH1F_LW::create((tmp + "_highToT").c_str(), (tmp2 + " with ToT>15" + m_histTitleExt + ";LVL1A" + atext_nclu).c_str(), 14,-1.5,12.5)); - - hxbin = 50; hxmin = 0.; hxmax = 200000.; - tmp = "Cluster_charge"; tmp2 = "Cluster total charge"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_cluster_charge_B0 = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_cluster_charge_B1 = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_cluster_charge_B2 = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_cluster_charge_ECA = TH1F_LW::create((tmp + "_ECA").c_str(), (tmp2 + ", ECA" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - sc = clusterExpert.regHist(m_cluster_charge_ECC = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - if(m_doIBL){ - tmp = "Cluster_ToT"; tmp2 = "Cluster ToT"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_cluster_ToT_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_tot + atext_nclu).c_str(), 50,-0.5,49.5)); - sc = clusterExpert.regHist(m_cluster_ToT_IBL2D = TH1F_LW::create((tmp + "_IBL2D").c_str(), (tmp2 + " for IBL Planar Modules" + m_histTitleExt + atext_tot + atext_nclu).c_str(), 100,-0.5,99.5)); - sc = clusterExpert.regHist(m_cluster_ToT_IBL3D = TH1F_LW::create((tmp + "_IBL3D").c_str(), (tmp2 + " for IBL 3D Modules" + m_histTitleExt + atext_tot + atext_nclu).c_str(), 100,-0.5,99.5)); - tmp = "Big_Cluster_ToT"; tmp2 = "ToT for Clusters of size>3"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_bigcluster_ToT_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_tot + atext_nclu).c_str(), 300,-0.5,299.5)); - tmp = "1Hit_Cluster_ToT"; tmp2 = "ToT for 1-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_1cluster_ToT_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_tot + atext_nclu).c_str(), 50, -0.5, 49.5)); - tmp = "2Hit_Cluster_ToT"; tmp2 = "ToT for 2-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_2cluster_ToT_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_tot + atext_nclu).c_str(), 100, -0.5, 99.5)); - tmp = "3Hit_Cluster_ToT"; tmp2 = "ToT for 3-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_3cluster_ToT_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_tot + atext_nclu).c_str(), 150, -0.5, 149.5)); - tmp = "Cluster_LVL1A"; tmp2 = "Cluster Level 1 Accept"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = timeExpert.regHist(m_cluster_LVL1A_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + " with ToT >4, IBL" + m_histTitleExt + "; LVL1A" + atext_nclu).c_str(), 18, -1.5, 16.5)); - tmp = "Cluster_charge"; tmp2 = "Cluster total charge"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_cluster_charge_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - tmp = "Cluster_groupsize"; tmp2 = "Number of pixels per cluster"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - //sc = clusterExpert.regHist(m_cluster_groupsize_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_npix + atext_nclu).c_str(), nbins_npix, min_npix, max_npix)); - tmp = "Cluster_column_width"; tmp2 = "Column width of cluster"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - //sc = clusterExpert.regHist(m_cluster_col_width_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_cluw + atext_nclu).c_str(), nbins_nwid, min_nwid, max_nwid)); - tmp = "Cluster_row_width"; tmp2 = "Row width of cluster"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - //sc = clusterExpert.regHist(m_cluster_row_width_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_cluw + atext_nclu).c_str(), nbins_nwid, min_nwid, max_nwid)); - - //if(m_doESD && ! m_doOnline){ - hxbin = 50; hxmin = 0.; hxmax = 200000.; - tmp = "Big_Cluster_Q"; tmp2 = "Charge for Clusters of size>3"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_bigcluster_Q_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - tmp = "1Hit_Cluster_Q"; tmp2 = "Charge for 1-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_1cluster_Q_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - tmp = "2Hit_Cluster_ToT"; tmp2 = "ToT for 2-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_2cluster_Q_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - tmp = "3Hit_Cluster_Q"; tmp2 = "Charge for 3-hit clusters"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_3cluster_Q_IBL = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";Charge" + atext_nclu).c_str(), hxbin, hxmin, hxmax)); - //tmp = "m_nlowToT_vs_clussize"; tmp2 = "# Low ToT Hits vs Size"; - tmp = "nlowToT_vs_clussize"; tmp2 = "# Low ToT Hits vs Size"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_nlowToT_vs_clussize_IBL = TH2F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";Cluster Size; frac low ToT hits").c_str(),40,-0.5,39.5,40,-0.5,39.5)); - //tmp = "m_clusToT_vs_eta"; tmp2 = "Cluster ToT vs Eta"; - tmp = "clusToT_vs_eta"; tmp2 = "Cluster ToT vs Eta"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_clusToT_vs_eta_IBL = TH2F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_eta + atext_tot).c_str(),20,-10.5,9.5,300,-0.5,299.5)); - //tmp = "m_clustersize_vs_eta"; tmp2 = "Cluster Size vs Eta"; - tmp = "clustersize_vs_eta"; tmp2 = "Cluster Size vs Eta"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - //sc = clusterExpert.regHist(m_clussize_vs_eta_IBL = TH2F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + atext_eta + ";Cluster size").c_str(),20,-10.5,9.5,40,-0.5,39.5)); - //tmp = "m_ToT_vs_clussize"; tmp2 = "Cluster ToT vs Size"; - tmp = "ToT_vs_clussize"; tmp2 = "Cluster ToT vs Size"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - sc = clusterExpert.regHist(m_ToT_vs_clussize_IBL = TH2F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";Cluster Size" + atext_tot).c_str(),40,-0.5,39.5,300,-0.5,299.5)); - //} - } if(m_do2DMaps) { tmp = "Cluster_Occupancy"; tmp2 = "Cluster occupancy"; //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } m_cluster_occupancy = new PixelMon2DMaps(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); sc = m_cluster_occupancy->regHist(clusterShift); - //tmp = "Cluster_Occupancy_DBM"; tmp2 = "Cluster occupancy"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - //m_clusocc_DBM = new DBMMon2DMaps(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); - //sc = m_clusocc_DBM->regHist(clusterShift); - //tmp = "Average_Cluster_Occupancy"; tmp2 = "Average cluster occupancy"; - //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - //m_average_cluster_occupancy = new PixelMon2DMaps(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); - //sc = m_average_cluster_occupancy->regHist(clusterShift); - tmp = "Cluster_LVL1A_Mod"; tmp2 = "Cluster Level 1 Accept"; + + tmp = "Cluster_LVL1A_Mod"; tmp2 = "Average cluster Level 1 Accept"; //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } m_cluster_LVL1A_mod = new PixelMonProfiles(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); sc = m_cluster_LVL1A_mod->regHist(timeShift); + tmp = "Clus_Occ_SizeCut"; tmp2 = "Size>1 Cluster occupancy"; //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } m_clusocc_sizenot1 = new PixelMon2DMaps(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); sc = m_clusocc_sizenot1->regHist(clusterShift); - tmp = "Clus_LVL1A_SizeCut"; tmp2 = "Size>1 Cluster Level 1 Accept"; + + tmp = "Clus_LVL1A_SizeCut"; tmp2 = "Average Size>1 Cluster Level 1 Accept"; //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } m_clus_LVL1A_sizenot1 = new PixelMonProfiles(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); sc = m_clus_LVL1A_sizenot1->regHist(timeShift); if(!m_doOnline){ - tmp = "Cluster_Size_Map"; tmp2 = "Cluster size map"; + tmp = "Cluster_Size_Map"; tmp2 = "Average cluster size map"; //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } m_clussize_map = new PixelMonProfiles(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); sc = m_clussize_map->regHist(clusterExpert); - tmp = "Cluster_Charge_Map"; tmp2 = "Cluster charge map"; + + tmp = "Cluster_Charge_Map"; tmp2 = "Average cluster charge map"; //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } m_cluscharge_map = new PixelMonProfiles(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); sc = m_cluscharge_map->regHist(clusterExpert); - tmp = "Cluster_ToT_Map"; tmp2 = "Cluster ToT map"; + + tmp = "Cluster_ToT_Map"; tmp2 = "Average cluster ToT map"; //if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } m_clusToT_map = new PixelMonProfiles(tmp.c_str(), (tmp2 + m_histTitleExt).c_str()); sc = m_clusToT_map->regHist(clusterExpert); @@ -413,11 +311,11 @@ StatusCode PixelMainMon::BookClustersMon(void) int max_clusters_region = 8000; int max_avclusters = 50; if (m_doHeavyIonMon) { max_clusters = 100000; max_clusters_region = 40000; max_avclusters = 1000; } - tmp = "num_clusters"; tmp2 = "Number of pixel clusters per event"; + tmp = "num_clusters"; tmp2 = "Number of pixel clusters in an event"; if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } - tmp = "num_clusters"; tmp2 = "Number of pixel clusters per event"; + tmp = "num_clusters"; tmp2 = "Number of pixel clusters in an event"; sc = clusterShift.regHist(m_num_clusters = TH1I_LW::create(tmp.c_str(), (tmp2 + ";# pixel clusters/event" + m_histTitleExt + ";# events").c_str(), 1000,0.,(int)max_clusters)); - sc = clusterExpert.regHist(m_num_clusters_PIX = TH1I_LW::create((tmp + "_PIX").c_str(), (tmp2 + ", Pixel" + m_histTitleExt + ";# pixel clusters/event;# events").c_str(),1000,0.,(int)max_clusters)); + //sc = clusterExpert.regHist(m_num_clusters_PIX = TH1I_LW::create((tmp + "_PIX").c_str(), (tmp2 + ", Pixel" + m_histTitleExt + ";# pixel clusters/event;# events").c_str(),1000,0.,(int)max_clusters)); sc = clusterExpert.regHist(m_num_clusters_B0 = TH1I_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";# pixel clusters/event;# events").c_str(),160,0.,(int)max_clusters_region)); sc = clusterExpert.regHist(m_num_clusters_B1 = TH1I_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";# pixel clusters/event;# events").c_str(),160,0.,(int)max_clusters_region)); sc = clusterExpert.regHist(m_num_clusters_B2 = TH1I_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";# pixel clusters/event;# events").c_str(),160,0.,(int)max_clusters_region)); @@ -431,12 +329,12 @@ StatusCode PixelMainMon::BookClustersMon(void) sc = clusterExpert.regHist(m_ecC_cluster_occupancy_summary = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 100,0.,(int)max_avclusters)); sc = clusterExpert.regHist(m_bar_layI_cluster_occupancy_summary= TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 100,0.,(int)max_avclusters)); sc = clusterExpert.regHist(m_bar_lay0_cluster_occupancy_summary= TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 100,0.,(int)max_avclusters)); - sc = clusterExpert.regHist(m_bar_lay1_cluster_occupancy_summary= TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 100,0.,(int)max_avclusters)); - sc = clusterExpert.regHist(m_bar_lay2_cluster_occupancy_summary= TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 100,0.,(int)max_avclusters)); + sc = clusterExpert.regHist(m_bar_lay1_cluster_occupancy_summary= TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 100,0.,(int)max_avclusters)); + sc = clusterExpert.regHist(m_bar_lay2_cluster_occupancy_summary= TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 100,0.,(int)max_avclusters)); } if(m_doLowOccupancy) { - tmp = "num_clusters_low_occupancy"; tmp2 = "Number of pixel clusters per event"; + tmp = "num_clusters_low_occupancy"; tmp2 = "Number of pixel clusters in an event"; if(m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; } sc = clusterShift.regHist(m_num_clusters_low = TH1I_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + ";# pixel clusters/event;# events").c_str(), 200,-0.5,199.5)); tmp = "cluster_occupancy_summary_low_occupancy"; tmp2 = "Average cluster occupancy"; @@ -445,10 +343,9 @@ StatusCode PixelMainMon::BookClustersMon(void) sc = clusterExpert.regHist(m_ecC_cluster_occupancy_summary_low = TH1F_LW::create((tmp + "_ECC").c_str(), (tmp2 + ", ECC" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 50,0.,2.)); sc = clusterExpert.regHist(m_bar_layI_cluster_occupancy_summary_low = TH1F_LW::create((tmp + "_IBL").c_str(), (tmp2 + ", IBL" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 50,0.,2.)); sc = clusterExpert.regHist(m_bar_lay0_cluster_occupancy_summary_low = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B0" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 50,0.,2.)); - sc = clusterExpert.regHist(m_bar_lay1_cluster_occupancy_summary_low = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 50,0.,2.)); - sc = clusterExpert.regHist(m_bar_lay2_cluster_occupancy_summary_low = TH1F_LW::create((tmp + "_B0").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 50,0.,2.)); + sc = clusterExpert.regHist(m_bar_lay1_cluster_occupancy_summary_low = TH1F_LW::create((tmp + "_B1").c_str(), (tmp2 + ", B1" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 50,0.,2.)); + sc = clusterExpert.regHist(m_bar_lay2_cluster_occupancy_summary_low = TH1F_LW::create((tmp + "_B2").c_str(), (tmp2 + ", B2" + m_histTitleExt + ";average # of clusters per module per event;# modules").c_str(), 50,0.,2.)); } - // int max_clusters = 500; if(m_doPixelOccupancy){ } if(m_doDetails){ } @@ -553,6 +450,12 @@ StatusCode PixelMainMon::FillClustersMon(void) { clusID=(*p_clus)->identify(); int pixlayer = GetPixLayerID(m_pixelid->barrel_ec(clusID), m_pixelid->layer_disk(clusID), m_doIBL); + int pixlayeribl2d3d = pixlayer; + if( pixlayeribl2d3d == PixLayerIBL2D3D::kIBL ){ + pixlayeribl2d3d = GetPixLayerIDIBL2D3D(m_pixelid->barrel_ec(clusID), m_pixelid->layer_disk(clusID), m_pixelid->eta_module(clusID), m_doIBL); + } + if(pixlayer == 99) continue; + const PixelCluster& cluster = **p_clus; const InDet::SiWidth clusWidth = cluster.width(); @@ -571,128 +474,34 @@ StatusCode PixelMainMon::FillClustersMon(void) if(m_cluster_LVL1A_mod) m_cluster_LVL1A_mod->Fill(clusID,m_pixelid,cluster.LVL1A()+0.00001,m_doIBL); //avoid filling exactly zero to distinguish from disabled modules if(cluster.rdoList().size()>1 && m_clus_LVL1A_sizenot1) m_clus_LVL1A_sizenot1->Fill(clusID,m_pixelid,cluster.LVL1A()+0.00001,m_doIBL); //avoid filling exactly zero to distinguish from disabled modules - /// Fill ToT - if(m_cluster_ToT_PIX && !(m_pixelid->barrel_ec(clusID)==0 && m_pixelid->layer_disk(clusID)==0 && m_doIBL)) m_cluster_ToT_PIX->Fill(cluster.totalToT()); - if(m_cluster_ToT_ECA && m_pixelid->barrel_ec(clusID)==2 ) m_cluster_ToT_ECA->Fill(cluster.totalToT()); - if(m_cluster_ToT_ECC && m_pixelid->barrel_ec(clusID)==-2) m_cluster_ToT_ECC->Fill(cluster.totalToT()); - if(m_pixelid->barrel_ec(clusID)==0) { - if(m_doIBL && m_cluster_ToT_IBL2D && m_pixelid->layer_disk(clusID)==0 && m_pixelid->eta_module(clusID)<6 && m_pixelid->eta_module(clusID)>-7) m_cluster_ToT_IBL2D->Fill(cluster.totalToT()); - if(m_doIBL && m_cluster_ToT_IBL3D && m_pixelid->layer_disk(clusID)==0 && !(m_pixelid->eta_module(clusID)<6 && m_pixelid->eta_module(clusID)>-7)) m_cluster_ToT_IBL3D->Fill(cluster.totalToT()); - if(m_doIBL && m_cluster_ToT_IBL && m_pixelid->layer_disk(clusID)==0) m_cluster_ToT_IBL->Fill(cluster.totalToT()); - if(m_cluster_ToT_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_cluster_ToT_B0->Fill(cluster.totalToT()); - if(m_cluster_ToT_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_cluster_ToT_B1->Fill(cluster.totalToT()); - if(m_cluster_ToT_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_cluster_ToT_B2->Fill(cluster.totalToT()); - } - if(cluster.rdoList().size()==1){ // Cluster size = 1 - if(m_1cluster_ToT_ECA && m_pixelid->barrel_ec(clusID)==2 ) m_1cluster_ToT_ECA->Fill(cluster.totalToT()); - if(m_1cluster_ToT_ECC && m_pixelid->barrel_ec(clusID)==-2) m_1cluster_ToT_ECC->Fill(cluster.totalToT()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_1cluster_ToT_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL) m_1cluster_ToT_IBL->Fill(cluster.totalToT()); - if(m_1cluster_ToT_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_1cluster_ToT_B0->Fill(cluster.totalToT()); - if(m_1cluster_ToT_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_1cluster_ToT_B1->Fill(cluster.totalToT()); - if(m_1cluster_ToT_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_1cluster_ToT_B2->Fill(cluster.totalToT()); - } - } - if(cluster.rdoList().size()==2){ // Cluster size = 2 - if(m_2cluster_ToT_ECA && m_pixelid->barrel_ec(clusID)==2 ) m_2cluster_ToT_ECA->Fill(cluster.totalToT()); - if(m_2cluster_ToT_ECC && m_pixelid->barrel_ec(clusID)==-2) m_2cluster_ToT_ECC->Fill(cluster.totalToT()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_2cluster_ToT_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL) m_2cluster_ToT_IBL->Fill(cluster.totalToT()); - if(m_2cluster_ToT_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_2cluster_ToT_B0->Fill(cluster.totalToT()); - if(m_2cluster_ToT_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_2cluster_ToT_B1->Fill(cluster.totalToT()); - if(m_2cluster_ToT_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_2cluster_ToT_B2->Fill(cluster.totalToT()); - } - } - if(cluster.rdoList().size()==3){ // Cluster size = 3 - if(m_3cluster_ToT_ECA && m_pixelid->barrel_ec(clusID)==2 ) m_3cluster_ToT_ECA->Fill(cluster.totalToT()); - if(m_3cluster_ToT_ECC && m_pixelid->barrel_ec(clusID)==-2) m_3cluster_ToT_ECC->Fill(cluster.totalToT()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_3cluster_ToT_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL) m_3cluster_ToT_IBL->Fill(cluster.totalToT()); - if(m_3cluster_ToT_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_3cluster_ToT_B0->Fill(cluster.totalToT()); - if(m_3cluster_ToT_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_3cluster_ToT_B1->Fill(cluster.totalToT()); - if(m_3cluster_ToT_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_3cluster_ToT_B2->Fill(cluster.totalToT()); - } - } - if(cluster.rdoList().size()>3){ // CLuster size > 3 - if(m_bigcluster_ToT_ECA && m_pixelid->barrel_ec(clusID)==2 )m_bigcluster_ToT_ECA->Fill(cluster.totalToT()); - if(m_bigcluster_ToT_ECC && m_pixelid->barrel_ec(clusID)==-2)m_bigcluster_ToT_ECC->Fill(cluster.totalToT()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_bigcluster_ToT_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL) m_bigcluster_ToT_IBL->Fill(cluster.totalToT()); - if(m_bigcluster_ToT_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_bigcluster_ToT_B0->Fill(cluster.totalToT()); - if(m_bigcluster_ToT_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_bigcluster_ToT_B1->Fill(cluster.totalToT()); - if(m_bigcluster_ToT_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_bigcluster_ToT_B2->Fill(cluster.totalToT()); - } - } - /// Fill Charge - if(m_cluster_charge_ECA && m_pixelid->barrel_ec(clusID)==2 )m_cluster_charge_ECA->Fill(cluster.totalCharge()); - if(m_cluster_charge_ECC && m_pixelid->barrel_ec(clusID)==-2)m_cluster_charge_ECC->Fill(cluster.totalCharge()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_cluster_charge_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL)m_cluster_charge_IBL->Fill(cluster.totalCharge()); - if(m_cluster_charge_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL )m_cluster_charge_B0->Fill(cluster.totalCharge()); - if(m_cluster_charge_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL )m_cluster_charge_B1->Fill(cluster.totalCharge()); - if(m_cluster_charge_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL )m_cluster_charge_B2->Fill(cluster.totalCharge()); - } - if(cluster.rdoList().size()==1){ // Cluster size = 1 - if(m_1cluster_Q_ECA && m_pixelid->barrel_ec(clusID)==2 )m_1cluster_Q_ECA->Fill(cluster.totalCharge()); - if(m_1cluster_Q_ECC && m_pixelid->barrel_ec(clusID)==-2)m_1cluster_Q_ECC->Fill(cluster.totalCharge()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_1cluster_Q_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL)m_1cluster_Q_IBL->Fill(cluster.totalCharge()); - if(m_1cluster_Q_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL )m_1cluster_Q_B0->Fill(cluster.totalCharge()); - if(m_1cluster_Q_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL )m_1cluster_Q_B1->Fill(cluster.totalCharge()); - if(m_1cluster_Q_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL )m_1cluster_Q_B2->Fill(cluster.totalCharge()); - } - } - if(cluster.rdoList().size()==2){ // Cluster size = 2 - if(m_2cluster_Q_ECA && m_pixelid->barrel_ec(clusID)==2 )m_2cluster_Q_ECA->Fill(cluster.totalCharge()); - if(m_2cluster_Q_ECC && m_pixelid->barrel_ec(clusID)==-2)m_2cluster_Q_ECC->Fill(cluster.totalCharge()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_2cluster_Q_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL)m_2cluster_Q_IBL->Fill(cluster.totalCharge()); - if(m_2cluster_Q_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL )m_2cluster_Q_B0->Fill(cluster.totalCharge()); - if(m_2cluster_Q_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL )m_2cluster_Q_B1->Fill(cluster.totalCharge()); - if(m_2cluster_Q_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL )m_2cluster_Q_B2->Fill(cluster.totalCharge()); - } - } - if(cluster.rdoList().size()==3){ // Cluster size = 3 - if(m_3cluster_Q_ECA && m_pixelid->barrel_ec(clusID)==2 )m_3cluster_Q_ECA->Fill(cluster.totalCharge()); - if(m_3cluster_Q_ECC && m_pixelid->barrel_ec(clusID)==-2)m_3cluster_Q_ECC->Fill(cluster.totalCharge()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_3cluster_Q_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL)m_3cluster_Q_IBL->Fill(cluster.totalCharge()); - if(m_3cluster_Q_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL )m_3cluster_Q_B0->Fill(cluster.totalCharge()); - if(m_3cluster_Q_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL )m_3cluster_Q_B1->Fill(cluster.totalCharge()); - if(m_3cluster_Q_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL )m_3cluster_Q_B2->Fill(cluster.totalCharge()); - } - } - if(cluster.rdoList().size()>3){ // Cluster size > 3 - if(m_bigcluster_Q_ECA && m_pixelid->barrel_ec(clusID)==2 )m_bigcluster_Q_ECA->Fill(cluster.totalCharge()); - if(m_bigcluster_Q_ECC && m_pixelid->barrel_ec(clusID)==-2)m_bigcluster_Q_ECC->Fill(cluster.totalCharge()); - if (m_pixelid->barrel_ec(clusID)==0) { - if(m_bigcluster_Q_IBL && m_pixelid->layer_disk(clusID)==0 &&m_doIBL)m_bigcluster_Q_IBL->Fill(cluster.totalCharge()); - if(m_bigcluster_Q_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL )m_bigcluster_Q_B0->Fill(cluster.totalCharge()); - if(m_bigcluster_Q_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL )m_bigcluster_Q_B1->Fill(cluster.totalCharge()); - if(m_bigcluster_Q_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL )m_bigcluster_Q_B2->Fill(cluster.totalCharge()); - } - } - if(cluster.totalToT() > 15) //Cluster LVL1A histograms for ToT > 15 (corresponding to charge > 10000 electrons) - { - if(m_cluster_LVL1A_highToT)m_cluster_LVL1A_highToT->Fill(cluster.LVL1A()); - if(m_cluster_LVL1A_PIX && !(m_pixelid->barrel_ec(clusID)==0 && m_pixelid->layer_disk(clusID)==0 && m_doIBL))m_cluster_LVL1A_PIX->Fill(cluster.LVL1A()); - - if(m_cluster_LVL1A_ECA && m_pixelid->barrel_ec(clusID)==2 )m_cluster_LVL1A_ECA->Fill(cluster.LVL1A()); - if(m_cluster_LVL1A_ECC && m_pixelid->barrel_ec(clusID)==-2)m_cluster_LVL1A_ECC->Fill(cluster.LVL1A()); - if (m_pixelid->barrel_ec(clusID)==0) - { - if(m_cluster_LVL1A_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL )m_cluster_LVL1A_B0->Fill(cluster.LVL1A()); - if(m_cluster_LVL1A_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL )m_cluster_LVL1A_B1->Fill(cluster.LVL1A()); - if(m_cluster_LVL1A_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL )m_cluster_LVL1A_B2->Fill(cluster.LVL1A()); - } - } - if(cluster.totalToT() > 4 - && m_cluster_LVL1A_IBL && m_pixelid->layer_disk(clusID)==0 - && m_pixelid->barrel_ec(clusID)==0 - &&m_doIBL){ - m_cluster_LVL1A_IBL->Fill(cluster.LVL1A()); + if(pixlayer != PixLayer::kIBL){ + if(cluster.totalToT() > 15 && m_cluster_LVL1A1d_mod[pixlayer]) m_cluster_LVL1A1d_mod[pixlayer]->Fill(cluster.LVL1A()); + }else{ + if(cluster.totalToT() > 4 && m_cluster_LVL1A1d_mod[pixlayer]) m_cluster_LVL1A1d_mod[pixlayer]->Fill(cluster.LVL1A()); } + + /// Fill ToT if(m_cluster_ToT_mod) m_cluster_ToT_mod->Fill(cluster.totalToT(),clusID,m_pixelid,m_doIBL); + if(m_cluster_ToT1d_mod[pixlayer]) m_cluster_ToT1d_mod[pixlayer]->Fill(cluster.totalToT()); + if(pixlayer == PixLayer::kIBL && m_cluster_ToT1d_mod[pixlayeribl2d3d]) m_cluster_ToT1d_mod[pixlayeribl2d3d]->Fill(cluster.totalToT()); + if(cluster.rdoList().size()==1 && m_1cluster_ToT_mod[pixlayer] ) m_1cluster_ToT_mod[pixlayer]->Fill(cluster.totalToT()); + if(cluster.rdoList().size()==2 && m_2cluster_ToT_mod[pixlayer] ) m_2cluster_ToT_mod[pixlayer]->Fill(cluster.totalToT()); + if(cluster.rdoList().size()==3 && m_3cluster_ToT_mod[pixlayer] ) m_3cluster_ToT_mod[pixlayer]->Fill(cluster.totalToT()); + if(cluster.rdoList().size()>3 && m_bigcluster_ToT_mod[pixlayer] ) m_bigcluster_ToT_mod[pixlayer]->Fill(cluster.totalToT()); + + /// Fill Charge + if(m_cluster_Q_mod[pixlayer]) m_cluster_Q_mod[pixlayer]->Fill(cluster.totalCharge()); + if(pixlayer == PixLayer::kIBL && m_cluster_Q_mod[pixlayeribl2d3d]) m_cluster_Q_mod[pixlayeribl2d3d]->Fill(cluster.totalCharge()); + if(cluster.rdoList().size()==1 && m_1cluster_Q_mod[pixlayer] ) m_1cluster_Q_mod[pixlayer]->Fill(cluster.totalCharge()); + if(cluster.rdoList().size()==2 && m_2cluster_Q_mod[pixlayer] ) m_2cluster_Q_mod[pixlayer]->Fill(cluster.totalCharge()); + if(cluster.rdoList().size()==3 && m_3cluster_Q_mod[pixlayer] ) m_3cluster_Q_mod[pixlayer]->Fill(cluster.totalCharge()); + if(cluster.rdoList().size()>3 && m_bigcluster_Q_mod[pixlayer] ) m_bigcluster_Q_mod[pixlayer]->Fill(cluster.totalCharge()); + //if(cluster.totalToT() > 4 + // && m_cluster_LVL1A_IBL && m_pixelid->layer_disk(clusID)==0 + // && m_pixelid->barrel_ec(clusID)==0 + // &&m_doIBL){ + // //m_cluster_LVL1A_IBL->Fill(cluster.LVL1A()); + //} // Fill Cluster efficiency if(m_cluseff_mod){ @@ -731,34 +540,8 @@ StatusCode PixelMainMon::FillClustersMon(void) if(cluster.totList().at(i)<8) {nlowToT++;} } - if (m_pixelid->barrel_ec(clusID)==0) { - - if(m_clusToT_vs_eta_IBL && m_pixelid->layer_disk(clusID)==0 && m_doIBL) m_clusToT_vs_eta_IBL->Fill(m_pixelid->eta_module(clusID) ,cluster.totalToT()); - if(m_clusToT_vs_eta_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_clusToT_vs_eta_B0->Fill(m_pixelid->eta_module(clusID) ,cluster.totalToT()); - if(m_clusToT_vs_eta_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_clusToT_vs_eta_B1->Fill(m_pixelid->eta_module(clusID) ,cluster.totalToT()); - if(m_clusToT_vs_eta_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_clusToT_vs_eta_B2->Fill(m_pixelid->eta_module(clusID) ,cluster.totalToT()); - if(m_ToT_vs_clussize_IBL && m_pixelid->layer_disk(clusID)==0 && m_doIBL) m_ToT_vs_clussize_IBL->Fill(cluster.rdoList().size() ,cluster.totalToT()); - if(m_ToT_vs_clussize_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_ToT_vs_clussize_B0->Fill(cluster.rdoList().size() ,cluster.totalToT()); - if(m_ToT_vs_clussize_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_ToT_vs_clussize_B1->Fill(cluster.rdoList().size() ,cluster.totalToT()); - if(m_ToT_vs_clussize_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_ToT_vs_clussize_B2->Fill(cluster.rdoList().size() ,cluster.totalToT()); - if(m_nlowToT_vs_clussize_IBL && m_pixelid->layer_disk(clusID)==0 && m_doIBL) m_nlowToT_vs_clussize_IBL->Fill(cluster.rdoList().size(),nlowToT); - if(m_nlowToT_vs_clussize_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_nlowToT_vs_clussize_B0->Fill(cluster.rdoList().size(),nlowToT); - if(m_nlowToT_vs_clussize_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_nlowToT_vs_clussize_B1->Fill(cluster.rdoList().size(),nlowToT); - if(m_nlowToT_vs_clussize_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_nlowToT_vs_clussize_B2->Fill(cluster.rdoList().size(),nlowToT); - - if(m_Q_vs_clussize_B0 && m_pixelid->layer_disk(clusID)==0+m_doIBL ) m_Q_vs_clussize_B0->Fill(cluster.rdoList().size() ,cluster.totalCharge()); - if(m_Q_vs_clussize_B1 && m_pixelid->layer_disk(clusID)==1+m_doIBL ) m_Q_vs_clussize_B1->Fill(cluster.rdoList().size() ,cluster.totalCharge()); - if(m_Q_vs_clussize_B2 && m_pixelid->layer_disk(clusID)==2+m_doIBL ) m_Q_vs_clussize_B2->Fill(cluster.rdoList().size() ,cluster.totalCharge()); - } - - if (m_pixelid->barrel_ec(clusID)==2) { - if(m_Q_vs_clussize_ECA)m_Q_vs_clussize_ECA->Fill(cluster.rdoList().size() ,cluster.totalCharge()); - if(m_nlowToT_vs_clussize_ECA)m_nlowToT_vs_clussize_ECA->Fill(cluster.rdoList().size(),nlowToT); - } - if (m_pixelid->barrel_ec(clusID)==-2) { - if(m_Q_vs_clussize_ECC)m_Q_vs_clussize_ECC->Fill(cluster.rdoList().size() ,cluster.totalCharge()); - if(m_nlowToT_vs_clussize_ECC)m_nlowToT_vs_clussize_ECC->Fill(cluster.rdoList().size(),nlowToT); - } + if(m_clusToT_vs_eta_mod[pixlayer]) m_clusToT_vs_eta_mod[pixlayer]->Fill(m_pixelid->eta_module(clusID), cluster.totalToT()); + if(m_ToT_vs_clussize_mod[pixlayer]) m_ToT_vs_clussize_mod[pixlayer]->Fill(cluster.totalToT(), cluster.rdoList().size()); if(pixlayer != 99 && m_cluster_groupsize_mod[pixlayer]){ if( cluster.rdoList().size() <= 299.5 ){ @@ -817,15 +600,15 @@ StatusCode PixelMainMon::FillClustersMon(void) FillSummaryHistos(m_cluster_occupancy,m_ecA_cluster_occupancy_summary_low,m_ecC_cluster_occupancy_summary_low,m_bar_layI_cluster_occupancy_summary_low,m_bar_lay0_cluster_occupancy_summary_low,m_bar_lay1_cluster_occupancy_summary_low,m_bar_lay2_cluster_occupancy_summary_low); } - if(m_clusters_per_lumi)m_clusters_per_lumi->Fill(m_manager->lumiBlockNumber(),nclusters); - if(m_clusters_per_lumi_PIX)m_clusters_per_lumi_PIX->Fill(m_manager->lumiBlockNumber(),nclusters-nclusters_IBL); + if(m_clusters_per_lumi)m_clusters_per_lumi->Fill(m_manager->lumiBlockNumber(), nclusters); + //if(m_clusters_per_lumi_PIX)m_clusters_per_lumi_PIX->Fill(m_manager->lumiBlockNumber(),nclusters-nclusters_IBL); for( int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ if(m_clusters_per_lumi_mod[i]) m_clusters_per_lumi_mod[i]->Fill( m_manager->lumiBlockNumber(), nclusters_mod[i]); } - if(m_largeclusters_per_lumi)m_largeclusters_per_lumi->Fill(m_manager->lumiBlockNumber(),nlargeclusters); + if(m_largeclusters_per_lumi)m_largeclusters_per_lumi->Fill(m_manager->lumiBlockNumber(), nlargeclusters); if(m_verylargeclusters_per_lumi)m_verylargeclusters_per_lumi->Fill(m_manager->lumiBlockNumber(),nverylargeclusters); - if( (nclusters>=1000) && m_highNclusters_per_lumi) m_highNclusters_per_lumi->Fill(m_manager->lumiBlockNumber()); + if((nclusters>=1000) && m_highNclusters_per_lumi) m_highNclusters_per_lumi->Fill(m_manager->lumiBlockNumber()); if (m_doOnTrack || m_doOnPixelTrack) { if(m_clustersOnOffTrack_per_lumi && nclusters_all>0) m_clustersOnOffTrack_per_lumi->Fill(m_manager->lumiBlockNumber(),(float)nclusters_ontrack/nclusters_all); } @@ -834,7 +617,7 @@ StatusCode PixelMainMon::FillClustersMon(void) if (!m_majorityDisabled) { if(m_num_clusters) m_num_clusters->Fill(nclusters); - if(m_num_clusters_PIX) m_num_clusters_PIX->Fill(nclusters-nclusters_IBL); + //if(m_num_clusters_PIX) m_num_clusters_PIX->Fill(nclusters-nclusters_IBL); if(m_num_clusters_low) m_num_clusters_low->Fill(nclusters); if(m_num_clusters_ECA) m_num_clusters_ECA->Fill(nclusters_ECA); if(m_num_clusters_ECC) m_num_clusters_ECC->Fill(nclusters_ECC); @@ -894,11 +677,7 @@ StatusCode PixelMainMon::ProcClustersMon(void) double events = m_event; if(events==0) return StatusCode::SUCCESS; //if no events, the rest of the test is pointless and would divide by 0 - if( m_event != m_event2) events = m_event2; - - //if (m_average_cluster_occupancy) { //scale to get average occupancies - // m_average_cluster_occupancy->Scale(events, m_doIBL); - //} + if( m_event != m_event2) events = m_event2; return StatusCode::SUCCESS; } diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Errors.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Errors.cxx index ee36a7a9f24c54ef3f9ebc09817e9391f2b54c53..cb233bafba4951fb5698b25598fd874b8fb48bb4 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Errors.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Errors.cxx @@ -74,6 +74,11 @@ StatusCode PixelMainMon::BookRODErrorMon(void) float max_eta[nlayers] = {2.5, 3.5, 6.5, 6.5, 6.5, 15.5}; /// Set the number of bins, max/min bin + std::string atext_LB = ";lumi block"; + std::string atext_err = ";# errors/event"; + std::string atext_erf = ";# errors/module/event"; + std::string atext_erb = ";Error bit"; + std::string atext_ers = ";Error state"; std::string axisTitle_LB = ";lumi block;# errors/event"; std::string axisTitle_ES = ";Error State;# Errors"; int nbins_LB = 2500; float minbin_LB = -0.5; float maxbin_LB = minbin_LB + (1.0*nbins_LB); @@ -81,40 +86,49 @@ StatusCode PixelMainMon::BookRODErrorMon(void) std::string tmp; std::string tmp2; std::string tmp3[nerror] = {"SyncErrorsFrac_per_event", "TruncationErrorsFrac_per_event", "OpticalErrorsFrac_per_event", "SEUErrorsFrac_per_event", "TimeoutErrorsFrac_per_event"}; + std::string hname; + std::string htitles; for( int i=0; i<nlayersIBL2d3d; i++){ - tmp = "errors_per_lumi_" + modlabel2[i]; - tmp2 = "Number of errors per event per LB, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodHistos.regHist(m_errors_per_lumi_mod[i] = TProfile_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB)); - tmp = "SyncErrors_per_lumi_" + modlabel2[i]; - tmp2 = "Synchronization errors per event per LB, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodHistos.regHist(m_SyncErrors_per_lumi_mod[i] = TProfile_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB)); - tmp = "OpticalErrors_per_lumi_" + modlabel2[i]; - tmp2 = "Preamble/header errors per event per LB, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodHistos.regHist(m_OpticalErrors_per_lumi_mod[i] = TProfile_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB)); - tmp = "SEUErrors_per_lumi_" + modlabel2[i]; - tmp2 = "SEU errors per event per LB, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodHistos.regHist(m_SEU_Errors_per_lumi_mod[i] = TProfile_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB)); - tmp = "TruncationErrors_per_lumi_" + modlabel2[i]; - tmp2 = "Truncation errors per event per LB, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodHistos.regHist(m_TruncationErrors_per_lumi_mod[i] = TProfile_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB)); - tmp = "TimeoutErrors_per_lumi_" + modlabel2[i]; - tmp2 = "Timeout errors per event per LB, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodHistos.regHist(m_TimeoutErrors_per_lumi_mod[i] = TProfile_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB)); - tmp = "ErrorBit_per_lumi_" + modlabel2[i]; - tmp2 = "Errors per module per event per LB, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodHistos.regHist(m_ErrorBit_per_lumi_mod[i] = TProfile2D_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB, 31, 0., 31.)); + hname = makeHistname(("errors_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average number of errors per event, "+modlabel2[i]), (atext_LB+atext_err), false); + sc = rodHistos.regHist(m_errors_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB)); + + hname = makeHistname(("SyncErrors_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average Synchronization errors per event, "+modlabel2[i]), (atext_LB+atext_err), false); + sc = rodHistos.regHist(m_SyncErrors_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB)); + + hname = makeHistname(("OpticalErrors_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average Preamble/header errors per event, "+modlabel2[i]), (atext_LB+atext_err), false); + sc = rodHistos.regHist(m_OpticalErrors_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB)); + + hname = makeHistname(("SEUErrors_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average SEU errors per event, "+modlabel2[i]), (atext_LB+atext_err), false); + sc = rodHistos.regHist(m_SEU_Errors_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB)); + + hname = makeHistname(("TruncationErrors_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average Truncation errors per event, "+modlabel2[i]), (atext_LB+atext_err), false); + sc = rodHistos.regHist(m_TruncationErrors_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB)); + + hname = makeHistname(("TimeoutErrors_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average Timeout errors per event, "+modlabel2[i]), (atext_LB+atext_err), false); + sc = rodHistos.regHist(m_TimeoutErrors_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB)); + + hname = makeHistname(("ErrorBit_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average Errors per module per event, "+modlabel2[i]), (atext_LB+atext_erb+atext_err), false); + sc = rodHistos.regHist(m_ErrorBit_per_lumi_mod[i] = TProfile2D_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB, 31, 0., 31.)); m_ErrorBit_per_lumi_mod[i]->SetOption("colz"); - tmp = "Error_per_lumi_" + modlabel2[i]; - tmp2 = "Errors per module per event per LB, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodHistos.regHist(m_Error_per_lumi_mod[i] = TProfile2D_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB, 7, 0., 7.)); + + hname = makeHistname(("Error_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average Errors per module per event, "+modlabel2[i]), (atext_LB+atext_ers+atext_err), false); + sc = rodHistos.regHist(m_Error_per_lumi_mod[i] = TProfile2D_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB, 7, 0., 7.)); m_Error_per_lumi_mod[i]->SetOption("colz"); for( int j=0; j<nerror; j++){ - tmp = tmp3[j] + "_" + modlabel2[i]; - tmp2 = tmp3[j] + ", " + modlabel2[i] + m_histTitleExt + ";lumi block;# errors/(module, event)"; - sc = rodHistos.regHist(m_ErrorFraction_per_evt[j][i] = TProfile_LW::create( tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB)); + hname = makeHistname((tmp3[j]+"_"+modlabel2[i]), false); + htitles = makeHisttitle((tmp3[j]+", "+modlabel2[i]), (atext_LB+atext_erf), false); + sc = rodHistos.regHist(m_ErrorFraction_per_evt[j][i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB)); } } @@ -133,32 +147,34 @@ StatusCode PixelMainMon::BookRODErrorMon(void) histErrorName[7][0] = "Mod_Trunc_EoE_Overflow_errors"; histErrorName[7][1] = "Truncation Module EoE Overflow errors per event per LB"; histErrorName[8][0] = "ROD_Trunc_HT_Limit_errors"; histErrorName[8][1] = "Truncation ROD H/T Limit errors per event per LB"; histErrorName[9][0] = "ROD_Trunc_ROD_OF_errors"; histErrorName[9][1] = "Truncation ROD Overflow errors per event per LB"; - histErrorName[10][0] = "Optical_Errors"; histErrorName[10][1] = "Preamble/header Errors per event per LB"; - histErrorName[11][0] = "SEU_Hit_Parity"; histErrorName[11][1] = "SEU Hit Parity errors per event per LB"; - histErrorName[12][0] = "SEU_Register_Parity"; histErrorName[12][1] = "SEU Register Parity errors per event per LB"; - histErrorName[13][0] = "SEU_Hamming"; histErrorName[13][1] = "SEU Hamming Code errors per event per LB"; - histErrorName[14][0] = "ROD_Timeout"; histErrorName[14][1] = "ROD Formatter Timeout errors per event per LB"; - histErrorName[15][0] = "FE_Warning"; histErrorName[15][1] = "FE Warning errors per event per LB"; + histErrorName[10][0] = "Optical_Errors"; histErrorName[10][1]= "Preamble/header Errors per event per LB"; + histErrorName[11][0] = "SEU_Hit_Parity"; histErrorName[11][1]= "SEU Hit Parity errors per event per LB"; + histErrorName[12][0] = "SEU_Register_Parity"; histErrorName[12][1]= "SEU Register Parity errors per event per LB"; + histErrorName[13][0] = "SEU_Hamming"; histErrorName[13][1]= "SEU Hamming Code errors per event per LB"; + histErrorName[14][0] = "ROD_Timeout"; histErrorName[14][1]= "ROD Formatter Timeout errors per event per LB"; + histErrorName[15][0] = "FE_Warning"; histErrorName[15][1]= "FE Warning errors per event per LB"; for(int j=0; j<nerrState; j++){ for (int i=0; i<nlayers-1; i++) { - tmp = histErrorName[j][0] + "_per_lumi_" + modlabel2[i]; - tmp2 = histErrorName[j][1] + ", " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodExpert.regHist(m_errorStates_per_lumi_mod[i][j] = TProfile_LW::create(tmp.c_str(), tmp2.c_str(), nbins_LB, minbin_LB, maxbin_LB)); + hname = makeHistname((histErrorName[j][0]+"_per_lumi_"+modlabel2[i]), false); + htitles = makeHisttitle(("Average "+histErrorName[j][1]+", "+modlabel2[i]), (atext_LB+atext_erf), false); + sc = rodExpert.regHist(m_errorStates_per_lumi_mod[i][j] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, minbin_LB, maxbin_LB)); } bool errorHist = false; - tmp = histErrorName[j][0] + "Map"; - tmp2 = histErrorName[j][1] + m_histTitleExt; - m_ErrorStateMap[j] = new PixelMon2DMapsLW(tmp.c_str(), tmp2.c_str(), m_doIBL, errorHist); + hname = makeHistname((histErrorName[j][0]+"_Map"), false); + htitles = makeHisttitle((histErrorName[j][1]), (atext_LB+atext_erf), false); + m_ErrorStateMap[j] = new PixelMon2DMapsLW(hname.c_str(), htitles.c_str(), m_doIBL, errorHist); sc = m_ErrorStateMap[j]->regHist(rodExpert, m_doIBL, errorHist); } for( int i=0; i<nlayers; i++){ - tmp = "Bad_Module_Errors_" + modlabel2[i]; - tmp2 = "Errors for Bad Module, " + modlabel2[i] + m_histTitleExt + axisTitle_LB; - sc = rodExpert.regHist(m_bad_mod_errors_mod[i] = TH1I_LW::create( tmp.c_str(), tmp2.c_str(), nbins_ES, minbin_ES, maxbin_ES)); - tmp = "Errors_EtaID_" + modlabel2[i]; - tmp2 = "Errors vs Eta Module ID, " + modlabel2[i] + m_histTitleExt + ";#eta module ID;Error State;# Errors"; - sc = rodExpert.regHist(m_errors_etaid_mod[i] = TH2F_LW::create( tmp.c_str(), tmp2.c_str(), nmod_eta[i], min_eta[i], max_eta[i], 32,-0.5,31.5)); + hname = makeHistname(("Bad_Module_Errors_"+modlabel2[i]), false); + htitles = makeHisttitle(("Errors for Bad Module, "+modlabel2[i]), (atext_LB+atext_erf), false); + sc = rodExpert.regHist(m_bad_mod_errors_mod[i] = TH1I_LW::create(hname.c_str(), htitles.c_str(), nbins_ES, minbin_ES, maxbin_ES)); + + hname = makeHistname(("Errors_EtaID_"+modlabel2[i]), false); + htitles = makeHisttitle(("Errors vs Eta Module ID, "+modlabel2[i]), ";eta module ID;Error State;# Errors", false); + sc = rodExpert.regHist(m_errors_etaid_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nmod_eta[i], min_eta[i], max_eta[i], 32,-0.5,31.5)); + //tmp = "Errors_EtaID_per_event_" + modlabel2[i]; //tmp2 = "Errors vs Eta Module ID/event, " + modlabel2[i] + m_histTitleExt + ";#eta module ID;Error State;# Errors"; //sc = rodExpert.regHist(m_errors_etaid_per_evt_mod[i] = TH2F_LW::create( tmp.c_str(), tmp2.c_str(), nmod_eta[i], min_eta[i], max_eta[i], 32,-0.5,31.5)); diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/HelperFunctions.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/HelperFunctions.cxx index 03fba7c9308b3214aadd1a71205709f5a8ab52ce..ed961bac67efd4d2c50885529fd50d72ffe8248c 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/HelperFunctions.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/HelperFunctions.cxx @@ -22,6 +22,21 @@ #include "PixelMonitoring/PixelMon2DMaps.h" +std::string PixelMainMon :: makeHistname(std::string set, bool ontrk) +{ + std::string name = set; + if( ontrk && m_doOnTrack ) name += "_OnTrack"; + return name; +} + +std::string PixelMainMon :: makeHisttitle(std::string set, std::string axis, bool ontrk) +{ + std::string name = set; + if( ontrk && m_doOnTrack ) name += "_OnTrack"; + name = name + m_histTitleExt + axis; + return name; +} + int PixelMainMon :: GetPixLayerID(int ec, int ld, bool ibl) { int layer = 99; diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx index fad559b199bfcb7f03d82b2be71e2924378e19e0..eecb7867e98df08d99968004a3da39ebf11518a3 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx @@ -32,6 +32,7 @@ #include "InDetRawData/InDetRawDataContainer.h" #include "InDetRawData/InDetRawDataCLASS_DEF.h" #include "PixelMonitoring/PixelMon2DMaps.h" +#include "PixelMonitoring/PixelMon2DMapsLW.h" #include "PixelMonitoring/DBMMon2DMaps.h" #include "PixelMonitoring/PixelMonModules.h" #include "PixelMonitoring/PixelMon2DLumiProfiles.h" @@ -62,7 +63,7 @@ StatusCode PixelMainMon::BookHitsMon(void) MonGroup timeShift( this, pathT.c_str(), run, ATTRIB_MANAGED ); //declare a group of histograms MonGroup timeExpert( this, pathT.c_str(), run, ATTRIB_MANAGED ); //declare a group of histograms - std::string modlabel[8]; + std::string modlabel[9]; modlabel[0]="ECA"; modlabel[1]="ECC"; modlabel[2]="B0"; modlabel[3]="B1"; modlabel[4]="B2"; modlabel[5]="IBL"; modlabel[6]="IBL2D"; modlabel[7]="IBL3D"; @@ -74,6 +75,8 @@ StatusCode PixelMainMon::BookHitsMon(void) std::string tmp; std::string tmp2; std::string atitles; + std::string hname; + std::string htitles; int nbins_LB = 2500; double min_LB = -0.5; double max_LB = min_LB + (1.0*nbins_LB); int nbins_tot3 = 300; double min_tot3 = -0.5; double max_tot3 = min_tot3 + (1.0*nbins_tot3); @@ -81,37 +84,64 @@ StatusCode PixelMainMon::BookHitsMon(void) static constexpr int nmod_phi[PixLayer::COUNT] = {48, 48, 22, 38, 52, 14}; static constexpr int nmod_eta[PixLayer::COUNT] = {3, 3, 13, 13, 13, 20}; - - sc = rdoExpert.regHist(m_mu_vs_lumi = TH1F_LW::create("Interactions_vs_lumi", "<Interactions> vs LB ; LumiBlock; <#Interactions/event>", nbins_LB, min_LB, max_LB)); - tmp = "Events_per_lumi"; tmp2 = "Number of event per LB"; atitles = ";lumi block;# event"; - sc = rdoShift.regHist(m_events_per_lumi = TH1F_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); - tmp = "Hits_per_lumi"; tmp2 = "Number of pixel hits per event per LB"; atitles = ";lumi block;# hits/event"; - sc = rdoShift.regHist(m_hits_per_lumi = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); - tmp = "AvgOcc_per_lumi"; tmp2 = "Average pixel occupancy per event per LB"; atitles = ";lumi block;(average occupancy)/event"; - sc = rdoShift.regHist(m_avgocc_per_lumi = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); - tmp = "AvgOcc_RatioIBLB0_per_lumi"; tmp2 = "Average pixel occupancy IBL/B0 per event per LB"; atitles = ";lumi block;ratio"; - sc = rdoShift.regHist(m_avgocc_ratioIBLB0_per_lumi = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); + std::string atext_LB = ";lumi block"; + std::string atext_nevt = ";# events"; + std::string atext_nhit = ";# hits"; + std::string atext_hit = ";# hits/event"; + std::string atext_occ = ";# hits/pixel/event"; + std::string atext_tot = ";ToT [BC]"; + std::string atext_lv1 = ";Level 1 Accept"; + + hname = makeHistname("Interactions_vs_lumi", false); + htitles = makeHisttitle("<Interactions> vs LB", (atext_LB+";<#Interactions/event>"), false); + sc = rdoExpert.regHist(m_mu_vs_lumi = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + + hname = makeHistname("Events_per_lumi", false); + htitles = makeHisttitle("Number of events in a LB", (atext_LB+atext_nevt), false); + sc = rdoShift.regHist(m_events_per_lumi = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + + hname = makeHistname("Hits_per_lumi", false); + htitles = makeHisttitle("Average number of pixel hits per event", (atext_LB+atext_hit), false); + sc = rdoShift.regHist(m_hits_per_lumi = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + + hname = makeHistname("AvgOcc_per_lumi", false); + htitles = makeHisttitle("Average pixel occupancy per event over all layers", (atext_LB+atext_occ), false); + sc = rdoShift.regHist(m_avgocc_per_lumi = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + + hname = makeHistname("AvgOcc_RatioIBLB0_per_lumi", false); + htitles = makeHisttitle("Average pixel occupancy ratio of IBL/B0 per event per LB", (atext_LB+";ratio"), false); + sc = rdoShift.regHist(m_avgocc_ratioIBLB0_per_lumi = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); for(int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ // not include IBL2D and IBL3D - tmp = "Hits_per_lumi"; tmp2 = "Number of pixel hits per event per LB"; atitles = ";lumi block;# hits/event"; - sc = rdoExpert.regHist(m_hits_per_lumi_mod[i] = TProfile_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); - tmp = "AvgOcc_per_lumi"; tmp2 = "Average pixel occupancy per event per LB"; atitles = ";lumi block;#hits/(pixel, event)"; - sc = rdoExpert.regHist(m_avgocc_per_lumi_mod[i] = TProfile_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); - tmp = "MaxOcc_per_lumi"; tmp2 = "Max. pixel occupancy per event per LB"; atitles = ";lumi block;#hits/pixel/event"; - sc = rdoShift.regHist(m_maxocc_per_lumi_mod[i] = TH2F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB, 200, 0.0001, 0.002)); - tmp = "nHits_per_module_per_event"; tmp2 = "Number of hits per module per event"; atitles = ";#hits per module per event;#event #times #module"; - sc = rdoShift.regHist(m_nhits_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + m_histTitleExt + atitles).c_str(), 1000, -0.5, -0.5+1000.0)); - tmp = "nLargeEvent_per_lumi"; tmp2 = "Number of large event (hitocc > 0.7#times 10^{-3}) per LB"; atitles = ";lumi block;#event"; - sc = rdoShift.regHist(m_nlargeevt_per_lumi_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_LB, min_LB, max_LB)); - } - - tmp = "Hit_ToT"; tmp2 = "Hit ToT"; atitles = ";ToT;# hits"; + hname = makeHistname(("Hits_per_lumi_"+modlabel[i]), false); + htitles = makeHisttitle(("Average number of pixel hits per event, "+modlabel[i]), (atext_LB+atext_hit), false); + sc = rdoExpert.regHist(m_hits_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + + hname = makeHistname(("AvgOcc_per_lumi_"+modlabel[i]), false); + htitles = makeHisttitle(("Average pixel occupancy per event, "+modlabel[i]), (atext_LB+atext_occ), false); + sc = rdoExpert.regHist(m_avgocc_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + + hname = makeHistname(("MaxOcc_per_lumi_"+modlabel[i]), false); + htitles = makeHisttitle(("Max. pixel occupancy per event, "+modlabel[i]), (atext_LB+atext_occ), false); + sc = rdoShift.regHist(m_maxocc_per_lumi_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB, 200, 0.0001, 0.002)); + + hname = makeHistname(("nHits_per_module_per_event_"+modlabel[i]), false); + htitles = makeHisttitle(("Number of hits in a module in an event, "+modlabel[i]), ";#hits in a module in an event;#events #times #modules", false); + sc = rdoShift.regHist(m_nhits_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), 1000, -0.5, -0.5+1000.0)); + + hname = makeHistname(("nLargeEvent_per_lumi_"+modlabel[i]), false); + htitles = makeHisttitle(("Number of large events (hitocc > 0.7#times 10^{-3}), "+modlabel[i]), (atext_LB+atext_nevt), false); + sc = rdoShift.regHist(m_nlargeevt_per_lumi_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB)); + } + for(int i=0; i<PixLayerIBL2D3DDBM::COUNT; i++){ + hname = makeHistname(("Hit_ToT_"+modlabel2[i]), false); + htitles = makeHisttitle(("Hit ToT, "+modlabel2[i]), (atext_tot+atext_nhit), false); if(i<PixLayerIBL2D3DDBM::kDBMA){ - sc = rdoExpert.regHist(m_hit_ToT[i] = TH1F_LW::create((tmp + "_" + modlabel2[i]).c_str(), (tmp2 + ", " + modlabel2[i] + m_histTitleExt + atitles).c_str(), nbins_tot3, min_tot3, max_tot3)); + sc = rdoExpert.regHist(m_hit_ToT[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot3, min_tot3, max_tot3)); }else if(m_doIBL){ - sc = rdoExpert.regHist(m_hit_ToT[i] = TH1F_LW::create((tmp + "_" + modlabel2[i]).c_str(), (tmp2 + ", " + modlabel2[i] + m_histTitleExt + atitles).c_str(), nbins_tot4, min_tot4, max_tot4)); + sc = rdoExpert.regHist(m_hit_ToT[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot4, min_tot4, max_tot4)); } } @@ -121,16 +151,20 @@ StatusCode PixelMainMon::BookHitsMon(void) m_hitmap_tmp = new PixelMon2DMaps("HitMap_tmp", ("Hit map for monitoring" + m_histTitleExt).c_str()); sc = m_hitmap_tmp->regHist(rdoShift); for(int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ + hname = makeHistname(("Hit_ToT_Mon_"+modlabel[i]), false); + htitles = makeHisttitle(("Hit ToT Monitoring, "+modlabel[i]), (atext_tot+atext_nhit), false); if( i<PixLayer::kIBL ){ - tmp = "Hit_ToT_Mon"; tmp2 = "Hit ToT Monitoring"; - sc = rdoExpert.regHist(m_hit_ToT_Mon_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_tot3, min_tot3, max_tot3)); - tmp = "Hit_ToT_tmp"; tmp2 = "Hit ToT tmp"; - sc = rdoExpert.regHist(m_hit_ToT_tmp_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_tot3, min_tot3, max_tot3)); + sc = rdoExpert.regHist(m_hit_ToT_Mon_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot3, min_tot3, max_tot3)); }else{ - tmp = "Hit_ToT_Mon"; tmp2 = "Hit ToT Monitoring"; - sc = rdoExpert.regHist(m_hit_ToT_Mon_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_tot4, min_tot4, max_tot4)); - tmp = "Hit_ToT_tmp"; tmp2 = "Hit ToT tmp"; - sc = rdoExpert.regHist(m_hit_ToT_tmp_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), nbins_tot4, min_tot4, max_tot4)); + sc = rdoExpert.regHist(m_hit_ToT_Mon_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot4, min_tot4, max_tot4)); + } + + hname = makeHistname(("Hit_ToT_tmp_"+modlabel[i]), false); + htitles = makeHisttitle(("Hit ToT tmp, "+modlabel[i]), (atext_tot+atext_nhit), false); + if( i<PixLayer::kIBL ){ + sc = rdoExpert.regHist(m_hit_ToT_tmp_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot3, min_tot3, max_tot3)); + }else{ + sc = rdoExpert.regHist(m_hit_ToT_tmp_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot4, min_tot4, max_tot4)); } } } @@ -146,13 +180,13 @@ StatusCode PixelMainMon::BookHitsMon(void) if(m_doTiming) { - sc = timeExpert.regHist(m_Lvl1ID_PIX = TH1I_LW::create("LvlID_PIX", ("Level 1 ID (PIX)" + m_histTitleExt + ";level 1 ID;# hits").c_str(), 20,-0.5,19.5)); - sc = timeExpert.regHist(m_Lvl1ID_IBL = TH1I_LW::create("LvlID_IBL", ("Level 1 ID (IBL)" + m_histTitleExt + ";level 1 ID;# hits").c_str(), 40,-0.5,39.5)); - sc = timeShift.regHist(m_BCID = TH1I_LW::create("Pixel_BCID", ("BCID" + m_histTitleExt + ";Pixel BCID;# pixel hits").c_str(), 300,-0.5,299.5));//2808 bunches but have a few extra bins to check - sc = timeShift.regHist(m_Atlas_BCID = TH1F_LW::create("Atlas_BCID", ("BCID" + m_histTitleExt + ";ATLAS BCID;# pixel hits").c_str(), 3500,-0.5,3499.5)); - sc = timeShift.regHist(m_Atlas_BCID_hits = TH2F_LW::create("Atlas_BCID_Hits", ("BCID" + m_histTitleExt + ";BCID;# pixel hits").c_str(), 3500,-0.5,3499.5,100,0,25000)); - sc = timeExpert.regHist(m_BCID_Profile = TProfile_LW::create("Atlas_BCID_Profile", ("BCID_Profile" + m_histTitleExt + ";BCID;# pixel hits").c_str(), 3500,-0.5,3499.5)); - sc = timeShift.regHist(m_Lvl1A = TH1F_LW::create("Lvl1A", ("Hit Level 1 Accept" + m_histTitleExt + ";Level 1 Accept; # hits").c_str(), 14, -1.5, 12.5)); + sc = timeExpert.regHist(m_Lvl1ID_PIX = TH1I_LW::create("LvlID_PIX", ("Level 1 ID (PIX)" + m_histTitleExt + ";level 1 ID" + atext_nhit).c_str(), 20,-0.5,19.5)); + sc = timeExpert.regHist(m_Lvl1ID_IBL = TH1I_LW::create("LvlID_IBL", ("Level 1 ID (IBL)" + m_histTitleExt + ";level 1 ID" + atext_nhit).c_str(), 40,-0.5,39.5)); + sc = timeShift.regHist(m_BCID = TH1I_LW::create("Pixel_BCID", ("BCID" + m_histTitleExt + ";Pixel BCID" + atext_nhit).c_str(), 300,-0.5,299.5));//2808 bunches but have a few extra bins to check + sc = timeShift.regHist(m_Atlas_BCID = TH1F_LW::create("Atlas_BCID", ("BCID" + m_histTitleExt + ";ATLAS BCID" + atext_nhit).c_str(), 3500,-0.5,3499.5)); + sc = timeShift.regHist(m_Atlas_BCID_hits = TH2F_LW::create("Atlas_BCID_Hits", ("BCID" + m_histTitleExt + ";BCID" + atext_nhit).c_str(), 3500,-0.5,3499.5,100,0,25000)); + sc = timeExpert.regHist(m_BCID_Profile = TProfile_LW::create("Atlas_BCID_Profile", ("BCID_Profile" + m_histTitleExt + ";BCID" + atext_nhit).c_str(), 3500,-0.5,3499.5)); + sc = timeShift.regHist(m_Lvl1A = TH1F_LW::create("Lvl1A", ("Hit Level 1 Accept" + m_histTitleExt + ";Level 1 Accept" + atext_nhit).c_str(), 14, -1.5, 12.5)); for(int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ tmp = "ROD_Module_BCID"; tmp2 = "Difference between BCID of RODs and Modules"; atitles = "; BCID: ROD-Module (#bc) ; Number of Pixels"; @@ -162,19 +196,21 @@ StatusCode PixelMainMon::BookHitsMon(void) //tmp = "Lvl1A"; tmp2 = "Hit Level 1 Accept"; atitles = ";Level 1 Accept; # hits"; //sc = timeShift.regHist(m_Lvl1A_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), 14, -1.5, 12.5)); } + for(int i=0; i<PixLayerDBM::COUNT-1+(int)(m_doIBL); i++){ - tmp = "Lvl1A"; tmp2 = "Hit Level 1 Accept"; atitles = ";Level 1 Accept; # hits"; - sc = timeShift.regHist(m_Lvl1A_mod[i] = TH1F_LW::create((tmp + "_" + modlabel2[i]).c_str(), (tmp2 + ", " + modlabel2[i] + m_histTitleExt + atitles).c_str(), 14, -1.5, 12.5)); + hname = makeHistname(("Lvl1A_"+modlabel2[i]), false); + htitles = makeHisttitle(("Hit Level 1 Accept, "+modlabel2[i]), (atext_lv1+atext_nhit), false); + sc = timeShift.regHist(m_Lvl1A_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), 14, -1.5, 12.5)); } } if(m_do2DMaps) { - m_occupancy = new PixelMon2DMaps("Occupancy", ("hit occupancy" + m_histTitleExt).c_str()); sc = m_occupancy->regHist(rdoShift); - m_average_pixocc = new PixelMon2DMaps("Occupancy_per_pixel", ("#hits / pixel" + m_histTitleExt).c_str()); sc = m_average_pixocc->regHist(rdoShift); - //m_average_pixocc2 = new PixelMon2DMaps("Average_PixOcc", ("#hits / (pixel, event)" + m_histTitleExt).c_str()); sc = m_average_pixocc2->regHist(rdoShift); - //m_average_occupancy = new PixelMon2DMaps("Average_Occupancy", ("#hits / event" + m_histTitleExt).c_str()); sc = m_average_occupancy->regHist(rdoShift); - //m_occupancyDBM = new DBMMon2DMaps("Occupancy_DBM", ("hit occupancy DBM" + m_histTitleExt).c_str()); sc = m_occupancyDBM->regHist(rdoShift); + m_occupancy = new PixelMon2DMaps("Occupancy", ("hit map"+ m_histTitleExt).c_str()); + sc = m_occupancy->regHist(rdoShift); + + m_average_pixocc = new PixelMon2DMapsLW("Occupancy_per_pixel", ("#hits / pixel" + m_histTitleExt).c_str(), m_doIBL, false); + sc = m_average_pixocc->regHist(rdoShift, m_doIBL, false); m_Lvl1ID_diff_mod_ATLAS_per_LB = new PixelMon2DLumiProfiles("Lvl1ID_diff_ATLAS_mod_per_LB", ("ATLAS_{Level 1 ID} - Module_{Level 1 ID} per LB" + m_histTitleExt).c_str(),"#Delta Level 1 ID",m_doIBL,false); sc = m_Lvl1ID_diff_mod_ATLAS_per_LB->regHist(timeExpert,m_doIBL,false); @@ -182,11 +218,12 @@ StatusCode PixelMainMon::BookHitsMon(void) m_Lvl1ID_absdiff_mod_ATLAS_per_LB = new PixelMon2DLumiProfiles("Lvl1ID_absdiff_ATLAS_mod_per_LB", ("ATLAS_{Level 1 ID} - Module_{Level 1 ID} per LB" + m_histTitleExt).c_str(),"#Delta Level 1 ID",m_doIBL,false); sc = m_Lvl1ID_absdiff_mod_ATLAS_per_LB->regHist(timeExpert,m_doIBL,false); } + if(m_doModules) { - m_hit_num_mod = new PixelMonModules1D("Hit_num", ("Number of hits per event in module" + m_histTitleExt).c_str(), 15,-0.5,149.5,m_doIBL); + m_hit_num_mod = new PixelMonModules1D("Hit_num", ("Number of hits in a module in an event" + m_histTitleExt).c_str(), 15,-0.5,149.5,m_doIBL); sc = m_hit_num_mod->regHist(this,(path+"/Modules_NumberOfHits").c_str(),run, m_doIBL); - m_hiteff_mod = new PixelMonModulesProf("Hit_track_eff", ("Proportion of hits on track vs t in module" + m_histTitleExt).c_str(), 2500,-0.5,2499.5,m_doIBL); + m_hiteff_mod = new PixelMonModulesProf("Hit_track_eff", ("Proportion of hits on track" + m_histTitleExt).c_str(), 2500,-0.5,2499.5,m_doIBL); sc = m_hiteff_mod->regHist(this,(path+"/Modules_HitEff").c_str(),run, m_doIBL); } if(m_doModules || m_doFEChipSummary) @@ -212,20 +249,22 @@ StatusCode PixelMainMon::BookHitsMon(void) int max_hits = 80000; int max_avhits = 100; if (m_doHeavyIonMon) { max_hits = 350000; max_avhits = 2500; } - sc = rdoShift.regHist(m_num_hits= TH1I_LW::create("num_hits", ("Number of pixel hits per event" + m_histTitleExt + ";# pixel hits/event;# events").c_str(), 2500,0.,(int)max_hits)); + sc = rdoShift.regHist(m_num_hits= TH1I_LW::create("num_hits", ("Number of pixel hits in an event" + m_histTitleExt + ";# pixel hits/event;# events").c_str(), 2500,0.,(int)max_hits)); - tmp = "Occupancy_Summary"; tmp2 = "Average hit occupancy"; atitles = ";average # of hits per module per event;# modules"; for(int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ - sc = rdoExpert.regHist(m_occupancy_summary_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), 100,0.,(int)max_avhits)); + hname = makeHistname(("Occupancy_Summary_"+modlabel[i]), false); + htitles = makeHisttitle(("Average hit occupancy, "+modlabel[i]), ";average # hits in a module in an event;# modules", false); + sc = rdoExpert.regHist(m_occupancy_summary_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), 100,0.,(int)max_avhits)); } } if(m_doLowOccupancy) { sc = rdoShift.regHist(m_num_hits_low= TH1I_LW::create("num_hits_low_occupancy", ("Number of pixel hits per event" + m_histTitleExt + ";# pixel hits/event;# events").c_str(), 200,-0.5,199.5)); - tmp = "Occupancy_Summary_Low"; tmp2 = "Average hit occupancy(low)"; atitles = ";average # of hits per module per event;# modules"; for(int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ - sc = rdoExpert.regHist(m_occupancy_summary_low_mod[i] = TH1F_LW::create((tmp + "_" + modlabel[i]).c_str(), (tmp2 + ", " + modlabel[i] + m_histTitleExt + atitles).c_str(), 50, 0., 2.)); + hname = makeHistname(("Occupancy_Summary_Low_"+modlabel[i]), false); + htitles = makeHisttitle(("Average hit occupancy(low), "+modlabel[i]), ";average # hits in a module in an event;# modules", false); + sc = rdoExpert.regHist(m_occupancy_summary_low_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), 50, 0., 2.)); } } @@ -289,23 +328,44 @@ StatusCode PixelMainMon::BookHitsLumiBlockMon(void) modlabel[0]="ECA"; modlabel[1]="ECC"; modlabel[2]="B0"; modlabel[3]="B1"; modlabel[4]="B2"; modlabel[5]="IBL"; + std::string hname; + std::string htitles; + std::string atext_LB = ";lumi block"; + std::string atext_nevt = ";# events"; + std::string atext_nhit = ";# hits"; + std::string atext_hit = ";# hits/event"; + std::string atext_occ = ";# hits/pixel/event"; + std::string atext_tot = ";ToT [BC]"; + std::string atext_lv1 = ";Level 1 Accept"; + if(m_doHighOccupancy) { - sc = lumiBlockHist.regHist(m_num_hits_LB = TH1I_LW::create("num_hits_LB", ("Number of pixel hits per event" + m_histTitleExt + ";# pixel hits/event;# events").c_str(), 100,0.,25000)); + hname = makeHistname("num_hits_LB", false); + htitles = makeHisttitle("Number of pixel hits in an event", (atext_hit+atext_nevt), false); + sc = lumiBlockHist.regHist(m_num_hits_LB = TH1I_LW::create(hname.c_str(), htitles.c_str(), 100, -0.5, 24999.5)); } if(m_doLowOccupancy) { - sc = lumiBlockHist.regHist(m_num_hits_low_LB = TH1I_LW::create("num_hits_low_occupancy_LB", ("Number of pixel hits per event" + m_histTitleExt + ";# pixel hits/event;# events").c_str(), 200,-0.5,199.5)); + hname = makeHistname("num_hits_low_LB", false); + htitles = makeHisttitle("Number of pixel hits in an event", (atext_hit+atext_nevt), false); + sc = lumiBlockHist.regHist(m_num_hits_low_LB = TH1I_LW::create(hname.c_str(), htitles.c_str(), 200, -0.5, 199.5)); } if(m_doModules) { - m_hit_num_mod_LB = new PixelMonModules1D("Hit_num_LB", ("Number of hits per event in module" + m_histTitleExt).c_str(), 20,-0.5,19.5,m_doIBL); - sc = m_hit_num_mod_LB->regHist(this,(path+"/Modules_NumberOfHits").c_str(),lowStat,m_doIBL); + hname = makeHistname("num_Hits_mod_LB", false); + htitles = makeHisttitle("Number of pixel hits in a module in an event", (atext_hit+atext_nevt), false); + m_hit_num_mod_LB = new PixelMonModules1D(hname.c_str(), htitles.c_str(), 20, -0.5, 19.5, m_doIBL); + sc = m_hit_num_mod_LB->regHist(this, (path+"/Modules_NumberOfHits").c_str(), lowStat, m_doIBL); } for( int i=0; i<PixLayer::COUNT; i++){ + hname = makeHistname(("Hit_ToT_LB_"+modlabel[i]), false); + htitles = makeHisttitle(("Hit ToT, "+modlabel[i]), (atext_tot+atext_nhit), false); if(i != PixLayer::kIBL){ - sc = lumiBlockHist.regHist(m_hit_ToT_LB_mod[i] = TH1F_LW::create(("Hits_ToT_LB_"+modlabel[i]).c_str(), ("Hits Time over Threshold, " + modlabel[i] + m_histTitleExt + ";ToT;# Hits").c_str(), 300,-0.5,299.5)); + sc = lumiBlockHist.regHist(m_hit_ToT_LB_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), 300, -0.5, 299.5)); }else{ - sc = lumiBlockHist.regHist(m_hit_ToT_LB_mod[i] = TH1F_LW::create(("Hits_ToT_LB_"+modlabel[i]).c_str(), ("Hits Time over Threshold, " + modlabel[i] + m_histTitleExt + ";ToT;# Hits").c_str(), 20,-0.5,19.5)); + sc = lumiBlockHist.regHist(m_hit_ToT_LB_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), 20, -0.5, 19.5)); } - sc = lumiBlockHist.regHist(m_Lvl1A_10min_mod[i] = TH1F_LW::create(("Lvl1A_10min_" + modlabel[i]).c_str(), ("Hit Level 1 Accept, " + modlabel[i] + m_histTitleExt + ";Level 1 Accept; # hits").c_str(), 14, -1.5, 12.5)); + + hname = makeHistname(("Lvl1A_10min_"+modlabel[i]), false); + htitles = makeHisttitle(("Hit Level 1 Accept, "+modlabel[i]), (atext_lv1+atext_nhit), false); + sc = lumiBlockHist.regHist(m_Lvl1A_10min_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), 14, -1.5, 12.5)); } m_occupancy_10min = new PixelMon2DMaps("Occupancy_10min", ("hit occupancy" + m_histTitleExt).c_str()); @@ -404,8 +464,8 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event int m_HitPerEventArray_l2[ nmod_phi[PixLayer::kB2] ][ nmod_eta[PixLayer::kB2] ]; int m_HitPerEventArray_lI[ nmod_phi[PixLayer::kIBL] ][ nmod_eta[PixLayer::kIBL] ]; - if (m_doModules) - { + ///if (m_doModules) + ///{ for(int i=0; i<PixLayer::COUNT; i++){ for( int phi=0; phi<nmod_phi[i]; phi++){ for(int eta=0; eta<nmod_eta[i]; eta++){ @@ -418,7 +478,7 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event } } } - }//end doModules + ///}//end doModules double nhits=0; double nhits_mod[PixLayer::COUNT]={0}; @@ -486,8 +546,6 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event /// Fill Occupancy if(m_occupancy) m_occupancy->Fill(rdoID, m_pixelid, m_doIBL); if(m_occupancy_10min && m_doLumiBlock) m_occupancy_10min->Fill(rdoID, m_pixelid, m_doIBL); - //if(m_average_pixocc2) m_average_pixocc2->ScaleBynPixnEvt(m_occupancy, m_event, m_nGood_IBL2D, m_nGood_IBL3D, m_nGood_B0, m_nGood_B1, m_nGood_B2, m_nGood_ECA, m_nGood_ECC, m_doIBL); - //if(m_average_pixocc2) m_average_pixocc2->Fill(rdoID, m_pixelid, m_doIBL); if(m_average_pixocc && nchannels[pixlayeribl2d3d] > 0) m_average_pixocc->WeightingFill(rdoID, m_pixelid, m_doIBL, 1.0/( 1.0*nchannels[pixlayeribl2d3d]) ); if(m_doOnline && m_hitmap_tmp) m_hitmap_tmp->Fill(rdoID, m_pixelid, m_doIBL); @@ -496,7 +554,7 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event m_Lvl1A->Fill((*p_rdo)->getLVL1A()); if(pixlayerdbm != 99 && m_Lvl1A_mod[pixlayerdbm]) m_Lvl1A_mod[pixlayerdbm]->Fill( (*p_rdo)->getLVL1A()); } - if( pixlayer != 99 && m_Lvl1A_10min_mod[pixlayer] && m_doLumiBlock ) m_Lvl1A_10min_mod[pixlayer]->Fill( (*p_rdo)->getLVL1A() ); + if(pixlayer != 99 && m_Lvl1A_10min_mod[pixlayer] && m_doLumiBlock ) m_Lvl1A_10min_mod[pixlayer]->Fill( (*p_rdo)->getLVL1A() ); if(isIBL && m_Lvl1ID_IBL) m_Lvl1ID_IBL->Fill((*p_rdo)->getLVL1ID()%32); if(!isIBL && m_Lvl1ID_PIX) m_Lvl1ID_PIX->Fill((*p_rdo)->getLVL1ID()); @@ -550,7 +608,7 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event if(m_doLumiBlock && pixlayer != 99){ if(m_hit_ToT_LB_mod[pixlayer]) m_hit_ToT_LB_mod[pixlayer]->Fill((*p_rdo)->getToT()); } - if( pixlayer != 99 && m_ToT_etaphi_mod[pixlayer] ) m_ToT_etaphi_mod[pixlayer]->Fill(m_pixelid->eta_module(rdoID), m_pixelid->phi_module(rdoID), (*p_rdo)->getToT()); + if(pixlayer != 99 && m_ToT_etaphi_mod[pixlayer] ) m_ToT_etaphi_mod[pixlayer]->Fill(m_pixelid->eta_module(rdoID), m_pixelid->phi_module(rdoID), (*p_rdo)->getToT()); /// Monitoring!! @@ -580,8 +638,8 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event nhitsM3++; nhitsM4++; - if (m_doModules)//fill module hit arrays so we can calculate the number of hits/event/module - { + ///if (m_doModules)//fill module hit arrays so we can calculate the number of hits/event/module + ///{ if(m_pixelid->barrel_ec(rdoID)==2 ) m_HitPerEventArray_disksA[m_pixelid->phi_module(rdoID)][m_pixelid->layer_disk(rdoID)]++; if(m_pixelid->barrel_ec(rdoID)==-2) m_HitPerEventArray_disksC[m_pixelid->phi_module(rdoID)][m_pixelid->layer_disk(rdoID)]++; @@ -593,11 +651,11 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event if(m_pixelid->layer_disk(rdoID)==1+m_doIBL) m_HitPerEventArray_l1[m_pixelid->phi_module(rdoID)][m_pixelid->eta_module(rdoID)+6]++; if(m_pixelid->layer_disk(rdoID)==2+m_doIBL) m_HitPerEventArray_l2[m_pixelid->phi_module(rdoID)][m_pixelid->eta_module(rdoID)+6]++; } - } + ///} ///////////End of main fill block//////////////////// } - }//end of event loop + } //end of ROD loop @@ -621,7 +679,7 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event /// Fill number of hits per lLB if(m_events_per_lumi) m_events_per_lumi->Fill(m_manager->lumiBlockNumber()); - if(m_hits_per_lumi) m_hits_per_lumi->Fill(m_manager->lumiBlockNumber(),nhits); + if(m_hits_per_lumi) m_hits_per_lumi->Fill(m_manager->lumiBlockNumber(), nhits); for( int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ if(m_hits_per_lumi_mod[i]) m_hits_per_lumi_mod[i]->Fill(m_manager->lumiBlockNumber(), nhits_mod[i]); } @@ -630,7 +688,7 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event double avgocc = 0; double avgocc_mod[PixLayer::COUNT] = {0}; if(nactivechannels>0) avgocc = nhits/nactivechannels; - if(m_avgocc_per_lumi) m_avgocc_per_lumi->Fill(m_manager->lumiBlockNumber(),avgocc); + if(m_avgocc_per_lumi) m_avgocc_per_lumi->Fill(m_manager->lumiBlockNumber(), avgocc); for( int i=0; i<PixLayer::COUNT-1+(int)(m_doIBL); i++){ if(nactivechannels_mod[i] > 0) avgocc_mod[i] = nhits_mod[i]/nactivechannels_mod[i]; @@ -648,19 +706,18 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event /// Fill the #hit per module per event //if(!m_doOnline){ - for( int i=0; i<PixLayer::COUNT; i++){ - for( int phi=0; phi<nmod_phi[i]; phi++){ - for( int eta=0; eta<nmod_eta[i]; eta++){ - if( i == PixLayer::kECA && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_disksA[phi][eta] ); - if( i == PixLayer::kECC && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_disksC[phi][eta] ); - if( i == PixLayer::kB0 && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_l0[phi][eta]); - if( i == PixLayer::kB1 && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_l1[phi][eta]); - if( i == PixLayer::kB2 && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_l2[phi][eta]); - if( i == PixLayer::kIBL && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_lI[phi][eta]); - } + for(int i=0; i<PixLayer::COUNT; i++){ + for(int phi=0; phi<nmod_phi[i]; phi++){ + for(int eta=0; eta<nmod_eta[i]; eta++){ + if(i == PixLayer::kECA && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_disksA[phi][eta] ); + if(i == PixLayer::kECC && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_disksC[phi][eta] ); + if(i == PixLayer::kB0 && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_l0[phi][eta]); + if(i == PixLayer::kB1 && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_l1[phi][eta]); + if(i == PixLayer::kB2 && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_l2[phi][eta]); + if(i == PixLayer::kIBL && m_nhits_mod[i]) m_nhits_mod[i]->Fill( m_HitPerEventArray_lI[phi][eta]); } } - //} + } /// Put the #hits per event for each layer if( m_event == 0){ diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelDCSMon.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelDCSMon.cxx index 4d84c736b65fc9b8c5492176910042c720748185..7e7ee2be1b84321417af8ce27656919a903ec8c3 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelDCSMon.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelDCSMon.cxx @@ -55,10 +55,10 @@ StatusCode PixelMainMon::BookPixelDCSMon(void) //sc = dcsExpert.regHist(m_hist_coolingPipeTemperatureInlet2D = TH2F_LW::create("cooling Pipe TemperatureInlet_chanNum", "cooling Pipe TempreratureInlet vs Channel Number; Channel Number;Temperature",14,1,15,150,-15,15)); //sc = dcsExpert.regHist(m_hist_coolingPipeTemperatureOutlet2D = TH2F_LW::create("cooling Pipe TemperatureOutlet_chanNum", "cooling Pipe TempreratureOutlet vs Channel Number; Channel Number;Temperature",14,1,15,150,-15,15)); //sc = dcsExpert.regHist(m_hist_HV_voltage2D = TH2F_LW::create("HV voltage_chanNum", "HV vs Channel Number; Channel Number;HV",14,1,15,100,-100,0)); - float min_temperature = -15.; float max_temperature = 5.; int nbins_temperature = 100; + float min_temperature = -20.; float max_temperature = 0.; int nbins_temperature = 100; float min_LB = 0.; float max_LB = 1500.; int nbins_LB = 1500; float min_module = -10.; float max_module = 10.; int nbins_module = 20; - float min_HV = 0.; float max_HV = 100.; int nbins_HV = 100; + float min_HV = 0.; float max_HV = 150.; int nbins_HV = 150; float min_HVcurrent = 0.; float max_HVcurrent = 0.1; int nbins_HVcurrent = 100; float min_LV = 0.; float max_LV = 5.; int nbins_LV = 50; float min_LVcurrent = 0.; float max_LVcurrent = 5.; int nbins_LVcurrent = 50; @@ -355,7 +355,7 @@ StatusCode PixelMainMon::BookPixelDCSMon(void) } // temperature sc = dcsExpert.regHist(m_hist_moduleTemperatureEtaPhi - = TProfile2D_LW::create("moduleTemperature_EtaPhi", "moduleTemperature EtaPhi; Module #eta Index;staveID;"+label_moduleTemp, + = TProfile2D_LW::create("moduleTemperature_EtaPhi", "Module Temperature EtaPhi; Module #eta Index;staveID;"+label_moduleTemp, nbins_module,min_module,max_module,nbins_staveID,min_staveID,max_staveID)); //m_hist_moduleTemperatureEtaPhi->SetContour(99); xaxis = m_hist_moduleTemperatureEtaPhi->GetXaxis(); @@ -500,7 +500,7 @@ StatusCode PixelMainMon::BookPixelDCSMon(void) //m_hist_LB_staveID_dT->SetContour(99); // LV PC sc = dcsExpert.regHist(m_hist_LVPowerConsumptionEtaPhi - = TProfile2D_LW::create("LVPowerConsumption_EtaPhi", "LVPowerConsumption EtaPhi; Module #eta Index;staveID;"+label_LVPC, + = TProfile2D_LW::create("LVPowerConsumption_EtaPhi", "LV Power Consumption EtaPhi; Module #eta Index;staveID;"+label_LVPC, nbins_module,min_module,max_module,nbins_staveID,min_staveID,max_staveID)); //m_hist_LVPowerConsumptionEtaPhi->SetContour(99); xaxis = m_hist_LVPowerConsumptionEtaPhi->GetXaxis(); @@ -513,7 +513,7 @@ StatusCode PixelMainMon::BookPixelDCSMon(void) //m_hist_LB_staveID_LVPowerConsumption->SetContour(99); // HV PC sc = dcsExpert.regHist(m_hist_HVPowerConsumptionEtaPhi - = TProfile2D_LW::create("HVPowerConsumption_EtaPhi", "HVPowerConsumption EtaPhi; Module #eta Index;staveID;"+label_HVPC, + = TProfile2D_LW::create("HVPowerConsumption_EtaPhi", "HV Power Consumption EtaPhi; Module #eta Index;staveID;"+label_HVPC, nbins_module,min_module,max_module,nbins_staveID,min_staveID,max_staveID)); //m_hist_HVPowerConsumptionEtaPhi->SetContour(99); xaxis = m_hist_HVPowerConsumptionEtaPhi->GetXaxis(); @@ -526,7 +526,7 @@ StatusCode PixelMainMon::BookPixelDCSMon(void) //m_hist_LB_staveID_HVPowerConsumption->SetContour(99); // LVHV PC sc = dcsExpert.regHist(m_hist_LVHVPowerConsumptionEtaPhi - = TProfile2D_LW::create("LVHVPowerConsumption_EtaPhi", "LVHVPowerConsumption EtaPhi; Module #eta Index;staveID;"+label_LVHVPC, + = TProfile2D_LW::create("LVHVPowerConsumption_EtaPhi", "LV+HV Power Consumption EtaPhi; Module #eta Index;staveID;"+label_LVHVPC, nbins_module,min_module,max_module,nbins_staveID,min_staveID,max_staveID)); //m_hist_LVHVPowerConsumptionEtaPhi->SetContour(99); xaxis = m_hist_LVHVPowerConsumptionEtaPhi->GetXaxis(); @@ -539,7 +539,7 @@ StatusCode PixelMainMon::BookPixelDCSMon(void) //m_hist_LB_staveID_LVHVPowerConsumption->SetContour(99); // eff flex temp sc = dcsExpert.regHist(m_hist_effFLEXtempEtaPhi - = TProfile2D_LW::create("effFLEXtemp_EtaPhi", "effFLEXtemp EtaPhi; Module #eta Index;staveID;"+label_effFLEXtemp, + = TProfile2D_LW::create("effFLEXtemp_EtaPhi", "Effective FLEX Temperature EtaPhi; Module #eta Index;staveID;"+label_effFLEXtemp, nbins_module,min_module,max_module,nbins_staveID,min_staveID,max_staveID)); //m_hist_effFLEXtempEtaPhi->SetContour(99); xaxis = m_hist_effFLEXtempEtaPhi->GetXaxis(); @@ -552,7 +552,7 @@ StatusCode PixelMainMon::BookPixelDCSMon(void) //m_hist_LB_staveID_effFLEXtemp->SetContour(99); // thermal figure of merit sc = dcsExpert.regHist(m_hist_thermalFigureMeritEtaPhi - = TProfile2D_LW::create("thermalFigureMerit_EtaPhi", "thermalFigureMerit EtaPhi; Module #eta Index;staveID;"+label_tfm, + = TProfile2D_LW::create("thermalFigureMerit_EtaPhi", "Thermal Figure of Merit EtaPhi; Module #eta Index;staveID;"+label_tfm, nbins_module,min_module,max_module,nbins_staveID,min_staveID,max_staveID)); //m_hist_thermalFigureMeritEtaPhi->SetContour(99); xaxis = m_hist_thermalFigureMeritEtaPhi->GetXaxis(); @@ -1091,12 +1091,12 @@ StatusCode PixelMainMon::ProcPixelDCSMon(void) m_hist_LB_staveID_LVHVPowerConsumption->Fill(LB,staveNum,lvpc + hvpc * 0.001); m_hist_LB_moduleGroup_LVHVPowerConsumption[staveNum - 1]->Fill(LB, moduleGroup, lvpc + hvpc * 0.001); // fill effective FLEX temperature - float tempFlex = dT * 0.6 + tempOutlet; + float tempFlex = dT * 0.6 + tempOutlet; // 0.6 is measured value m_hist_effFLEXtempEtaPhi->Fill(module_eta, staveNum, tempFlex); m_hist_LB_staveID_effFLEXtemp->Fill(LB,staveNum,tempFlex); m_hist_LB_moduleGroup_effFLEXtemp[staveNum - 1]->Fill(LB, moduleGroup, tempFlex); // fill thermal figure of merit - if (lvpc + hvpc * 0.001 == 0) { + if (lvpc + hvpc * 0.001 != 0) { float tfm = dT/(lvpc + hvpc * 0.001); m_hist_thermalFigureMeritEtaPhi->Fill(module_eta, staveNum, tfm); m_hist_LB_staveID_thermalFigureMerit->Fill(LB,staveNum,tfm); diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMainMon.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMainMon.cxx index 0ee20e910b5478cbb23a3947681c54e25bc9e57a..8fd0142590b76b345fd59e4823b04408c5e6ad54 100755 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMainMon.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMainMon.cxx @@ -140,6 +140,7 @@ PixelMainMon::PixelMainMon(const std::string & type, declareProperty("doStatus", m_doStatus = false); declareProperty("doDCS", m_doDCS = false); + declareProperty("doDegFactorMap", m_doDegFactorMap = true); declareProperty("doHeavyIonMon", m_doHeavyIonMon = false); declareProperty("doIBL", m_doIBL = false); @@ -168,20 +169,6 @@ PixelMainMon::PixelMainMon(const std::string & type, m_avgocc_per_lumi = 0; - //m_ToT_vs_eta_IBL = 0; - //m_ToT_vs_eta_B0 = 0; - //m_ToT_vs_eta_B1 = 0; - //m_ToT_vs_eta_B2 = 0; - //m_ToT_vs_phi_IBL = 0; - //m_ToT_vs_phi_B0 = 0; - //m_ToT_vs_phi_B1 = 0; - //m_ToT_vs_phi_B2 = 0; - m_nlowToT_vs_clussize_IBL = 0; - m_nlowToT_vs_clussize_B0 = 0; - m_nlowToT_vs_clussize_B1 = 0; - m_nlowToT_vs_clussize_B2 = 0; - m_nlowToT_vs_clussize_ECC = 0; - m_nlowToT_vs_clussize_ECA = 0; m_Lvl1A = 0; m_Lvl1ID_PIX = 0; m_Lvl1ID_IBL = 0; @@ -194,9 +181,7 @@ PixelMainMon::PixelMainMon(const std::string & type, m_diff_ROD_BCID = 0; m_occupancy = 0; m_occupancy_10min = 0; - //m_average_occupancy = 0; m_average_pixocc = 0; - m_average_pixocc2 = 0; m_avgocc_ratioIBLB0_per_lumi = 0; m_hitmap_tmp = 0; m_FE_chip_hit_summary = 0; @@ -223,6 +208,14 @@ PixelMainMon::PixelMainMon(const std::string & type, m_pixel_noise_map = 0; m_pixel_occupancy_spectrum = 0; m_hit_num_mod = 0; + + //------------------- + // track histograms + //------------------- + m_degFactorMap = 0; + m_degFactorMap_per_lumi = 0; + m_degFactorMap_eta_per_lumi = 0; + //m_degFactorMap_phi_per_lumi = 0; m_track_res_phi = 0; m_track_pull_phi = 0; m_track_res_eta = 0; @@ -235,21 +228,21 @@ PixelMainMon::PixelMainMon(const std::string & type, m_track_chi2_bcl1_highpt = 0; m_track_chi2_bcl0_highpt = 0; m_track_chi2_bclgt1_highpt = 0; - m_track_clusToT = 0; - m_track_qOverP = 0; - m_track_qOverP_inv = 0; - m_track_pt = 0; - m_track_d0 = 0; - m_track_z0 = 0; - m_track_phi0 = 0; - m_track_theta = 0; - m_track_eta = 0; + //m_track_clusToT = 0; + //m_track_qOverP = 0; + //m_track_qOverP_inv = 0; + //m_track_pt = 0; + //m_track_d0 = 0; + //m_track_z0 = 0; + //m_track_phi0 = 0; + //m_track_theta = 0; + //m_track_eta = 0; m_tracks_per_lumi = 0; m_trackRate_per_lumi = 0; m_tracksPerEvt_per_lumi = 0; m_tracksPerEvtPerMu_per_lumi = 0; - m_track_dedx = 0; - m_track_mass_dedx = 0; + //m_track_dedx = 0; + //m_track_mass_dedx = 0; m_clustot_vs_pt = 0; m_clustot_lowpt = 0; m_1hitclustot_lowpt = 0; @@ -262,68 +255,10 @@ PixelMainMon::PixelMainMon(const std::string & type, m_tsos_holemap = 0; m_tsos_outliermap = 0; m_clusters_per_lumi = 0; - m_clusters_per_lumi_PIX = 0; m_largeclusters_per_lumi = 0; m_verylargeclusters_per_lumi = 0; m_totalclusters_per_lumi = 0; m_highNclusters_per_lumi = 0; - m_cluster_ToT_PIX = 0; - m_cluster_ToT_IBL = 0; - m_cluster_ToT_ECA = 0; - m_cluster_ToT_IBL3D = 0; - m_cluster_ToT_IBL2D = 0; - m_cluster_ToT_B0 = 0; - m_cluster_ToT_B1 = 0; - m_cluster_ToT_B2 = 0; - m_cluster_ToT_ECC = 0; - m_bigcluster_ToT_ECA = 0; - m_bigcluster_ToT_IBL = 0; - m_bigcluster_ToT_B0 = 0; - m_bigcluster_ToT_B1 = 0; - m_bigcluster_ToT_B2 = 0; - m_bigcluster_ToT_ECC = 0; - m_1cluster_ToT_ECA = 0; - m_1cluster_ToT_IBL = 0; - m_1cluster_ToT_B0 = 0; - m_1cluster_ToT_B1 = 0; - m_1cluster_ToT_B2 = 0; - m_1cluster_ToT_ECC = 0; - m_2cluster_ToT_ECA = 0; - m_2cluster_ToT_IBL = 0; - m_2cluster_ToT_B0 = 0; - m_2cluster_ToT_B1 = 0; - m_2cluster_ToT_B2 = 0; - m_2cluster_ToT_ECC = 0; - m_3cluster_ToT_ECA = 0; - m_3cluster_ToT_IBL = 0; - m_3cluster_ToT_B0 = 0; - m_3cluster_ToT_B1 = 0; - m_3cluster_ToT_B2 = 0; - m_3cluster_ToT_ECC = 0; - m_bigcluster_Q_ECA = 0; - m_bigcluster_Q_IBL = 0; - m_bigcluster_Q_B0 = 0; - m_bigcluster_Q_B1 = 0; - m_bigcluster_Q_B2 = 0; - m_bigcluster_Q_ECC = 0; - m_1cluster_Q_ECA = 0; - m_1cluster_Q_IBL = 0; - m_1cluster_Q_B0 = 0; - m_1cluster_Q_B1 = 0; - m_1cluster_Q_B2 = 0; - m_1cluster_Q_ECC = 0; - m_2cluster_Q_ECA = 0; - m_2cluster_Q_IBL = 0; - m_2cluster_Q_B0 = 0; - m_2cluster_Q_B1 = 0; - m_2cluster_Q_B2 = 0; - m_2cluster_Q_ECC = 0; - m_3cluster_Q_ECA = 0; - m_3cluster_Q_IBL = 0; - m_3cluster_Q_B0 = 0; - m_3cluster_Q_B1 = 0; - m_3cluster_Q_B2 = 0; - m_3cluster_Q_ECC = 0; m_clussize_map = 0; m_cluscharge_map = 0; m_clusToT_map = 0; @@ -332,40 +267,12 @@ PixelMainMon::PixelMainMon(const std::string & type, m_cluster_row_width = 0; m_cluster_row_width_IBL = 0; m_cluster_LVL1A = 0; - m_cluster_LVL1A_PIX = 0; m_clus_LVL1A_sizenot1 = 0; m_cluster_LVL1A_highToT = 0; - m_cluster_LVL1A_ECA = 0; - m_cluster_LVL1A_ECC = 0; - m_cluster_LVL1A_IBL = 0; - m_cluster_LVL1A_B0 = 0; - m_cluster_LVL1A_B1 = 0; - m_cluster_LVL1A_B2 = 0; - m_cluster_charge_ECA = 0; - m_cluster_charge_ECC = 0; - m_cluster_charge_IBL = 0; - m_cluster_charge_B0 = 0; - m_cluster_charge_B1 = 0; - m_cluster_charge_B2 = 0; m_clusterSize_eta = 0; - m_clusToT_vs_eta_IBL = 0; - m_clusToT_vs_eta_B0 = 0; - m_clusToT_vs_eta_B1 = 0; - m_clusToT_vs_eta_B2 = 0; - m_ToT_vs_clussize_IBL = 0; - m_ToT_vs_clussize_B0 = 0; - m_ToT_vs_clussize_B1 = 0; - m_ToT_vs_clussize_B2 = 0; - m_Q_vs_clussize_IBL = 0; - m_Q_vs_clussize_B0 = 0; - m_Q_vs_clussize_B1 = 0; - m_Q_vs_clussize_B2 = 0; - m_Q_vs_clussize_ECC = 0; - m_Q_vs_clussize_ECA = 0; m_cluster_occupancy = 0; m_clusocc_DBM = 0; m_clusocc_sizenot1 = 0; - //m_average_cluster_occupancy = 0; m_cluseff_mod = 0; m_cluster_ToT_mod = 0; m_cluster_size_mod = 0; @@ -399,27 +306,6 @@ PixelMainMon::PixelMainMon(const std::string & type, m_Status_modules = 0; m_status = 0; m_dqStatus = 0; - m_badModules_per_lumi = 0; - m_badModules_per_lumi_ECA = 0; - m_badModules_per_lumi_ECC = 0; - m_badModules_per_lumi_IBL = 0; - m_badModules_per_lumi_B0 = 0; - m_badModules_per_lumi_B1 = 0; - m_badModules_per_lumi_B2 = 0; - m_disabledModules_per_lumi = 0; - m_disabledModules_per_lumi_PIX = 0; - m_disabledModules_per_lumi_ECA = 0; - m_disabledModules_per_lumi_ECC = 0; - m_disabledModules_per_lumi_IBL = 0; - m_disabledModules_per_lumi_B0 = 0; - m_disabledModules_per_lumi_B1 = 0; - m_disabledModules_per_lumi_B2 = 0; - m_baddisabledModules_per_lumi_ECA = 0; - m_baddisabledModules_per_lumi_ECC = 0; - m_baddisabledModules_per_lumi_B0 = 0; - m_baddisabledModules_per_lumi_B1 = 0; - m_baddisabledModules_per_lumi_B2 = 0; - m_baddisabledModules_per_lumi_IBL = 0; m_error1 = 0; m_errorTypes = 0; m_otherROD_per_lumi_IBL = 0; @@ -428,9 +314,6 @@ PixelMainMon::PixelMainMon(const std::string & type, m_error_time2 = 0; m_error_time3 = 0; m_errors = 0; - //m_IBLModErrors = 0; - //m_IBLSyncErrors = 0; - //m_IBLotherRODErrors = 0; m_OpticalErrors = 0; m_SEU_Errors = 0; m_TimeoutErrors = 0; @@ -442,27 +325,6 @@ PixelMainMon::PixelMainMon(const std::string & type, m_SEUCategory = 0; m_TimeoutCategory = 0; m_TruncationErrors = 0; - //m_SyncErrors_mod = 0; - //m_SyncErrors_ROD = 0; - //m_TruncErrors_mod = 0; - //m_TruncErrors_ROD = 0; - //m_sync_mod_BCID1 = 0; - //m_sync_mod_BCID2 = 0; - //m_sync_mod_LVL1ID = 0; - //m_sync_rod_BCID = 0; - //m_sync_rod_LVL1ID = 0; - //m_trunc_mod_EOC = 0; - //m_trunc_mod_hitOF = 0; - //m_trunc_mod_EoEOF = 0; - //m_trunc_rod_HTlim = 0; - //m_trunc_rod_FIFOOF = 0; - //m_optical_error = 0; - //m_seu_hit_parity = 0; - //m_seu_reg_parity = 0; - //m_seu_hamming = 0; - //m_timeout = 0; - //m_FEwarning = 0; - //m_mod_errors_IBL = 0; m_sync_mod_BCID1_per_LB = 0; m_sync_mod_BCID1_int_LB = 0; m_sync_mod_BCID2_per_LB = 0; @@ -568,6 +430,19 @@ PixelMainMon::PixelMainMon(const std::string & type, m_bad_mod_errors_mod[i] = 0; m_errors_etaid_mod[i] = 0; m_hit_ToT_LB_mod[i] = 0; + m_clusToT_vs_eta_mod[i] = 0; + m_ToT_vs_clussize_mod[i] = 0; + m_Q_vs_clussize_mod[i] = 0; + m_nlowToT_vs_clussize_mod[i] = 0; + m_1cluster_ToT_mod[i] = 0; + m_2cluster_ToT_mod[i] = 0; + m_3cluster_ToT_mod[i] = 0; + m_bigcluster_ToT_mod[i] = 0; + m_1cluster_Q_mod[i] = 0; + m_2cluster_Q_mod[i] = 0; + m_3cluster_Q_mod[i] = 0; + m_bigcluster_Q_mod[i] = 0; + m_cluster_LVL1A1d_mod[i] = 0; } for( int j=0; j<16; j++){ m_errors_int_LB[j] = 0; @@ -581,6 +456,11 @@ PixelMainMon::PixelMainMon(const std::string & type, m_TimeoutErrors_per_lumi_mod[i] = 0; m_ErrorBit_per_lumi_mod[i] = 0; m_Error_per_lumi_mod[i] = 0; + m_cluster_ToT1d_mod[i] = 0; + m_cluster_Q_mod[i] = 0; + m_badModules_per_lumi_mod[i] = 0; + m_disabledModules_per_lumi_mod[i] = 0; + m_baddisabledModules_per_lumi_mod[i] = 0; for( int j=0; j<ErrorCategory::COUNT; j++){ m_ErrorFraction_per_evt[j][i] = 0; m_ErrorCategoryMap[j] = 0; @@ -710,6 +590,7 @@ PixelMainMon::~PixelMainMon() delete m_FSM_state; delete m_FSM_status; delete m_moduleDCSDataHolder; + } @@ -811,7 +692,7 @@ StatusCode PixelMainMon::initialize() m_atrcollist.push_back(std::string("/PIXEL/DCS/FSMSTATUS")); // readout unit m_atrcollist.push_back(std::string("/PIXEL/DCS/PIPES")); // IBL stave m_atrcollist.push_back(std::string("/PIXEL/DCS/HVCURRENT")); // IBL readout unit - m_atrcollist.push_back(std::string("/PIXEL/DCS/PLANTS")); // 1 + //m_atrcollist.push_back(std::string("/PIXEL/DCS/PLANTS")); // 1 m_atrcollist.push_back(std::string("/PIXEL/DCS/LV")); // IBL readout unit m_currentLumiBlockNumber = 0; diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMon2DMapsLW.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMon2DMapsLW.cxx index 4713262b244632e0f6269bf361689e2cd0418ccf..f35b902caf4dad8f2726c46948fe06725e0e3973 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMon2DMapsLW.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMon2DMapsLW.cxx @@ -30,6 +30,8 @@ PixelMon2DMapsLW::PixelMon2DMapsLW(std::string name, std::string title,bool doIB B2 = TH2F_LW::create((name+"_B2").c_str(), (title + ", B2 " + etatext + phitext).c_str(),13,-6.5,6.5,52,-0.5,51.5); A = TH2F_LW::create((name+"_ECA" ).c_str(), (title + ", ECA " + disktext + phitext).c_str(),3,-0.5,2.5,48,-0.5,47.5); C = TH2F_LW::create((name+"_ECC" ).c_str(), (title + ", ECC " + disktext + phitext).c_str(),3,-0.5,2.5,48,-0.5,47.5); + DBMA = TH2F_LW::create((name+"_DBMA" ).c_str(), (title + ", DBMA " + disktext + phitext).c_str(),3,-0.5,2.5,4,-0.5,3.5); + DBMC = TH2F_LW::create((name+"_DBMC" ).c_str(), (title + ", DBMC " + disktext + phitext).c_str(),3,-0.5,2.5,4,-0.5,3.5); formatHist(doIBL,errorHist); } @@ -44,6 +46,8 @@ PixelMon2DMapsLW::~PixelMon2DMapsLW() LWHist::safeDelete(B2); LWHist::safeDelete(A); LWHist::safeDelete(C); + LWHist::safeDelete(DBMA); + LWHist::safeDelete(DBMC); } void PixelMon2DMapsLW::Fill(Identifier &id, const PixelID* pixID, bool doIBL,bool errorHist) @@ -54,6 +58,8 @@ void PixelMon2DMapsLW::Fill(Identifier &id, const PixelID* pixID, bool doIBL,boo if(bec==2) A->Fill(ld,pm); else if(bec==-2) C->Fill(ld,pm); + else if(bec==4) DBMA->Fill(ld, pm); + else if(bec==-4) DBMC->Fill(ld, pm); else if(bec==0) { @@ -90,6 +96,51 @@ void PixelMon2DMapsLW::Fill(Identifier &id, const PixelID* pixID, bool doIBL,boo if(copy) IBL->Fill(emf+1, pm); } } +} + +void PixelMon2DMapsLW::WeightingFill(Identifier &id, const PixelID* pixID, bool doIBL, float weight) +{ + int bec = pixID->barrel_ec(id); + int ld = pixID->layer_disk(id); + int pm = pixID->phi_module(id); + + if(bec==2) A->Fill(ld, pm, weight); + else if(bec==-2) C->Fill(ld, pm, weight); + else if(bec==4) DBMA->Fill(ld, pm, weight); + else if(bec==-4) DBMC->Fill(ld, pm, weight); + + else if(bec==0) + { + if(doIBL){ld--;} + int em = pixID->eta_module(id); + if(ld ==0){ + B0->Fill(em, pm, weight); + } + else if(ld ==1){ + B1->Fill(em, pm, weight); + } + else if(ld ==2){ + B2->Fill(em, pm, weight); + } + else if(ld ==-1){ + int feid = 0; + int emf = 0; + if(em<6 && em>-7){ + if(pixID->eta_index(id) >= 80) feid = 1; + emf = 2 * em + feid; + IBL2D->Fill(em, pm, weight); + } + else if(em<-6){ + emf = em - 6; + IBL3D->Fill(em+10, pm, weight); + } + else{ + emf = em + 6; + IBL3D->Fill(em-2, pm, weight); + } + IBL->Fill(emf, pm, weight); + } + } } void PixelMon2DMapsLW::FillNormalized(PixelMon2DMapsLW* old, int nevent) @@ -162,7 +213,9 @@ void PixelMon2DMapsLW::formatHist(bool doIBL, bool errorHist) { const int ndisk = 3; const int nphi = 48; + const int nphi_dbm = 4; const char *disk[ndisk] = { "Disk 1", "Disk 2", "Disk 3" }; + const char *phi_dbm[nphi_dbm] = { "M1","M2","M3","M4"}; const int nmod = 13; const int nmodIBL2D = 12; const int nmodIBL3D = 8; @@ -232,10 +285,17 @@ void PixelMon2DMapsLW::formatHist(bool doIBL, bool errorHist) A->GetYaxis()->SetBinLabel( i+1, nstaveA[i] ); C->GetYaxis()->SetBinLabel( i+1, nstaveC[i] ); } + for (int i=0; i<nphi_dbm; i++) + { + DBMA->GetYaxis()->SetBinLabel( i+1, phi_dbm[i] ); + DBMC->GetYaxis()->SetBinLabel( i+1, phi_dbm[i] ); + } for (int i=0; i<ndisk; i++) { A->GetXaxis()->SetBinLabel( i+1, disk[i] ); C->GetXaxis()->SetBinLabel( i+1, disk[i] ); + DBMA->GetXaxis()->SetBinLabel( i+1, disk[i] ); + DBMC->GetXaxis()->SetBinLabel( i+1, disk[i] ); } for (int i=0; i<nmod; i++) { @@ -301,6 +361,8 @@ void PixelMon2DMapsLW::formatHist(bool doIBL, bool errorHist) B2->GetYaxis()->SetLabelSize(0.03); A->GetYaxis()->SetLabelSize(0.02); C->GetYaxis()->SetLabelSize(0.02); + DBMA->GetYaxis()->SetLabelSize(0.02); + DBMC->GetYaxis()->SetLabelSize(0.02); //Move the lable so you can read it // IBL2D->GetYaxis()->SetTitleOffset(1.35); // IBL3D->GetYaxis()->SetTitleOffset(1.35); @@ -315,12 +377,16 @@ void PixelMon2DMapsLW::formatHist(bool doIBL, bool errorHist) B2->SetOption("colz"); A->SetOption("colz"); C->SetOption("colz"); + DBMA->SetOption("colz"); + DBMC->SetOption("colz"); //force the minimum to be 0 so you can spot empty blocks easily B0->SetMinimum(0.); B1->SetMinimum(0.); B2->SetMinimum(0.); A->SetMinimum(0.); C->SetMinimum(0.); + DBMA->SetMinimum(0.); + DBMC->SetMinimum(0.); //Remvoe the stats box because it's in the way // IBL2D->SetStats(0.); // IBL3D->SetStats(0.); @@ -344,6 +410,8 @@ StatusCode PixelMon2DMapsLW::regHist(ManagedMonitorToolBase::MonGroup &group, bo sc = group.regHist(B2); sc = group.regHist(A); sc = group.regHist(C); + sc = group.regHist(DBMA); + sc = group.regHist(DBMC); return sc; } diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMonModules.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMonModules.cxx index c5e24fb426e693a7cae135bfd27fa835a47c87e9..309b55099386891c08b2161ecc46761180c30780 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMonModules.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMonModules.cxx @@ -11,6 +11,8 @@ #include "TH1I.h" #include "TH2I.h" #include "TProfile.h" +#include "LWHists/TH1F_LW.h" +#include "LWHists/TProfile_LW.h" #include "InDetIdentifier/PixelID.h" #include "GaudiKernel/StatusCode.h" #include <iostream> @@ -25,7 +27,8 @@ PixelMonModulesProf::PixelMonModulesProf(std::string name, std::string title, in nBins=nbins; for(int i=0; i < 1744 +280*doIBL; i++) { - getHist(i) = new TProfile((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, arr); + //getHist(i) = new TProfile((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, arr); + getHist(i) = TProfile_LW::create((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, arr); } if(doIBL==false){ for(int i=1744; i < 2024; i++){ @@ -41,7 +44,8 @@ PixelMonModulesProf::PixelMonModulesProf(std::string name, std::string title, in nBins=nbins; for(int i=0; i < 1744 +280*doIBL; i++) { - getHist(i) = new TProfile((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, low, high); + //getHist(i) = new TProfile((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, low, high); + getHist(i) = TProfile_LW::create((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, low, high); } if(doIBL==false){ for(int i=1744; i < 2024; i++){ @@ -55,10 +59,10 @@ PixelMonModulesProf::PixelMonModulesProf(std::string name, std::string title, in PixelMonModulesProf::~PixelMonModulesProf() { for(int i=0; i < 2024; i++) - { - if(getHist(i)){ - delete getHist(i);} - } + { + //if(getHist(i)){ delete getHist(i); } + if(getHist(i)){ LWHist::safeDelete( getHist(i) ); } + } } PixelMonModules1D::PixelMonModules1D(std::string name, std::string title, int nbins, double* arr, bool doIBL) @@ -67,6 +71,7 @@ PixelMonModules1D::PixelMonModules1D(std::string name, std::string title, int nb for(int i=0; i < 1744 +280*doIBL; i++) { getHist(i) = new TH1F((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, arr); + //getHist(i) = TH1F_LW::create((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, arr); } if(doIBL==false){ for(int i=1744; i < 2024; i++){ @@ -74,6 +79,7 @@ PixelMonModules1D::PixelMonModules1D(std::string name, std::string title, int nb } } formatHist("",doIBL); + //formatHist(doIBL); Dummy=0; } @@ -83,6 +89,7 @@ PixelMonModules1D::PixelMonModules1D(std::string name, std::string title, int nb for(int i=0; i < 1744 +280*doIBL; i++) { getHist(i) = new TH1F((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, low, high); + //getHist(i) = TH1F_LW::create((getHistName(i,false,doIBL)+"_"+name).c_str(), (getHistName(i,false,doIBL)+" "+title).c_str(), nbins, low, high); } if(doIBL==false){ for(int i=1744; i < 2024; i++){ @@ -90,17 +97,17 @@ PixelMonModules1D::PixelMonModules1D(std::string name, std::string title, int nb } } formatHist("",doIBL); + //formatHist(doIBL); Dummy=0; } PixelMonModules1D::~PixelMonModules1D() { for(int i=0; i < 2024; i++) - { - if(getHist(i)){ - delete getHist(i); - } - } + { + if(getHist(i)){ delete getHist(i); } + //if(getHist(i)){ LWHist::safeDelete( getHist(i) ); } + } } PixelMonModules2D::PixelMonModules2D(std::string name, std::string title, int nbins0, double low0, double high0, int nbins1, double low1, double high1, bool doIBL) @@ -139,24 +146,24 @@ void PixelMonModulesProf::Reset() } } -double PixelMonModulesProf::GetBinContent(double value, Identifier &id, const PixelID* pixID) -{ - int bec = pixID->barrel_ec(id); - int ld = pixID->layer_disk(id); - int pm = pixID->phi_module(id); - - if(bec==2) return A[ld][pm]->GetBinContent(A[ld][pm]->FindBin(value)); - else if(bec==-2)return C[ld][pm]->GetBinContent(C[ld][pm]->FindBin(value)); - else if(bec==0) - { - int em = pixID->eta_module(id); - if(ld ==0) return B0[em+6][pm]->GetBinContent(B0[em+6][pm]->FindBin(value)); - else if(ld ==1) return B1[em+6][pm]->GetBinContent(B1[em+6][pm]->FindBin(value)); - else if(ld ==2) return B2[em+6][pm]->GetBinContent(B2[em+6][pm]->FindBin(value)); - else if (ld==-1)return IBL[em+10][pm]->GetBinContent(IBL[em+10][pm]->FindBin(value)); - } - return 0.0; -} +//double PixelMonModulesProf::GetBinContent(double value, Identifier &id, const PixelID* pixID) +//{ +// int bec = pixID->barrel_ec(id); +// int ld = pixID->layer_disk(id); +// int pm = pixID->phi_module(id); +// +// if(bec==2) return A[ld][pm]->GetBinContent(A[ld][pm]->FindBin(value)); +// else if(bec==-2)return C[ld][pm]->GetBinContent(C[ld][pm]->FindBin(value)); +// else if(bec==0) +// { +// int em = pixID->eta_module(id); +// if(ld ==0) return B0[em+6][pm]->GetBinContent(B0[em+6][pm]->FindBin(value)); +// else if(ld ==1) return B1[em+6][pm]->GetBinContent(B1[em+6][pm]->FindBin(value)); +// else if(ld ==2) return B2[em+6][pm]->GetBinContent(B2[em+6][pm]->FindBin(value)); +// else if (ld==-1)return IBL[em+10][pm]->GetBinContent(IBL[em+10][pm]->FindBin(value)); +// } +// return 0.0; +//} StatusCode PixelMonModulesProf::regHist(ManagedMonitorToolBase* thisptr, std::string path, ManagedMonitorToolBase::Interval_t Run, bool doIBL) { @@ -250,15 +257,15 @@ double PixelMonModules1D::GetBinContent(double value, Identifier &id, const Pixe int ld = pixID->layer_disk(id); int pm = pixID->phi_module(id); - if(bec==2) return A[ld][pm]->GetBinContent(A[ld][pm]->FindBin(value)); - else if(bec==-2)return C[ld][pm]->GetBinContent(C[ld][pm]->FindBin(value)); + if(bec==2) return A[ld][pm]->GetBinContent(A[ld][pm]->GetXaxis()->FindBin(value)); + else if(bec==-2)return C[ld][pm]->GetBinContent(C[ld][pm]->GetXaxis()->FindBin(value)); else if(bec==0) { int em = pixID->eta_module(id); - if(ld ==0) return B0[em+6][pm]->GetBinContent(B0[em+6][pm]->FindBin(value)); - else if(ld ==1) return B1[em+6][pm]->GetBinContent(B1[em+6][pm]->FindBin(value)); - else if(ld ==2) return B2[em+6][pm]->GetBinContent(B2[em+6][pm]->FindBin(value)); - else if (ld==-1)return IBL[em+10][pm]->GetBinContent(IBL[em+10][pm]->FindBin(value)); + if(ld ==0) return B0[em+6][pm]->GetBinContent(B0[em+6][pm]->GetXaxis()->FindBin(value)); + else if(ld ==1) return B1[em+6][pm]->GetBinContent(B1[em+6][pm]->GetXaxis()->FindBin(value)); + else if(ld ==2) return B2[em+6][pm]->GetBinContent(B2[em+6][pm]->GetXaxis()->FindBin(value)); + else if (ld==-1)return IBL[em+10][pm]->GetBinContent(IBL[em+10][pm]->GetXaxis()->FindBin(value)); } return 0.0; } @@ -344,7 +351,7 @@ void PixelMonModules1D::SetBinLabel(const char* label, int binN) } } -TProfile* &PixelMonModulesProf::getHist(int i) +TProfile_LW* &PixelMonModulesProf::getHist(int i) { if(i < 286) return B0[i/22][i%22]; i -= 286; diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMonProfiles.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMonProfiles.cxx index 21e9f34976ec6a6126cbd6608da22d68fe504a2b..4234c65cd0963a5fd2df712a778cf199a5182189 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMonProfiles.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMonProfiles.cxx @@ -8,21 +8,30 @@ #include "PixelMonitoring/PixelMonProfiles.h" #include "InDetIdentifier/PixelID.h" -#include "TProfile2D.h" +//#include "TProfile2D.h" +#include "LWHists/TProfile2D_LW.h" #include "GaudiKernel/StatusCode.h" #include <string.h> PixelMonProfiles::PixelMonProfiles(std::string name, std::string title ) { - IBL3D = new TProfile2D((name+"_IBL3D").c_str(),(title + ", IBL 3D module " + ";eta index of module;phi index of module").c_str(),8,-.5,7.5,14,-0.5,13.5); - IBL2D = new TProfile2D((name+"_IBL2D").c_str(),(title + ", IBL planar module " + ";eta index of module;phi index of module").c_str(),12,-6.5,5.5,14,-0.5,13.5); - IBL = new TProfile2D((name+"_IBL").c_str(), (title + ", IBL " + ";eta index of module;phi index of module").c_str(), 32, -16.5, 15.5, 14, -0.5, 13.5); - B0 = new TProfile2D((name+"_B0").c_str(), (title + ", B0 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,22,-0.5,21.5); - B1 = new TProfile2D((name+"_B1").c_str(), (title + ", B1 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,38,-0.5,37.5); - B2 = new TProfile2D((name+"_B2").c_str(), (title + ", B2 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,52,-0.5,51.5); - A = new TProfile2D((name+"_ECA" ).c_str(), (title + ", ECA "+ ";disk number;phi index of module").c_str(), 3,-0.5,2.5,48,-0.5,47.5); - C = new TProfile2D((name+"_ECC" ).c_str(), (title + ", ECC "+ ";disk number;phi index of module").c_str(), 3,-0.5,2.5,48,-0.5,47.5); + //IBL3D = new TProfile2D((name+"_IBL3D").c_str(),(title + ", IBL 3D module " + ";eta index of module;phi index of module").c_str(),8,-.5,7.5,14,-0.5,13.5); + //IBL2D = new TProfile2D((name+"_IBL2D").c_str(),(title + ", IBL planar module " + ";eta index of module;phi index of module").c_str(),12,-6.5,5.5,14,-0.5,13.5); + //IBL = new TProfile2D((name+"_IBL").c_str(), (title + ", IBL " + ";eta index of module;phi index of module").c_str(), 32, -16.5, 15.5, 14, -0.5, 13.5); + //B0 = new TProfile2D((name+"_B0").c_str(), (title + ", B0 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,22,-0.5,21.5); + //B1 = new TProfile2D((name+"_B1").c_str(), (title + ", B1 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,38,-0.5,37.5); + //B2 = new TProfile2D((name+"_B2").c_str(), (title + ", B2 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,52,-0.5,51.5); + //A = new TProfile2D((name+"_ECA" ).c_str(), (title + ", ECA "+ ";disk number;phi index of module").c_str(), 3,-0.5,2.5,48,-0.5,47.5); + //C = new TProfile2D((name+"_ECC" ).c_str(), (title + ", ECC "+ ";disk number;phi index of module").c_str(), 3,-0.5,2.5,48,-0.5,47.5); + IBL3D = TProfile2D_LW::create((name+"_IBL3D").c_str(),(title + ", IBL 3D module " + ";eta index of module;phi index of module").c_str(),8,-.5,7.5,14,-0.5,13.5); + IBL2D = TProfile2D_LW::create((name+"_IBL2D").c_str(),(title + ", IBL planar module " + ";eta index of module;phi index of module").c_str(),12,-6.5,5.5,14,-0.5,13.5); + IBL = TProfile2D_LW::create((name+"_IBL").c_str(), (title + ", IBL " + ";eta index of module;phi index of module").c_str(), 32, -16.5, 15.5, 14, -0.5, 13.5); + B0 = TProfile2D_LW::create((name+"_B0").c_str(), (title + ", B0 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,22,-0.5,21.5); + B1 = TProfile2D_LW::create((name+"_B1").c_str(), (title + ", B1 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,38,-0.5,37.5); + B2 = TProfile2D_LW::create((name+"_B2").c_str(), (title + ", B2 " + ";eta index of module;phi index of module").c_str(),13,-6.5,6.5,52,-0.5,51.5); + A = TProfile2D_LW::create((name+"_ECA" ).c_str(), (title + ", ECA "+ ";disk number;phi index of module").c_str(), 3,-0.5,2.5,48,-0.5,47.5); + C = TProfile2D_LW::create((name+"_ECC" ).c_str(), (title + ", ECC "+ ";disk number;phi index of module").c_str(), 3,-0.5,2.5,48,-0.5,47.5); formatHist(); @@ -31,14 +40,22 @@ PixelMonProfiles::PixelMonProfiles(std::string name, std::string title ) PixelMonProfiles::~PixelMonProfiles() { - delete IBL3D; - delete IBL2D; - delete IBL; - delete B0; - delete B1; - delete B2; - delete A; - delete C; + //delete IBL3D; + //delete IBL2D; + //delete IBL; + //delete B0; + //delete B1; + //delete B2; + //delete A; + //delete C; + LWHist::safeDelete(IBL3D); + LWHist::safeDelete(IBL2D); + LWHist::safeDelete(IBL); + LWHist::safeDelete(B0); + LWHist::safeDelete(B1); + LWHist::safeDelete(B2); + LWHist::safeDelete(A); + LWHist::safeDelete(C); } void PixelMonProfiles::SetMaxValue(float max) @@ -230,14 +247,14 @@ void PixelMonProfiles::formatHist() A->GetYaxis()->SetLabelSize(0.02); C->GetYaxis()->SetLabelSize(0.02); //Move the lable so you can read it - IBL2D->GetYaxis()->SetTitleOffset(1.35); - IBL3D->GetYaxis()->SetTitleOffset(1.35); - IBL->GetYaxis()->SetTitleOffset(1.35); - B0->GetYaxis()->SetTitleOffset(1.35); - B1->GetYaxis()->SetTitleOffset(1.35); - B2->GetYaxis()->SetTitleOffset(1.35); - A->GetYaxis()->SetTitleOffset(1.35); - C->GetYaxis()->SetTitleOffset(1.35); + //IBL2D->GetYaxis()->SetTitleOffset(1.35); + //IBL3D->GetYaxis()->SetTitleOffset(1.35); + //IBL->GetYaxis()->SetTitleOffset(1.35); + //B0->GetYaxis()->SetTitleOffset(1.35); + //B1->GetYaxis()->SetTitleOffset(1.35); + //B2->GetYaxis()->SetTitleOffset(1.35); + //A->GetYaxis()->SetTitleOffset(1.35); + //C->GetYaxis()->SetTitleOffset(1.35); //put histograms in the easier to read colz format IBL->SetOption("colz"); IBL2D->SetOption("colz"); @@ -257,14 +274,14 @@ void PixelMonProfiles::formatHist() A->SetMinimum(0.); C->SetMinimum(0.); //Remvoe the stats box because it's in the way - IBL->SetStats(0.); - IBL2D->SetStats(0.); - IBL3D->SetStats(0.); - B0->SetStats(0.); - B1->SetStats(0.); - B2->SetStats(0.); - A->SetStats(0.); - C->SetStats(0.); + //IBL->SetStats(0.); + //IBL2D->SetStats(0.); + //IBL3D->SetStats(0.); + //B0->SetStats(0.); + //B1->SetStats(0.); + //B2->SetStats(0.); + //A->SetStats(0.); + //C->SetStats(0.); } diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Status.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Status.cxx index 5e0e71623d6d8638dba98c321b040e5db429008a..c424d8b05792f88c7b7837baeb6920fbb3c810e2 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Status.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Status.cxx @@ -66,39 +66,20 @@ StatusCode PixelMainMon::BookStatusMon(void) int nbins_LB = 2500; double min_LB = -0.5; double max_LB = min_LB + (1.0*nbins_LB); std::string atext_LB = ";lumi block"; std::string atext_nmod = ";# modules/event"; + const std::string modlabel[PixLayerIBL2D3D::COUNT] = {"ECA", "ECC", "B0", "B1", "B2", "IBL", "IBL2D", "IBL3D"}; - tmp = "BadModules_per_lumi"; tmp2 = "Number of bad modules (bad+active) per event per LB"; - sc = statusHistos.regHist(m_badModules_per_lumi = TProfile_LW::create(tmp.c_str(), (tmp2+ m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_badModules_per_lumi_ECA = TProfile_LW::create((tmp + "_ECA").c_str(),(tmp2+", ECA"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_badModules_per_lumi_ECC = TProfile_LW::create((tmp + "_ECC").c_str(),(tmp2+", ECC"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_badModules_per_lumi_B0 = TProfile_LW::create((tmp + "_B0").c_str(), (tmp2+", B0" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_badModules_per_lumi_B1 = TProfile_LW::create((tmp + "_B1").c_str(), (tmp2+", B1" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_badModules_per_lumi_B2 = TProfile_LW::create((tmp + "_B2").c_str(), (tmp2+", B2" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - if(m_doIBL){ - sc = statusHistos.regHist(m_badModules_per_lumi_IBL = TProfile_LW::create((tmp + "_IBL").c_str(),(tmp2+", IBL"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - } - - //tmp = "DisabledModules_per_lumi"; tmp2 = "Number of disabled modules (inactive or bad) per event per LB"; - tmp = "DisabledModules_per_lumi"; tmp2 = "Number of disabled modules per event per LB"; - sc = statusHistos.regHist(m_disabledModules_per_lumi = TProfile_LW::create(tmp.c_str(), (tmp2+ m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_disabledModules_per_lumi_PIX = TProfile_LW::create((tmp + "_PIX").c_str(), (tmp2+", PIX"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_disabledModules_per_lumi_ECA = TProfile_LW::create((tmp + "_ECA").c_str(), (tmp2+", ECA"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_disabledModules_per_lumi_ECC = TProfile_LW::create((tmp + "_ECC").c_str(), (tmp2+", ECC"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_disabledModules_per_lumi_B0 = TProfile_LW::create((tmp + "_B0").c_str(), (tmp2+", B0" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_disabledModules_per_lumi_B1 = TProfile_LW::create((tmp + "_B1").c_str(), (tmp2+", B1" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_disabledModules_per_lumi_B2 = TProfile_LW::create((tmp + "_B2").c_str(), (tmp2+", B2" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - if(m_doIBL){ - sc = statusHistos.regHist(m_disabledModules_per_lumi_IBL = TProfile_LW::create((tmp + "_IBL").c_str(), (tmp2+", IBL"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - } + for( int i=0; i<PixLayerIBL2D3D::COUNT; i++){ + tmp = makeHistname(("BadModules_per_lumi_"+modlabel[i]), false); + tmp2 = makeHisttitle(("Number of bad modules (bad+active) per event per LB, "+modlabel[i]), (atext_LB+atext_nmod), false); + sc = statusHistos.regHist(m_badModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - tmp = "BadDisabledModules_per_lumi"; tmp2 = "Number of disabled & bad modules per event per LB"; - sc = statusHistos.regHist(m_baddisabledModules_per_lumi_ECA = TProfile_LW::create((tmp + "_ECA").c_str(), (tmp2+", ECA"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_baddisabledModules_per_lumi_ECC = TProfile_LW::create((tmp + "_ECC").c_str(), (tmp2+", ECC"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_baddisabledModules_per_lumi_B0 = TProfile_LW::create((tmp + "_B0").c_str(), (tmp2+", B0" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_baddisabledModules_per_lumi_B1 = TProfile_LW::create((tmp + "_B1").c_str(), (tmp2+", B1" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - sc = statusHistos.regHist(m_baddisabledModules_per_lumi_B2 = TProfile_LW::create((tmp + "_B2").c_str(), (tmp2+", B2" +m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); - if(m_doIBL){ - sc = statusHistos.regHist(m_baddisabledModules_per_lumi_IBL = TProfile_LW::create((tmp + "_IBL").c_str(), (tmp2+", IBL"+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); + tmp = makeHistname(("DisabledModules_per_lumi_"+modlabel[i]), false); + tmp2 = makeHisttitle(("Number of disabled modules per event per LB, "+modlabel[i]), (atext_LB+atext_nmod), false); + sc = statusHistos.regHist(m_disabledModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); + + tmp = makeHistname(("BadDisabledModules_per_lumi_"+modlabel[i]), false); + tmp2 = makeHisttitle(("Number of disabled & bad modules per event per LB, "+modlabel[i]), (atext_LB+atext_nmod), false); + sc = statusHistos.regHist(m_baddisabledModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2+m_histTitleExt+atext_LB+atext_nmod).c_str(), nbins_LB, min_LB, max_LB)); } if(sc.isFailure())if(msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "histograms not booked" << endreq; @@ -128,20 +109,10 @@ StatusCode PixelMainMon::FillStatusMon(void) PixelID::const_id_iterator idItEnd = m_pixelid->wafer_end(); int nBad=0; - int nBad_ECA=0; - int nBad_ECC=0; - int nBad_IBL=0; - int nBad_B0=0; - int nBad_B1=0; - int nBad_B2=0; + int nBad_mod[PixLayerIBL2D3D::COUNT]={0}; int nDisabled=0; - int nDisabled_ECA=0; - int nDisabled_ECC=0; - int nDisabled_IBL=0; - int nDisabled_B0=0; - int nDisabled_B1=0; - int nDisabled_B2=0; + int nDisabled_mod[PixLayerIBL2D3D::COUNT]={0}; if(m_isNewLumiBlock && m_Status_modules) m_Status_modules->Reset(); @@ -150,6 +121,12 @@ StatusCode PixelMainMon::FillStatusMon(void) { Identifier WaferID = *idIt; IdentifierHash id_hash = m_pixelid->wafer_hash(WaferID); + int pixlayer = GetPixLayerID(m_pixelid->barrel_ec(WaferID), m_pixelid->layer_disk(WaferID), m_doIBL); + int pixlayeribl2d3d = 0; + if( pixlayer == PixLayer::kIBL ){ + pixlayeribl2d3d = GetPixLayerIDIBL2D3D(m_pixelid->barrel_ec(WaferID), m_pixelid->layer_disk(WaferID), m_pixelid->eta_module(WaferID), m_doIBL); + } + if( pixlayer == 99 ) continue; // check in order of occurrence to reduce number of calls to conditions service if (m_pixelCondSummarySvc->isActive(id_hash) == true && m_pixelCondSummarySvc->isGood(id_hash) == true ) {Index=0;} @@ -166,14 +143,8 @@ StatusCode PixelMainMon::FillStatusMon(void) { if (Index == 1) { nBad++; - if(m_pixelid->barrel_ec(WaferID)==2) nBad_ECA++; - if(m_pixelid->barrel_ec(WaferID)==-2) nBad_ECC++; - if(m_pixelid->barrel_ec(WaferID)==0) { - if(m_pixelid->layer_disk(WaferID)==0 && m_doIBL) nBad_IBL++; - if(m_pixelid->layer_disk(WaferID)==0+m_doIBL) nBad_B0++; - if(m_pixelid->layer_disk(WaferID)==1+m_doIBL) nBad_B1++; - if(m_pixelid->layer_disk(WaferID)==2+m_doIBL) nBad_B2++; - } + nBad_mod[pixlayer]++; + if(pixlayeribl2d3d != 0) nBad_mod[pixlayeribl2d3d]++; } // inactive or bad modules // should maybe use only inactive modules for these, however, since tracking etc use "disabled module" as !(active+good) @@ -181,14 +152,8 @@ StatusCode PixelMainMon::FillStatusMon(void) if(Index == 2) { nDisabled++; - if(m_pixelid->barrel_ec(WaferID)==2) nDisabled_ECA++; - if(m_pixelid->barrel_ec(WaferID)==-2) nDisabled_ECC++; - if (m_pixelid->barrel_ec(WaferID)==0) { - if(m_pixelid->layer_disk(WaferID)==0 && m_doIBL) nDisabled_IBL++; - if(m_pixelid->layer_disk(WaferID)==0+m_doIBL) nDisabled_B0++; - if(m_pixelid->layer_disk(WaferID)==1+m_doIBL) nDisabled_B1++; - if(m_pixelid->layer_disk(WaferID)==2+m_doIBL) nDisabled_B2++; - } + nDisabled_mod[pixlayer]++; + if(pixlayeribl2d3d != 0) nDisabled_mod[pixlayeribl2d3d]++; } if (m_Status_modules) @@ -213,31 +178,14 @@ StatusCode PixelMainMon::FillStatusMon(void) } } // End of loop - static float nmod[PixLayer::COUNT] = {144., 144., 286., 494., 676., 280.}; - - if(m_disabledModules_per_lumi) m_disabledModules_per_lumi->Fill(m_manager->lumiBlockNumber(),nDisabled); - if(m_disabledModules_per_lumi_PIX) m_disabledModules_per_lumi_PIX->Fill(m_manager->lumiBlockNumber(),nDisabled-nDisabled_IBL); - if(m_disabledModules_per_lumi_ECA) m_disabledModules_per_lumi_ECA->Fill(m_manager->lumiBlockNumber(),nDisabled_ECA); - if(m_disabledModules_per_lumi_ECC) m_disabledModules_per_lumi_ECC->Fill(m_manager->lumiBlockNumber(),nDisabled_ECC); - if(m_disabledModules_per_lumi_IBL) m_disabledModules_per_lumi_IBL->Fill(m_manager->lumiBlockNumber(),nDisabled_IBL); - if(m_disabledModules_per_lumi_B0) m_disabledModules_per_lumi_B0->Fill(m_manager->lumiBlockNumber(),nDisabled_B0); - if(m_disabledModules_per_lumi_B1) m_disabledModules_per_lumi_B1->Fill(m_manager->lumiBlockNumber(),nDisabled_B1); - if(m_disabledModules_per_lumi_B2) m_disabledModules_per_lumi_B2->Fill(m_manager->lumiBlockNumber(),nDisabled_B2); - - if(m_badModules_per_lumi) m_badModules_per_lumi->Fill(m_manager->lumiBlockNumber(),nBad); - if(m_badModules_per_lumi_ECA) m_badModules_per_lumi_ECA->Fill(m_manager->lumiBlockNumber(),nBad_ECA/nmod[PixLayer::kECA]); - if(m_badModules_per_lumi_ECC) m_badModules_per_lumi_ECC->Fill(m_manager->lumiBlockNumber(),nBad_ECC/nmod[PixLayer::kECC]); - if(m_badModules_per_lumi_IBL) m_badModules_per_lumi_IBL->Fill(m_manager->lumiBlockNumber(),nBad_IBL/nmod[PixLayer::kIBL]); - if(m_badModules_per_lumi_B0) m_badModules_per_lumi_B0->Fill(m_manager->lumiBlockNumber(),nBad_B0/nmod[PixLayer::kB0]); - if(m_badModules_per_lumi_B1) m_badModules_per_lumi_B1->Fill(m_manager->lumiBlockNumber(),nBad_B1/nmod[PixLayer::kB1]); - if(m_badModules_per_lumi_B2) m_badModules_per_lumi_B2->Fill(m_manager->lumiBlockNumber(),nBad_B2/nmod[PixLayer::kB2]); - - if(m_baddisabledModules_per_lumi_ECA) m_baddisabledModules_per_lumi_ECA->Fill(m_manager->lumiBlockNumber(),nDisabled_ECA+nBad_ECA); - if(m_baddisabledModules_per_lumi_ECC) m_baddisabledModules_per_lumi_ECC->Fill(m_manager->lumiBlockNumber(),nDisabled_ECC+nBad_ECC); - if(m_baddisabledModules_per_lumi_IBL) m_baddisabledModules_per_lumi_IBL->Fill(m_manager->lumiBlockNumber(),nDisabled_IBL+nBad_IBL); - if(m_baddisabledModules_per_lumi_B0) m_baddisabledModules_per_lumi_B0->Fill(m_manager->lumiBlockNumber(),nDisabled_B0+nBad_B0); - if(m_baddisabledModules_per_lumi_B1) m_baddisabledModules_per_lumi_B1->Fill(m_manager->lumiBlockNumber(),nDisabled_B1+nBad_B1); - if(m_baddisabledModules_per_lumi_B2) m_baddisabledModules_per_lumi_B2->Fill(m_manager->lumiBlockNumber(),nDisabled_B2+nBad_B2); + //static float nmod[PixLayer::COUNT] = {144., 144., 286., 494., 676., 280.}; + static float nmod2[PixLayerIBL2D3D::COUNT] = {144., 144., 286., 494., 676., 280., 168., 112.}; + + for(int i=0 ; i<PixLayerIBL2D3D::COUNT ; i++){ + if(m_badModules_per_lumi_mod[i]) m_badModules_per_lumi_mod[i]->Fill( m_manager->lumiBlockNumber(), nBad_mod[i]/nmod2[i] ); + if(m_disabledModules_per_lumi_mod[i]) m_disabledModules_per_lumi_mod[i]->Fill( m_manager->lumiBlockNumber(), nDisabled_mod[i] ); + if(m_baddisabledModules_per_lumi_mod[i]) m_baddisabledModules_per_lumi_mod[i]->Fill(m_manager->lumiBlockNumber(),nDisabled_mod[i]+nBad_mod[i]); + } if (nDisabled > (1744+280*m_doIBL)*0.50) { m_majorityDisabled = true; diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Track.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Track.cxx index 45b5e2b27501a532bb5bcbd9fce555ffaa2c2faf..b60f27e5099bb5f042af1e55f29843d50cf4977f 100644 --- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Track.cxx +++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Track.cxx @@ -25,6 +25,7 @@ #include "LWHists/TH2F_LW.h" #include "LWHists/TH2I_LW.h" #include "LWHists/TProfile_LW.h" +#include "LWHists/TProfile2D_LW.h" #include <sstream> #include <algorithm> @@ -36,6 +37,7 @@ #include "TrkTrackSummary/InDetTrackSummary.h" #include "TrkToolInterfaces/ITrackHoleSearchTool.h" #include "PixelMonitoring/PixelMon2DMaps.h" +#include "PixelMonitoring/PixelMon2DMapsLW.h" #include "PixelMonitoring/PixelMonModules.h" #include "EventPrimitives/EventPrimitives.h" #include "EventPrimitives/EventPrimitivesHelpers.h" @@ -60,15 +62,6 @@ StatusCode PixelMainMon::BookTrackMon(void) sc=trackHistos.regHist(m_track_pull_eta = TH1F_LW::create("m_Pixel_track_pull_eta", ("m_Pixel_track_pull_eta (pixel tracks)" + m_histTitleExt).c_str(),100,-2,2)); sc=trackHistos.regHist(m_track_chi2 = TH1F_LW::create("m_Pixel_track_chi2", ("chi2 of reconstructed track (pixel tracks)" + m_histTitleExt + "; #chi^{2}/DoF;").c_str(), 50,-0.,10.)); - if(m_do2DMaps && !m_doOnline){ - m_tsos_hitmap = new PixelMon2DMaps("TSOS_Measurement", ("TSOS of type Measurement" + m_histTitleExt).c_str()); - sc = m_tsos_hitmap->regHist(trackHistos); - m_tsos_holemap = new PixelMon2DMaps("TSOS_Hole", ("TSOS of type Hole" + m_histTitleExt).c_str()); - sc = m_tsos_holemap->regHist(trackHistos); - m_tsos_outliermap = new PixelMon2DMaps("TSOS_Outlier", ("TSOS of type Outlier" + m_histTitleExt).c_str()); - sc = m_tsos_outliermap->regHist(trackHistos); - } - if(m_doModules){ m_tsos_hiteff_vs_lumi = new PixelMonModulesProf("TSOS_HitEfficiency",("TSOS-based hit efficiency in module" + m_histTitleExt).c_str(),2500,-0.5,2499.5,m_doIBL); sc = m_tsos_hiteff_vs_lumi->regHist(this,(path+"/Modules_TSOSHitEff").c_str(),run, m_doIBL); @@ -90,20 +83,20 @@ StatusCode PixelMainMon::BookTrackMon(void) sc=trackHistos.regHist(m_track_chi2_bclgt1_highpt = TH1F_LW::create("m_Pixel_track_chi2_bclgt1_highpt", ("track chi2 with >1 1-hit, low-ToT cluster (pT>=10GeV)" + m_histTitleExt + "; #chi^{2}/DoF;").c_str(), 50,-0.,10.)); } - sc=trackHistos.regHist(m_track_clusToT = TH1F_LW::create("m_track_clusToT",("Cluster on track ToT check"+ m_histTitleExt +"; ToT;").c_str(),250,0.,250.)); - sc=trackHistos.regHist(m_track_qOverP = TH1F_LW::create("m_Pixel_track_qOverP", ("Reconstructed inverse momentum of track (pixel tracks)" + m_histTitleExt + "; inverse momentum [GeV^{-1}];").c_str(), 100,-7.5,7.5)); - sc=trackHistos.regHist(m_track_qOverP_inv= TH1F_LW::create("m_Pixel_track_qOverP_inv", ("Reconstructed momentum of track (pixel tracks)" + m_histTitleExt + "; momentum [GeV];").c_str(), 100,-20,20)); - sc=trackHistos.regHist(m_track_pt = TH1F_LW::create("m_Pixel_track_pt", ("Reconstructed transverse momentum of track (pixel tracks)" + m_histTitleExt + "; p_{T} [GeV];").c_str(), 50,0.,10.)); - sc=trackHistos.regHist(m_track_d0 = TH1F_LW::create("m_Pixel_track_d0", ("Reconstructed d0 of track (pixel tracks)" + m_histTitleExt + "; d_{0} [mm];").c_str(), 80,-20.,20.)); - sc=trackHistos.regHist(m_track_z0 = TH1F_LW::create("m_Pixel_track_z0", ("Reconstructed z0 of track (pixel tracks)" + m_histTitleExt + "; z_{0} [mm];").c_str(), 80,-400.,400.)); - sc=trackHistos.regHist(m_track_phi0 = TH1F_LW::create("m_Pixel_track_phi0", ("Reconstructed phi0 of track (pixel tracks)" + m_histTitleExt + "; #phi_{0};").c_str(), 40,-4.,4.)); - sc=trackHistos.regHist(m_track_theta = TH1F_LW::create("m_Pixel_track_theta", ("Reconstructed theta of track (pixel tracks)" + m_histTitleExt + "; #theta;").c_str(), 40,-0.,4.)); - sc=trackHistos.regHist(m_track_eta = TH1F_LW::create("m_Pixel_track_eta", ("Reconstructed eta of track (pixel tracks)" + m_histTitleExt + "; #eta;").c_str(), 40,-4.,4.)); + //sc=trackHistos.regHist(m_track_clusToT = TH1F_LW::create("m_track_clusToT",("Cluster on track ToT check"+ m_histTitleExt +"; ToT;").c_str(),250,0.,250.)); + //sc=trackHistos.regHist(m_track_qOverP = TH1F_LW::create("m_Pixel_track_qOverP", ("Reconstructed inverse momentum of track (pixel tracks)" + m_histTitleExt + "; inverse momentum [GeV^{-1}];").c_str(), 100,-7.5,7.5)); + //sc=trackHistos.regHist(m_track_qOverP_inv= TH1F_LW::create("m_Pixel_track_qOverP_inv", ("Reconstructed momentum of track (pixel tracks)" + m_histTitleExt + "; momentum [GeV];").c_str(), 100,-20,20)); + //sc=trackHistos.regHist(m_track_pt = TH1F_LW::create("m_Pixel_track_pt", ("Reconstructed transverse momentum of track (pixel tracks)" + m_histTitleExt + "; p_{T} [GeV];").c_str(), 50,0.,10.)); + //sc=trackHistos.regHist(m_track_d0 = TH1F_LW::create("m_Pixel_track_d0", ("Reconstructed d0 of track (pixel tracks)" + m_histTitleExt + "; d_{0} [mm];").c_str(), 80,-20.,20.)); + //sc=trackHistos.regHist(m_track_z0 = TH1F_LW::create("m_Pixel_track_z0", ("Reconstructed z0 of track (pixel tracks)" + m_histTitleExt + "; z_{0} [mm];").c_str(), 80,-400.,400.)); + //sc=trackHistos.regHist(m_track_phi0 = TH1F_LW::create("m_Pixel_track_phi0", ("Reconstructed phi0 of track (pixel tracks)" + m_histTitleExt + "; #phi_{0};").c_str(), 40,-4.,4.)); + //sc=trackHistos.regHist(m_track_theta = TH1F_LW::create("m_Pixel_track_theta", ("Reconstructed theta of track (pixel tracks)" + m_histTitleExt + "; #theta;").c_str(), 40,-0.,4.)); + //sc=trackHistos.regHist(m_track_eta = TH1F_LW::create("m_Pixel_track_eta", ("Reconstructed eta of track (pixel tracks)" + m_histTitleExt + "; #eta;").c_str(), 40,-4.,4.)); sc=trackHistos.regHist(m_tracks_per_lumi = TH1I_LW::create("tracks_per_lumi", ("Number of tracks per LB (pixel tracks)" + m_histTitleExt + ";lumi block;# tracks").c_str(),2500,-0.5,2499.5)); sc=trackHistos.regHist(m_tracksPerEvt_per_lumi = TProfile_LW::create("tracksPerEvt_per_lumi", ("Number of tracks per event per LB (pixel tracks)" + m_histTitleExt + ";lumi block;tracks/event").c_str(),2500,-0.5,2499.5)); sc=trackHistos.regHist(m_trackRate_per_lumi = TH1F_LW::create("trackRate_per_lumi", ("Track rate per LB (pixel tracks)" + m_histTitleExt + ";lumi block;#tracks/sec").c_str(),2500,-0.5,2499.5)); - sc=trackHistos.regHist(m_track_dedx = TH2F_LW::create("m_Pixel_track_dedx", ("Reconstructed dE/dx of track (pixel tracks)" + m_histTitleExt + "; momentum [MeV]; dE/dx [MeV g cm^{-2}]").c_str(),125,-2500,2500,100,0,10)); - sc=trackHistos.regHist(m_track_mass_dedx = TH1F_LW::create("m_Pixel_track_mass_dedx", ("Reconstructed mass using dE/dx of track (pixel tracks)" + m_histTitleExt + "; mass [MeV]; ").c_str(),125,0,2500)); + //sc=trackHistos.regHist(m_track_dedx = TH2F_LW::create("m_Pixel_track_dedx", ("Reconstructed dE/dx of track (pixel tracks)" + m_histTitleExt + "; momentum [MeV]; dE/dx [MeV g cm^{-2}]").c_str(),125,-2500,2500,100,0,10)); + //sc=trackHistos.regHist(m_track_mass_dedx = TH1F_LW::create("m_Pixel_track_mass_dedx", ("Reconstructed mass using dE/dx of track (pixel tracks)" + m_histTitleExt + "; mass [MeV]; ").c_str(),125,0,2500)); } else { sc=trackHistos.regHist(m_track_res_phi = TH1F_LW::create("m_Pixel_track_res_phi", ("Pixel Residual LocX" + m_histTitleExt).c_str(),100,-0.1,0.1)); @@ -113,12 +106,12 @@ StatusCode PixelMainMon::BookTrackMon(void) sc=trackHistos.regHist(m_track_chi2 = TH1F_LW::create("m_Pixel_track_chi2", ("chi2 of reconstructed track" + m_histTitleExt + "; #chi^{2}/DoF;").c_str(), 50,-0.,10.)); if(m_do2DMaps && !m_doOnline){ - m_tsos_hitmap = new PixelMon2DMaps("TSOS_Measurement", ("TSOS of type Measurement" + m_histTitleExt).c_str()); - sc = m_tsos_hitmap->regHist(trackHistos); - m_tsos_holemap = new PixelMon2DMaps("TSOS_Hole", ("TSOS of type Hole" + m_histTitleExt).c_str()); - sc = m_tsos_holemap->regHist(trackHistos); - m_tsos_outliermap = new PixelMon2DMaps("TSOS_Outlier", ("TSOS of type Outlier" + m_histTitleExt).c_str()); - sc = m_tsos_outliermap->regHist(trackHistos); + m_tsos_hitmap = new PixelMon2DMapsLW("TSOS_Measurement", ("TSOS of type Measurement" + m_histTitleExt), m_doIBL, false); + sc = m_tsos_hitmap->regHist(trackHistos, m_doIBL, false); + m_tsos_holemap = new PixelMon2DMapsLW("TSOS_Hole", ("TSOS of type Hole" + m_histTitleExt), m_doIBL, false); + sc = m_tsos_holemap->regHist(trackHistos, m_doIBL, false); + m_tsos_outliermap = new PixelMon2DMapsLW("TSOS_Outlier", ("TSOS of type Outlier" + m_histTitleExt), m_doIBL, false); + sc = m_tsos_outliermap->regHist(trackHistos, m_doIBL, false); } if(m_doModules){ @@ -142,21 +135,30 @@ StatusCode PixelMainMon::BookTrackMon(void) sc=trackHistos.regHist(m_track_chi2_bclgt1_highpt = TH1F_LW::create("m_Pixel_track_chi2_bclgt1_highpt", ("track chi2 with >1 1-hit, low-ToT cluster (pT>=10GeV)" + m_histTitleExt + "; #chi^{2}/DoF;").c_str(), 50,-0.,10.)); } - sc=trackHistos.regHist(m_track_clusToT = TH1F_LW::create("m_track_clusToT",("Cluster on track ToT check"+ m_histTitleExt +"; ToT;").c_str(),250,0.,250.)); - sc=trackHistos.regHist(m_track_qOverP = TH1F_LW::create("m_Pixel_track_qOverP", ("Reconstructed inverse momentum of track" + m_histTitleExt + "; inverse momentum [GeV^{-1}];").c_str(), 100,-7.5,7.5)); - sc=trackHistos.regHist(m_track_qOverP_inv= TH1F_LW::create("m_Pixel_track_qOverP_inv", ("Reconstructed momentum of track" + m_histTitleExt + "; momentum [GeV];").c_str(), 100,-20,20)); - sc=trackHistos.regHist(m_track_pt = TH1F_LW::create("m_Pixel_track_pt", ("Reconstructed transverse momentum of track" + m_histTitleExt + "; p_{T} [GeV];").c_str(), 50,0.,10.)); - sc=trackHistos.regHist(m_track_d0 = TH1F_LW::create("m_Pixel_track_d0", ("Reconstructed d0 of track" + m_histTitleExt + "; d_{0} [mm];").c_str(), 80,-20.,20.)); - sc=trackHistos.regHist(m_track_z0 = TH1F_LW::create("m_Pixel_track_z0", ("Reconstructed z0 of track" + m_histTitleExt + "; z_{0} [mm];").c_str(), 80,-400.,400.)); - sc=trackHistos.regHist(m_track_phi0 = TH1F_LW::create("m_Pixel_track_phi0", ("Reconstructed phi0 of track" + m_histTitleExt + "; #phi_{0};").c_str(), 40,-4.,4.)); - sc=trackHistos.regHist(m_track_theta = TH1F_LW::create("m_Pixel_track_theta", ("Reconstructed theta of track" + m_histTitleExt + "; #theta;").c_str(), 40,-0.,4.)); - sc=trackHistos.regHist(m_track_eta = TH1F_LW::create("m_Pixel_track_eta", ("Reconstructed eta of track" + m_histTitleExt + "; #eta;").c_str(), 40,-4.,4.)); + //sc=trackHistos.regHist(m_track_clusToT = TH1F_LW::create("m_track_clusToT",("Cluster on track ToT check"+ m_histTitleExt +"; ToT;").c_str(),250,0.,250.)); + //sc=trackHistos.regHist(m_track_qOverP = TH1F_LW::create("m_Pixel_track_qOverP", ("Reconstructed inverse momentum of track" + m_histTitleExt + "; inverse momentum [GeV^{-1}];").c_str(), 100,-7.5,7.5)); + //sc=trackHistos.regHist(m_track_qOverP_inv= TH1F_LW::create("m_Pixel_track_qOverP_inv", ("Reconstructed momentum of track" + m_histTitleExt + "; momentum [GeV];").c_str(), 100,-20,20)); + //sc=trackHistos.regHist(m_track_pt = TH1F_LW::create("m_Pixel_track_pt", ("Reconstructed transverse momentum of track" + m_histTitleExt + "; p_{T} [GeV];").c_str(), 50,0.,10.)); + //sc=trackHistos.regHist(m_track_d0 = TH1F_LW::create("m_Pixel_track_d0", ("Reconstructed d0 of track" + m_histTitleExt + "; d_{0} [mm];").c_str(), 80,-20.,20.)); + //sc=trackHistos.regHist(m_track_z0 = TH1F_LW::create("m_Pixel_track_z0", ("Reconstructed z0 of track" + m_histTitleExt + "; z_{0} [mm];").c_str(), 80,-400.,400.)); + //sc=trackHistos.regHist(m_track_phi0 = TH1F_LW::create("m_Pixel_track_phi0", ("Reconstructed phi0 of track" + m_histTitleExt + "; #phi_{0};").c_str(), 40,-4.,4.)); + //sc=trackHistos.regHist(m_track_theta = TH1F_LW::create("m_Pixel_track_theta", ("Reconstructed theta of track" + m_histTitleExt + "; #theta;").c_str(), 40,-0.,4.)); + //sc=trackHistos.regHist(m_track_eta = TH1F_LW::create("m_Pixel_track_eta", ("Reconstructed eta of track" + m_histTitleExt + "; #eta;").c_str(), 40,-4.,4.)); sc=trackHistos.regHist(m_tracks_per_lumi = TH1I_LW::create("tracks_per_lumi", ("Number of tracks per LB" + m_histTitleExt + ";lumi block;# tracks").c_str(),2500,-0.5,2499.5)); sc=trackHistos.regHist(m_tracksPerEvt_per_lumi = TProfile_LW::create("tracksPerEvt_per_lumi", ("Number of tracks per event per LB" + m_histTitleExt + ";lumi block;tracks/event").c_str(),2500,-0.5,2499.5)); sc=trackHistos.regHist(m_tracksPerEvtPerMu_per_lumi = TProfile_LW::create("tracksPerEvtPerMu_per_lumi", ("Number of tracks per event per mu per LB (pixel tracks)" + m_histTitleExt + ";lumi block;tracks/event").c_str(),2500,-0.5,2499.5)); sc=trackHistos.regHist(m_trackRate_per_lumi = TH1F_LW::create("trackRate_per_lumi", ("Track rate per LB" + m_histTitleExt + ";lumi block;#tracks/sec").c_str(),2500,-0.5,2499.5)); - sc=trackHistos.regHist(m_track_dedx = TH2F_LW::create("m_Pixel_track_dedx", ("Reconstructed dE/dx of track" + m_histTitleExt + "; momentum [MeV]; dE/dx [MeV g cm^{-2}]").c_str(),125,-2500,2500,100,0,10)); - sc=trackHistos.regHist(m_track_mass_dedx = TH1F_LW::create("m_Pixel_track_mass_dedx", ("Reconstructed mass using dE/dx of track" + m_histTitleExt + "; mass [MeV]; ").c_str(),125,0,2500)); + //sc=trackHistos.regHist(m_track_dedx = TH2F_LW::create("m_Pixel_track_dedx", ("Reconstructed dE/dx of track" + m_histTitleExt + "; momentum [MeV]; dE/dx [MeV g cm^{-2}]").c_str(),125,-2500,2500,100,0,10)); + //sc=trackHistos.regHist(m_track_mass_dedx = TH1F_LW::create("m_Pixel_track_mass_dedx", ("Reconstructed mass using dE/dx of track" + m_histTitleExt + "; mass [MeV]; ").c_str(),125,0,2500)); + + sc=trackHistos.regHist(m_degFactorMap = TProfile2D_LW::create("degFactorMap", ("degradation factor map for IP resolution" + m_histTitleExt + ";track #eta;track #phi").c_str(), 60, -3.0, 3.0, 80, -4.0, 4.0)); + m_degFactorMap->SetOption("colz"); + sc=trackHistos.regHist(m_degFactorMap_per_lumi = TProfile_LW::create("degFactorMap_per_lumi", ("overall degradation factor for IP resolution per lumi" + m_histTitleExt + ";lumi block;overall avg deg. factor").c_str(), 2500, -0.5, 2499.5)); + sc=trackHistos.regHist(m_degFactorMap_eta_per_lumi = TProfile2D_LW::create("degFactorMap_eta_per_lumi", ("degradation factor (eta) for IP resolution per lumi" + m_histTitleExt + ";lumi block;track #eta").c_str(), 2500, -0.5, 2499.5, 60, -3.0, 3.0 )); + m_degFactorMap_eta_per_lumi->SetOption("colz"); + //sc=trackHistos.regHist(m_degFactorMap_phi_per_lumi = TProfile2D_LW::create("degFactorMap_phi_per_lumi", ("degradation factor (phi) for IP resolution per lumi" + m_histTitleExt + ";lumi block;track #phi").c_str(), 2500, -0.5, 2499.5, 80, -4.0, 4.0 )); + //m_degFactorMap_phi_per_lumi->SetOption("colz"); + } if(sc.isFailure())if(msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "histograms not booked" << endreq; @@ -183,46 +185,35 @@ StatusCode PixelMainMon::FillTrackMon(void) if(m_doOnTrack || m_doOnPixelTrack)m_RDOIDs.clear();//reset these so you can fill them with the new id's if(m_doOnTrack || m_doOnPixelTrack)m_ClusterIDs.clear(); for (int i=0; i<(int)m_tracks->size(); i++) - { + { const Trk::Track *track0=(*m_tracks)[i]; - if (track0 == 0) - { + if (track0 == 0) { if (msgLvl(MSG::ERROR) ) msg(MSG::ERROR) << "no pointer to track!!!" << endreq; break; } - const Trk::Perigee *measPerigee = dynamic_cast< const Trk::Perigee *>(track0->perigeeParameters()); + const Trk::Perigee *measPerigee = dynamic_cast< const Trk::Perigee *>(track0->perigeeParameters()); - double mass = 0; - double dedx = 0; + //double mass = 0; + //double dedx = 0; + float degradationFactor = 1.0; + unsigned int hitslayer = 0; + bool isEndcaps = false; //Check the track summary if it exists to see if there are pixel hits on this track, if no hits, skip ahead - //const Trk::TrackSummary* summary = m_trkSummaryTool->createSummary(*track); - //if ( summary->get(Trk::numberOfPixelHits) == 0 ) { - // delete summary; - // continue; - //} - //else { - // dedx = summary->getPixeldEdx(); - // std::cout << "mass: " << summary->indetTrackSummary()->massPixeldEdx() << std::endl; - // mass = summary->indetTrackSummary()->massPixeldEdx()*1000; - // delete summary; - //} int nholes=-1; const Trk::TrackSummary* summary = track0->trackSummary(); if (summary) { - nholes = summary->get(Trk::numberOfPixelHoles); + nholes = summary->get(Trk::numberOfPixelHoles); if (summary->get(Trk::numberOfPixelHits)==0) { - continue; - } - else { - dedx = summary->getPixeldEdx(); - mass = summary->indetTrackSummary()->massPixeldEdx()*1000; - } - } - else { + continue; + } else { + //dedx = summary->getPixeldEdx(); + //mass = summary->indetTrackSummary()->massPixeldEdx()*1000; + } + } else { if (msgLvl(MSG::INFO)) msg(MSG::INFO) << "No Track Summary Found" << endreq; } @@ -234,209 +225,259 @@ StatusCode PixelMainMon::FillTrackMon(void) //get the track state on surfaces (a vector, on element per surface) and loop over it if(m_doHoleSearch && !m_doOnline && nholes>0){ - track = m_holeSearchTool->getTrackWithHoles(*track0); + track = m_holeSearchTool->getTrackWithHoles(*track0); } const DataVector< const Trk::TrackStateOnSurface>* trackStates=track->trackStateOnSurfaces(); for (DataVector< const Trk::TrackStateOnSurface>::const_iterator trackStateOnSurfaceIterator=trackStates->begin(); trackStateOnSurfaceIterator!=trackStates->end(); trackStateOnSurfaceIterator++) - { - //Change the track state on 1 surface into the cluster it represents - const Trk::MeasurementBase* mesb=(*trackStateOnSurfaceIterator)->measurementOnTrack(); + { + //Change the track state on 1 surface into the cluster it represents + const Trk::MeasurementBase* mesb=(*trackStateOnSurfaceIterator)->measurementOnTrack(); + + const InDet::SiClusterOnTrack *clus=0; + Identifier clusID; + Identifier surfaceID; - const InDet::SiClusterOnTrack *clus=0; - Identifier clusID; - Identifier surfaceID; - - const Trk::RIO_OnTrack* hit = mesb ? dynamic_cast<const Trk::RIO_OnTrack*>(mesb) : 0; - if (mesb && !hit) continue; // skip pseudomeasurements etc. - if (mesb && mesb->associatedSurface().associatedDetectorElement()) { - surfaceID = mesb->associatedSurface().associatedDetectorElement()->identify(); - - } else { // holes, perigee - if (not (*trackStateOnSurfaceIterator)->trackParameters() ) { - msg(MSG::INFO) << "pointer of TSOS to track parameters or associated surface is null" << endreq; - continue; - } - surfaceID = (*trackStateOnSurfaceIterator)->trackParameters()->associatedSurface().associatedDetectorElementIdentifier();//check ptr - } - - if((*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Measurement)){ - clus = dynamic_cast< const InDet::SiClusterOnTrack*>(mesb); - if(clus){ - clusID = clus->identify(); - } - } - - if((*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Outlier)){ - clus = dynamic_cast< const InDet::SiClusterOnTrack*>((*trackStateOnSurfaceIterator)->measurementOnTrack()); - if(clus){ - clusID = clus->identify(); - } - } + const Trk::RIO_OnTrack* hit = mesb ? dynamic_cast<const Trk::RIO_OnTrack*>(mesb) : 0; + if (mesb && !hit) continue; // skip pseudomeasurements etc. + if (mesb && mesb->associatedSurface().associatedDetectorElement()) { + surfaceID = mesb->associatedSurface().associatedDetectorElement()->identify(); + + } else { // holes, perigee + if (not (*trackStateOnSurfaceIterator)->trackParameters() ) { + msg(MSG::INFO) << "pointer of TSOS to track parameters or associated surface is null" << endreq; + continue; + } + surfaceID = (*trackStateOnSurfaceIterator)->trackParameters()->associatedSurface().associatedDetectorElementIdentifier();//check ptr + } + + if((*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Measurement)){ + clus = dynamic_cast< const InDet::SiClusterOnTrack*>(mesb); + if(clus){ + clusID = clus->identify(); + } + } + + if((*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Outlier)){ + clus = dynamic_cast< const InDet::SiClusterOnTrack*>((*trackStateOnSurfaceIterator)->measurementOnTrack()); + if(clus){ + clusID = clus->identify(); + } + } - if((*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Hole)){ - clus = dynamic_cast< const InDet::SiClusterOnTrack*>((*trackStateOnSurfaceIterator)->measurementOnTrack()); - if(clus){ - clusID = clus->identify(); - } - } - - if(m_idHelper->is_pixel(surfaceID) && (*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Measurement)){ - if(m_tsos_hitmap)m_tsos_hitmap->Fill(surfaceID,m_pixelid,m_doIBL); - if(m_tsos_hiteff_vs_lumi){ - m_tsos_hiteff_vs_lumi->Fill(m_manager->lumiBlockNumber(),1.,surfaceID,m_pixelid,m_doIBL); - } - } - - if(m_idHelper->is_pixel(surfaceID) && (*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Hole)){ - if(m_tsos_holemap)m_tsos_holemap->Fill(surfaceID,m_pixelid,m_doIBL); - if(m_tsos_hiteff_vs_lumi){ - m_tsos_hiteff_vs_lumi->Fill(m_manager->lumiBlockNumber(),0.,surfaceID,m_pixelid,m_doIBL); - } - } - - if(m_idHelper->is_pixel(surfaceID) && (*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Outlier)){ - if(m_tsos_outliermap)m_tsos_outliermap->Fill(surfaceID,m_pixelid,m_doIBL); - if(m_tsos_hiteff_vs_lumi){ - m_tsos_hiteff_vs_lumi->Fill(m_manager->lumiBlockNumber(),0.,surfaceID,m_pixelid,m_doIBL); - } - } + if((*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Hole)){ + clus = dynamic_cast< const InDet::SiClusterOnTrack*>((*trackStateOnSurfaceIterator)->measurementOnTrack()); + if(clus){ + clusID = clus->identify(); + } + } + + if(m_idHelper->is_pixel(surfaceID) && (*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Measurement)){ + if(m_tsos_hitmap)m_tsos_hitmap->Fill(surfaceID,m_pixelid,m_doIBL,false); + if(m_tsos_hiteff_vs_lumi){ + m_tsos_hiteff_vs_lumi->Fill(m_manager->lumiBlockNumber(),1.,surfaceID,m_pixelid,m_doIBL); + } + } + + if(m_idHelper->is_pixel(surfaceID) && (*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Hole)){ + if(m_tsos_holemap)m_tsos_holemap->Fill(surfaceID,m_pixelid,m_doIBL,false); + if(m_tsos_hiteff_vs_lumi){ + m_tsos_hiteff_vs_lumi->Fill(m_manager->lumiBlockNumber(),0.,surfaceID,m_pixelid,m_doIBL); + } + } + + if(m_idHelper->is_pixel(surfaceID) && (*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Outlier)){ + if(m_tsos_outliermap)m_tsos_outliermap->Fill(surfaceID,m_pixelid,m_doIBL,false); + if(m_tsos_hiteff_vs_lumi){ + m_tsos_hiteff_vs_lumi->Fill(m_manager->lumiBlockNumber(),0.,surfaceID,m_pixelid,m_doIBL); + } + } - if(!(*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Measurement)){continue;} + if(!(*trackStateOnSurfaceIterator)->type(Trk::TrackStateOnSurface::Measurement)){continue;} - if(!clus)continue; - const InDet::SiCluster *RawDataClus = dynamic_cast< const InDet::SiCluster*>(clus->prepRawData()); - if(!RawDataClus)continue; + if(!clus)continue; + + const InDet::SiCluster *RawDataClus = dynamic_cast< const InDet::SiCluster*>(clus->prepRawData()); + if(!RawDataClus)continue; - //if the cluster is a pixel cluster (not SCT) get the pixel information - if (RawDataClus->detectorElement()->isPixel()) - { - const InDet::PixelCluster* pixelCluster=dynamic_cast<const InDet::PixelCluster*>(RawDataClus); - if(!pixelCluster){ - // std::cout<<"ERROR! Dynamic-cast to pixel cluster failed!"<<std::endl; - } - - else{ - float size = pixelCluster->rdoList().size(); - float tot = pixelCluster->totalToT(); - m_track_clusToT->Fill(pixelCluster->totalToT()); - if(size==1 && tot<8){ - nbadclus++; - } - else{ - ngoodclus++; - } - - if(m_doModules && !m_doOnline){ - if(measPerigee){ - float pt = measPerigee->pT()/1000.0; - m_clustot_vs_pt->Fill(pt,tot); - if(pt<10){ - m_clustot_lowpt->Fill(tot); - if(size==1){m_1hitclustot_lowpt->Fill(tot);} - if(size==2){m_2hitclustot_lowpt->Fill(tot);} - } - else{ - m_clustot_highpt->Fill(tot); - if(size==1){m_1hitclustot_highpt->Fill(tot);} - if(size==2){m_2hitclustot_highpt->Fill(tot);} - } - } - } - } - - nPixelHits++;//add another pixel hit - for(unsigned int loopSize=0;loopSize < RawDataClus->rdoList().size(); loopSize++) + //if the cluster is a pixel cluster (not SCT) get the pixel information + if (RawDataClus->detectorElement()->isPixel()) { - if(m_doOnTrack || m_doOnPixelTrack)m_RDOIDs.push_back(RawDataClus->rdoList().at(loopSize)); - } - if(m_doOnTrack || m_doOnPixelTrack)m_ClusterIDs.push_back( clus->identify()); + int pixlayer = GetPixLayerID(m_pixelid->barrel_ec(surfaceID), m_pixelid->layer_disk(surfaceID), m_doIBL); + if( pixlayer == PixLayer::kECA || pixlayer == PixLayer::kECC ) isEndcaps = true; + + const InDet::PixelCluster* pixelCluster=dynamic_cast<const InDet::PixelCluster*>(RawDataClus); + if(!pixelCluster){ + // std::cout<<"ERROR! Dynamic-cast to pixel cluster failed!"<<std::endl; + } else { + float size = pixelCluster->rdoList().size(); + float tot = pixelCluster->totalToT(); + //m_track_clusToT->Fill(pixelCluster->totalToT()); + if(size==1 && tot<8) { nbadclus++; } + else{ ngoodclus++; } + + if(m_doModules && !m_doOnline){ + if(measPerigee){ + float pt = measPerigee->pT()/1000.0; + if(m_clustot_vs_pt) m_clustot_vs_pt->Fill(pt,tot); + if(pt<10){ + if(m_clustot_lowpt) m_clustot_lowpt->Fill(tot); + if(size==1){ if(m_1hitclustot_lowpt) m_1hitclustot_lowpt->Fill(tot);} + if(size==2){ if(m_2hitclustot_lowpt) m_2hitclustot_lowpt->Fill(tot);} + }else{ + if(m_clustot_highpt) m_clustot_highpt->Fill(tot); + if(size==1){ if(m_1hitclustot_highpt) m_1hitclustot_highpt->Fill(tot);} + if(size==2){ if(m_2hitclustot_highpt) m_2hitclustot_highpt->Fill(tot);} + } + } + } + // categorize tracks for IP resolution degradation + if(pixlayer >= PixLayer::kECC){ + unsigned int tmplayer = 0x1<<pixlayer; + if( hitslayer != tmplayer ) hitslayer += 0x1<<pixlayer; + } + + } + + nPixelHits++;//add another pixel hit + for(unsigned int loopSize=0;loopSize < RawDataClus->rdoList().size(); loopSize++) { + if(m_doOnTrack || m_doOnPixelTrack)m_RDOIDs.push_back(RawDataClus->rdoList().at(loopSize)); + } + + if(m_doOnTrack || m_doOnPixelTrack)m_ClusterIDs.push_back( clus->identify()); - // Get track parameters for current surface (with AtaPlane) + // Get track parameters for current surface (with AtaPlane) trkParameters = (*trackStateOnSurfaceIterator)->trackParameters(); const Trk::AtaPlane *trackAtPlane = dynamic_cast<const Trk::AtaPlane*>(trkParameters); if (trackAtPlane) { - const Amg::Vector2D localpos = trackAtPlane->localPosition(); + const Amg::Vector2D localpos = trackAtPlane->localPosition(); // Get local error matrix for hit and track and calc pull - const AmgSymMatrix(5) trackErrMat = (*trackAtPlane->covariance()); - const Amg::MatrixX clusErrMat = clus->localCovariance(); + const AmgSymMatrix(5) trackErrMat = (*trackAtPlane->covariance()); + const Amg::MatrixX clusErrMat = clus->localCovariance(); //pulls and residuals Phi - double error_sum = sqrt(pow(Amg::error(trackErrMat,Trk::locX),2) + pow(Amg::error(clusErrMat,Trk::locX), 2)); + double error_sum = sqrt(pow(Amg::error(trackErrMat,Trk::locX),2) + pow(Amg::error(clusErrMat,Trk::locX), 2)); double res = clus->localParameters()[Trk::locX]-localpos[0]; - m_track_res_phi->Fill(res); + if(m_track_res_phi) m_track_res_phi->Fill(res); double pull = 0; if(error_sum != 0) pull = (res)/error_sum; - m_track_pull_phi->Fill(pull); + if(m_track_pull_phi) m_track_pull_phi->Fill(pull); //pulls and residuals Eta - error_sum = sqrt(pow(Amg::error(trackErrMat,Trk::locY),2) + pow(Amg::error(clusErrMat,Trk::locY), 2)); + error_sum = sqrt(pow(Amg::error(trackErrMat,Trk::locY),2) + pow(Amg::error(clusErrMat,Trk::locY), 2)); res = clus->localParameters()[Trk::locY]-localpos[1]; - m_track_res_eta->Fill(res); + if(m_track_res_eta) m_track_res_eta->Fill(res); if(error_sum != 0) pull = (res)/error_sum; - m_track_pull_eta->Fill(pull); + if(m_track_pull_eta) m_track_pull_eta->Fill(pull); } - } - } + } // end of if (RawDataClus->detectorElement()->isPixel()) + } // end of TSOS loop if(!m_doOnline && m_doModules){ - float pt = measPerigee->pT()/1000.0; - if(nbadclus==1){ - m_track_chi2_bcl1->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); - } - if(nbadclus==0){ - m_track_chi2_bcl0->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); - } - if(nbadclus>1){ - m_track_chi2_bclgt1->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); - } - if(pt>=10){ - if(nbadclus==1){ - m_track_chi2_bcl1_highpt->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); - } - if(nbadclus==0){ - m_track_chi2_bcl0_highpt->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); - } - if(nbadclus>1){ - m_track_chi2_bclgt1_highpt->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); - } - } + float pt = measPerigee->pT()/1000.0; + if(nbadclus==1){ + if(m_track_chi2_bcl1) m_track_chi2_bcl1->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); + } + if(nbadclus==0){ + if(m_track_chi2_bcl0) m_track_chi2_bcl0->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); + } + if(nbadclus>1){ + if(m_track_chi2_bclgt1) m_track_chi2_bclgt1->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); + } + if(pt>=10){ + if(nbadclus==1){ + if(m_track_chi2_bcl1_highpt) m_track_chi2_bcl1_highpt->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); + } + if(nbadclus==0){ + if(m_track_chi2_bcl1_highpt) m_track_chi2_bcl0_highpt->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); + } + if(nbadclus>1){ + if(m_track_chi2_bclgt1_highpt) m_track_chi2_bclgt1_highpt->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); + } + } } if(nPixelHits>0)//track properties for tracks through the pixel detector { - const Trk::Perigee *measPerigee = dynamic_cast< const Trk::Perigee *>(track0->perigeeParameters()); - if (measPerigee != NULL){ - m_track_qOverP->Fill((measPerigee->parameters()[Trk::qOverP]*1000.0)); - if (measPerigee->parameters()[Trk::qOverP] != 0) { - m_track_qOverP_inv->Fill((1./(measPerigee->parameters()[Trk::qOverP]*1000.0))); - m_track_dedx->Fill(1./(measPerigee->parameters()[Trk::qOverP]),dedx); - } - if (std::abs(mass-139.57)>.00001&&mass>0&&dedx>1.8) m_track_mass_dedx->Fill(mass); - m_track_pt->Fill((measPerigee->pT()/1000.0)); - m_track_d0->Fill(measPerigee->parameters()[Trk::d0]); - m_track_z0->Fill(measPerigee->parameters()[Trk::z0]); - m_track_phi0->Fill(measPerigee->parameters()[Trk::phi0]); - m_track_theta->Fill(measPerigee->parameters()[Trk::theta]); - m_track_eta->Fill(measPerigee->eta()); - if (track0->fitQuality()->numberDoF() > 0){ - m_track_chi2->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); - if(m_track_chi2_LB) m_track_chi2_LB->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); - } - else{ - m_track_chi2->Fill(-1); - if(m_track_chi2_LB) m_track_chi2_LB->Fill(-1); - } - if(m_tracks_per_lumi) m_tracks_per_lumi->Fill(m_manager->lumiBlockNumber()); - nTracks++; - } + //const Trk::Perigee *measPerigee = dynamic_cast< const Trk::Perigee *>(track0->perigeeParameters()); + //if (measPerigee != NULL){ + // //m_track_qOverP->Fill((measPerigee->parameters()[Trk::qOverP]*1000.0)); + // //if (measPerigee->parameters()[Trk::qOverP] != 0) { + // //m_track_qOverP_inv->Fill((1./(measPerigee->parameters()[Trk::qOverP]*1000.0))); + // //m_track_dedx->Fill(1./(measPerigee->parameters()[Trk::qOverP]),dedx); + // //} + // //if (std::abs(mass-139.57)>.00001&&mass>0&&dedx>1.8) m_track_mass_dedx->Fill(mass); + // //m_track_pt->Fill((measPerigee->pT()/1000.0)); + // //m_track_d0->Fill(measPerigee->parameters()[Trk::d0]); + // //m_track_z0->Fill(measPerigee->parameters()[Trk::z0]); + // //m_track_phi0->Fill(measPerigee->parameters()[Trk::phi0]); + // //m_track_theta->Fill(measPerigee->parameters()[Trk::theta]); + // //m_track_eta->Fill(measPerigee->eta()); + // if (track0->fitQuality()->numberDoF() > 0){ + // if(m_track_chi2) m_track_chi2->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); + // if(m_track_chi2_LB) m_track_chi2_LB->Fill(track0->fitQuality()->chiSquared()/track0->fitQuality()->numberDoF()); + // }else{ + // if(m_track_chi2) m_track_chi2->Fill(-1); + // if(m_track_chi2_LB) m_track_chi2_LB->Fill(-1); + // } + // if(m_tracks_per_lumi) m_tracks_per_lumi->Fill(m_manager->lumiBlockNumber()); + // nTracks++; + //} } - if(m_doHoleSearch && !m_doOnline && nholes>0){delete (track);} + + /// IP degradation factor map + if( m_doDegFactorMap ){ + if (measPerigee){ + + float eta = measPerigee->eta(); + //float phi = measPerigee->parameters()[Trk::phi0]; + float phi = 1.0; ///TEMPORALLY !!!! + + // + if(isEndcaps){ + degradationFactor = 1.0; + }else{ + unsigned int alllayers = 0x1<<PixLayer::kIBL | 0x1<<PixLayer::kB0 | 0x1<<PixLayer::kB1 | 0x1<<PixLayer::kB2; + unsigned int IBL = 0x0<<PixLayer::kIBL | 0x1<<PixLayer::kB0 | 0x1<<PixLayer::kB1 | 0x1<<PixLayer::kB2; + unsigned int B0 = 0x1<<PixLayer::kIBL | 0x0<<PixLayer::kB0 | 0x1<<PixLayer::kB1 | 0x1<<PixLayer::kB2; + unsigned int B1 = 0x1<<PixLayer::kIBL | 0x1<<PixLayer::kB0 | 0x0<<PixLayer::kB1 | 0x1<<PixLayer::kB2; + unsigned int B2 = 0x1<<PixLayer::kIBL | 0x1<<PixLayer::kB0 | 0x1<<PixLayer::kB1 | 0x0<<PixLayer::kB2; + unsigned int IBLB0 = 0x0<<PixLayer::kIBL | 0x0<<PixLayer::kB0 | 0x1<<PixLayer::kB1 | 0x1<<PixLayer::kB2; + unsigned int IBLB2 = 0x0<<PixLayer::kIBL | 0x1<<PixLayer::kB0 | 0x1<<PixLayer::kB1 | 0x0<<PixLayer::kB2; + unsigned int B0B2 = 0x1<<PixLayer::kIBL | 0x0<<PixLayer::kB0 | 0x1<<PixLayer::kB1 | 0x0<<PixLayer::kB2; + unsigned int B1B2 = 0x1<<PixLayer::kIBL | 0x1<<PixLayer::kB0 | 0x0<<PixLayer::kB1 | 0x0<<PixLayer::kB2; + unsigned int IBLB0B1 = 0x0<<PixLayer::kIBL | 0x0<<PixLayer::kB0 | 0x0<<PixLayer::kB1 | 0x1<<PixLayer::kB2; + unsigned int IBLB0B1B2 = 0x0<<PixLayer::kIBL | 0x0<<PixLayer::kB0 | 0x0<<PixLayer::kB1 | 0x0<<PixLayer::kB2; + if( hitslayer == alllayers ) degradationFactor = 1.0; // All hits + else{ + if( hitslayer == IBL ) degradationFactor = 1.8; // IBL + else if( hitslayer == B0 ) degradationFactor = 1.16; // B0 + else if( hitslayer == B1 ) degradationFactor = 1.0; // B1 + else if( hitslayer == B2 ) degradationFactor = 1.0; // B2 + else if( hitslayer == IBLB0 ) degradationFactor = 3.5; // IBL & B0 + else if( hitslayer == IBLB2 ) degradationFactor = 1.8; // IBL & B2 + else if( hitslayer == B0B2 ) degradationFactor = 1.17; // B & B2 + else if( hitslayer == B1B2 ) degradationFactor = 1.0; // B1 & B2 + else if( hitslayer == IBLB0B1 ) degradationFactor = 6.0; // IBL & B0 & B1 + else if( hitslayer == IBLB0B1B2 ) degradationFactor = 6.0; // IBL & B0 & B1 + else degradationFactor = 1.0; + } + //std::cout << hitslayer << " " << tests << " " << degradationFactor << std::endl; + } + + if(m_degFactorMap) m_degFactorMap->Fill( eta, phi, degradationFactor); + if(m_degFactorMap_per_lumi) m_degFactorMap_per_lumi->Fill(m_manager->lumiBlockNumber(), degradationFactor); + if(m_degFactorMap_eta_per_lumi) m_degFactorMap_eta_per_lumi->Fill(m_manager->lumiBlockNumber(), eta, degradationFactor); + //if(m_degFactorMap_phi_per_lumi) m_degFactorMap_phi_per_lumi->Fill(m_manager->lumiBlockNumber(), measPerigee->parameters()[Trk::phi0], degradationFactor); + } } - if(m_tracksPerEvt_per_lumi) m_tracksPerEvt_per_lumi->Fill(m_manager->lumiBlockNumber(),nTracks); + if(m_doHoleSearch && !m_doOnline && nholes>0){delete (track);} + } // end of track loop + + if(m_tracksPerEvt_per_lumi) m_tracksPerEvt_per_lumi->Fill(m_manager->lumiBlockNumber(), nTracks); if(m_tracksPerEvtPerMu_per_lumi && m_lumiTool->lbAverageInteractionsPerCrossing() > 0 ){ m_tracksPerEvtPerMu_per_lumi->Fill(m_manager->lumiBlockNumber(),nTracks/m_lumiTool->lbAverageInteractionsPerCrossing()); }