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];
79 else if ( nstationForLabel ==3 ) {
80 string stationLabel[] = {
"1",
"2s",
"2l"};
81 return stationLabel[i-1];
84 std::cout<<
"Something is wrong"<<std::endl;
96 std::vector<double> xbins_vector;
97 double station1_xmin = RangeZR_[ 0 ];
98 double station1_xmax = RangeZR_[ 1 ];
99 double station2_xmin = RangeZR_[ 4 ];
100 double station2_xmax = RangeZR_[ 5 ];
102 for(
double i= station1_xmin-1 ;
i< station2_xmax+1;
i=
i+0.25 ) {
103 if (
i > station1_xmax+1 &&
i<station2_xmin-1 )
continue;
104 xbins_vector.push_back(
i);
106 TH2F* simpleZR_temp =
new TH2F(title,histname, xbins_vector.size()-1, (
double*)&xbins_vector[0], 50,120,330);
112 if( station->
rings()[0]->superChambers().size() ==0) {
113 LogDebug(
"MuonBaseValidation")<<
"+++ Error! can not get superChambers. Skip "<<getSuffixTitle(station->
region(), station->
station())<<
" on "<<histname<<
"\n";
117 int nXbins = station->
rings()[0]->nSuperChambers()*2;;
118 int nRoll1 = station->
rings()[0]->superChambers()[0]->chambers()[0]->etaPartitions().size();;
119 int nRoll2 = station->
rings()[0]->superChambers()[0]->chambers()[1]->etaPartitions().size();;
120 int nYbins = ( nRoll1 > nRoll2 ) ? nRoll1 : nRoll2;;
122 TH2F* dcEta_temp =
new TH2F(title,histname,nXbins, 0, nXbins, nYbins, 1, nYbins+1);
124 for(
unsigned int sCh = 1; sCh <= station->
superChambers().size(); sCh++){
125 for(
unsigned int Ch = 1; Ch <= 2; Ch++){
127 TString
label = TString::Format(
"ch%d_la%d", sCh, Ch);
128 dcEta_temp->GetXaxis()->SetBinLabel(idx, label.Data());
137 string hist_name, hist_title;
138 if ( layer_num == 0 || layer_num==1 ) {
139 hist_name = name+
string(
"_zr") + getSuffixName(region_num, station_num+1, layer_num+1);
140 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1, layer_num+1)+
" ; globalZ[cm] ; globalR[cm]";
143 hist_name = name+
string(
"_zr") + getSuffixName(region_num, station_num+1);
144 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1)+
" ; globalZ[cm] ; globalR[cm]";
146 LogDebug(
"GEMBaseValidation")<<hist_name<<
" "<<hist_title<<std::endl;
147 int xbin = (int)nBinZR_[station_num];
148 int ybin = (int)nBinZR_[ nBinZR_.size()/2+station_num];
153 ymin = RangeZR_[ RangeZR_.size()/2 + station_num*2 + 0];
154 ymax = RangeZR_[ RangeZR_.size()/2 + station_num*2 + 1];
155 if ( region_num ==0 ) {
156 xmin = -RangeZR_[ station_num*2 + 1];
157 xmax = -RangeZR_[ station_num*2 + 0];
160 xmin = RangeZR_[ station_num*2 + 0];
161 xmax = RangeZR_[ station_num*2 + 1];
163 return ibooker.
book2D( hist_name, hist_title, xbin, xmin, xmax, ybin,ymin, ymax);
167 string hist_name, hist_title;
168 if ( layer_num == 0 || layer_num==1 ) {
169 hist_name = name+
string(
"_xy") + getSuffixName( region_num, station_num+1, layer_num+1) ;
170 hist_title = label+
string(
" occupancy : ")+getSuffixTitle( region_num, station_num+1, layer_num+1 )+
" ; globalX [cm]; globalY[cm]";
173 hist_name = name+
string(
"_xy") + getSuffixName( region_num, station_num+1);
174 hist_title = label+
string(
" occupancy : region")+getSuffixTitle( region_num, station_num+1) +
" ; globalX [cm]; globalY[cm]";
176 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)
tuple idx
DEBUGGING if hasattr(process,"trackMonIterativeTracking2012"): print "trackMonIterativeTracking2012 D...
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.