File indexing completed on 2024-04-06 12:09:24
0001 destdir=/afs/cern.ch/cms/Physics/egamma/www/validation/312PreProd/Photons/DQMOffline/
0002 echo Destination for plots is $destdir
0003 fixedname=`echo $1 | sed 's/\/$//'`
0004 inputdir=`echo $fixedname`
0005 echo Input directory is $inputdir
0006 shortname=`echo $fixedname | sed 's/.*\///'`
0007 echo Nickname is $shortname
0008 rootfile=`echo $shortname.root`
0009 echo ROOT file containing plots will be $rootfile
0010
0011 rfdir $inputdir | grep 'root' | awk '{print $9}' | sed "s,^,$inputdir/," | xargs hadd -f $rootfile
0012
0013
0014 rm photonOfflineClient_cfi.template
0015
0016 sed "s%InputFileName = cms\.untracked\.string(\".*\")%InputFileName = cms.untracked.string(\"$rootfile\")%" ../python/photonOfflineClient_cfi.py > photonOfflineClient_cfi.template
0017 mv -f photonOfflineClient_cfi.template ../python/photonOfflineClient_cfi.py
0018 cmsRun PhotonOfflineClient_cfg.py
0019
0020 rm plotlist.txt
0021 cat >> plotlist.txt << EOF
0022 /DQMData/Egamma/PhotonAnalyzer/AllPhotons/Et above 0 GeV
0023 /DQMData/Egamma/PhotonAnalyzer/AllPhotons/Et above 0 GeV/Conversions
0024 /DQMData/Egamma/PhotonAnalyzer/BackgroundPhotons/Et above 0 GeV
0025 /DQMData/Egamma/PhotonAnalyzer/BackgroundPhotons/Et above 0 GeV/Conversions
0026 /DQMData/Egamma/PhotonAnalyzer/GoodCandidatePhotons/Et above 0 GeV
0027 /DQMData/Egamma/PhotonAnalyzer/GoodCandidatePhotons/Et above 0 GeV/Conversions
0028 /DQMData/Egamma/PhotonAnalyzer/InvMass
0029 /DQMData/Egamma/PhotonAnalyzer/Efficiencies
0030 EOF
0031
0032 rm plotScript.C
0033 cat >> plotScript.C << EOF
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 void plotScript(string file1) {
0050
0051 ifstream infile("plotlist.txt");
0052
0053 vector<string> plotDirectories;
0054
0055 string s;
0056
0057 while (getline(infile,s)) {
0058 plotDirectories.push_back(s);
0059 }
0060
0061
0062 ofstream outfile;
0063
0064 string ofname = file1;
0065
0066 while (ofname.find("/") != string::npos) {
0067 ofname.replace(ofname.find("/"), 1, "_");
0068 }
0069 while (ofname.find(".") != string::npos) {
0070 ofname.replace(ofname.find("."), 1, "_");
0071 }
0072
0073 cout << ofname << endl;
0074 string prefix = ofname;
0075 ofname += ".html";
0076
0077 outfile.open(ofname.c_str());
0078 outfile << "<!DOCTYPE html> <html> <head> <title>\n";
0079 outfile << file1 << "\n";
0080 outfile << "</title> </head>\n";
0081 outfile << "<body>\n";
0082 outfile << "<h1>\n";
0083 outfile << "<span style=\"color:#0404B4\">" << file1 << "</span>";
0084 outfile << "</h1>\n";
0085 outfile << "<a name=\"top\">Directory listing:</a><br>\n";
0086 int anchor = 0;
0087 for (vector<string>::iterator vecIt = plotDirectories.begin();
0088 vecIt != plotDirectories.end(); ++vecIt) {
0089 outfile << "<a href=\"#" << anchor << "\">" << *vecIt << "</a><br>\n";
0090 ++anchor;
0091 }
0092
0093 TFile * f1 = new TFile(file1.c_str(), "READ");
0094
0095 TDirectory * mydir;
0096 TObject * obj;
0097 TCanvas * c0 = new TCanvas("c0","c0");
0098 anchor = 0;
0099 TLegend * leg = new TLegend(0.78,0.9,0.98,0.98);
0100 TH1F * firstH = new TH1F();
0101 firstH->SetLineWidth(2);
0102 firstH->SetLineColor(4);
0103 leg->AddEntry(firstH,file1.c_str(),"l");
0104 for (vector<string>::iterator vecIt = plotDirectories.begin();
0105 vecIt != plotDirectories.end(); ++vecIt) {
0106 outfile << "<br><a name=\"" << anchor << "\"><h2>" << *vecIt << "</h2></a> <a href=\"#top\">[Back to top]</a><br>\n";
0107 ++anchor;
0108 TH1 *h;
0109 TKey *key;
0110 mydir = f1->GetDirectory((*vecIt).c_str());
0111 TIter nextkey(mydir->GetListOfKeys());
0112 float scale = 1.;
0113 while (key = (TKey*)nextkey()) {
0114 obj = key->ReadObj();
0115 if (obj->IsA()->InheritsFrom("TH1")) {
0116 h = (TH1*)obj;
0117
0118 if (string(h->GetName()).find("convVtxYvsX") != string::npos ||
0119 string(h->GetName()).find("convVtxRvsZ") != string::npos) {
0120 h->Draw();
0121 c0->Modified();
0122 c0->Update();
0123 string filename = prefix + "_" + *vecIt + "_" + h->GetName() + ".png";
0124 while (filename.find("/") != string::npos) {
0125 filename.replace(filename.find("/"), 1, "_");
0126 }
0127 while (filename.find(" ") != string::npos) {
0128 filename.replace(filename.find(" "), 1, "_");
0129 }
0130 c0->SaveAs(filename.c_str());
0131 outfile << "<a href=\"" << filename << "\"><img height=\"200\" width=\"324\" src=\"" << filename << "\"></a>\n";
0132 continue;
0133 }
0134
0135 bool is1D = true;
0136
0137 if (obj->IsA()->InheritsFrom("TH2")) {
0138 h->SetMarkerColor(4);
0139 is1D = false;
0140 }
0141
0142 int firstBin = 1;
0143 int lastBin = h->GetNbinsX();
0144
0145 if (h->GetEntries() == 0) {
0146 } else {
0147 if (is1D) {
0148 while (h->GetBinContent(firstBin) == 0. && firstBin < lastBin) ++firstBin;
0149 while (h->GetBinContent(lastBin) == 0. && firstBin < lastBin) --lastBin;
0150 }
0151
0152
0153 h->SetFillStyle(0);
0154 h->SetLineColor(4);
0155 h->SetLineWidth(2);
0156 scale = 1./h->GetEntries();
0157 }
0158
0159 if (vecIt->find("Efficiencies") == string::npos &&
0160 !(obj->IsA()->InheritsFrom("TProfile"))) {
0161 }
0162 THStack * stack = new THStack("stack",h->GetTitle());
0163 stack->Add(h);
0164
0165
0166
0167 stack->Draw("nostack");
0168 if (is1D) stack->GetXaxis()->SetRange(firstBin, lastBin);
0169 stack->GetXaxis()->SetTitle(h->GetXaxis()->GetTitle());
0170 stack->GetYaxis()->SetTitle(h->GetYaxis()->GetTitle());
0171 stack->Draw("nostack");
0172 leg->Draw("same");
0173 c0->Modified();
0174 c0->Update();
0175 string filename = prefix + "_" + *vecIt + "_" + h->GetName() + ".png";
0176 while (filename.find("/") != string::npos) {
0177 filename.replace(filename.find("/"), 1, "_");
0178 }
0179 while (filename.find(" ") != string::npos) {
0180 filename.replace(filename.find(" "), 1, "_");
0181 }
0182 c0->SaveAs(filename.c_str());
0183 outfile << "<a href=\"" << filename << "\"><img height=\"200\" width=\"324\" src=\"" << filename << "\"></a>\n";
0184 }
0185 }
0186
0187 }
0188
0189 outfile << "</body>\n";
0190 outfile << "</html>\n";
0191 outfile.close();
0192
0193 cout << "DONE! HTML file created:" << endl;
0194 cout << ofname << endl;
0195 }
0196
0197 EOF
0198
0199 root -b -q plotScript.C++\(\"$rootfile\"\)
0200 mkdir -p $destdir/$shortname
0201 /bin/mv ${shortname}_root.html $destdir/$shortname/index.html
0202 /bin/mv ${shortname}_root* $destdir/$shortname