14 regionLabel.push_back(
"-1");
15 regionLabel.push_back(
"1" );
18 layerLabel.push_back(
"1");
19 layerLabel.push_back(
"2");
27 GEMGeometry_ = &*hGeom;
30 edm::LogError(
"MuonGEMBaseValidation") <<
"+++ Error : GEM geometry is unavailable on event loop. +++\n";
34 LogDebug(
"MuonBaseValidation") <<
"GEMGeometry_->regions().size() " << GEMGeometry_->
regions().size() <<
"\n";
35 LogDebug(
"MuonBaseValidation") <<
"GEMGeometry_->stations().size() " << GEMGeometry_->
regions().front()->stations().size() <<
"\n";
36 LogDebug(
"MuonBaseValidation") <<
"GEMGeometry_->superChambers().size() " << GEMGeometry_->
superChambers().size() <<
"\n";
37 LogDebug(
"MuonBaseValidation") <<
"GEMGeometry_->chambers().size() " << GEMGeometry_->
chambers().size() <<
"\n";
38 LogDebug(
"MuonBaseValidation") <<
"GEMGeometry_->etaPartitions().size() " << GEMGeometry_->
etaPartitions().size() <<
"\n";
40 nregion = GEMGeometry_->
regions().size();
41 nstation = GEMGeometry_->
regions().front()->stations().size() ;
42 nstationForLabel = nstation;
43 npart = GEMGeometry_->
chambers().front()->etaPartitions().size();
49 if ( region == -1 ) region =0 ;
50 else if ( region >1 )
std::cout<<
"Name)Alert! Region must be -1 or 1 : "<<region<<
" "<<station<<
" "<<layer<<std::endl;
51 return string(
"_r")+regionLabel[region]+
"_st"+getStationLabel(station)+
"_l"+layerLabel[layer-1];
54 if ( region == -1 ) region =0 ;
55 else if ( region >1 )
std::cout<<
"Name)Alert! Region must be -1 or 1 : "<<region<<
" "<<station<<std::endl;
56 return string(
"_r")+regionLabel[region]+
"_st"+getStationLabel(station);
59 if ( region == -1 ) region =0 ;
60 else if ( region >1 )
std::cout<<
"Name)Alert! Region must be -1 or 1 : "<<region<<std::endl;
61 return string(
"_r")+regionLabel[region];
65 if ( region == -1 ) region =0 ;
66 else if ( region >1 )
std::cout<<
"Title)Alert! Region must be -1 or 1 : "<<region<<
" "<<station<<
" "<<layer<<std::endl;
67 return string(
"Region ")+regionLabel[region]+
" Station "+getStationLabel(station)+
" Layer "+layerLabel[layer-1];
70 if ( region == -1 ) region =0 ;
71 else if ( region >1 )
std::cout<<
"Title)Alert! Region must be -1 or 1 : "<<region<<
" "<<station<<std::endl;
72 return string(
"Region ")+regionLabel[region]+
" Station "+getStationLabel(station);
75 if ( region == -1 ) region =0 ;
76 else if ( region >1 )
std::cout<<
"Title)Alert! Region must be -1 or 1 : "<<region<<std::endl;
77 return string(
"Region ")+regionLabel[region];
81 string stationLabel[] = {
"1",
"2"};
82 return stationLabel[i-1];
92 std::vector<double> xbins_vector;
93 double station1_xmin = RangeZR_[ 0 ];
94 double station1_xmax = RangeZR_[ 1 ];
95 double station2_xmin = RangeZR_[ 2 ];
96 double station2_xmax = RangeZR_[ 3 ];
98 for(
double i= station1_xmin-1 ;
i< station2_xmax+1;
i=
i+0.25 ) {
99 if (
i > station1_xmax+1 &&
i<station2_xmin-1 )
continue;
100 xbins_vector.push_back(
i);
102 TH2F* simpleZR_temp =
new TH2F(title,histname, xbins_vector.size()-1, (
double*)&xbins_vector[0], 50,120,330);
108 if( station->
rings().front()->superChambers().empty() ) {
109 LogDebug(
"MuonBaseValidation")<<
"+++ Error! can not get superChambers. Skip "<<getSuffixTitle(station->
region(), station->
station())<<
" on "<<histname<<
"\n";
115 int nYbins = station->
rings().front()->superChambers().front()->chambers().front()->nEtaPartitions();
117 TH2F* dcEta_temp =
new TH2F(title,histname,nXbins, 0, nXbins, nYbins, 1, nYbins+1);
121 for(
unsigned int sCh = 1; sCh <= 36; sCh++){
122 for(
unsigned int Ch = 1; Ch <= 2; Ch++){
124 TString
label = TString::Format(
"ch%d_la%d", sCh, Ch);
125 dcEta_temp->GetXaxis()->SetBinLabel(idx, label.Data());
134 string hist_name, hist_title;
135 if ( layer_num == 0 || layer_num==1 ) {
136 hist_name = name+
string(
"_zr") + getSuffixName(region_num, station_num+1, layer_num+1);
137 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1, layer_num+1)+
" ; globalZ[cm] ; globalR[cm]";
140 hist_name = name+
string(
"_zr") + getSuffixName(region_num, station_num+1);
141 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1)+
" ; globalZ[cm] ; globalR[cm]";
143 LogDebug(
"GEMBaseValidation")<<hist_name<<
" "<<hist_title<<std::endl;
144 int xbin = (
int)nBinZR_[station_num];
145 int ybin = (
int)nBinZR_[ nBinZR_.size()/2+station_num];
150 ymin = RangeZR_[ RangeZR_.size()/2 + station_num*2 + 0];
151 ymax = RangeZR_[ RangeZR_.size()/2 + station_num*2 + 1];
152 if ( region_num ==0 ) {
153 xmin = -RangeZR_[ station_num*2 + 1];
154 xmax = -RangeZR_[ station_num*2 + 0];
157 xmin = RangeZR_[ station_num*2 + 0];
158 xmax = RangeZR_[ station_num*2 + 1];
160 return ibooker.
book2D( hist_name, hist_title, xbin, xmin, xmax, ybin,ymin, ymax);
164 string hist_name, hist_title;
165 if ( layer_num == 0 || layer_num==1 ) {
166 hist_name = name+
string(
"_xy") + getSuffixName( region_num, station_num+1, layer_num+1) ;
167 hist_title = label+
string(
" occupancy : ")+getSuffixTitle( region_num, station_num+1, layer_num+1 )+
" ; globalX [cm]; globalY[cm]";
170 hist_name = name+
string(
"_xy") + getSuffixName( region_num, station_num+1);
171 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1) +
" ; globalX [cm]; globalY[cm]";
173 return ibooker.
book2D( hist_name, hist_title, nBinXY_, -360,360,nBinXY_,-360,360);
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * BookHistZR(DQMStore::IBooker &, const char *name, const char *label, unsigned int region_num, unsigned int station_num, unsigned int layer_num=99)
int region() const
Get the region.
MonitorElement * getSimpleZR(DQMStore::IBooker &, TString, TString)
~GEMBaseValidation() override
MonitorElement * BookHistXY(DQMStore::IBooker &, const char *name, const char *label, unsigned int region_num, unsigned int station_num, unsigned int layer_num=99)
int station() const
Get the station.
std::string getSuffixTitle(int region, int station, int layer)
const GEMGeometry * initGeometry(const edm::EventSetup &)
std::string getSuffixName(int region, int station, int layer)
const std::vector< const GEMRegion * > & regions() const
Return a vector of all GEM regions.
GEMBaseValidation(const edm::ParameterSet &ps)
const std::vector< const GEMEtaPartition * > & etaPartitions() const
Return a vector of all GEM eta partitions.
const std::vector< const GEMSuperChamber * > & superChambers() const
Return a vector of all GEM super chambers.
MonitorElement * book2D(Args &&...args)
MonitorElement * getDCEta(DQMStore::IBooker &, const GEMStation *, TString, TString)
const std::vector< const GEMChamber * > & chambers() const
Return a vector of all GEM chambers.
std::string getStationLabel(int i)
const std::vector< const GEMRing * > & rings() const
Return the rings in the station.