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";
33 nregion = GEMGeometry_->
regions().size();
34 nstation = GEMGeometry_->
regions()[0]->stations().size() ;
35 nstationForLabel = GEMGeometry_->
regions()[0]->stations().size() ;
36 npart = GEMGeometry_->
regions()[0]->stations()[0]->superChambers()[0]->chambers()[0]->etaPartitions().size();
42 if ( region == -1 ) region =0 ;
43 else if ( region >1 )
std::cout<<
"Name)Alert! Region must be -1 or 1 : "<<region<<
" "<<station<<
" "<<layer<<std::endl;
44 return string(
"_r")+regionLabel[
region]+
"_st"+getStationLabel(station)+
"_l"+layerLabel[layer-1];
47 if ( region == -1 ) region =0 ;
48 else if ( region >1 )
std::cout<<
"Name)Alert! Region must be -1 or 1 : "<<region<<
" "<<station<<std::endl;
49 return string(
"_r")+regionLabel[
region]+
"_st"+getStationLabel(station);
52 if ( region == -1 ) region =0 ;
53 else if ( region >1 )
std::cout<<
"Name)Alert! Region must be -1 or 1 : "<<region<<std::endl;
58 if ( region == -1 ) region =0 ;
59 else if ( region >1 )
std::cout<<
"Title)Alert! Region must be -1 or 1 : "<<region<<
" "<<station<<
" "<<layer<<std::endl;
60 return string(
"Region ")+regionLabel[
region]+
" Station "+getStationLabel(station)+
" Layer "+layerLabel[layer-1];
63 if ( region == -1 ) region =0 ;
64 else if ( region >1 )
std::cout<<
"Title)Alert! Region must be -1 or 1 : "<<region<<
" "<<station<<std::endl;
65 return string(
"Region ")+regionLabel[
region]+
" Station "+getStationLabel(station);
68 if ( region == -1 ) region =0 ;
69 else if ( region >1 )
std::cout<<
"Title)Alert! Region must be -1 or 1 : "<<region<<std::endl;
74 vector<string> stationLabel;
75 if ( nstationForLabel == 2) {
76 string stationLabel[] = {
"1",
"2"};
77 return stationLabel[i-1];
80 std::cout<<
"Something is wrong"<<std::endl;
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()[0]->superChambers().size() ==0) {
109 LogDebug(
"MuonBaseValidation")<<
"+++ Error! can not get superChambers. Skip "<<getSuffixTitle(station->
region(), station->
station())<<
" on "<<histname<<
"\n";
113 int nXbins = station->
rings()[0]->nSuperChambers()*2;;
114 int nRoll1 = station->
rings()[0]->superChambers()[0]->chambers()[0]->etaPartitions().size();;
115 int nRoll2 = station->
rings()[0]->superChambers()[0]->chambers()[1]->etaPartitions().size();;
116 int nYbins = ( nRoll1 > nRoll2 ) ? nRoll1 : nRoll2;;
118 TH2F* dcEta_temp =
new TH2F(title,histname,nXbins, 0, nXbins, nYbins, 1, nYbins+1);
120 for(
unsigned int sCh = 1; sCh <= station->
superChambers().size(); sCh++){
121 for(
unsigned int Ch = 1; Ch <= 2; Ch++){
123 TString
label = TString::Format(
"ch%d_la%d", sCh, Ch);
124 dcEta_temp->GetXaxis()->SetBinLabel(idx, label.Data());
133 string hist_name, hist_title;
134 if ( layer_num == 0 || layer_num==1 ) {
135 hist_name = name+
string(
"_zr") + getSuffixName(region_num, station_num+1, layer_num+1);
136 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1, layer_num+1)+
" ; globalZ[cm] ; globalR[cm]";
139 hist_name = name+
string(
"_zr") + getSuffixName(region_num, station_num+1);
140 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1)+
" ; globalZ[cm] ; globalR[cm]";
142 LogDebug(
"GEMBaseValidation")<<hist_name<<
" "<<hist_title<<std::endl;
143 int xbin = (int)nBinZR_[station_num];
144 int ybin = (int)nBinZR_[ nBinZR_.size()/2+station_num];
149 ymin = RangeZR_[ RangeZR_.size()/2 + station_num*2 + 0];
150 ymax = RangeZR_[ RangeZR_.size()/2 + station_num*2 + 1];
151 if ( region_num ==0 ) {
152 xmin = -RangeZR_[ station_num*2 + 1];
153 xmax = -RangeZR_[ station_num*2 + 0];
156 xmin = RangeZR_[ station_num*2 + 0];
157 xmax = RangeZR_[ station_num*2 + 1];
159 return ibooker.
book2D( hist_name, hist_title, xbin, xmin, xmax, ybin,ymin, ymax);
163 string hist_name, hist_title;
164 if ( layer_num == 0 || layer_num==1 ) {
165 hist_name = name+
string(
"_xy") + getSuffixName( region_num, station_num+1, layer_num+1) ;
166 hist_title = label+
string(
" occupancy : ")+getSuffixTitle( region_num, station_num+1, layer_num+1 )+
" ; globalX [cm]; globalY[cm]";
169 hist_name = name+
string(
"_xy") + getSuffixName( region_num, station_num+1);
170 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1) +
" ; globalX [cm]; globalY[cm]";
172 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::vector< const GEMSuperChamber * > superChambers() const
Return the super chambers in the region.
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)
MonitorElement * book2D(Args &&...args)
MonitorElement * getDCEta(DQMStore::IBooker &, const GEMStation *, TString, TString)
std::string getStationLabel(int i)
const std::vector< const GEMRing * > & rings() const
Return the rings in the station.