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 vector<string> stationLabel;
82 if ( nstationForLabel == 2) {
83 string stationLabel[] = {
"1",
"2"};
84 return stationLabel[i-1];
87 std::cout<<
"Something is wrong"<<std::endl;
99 std::vector<double> xbins_vector;
100 double station1_xmin = RangeZR_[ 0 ];
101 double station1_xmax = RangeZR_[ 1 ];
102 double station2_xmin = RangeZR_[ 2 ];
103 double station2_xmax = RangeZR_[ 3 ];
105 for(
double i= station1_xmin-1 ;
i< station2_xmax+1;
i=
i+0.25 ) {
106 if (
i > station1_xmax+1 &&
i<station2_xmin-1 )
continue;
107 xbins_vector.push_back(
i);
109 TH2F* simpleZR_temp =
new TH2F(title,histname, xbins_vector.size()-1, (
double*)&xbins_vector[0], 50,120,330);
115 if( station->
rings().front()->superChambers().size() == 0 ) {
116 LogDebug(
"MuonBaseValidation")<<
"+++ Error! can not get superChambers. Skip "<<getSuffixTitle(station->
region(), station->
station())<<
" on "<<histname<<
"\n";
122 int nYbins = station->
rings().front()->superChambers().front()->chambers().front()->nEtaPartitions();
124 TH2F* dcEta_temp =
new TH2F(title,histname,nXbins, 0, nXbins, nYbins, 1, nYbins+1);
128 for(
unsigned int sCh = 1; sCh <= 36; sCh++){
129 for(
unsigned int Ch = 1; Ch <= 2; Ch++){
131 TString
label = TString::Format(
"ch%d_la%d", sCh, Ch);
132 dcEta_temp->GetXaxis()->SetBinLabel(idx, label.Data());
141 string hist_name, hist_title;
142 if ( layer_num == 0 || layer_num==1 ) {
143 hist_name = name+
string(
"_zr") + getSuffixName(region_num, station_num+1, layer_num+1);
144 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1, layer_num+1)+
" ; globalZ[cm] ; globalR[cm]";
147 hist_name = name+
string(
"_zr") + getSuffixName(region_num, station_num+1);
148 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1)+
" ; globalZ[cm] ; globalR[cm]";
150 LogDebug(
"GEMBaseValidation")<<hist_name<<
" "<<hist_title<<std::endl;
151 int xbin = (
int)nBinZR_[station_num];
152 int ybin = (
int)nBinZR_[ nBinZR_.size()/2+station_num];
157 ymin = RangeZR_[ RangeZR_.size()/2 + station_num*2 + 0];
158 ymax = RangeZR_[ RangeZR_.size()/2 + station_num*2 + 1];
159 if ( region_num ==0 ) {
160 xmin = -RangeZR_[ station_num*2 + 1];
161 xmax = -RangeZR_[ station_num*2 + 0];
164 xmin = RangeZR_[ station_num*2 + 0];
165 xmax = RangeZR_[ station_num*2 + 1];
167 return ibooker.
book2D( hist_name, hist_title, xbin, xmin, xmax, ybin,ymin, ymax);
171 string hist_name, hist_title;
172 if ( layer_num == 0 || layer_num==1 ) {
173 hist_name = name+
string(
"_xy") + getSuffixName( region_num, station_num+1, layer_num+1) ;
174 hist_title = label+
string(
" occupancy : ")+getSuffixTitle( region_num, station_num+1, layer_num+1 )+
" ; globalX [cm]; globalY[cm]";
177 hist_name = name+
string(
"_xy") + getSuffixName( region_num, station_num+1);
178 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1) +
" ; globalX [cm]; globalY[cm]";
180 return ibooker.
book2D( hist_name, hist_title, nBinXY_, -360,360,nBinXY_,-360,360);
T getUntrackedParameter(std::string const &, T const &) const
virtual ~GEMBaseValidation()
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)
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.