File indexing completed on 2024-04-06 12:22:50
0001 void afebMacro(){
0002 gROOT->SetBatch();
0003
0004 gROOT->ProcessLine(".L GenFuncMacro.C");
0005
0006
0007
0008 char *myFileName;
0009 char *myFilePath;
0010 void *dirp = gSystem->OpenDirectory("/tmp/csccalib");
0011 char *afile;
0012 while(afile = gSystem->GetDirEntry(dirp)) {
0013 char *bfile[0] = afile[0];
0014 if (bfile[0]=='c') {
0015 printf("file: %s\n",afile);
0016 myFileName = afile;
0017 }
0018 myFilePath = Form("/tmp/csccalib/%s", myFileName);
0019 }
0020
0021 int nDDU = 1;
0022 int nCham = 5;
0023 int nLayer = 6;
0024
0025
0026 gStyle->SetCanvasColor(0);
0027 gStyle->SetPadColor(0);
0028 gStyle->SetPadBorderMode(0);
0029 gStyle->SetCanvasBorderMode(0);
0030 gStyle->SetFrameBorderMode(0);
0031 gStyle->SetStatH(0.2);
0032 gStyle->SetStatW(0.3);
0033
0034 directoryCheck();
0035
0036
0037 std::cout << "opening: " << myFileName << std::endl;
0038 TFile *myFile = TFile::Open(myFilePath);
0039
0040 Calibration->Draw("cham");
0041 int nCham = htemp->GetXaxis()->GetXmax();
0042
0043
0044
0045 gSystem->cd("/afs/cern.ch/cms/CSC/html/csccalib/");
0046
0047
0048 makeDirectory("images");
0049 gSystem->cd("images");
0050
0051 makeDirectory("AFEBAnalysis");
0052 gSystem->cd("AFEBAnalysis");
0053
0054
0055
0056
0057 Int_t bool_dir_bin = gSystem->mkdir(myFileName);
0058 if (bool_dir_bin == -1){
0059 std::cout << "directory " << myFileName << " already exists. remove directory and try again." << std::endl;
0060 std::cout << "please wait while ROOT aborts and exits." << std::endl;
0061 gSystem->Abort();
0062 }
0063
0064 makeDirectory(myFileName);
0065 gSystem->cd(myFileName);
0066
0067
0068 std::vector<TString> graphID_str(0);
0069 TIter next (myFile->GetListOfKeys() );
0070 TKey *key;
0071 while ( (key=(TKey*)next() ) ) {
0072 TString name = key->GetName();
0073 TString nClass = key->GetClassName();
0074
0075 TString chamID = name.Remove(5);
0076
0077 TString chamID_direc = chamID + "_AfebDacGraphs";
0078 Int_t bool_dir_check = gSystem->mkdir(chamID_direc);
0079 if (bool_dir_check == 0){
0080 graphID_str.push_back(chamID);
0081 }
0082 makeDirectory(chamID_direc);
0083 }
0084
0085 gSystem->cd("../../../");
0086 GetAFEBDACGraphs(myFileName, myFilePath, graphID_str);
0087 GetOtherGraphs(myFileName, myFilePath, graphID_str);
0088
0089 myFile->Close();
0090 TFile *myFile2 = new TFile(file2, "read");
0091 TString fileName2 = myFile2->GetName();
0092
0093 directoryCheck();
0094 gSystem->cd("images/AFEBAnalysis");
0095 makeDirectory(fileName2);
0096 gSystem->cd(fileName2);
0097
0098 std::vector<TString> graphID_str2(0);
0099 TIter next (myFile2->GetListOfKeys() );
0100 TKey *key;
0101 while ( (key=(TKey*)next() ) ) {
0102 TString name = key->GetName();
0103 TString nClass = key->GetClassName();
0104
0105 TString chamID = name.Remove(5);
0106 std::cout << chamID << std::endl;
0107 TString chamID_direc = chamID + "_ConnectivityGraphs";
0108 Int_t bool_dir_check = gSystem->mkdir(chamID_direc);
0109 if (bool_dir_check == 0 && chamID != "Layer"){
0110 graphID_str2.push_back(chamID);
0111 }
0112 makeDirectory(chamID_direc);
0113 }
0114 gSystem->cd("../../../");
0115 GetConnectGraphs(myFile2,fileName2, graphID_str2);
0116 directoryCheck();
0117 }
0118
0119 void GetAFEBDACGraphs(TFile *myFile, TString fileName, std::vector<TString> chID){
0120 gSystem->cd("images/AFEBAnalysis");
0121 gSystem->cd(fileName);
0122
0123 for (int CHndx=0; CHndx<chID.size(); ++CHndx){
0124 TString chamID = chID.at(CHndx);
0125
0126 TString direcName = chamID + "_AfebDacGraphs";
0127 TH2F *AFEBDACGraph;
0128 TCanvas *AFEBDacCanvas = new TCanvas("AFEBDacCanvas","AFEBDacCanvas", 1100,700);
0129
0130 gSystem->cd(direcName);
0131 for (int indx1=1;indx1<10; ++indx1){
0132 TString GraphName = Form("0%d_Anode_AfebDac",indx1);
0133 TString GraphName = chamID+ "0" + indx1 + "_Anode_AfebDac";
0134 AFEBDACGraph = (TH2F*)myFile->Get(GraphName);
0135 AFEBDACGraph->GetYaxis()->SetLimits(0,0.5);
0136 AFEBDACGraph->GetXaxis()->SetLimits(0,20);
0137 AFEBDACGraph->GetXaxis()->SetTitleSize(0.06);
0138 AFEBDACGraph->GetXaxis()->SetTitleOffset(0.7);
0139 AFEBDACGraph->GetYaxis()->SetTitleSize(0.06);
0140 AFEBDACGraph->GetYaxis()->SetTitleOffset(0.7);
0141 AFEBDacCanvas->cd(indx1);
0142 AFEBDACGraph->Draw();
0143 PrintAsGif(AFEBDacCanvas, GraphName);
0144 }
0145 for (int indx2=0;indx2<9; ++indx2){
0146 TString GraphName = Form("1%d_Anode_AfebDac",indx2);
0147 TString GraphName = chamID+ "1" + indx2 + "_Anode_AfebDac";
0148 AFEBDACGraph = (TH2F*)myFile->Get(GraphName);
0149 AFEBDACGraph->GetYaxis()->SetLimits(0,0.5);
0150 AFEBDACGraph->GetXaxis()->SetLimits(0,20);
0151 AFEBDACGraph->GetXaxis()->SetTitleSize(0.06);
0152 AFEBDACGraph->GetXaxis()->SetTitleOffset(0.7);
0153 AFEBDACGraph->GetYaxis()->SetTitleSize(0.06);
0154 AFEBDACGraph->GetYaxis()->SetTitleOffset(0.7);
0155 AFEBDacCanvas->cd(10+indx2);
0156 AFEBDACGraph->Draw();
0157 PrintAsGif(AFEBDacCanvas, GraphName);
0158 }
0159 gSystem->cd("../");
0160
0161 }
0162 gSystem->cd("../../../");
0163 directoryCheck();
0164 }
0165
0166 void GetOtherGraphs(TFile *myFile, TString fileName, std::vector<TString> chID){
0167 gSystem->cd("images/AFEBAnalysis");
0168 gSystem->cd(fileName);
0169
0170 TH2F *chi2perNDF;
0171 TH2F *NDF;
0172 TH2F *NoisePar;
0173 TH2F *ThreshPar;
0174 TH2F *FirstTime;
0175 TH1F *ChanEff;
0176
0177 TCanvas *NDFCanv;
0178 TCanvas *ParCanv;
0179 TCanvas *EffCanv;
0180
0181 for (int CHndx=0; CHndx<chID.size(); ++CHndx){
0182 TString chamID = chID.at(CHndx);
0183
0184
0185
0186 TString direcName = chamID + "_SpecificsGraphs";
0187 makeDirectory(direcName);
0188 gSystem->cd(direcName);
0189
0190 TString NDFGraphName = chamID + "_Anode_AfebNDF" ;
0191 TString NDFchi2GraphName = chamID + "_Anode_AfebChi2perNDF" ;
0192 TString NoiseParGraphName = chamID + "_Anode_AfebNoisePar" ;
0193 TString ThreshParGraphName = chamID + "_Anode_AfebThrPar" ;
0194 TString FirstTimeGraphName = chamID + "_Anode_First_Time" ;
0195 TString ChanEffGraphName = chamID + "_Anode_Chan_Eff" ;
0196
0197 NDFCanv = new TCanvas ("NDFChamCanv", "NDFChamCanv", 1100, 700);
0198 NDFCanv->Divide(1,2);
0199 NDFCanv->cd(1);
0200 NDF = (TH2F*)myFile->Get(NDFGraphName);
0201 NDF->Draw();
0202 NDFCanv->cd(2);
0203 chi2perNDF = (TH2F*)myFile->Get(NDFchi2GraphName);
0204 chi2perNDF->GetYaxis()->SetLimits(0,0.5);
0205 chi2perNDF->GetXaxis()->SetLimits(0,20);
0206 chi2perNDF->GetXaxis()->SetTitleSize(0.06);
0207 chi2perNDF->GetXaxis()->SetTitleOffset(0.7);
0208 chi2perNDF->GetYaxis()->SetTitleSize(0.06);
0209 chi2perNDF->GetYaxis()->SetTitleOffset(0.7);
0210 chi2perNDF->Draw();
0211
0212 ParCanv = new TCanvas ("ParChamCanv", "ParChamCanv", 1100, 700);
0213 ParCanv->Divide(1,2);
0214 ParCanv->cd(1);
0215
0216 NoisePar = (TH2F*)myFile->Get(NoiseParGraphName);
0217 NoisePar->GetYaxis()->SetLimits(0,0.5);
0218 NoisePar->GetXaxis()->SetLimits(0,20);
0219 NoisePar->GetXaxis()->SetTitleSize(0.06);
0220 NoisePar->GetXaxis()->SetTitleOffset(0.7);
0221 NoisePar->GetYaxis()->SetTitleSize(0.06);
0222 NoisePar->GetYaxis()->SetTitleOffset(0.7);
0223 NoisePar->Draw();
0224
0225 ParCanv->cd(2);
0226 ThreshPar = (TH2F*)myFile->Get(ThreshParGraphName);
0227 ThreshPar->GetYaxis()->SetLimits(0,0.5);
0228 ThreshPar->GetXaxis()->SetLimits(0,20);
0229 ThreshPar->GetXaxis()->SetTitleSize(0.06);
0230 ThreshPar->GetXaxis()->SetTitleOffset(0.7);
0231 ThreshPar->GetYaxis()->SetTitleSize(0.06);
0232 ThreshPar->GetYaxis()->SetTitleOffset(0.7);
0233 ThreshPar->Draw();
0234
0235 EffCanv = new TCanvas ("EffChamCanv", "EffChamCanv", 1100, 700);
0236 EffCanv->Divide(1,2);
0237 EffCanv->cd(1);
0238 ChanEff = (TH1F*)myFile->Get(ChanEffGraphName);
0239 ChanEff->GetYaxis()->SetLimits(0,0.5);
0240 ChanEff->GetXaxis()->SetLimits(0,20);
0241 ChanEff->GetXaxis()->SetTitleSize(0.06);
0242 ChanEff->GetXaxis()->SetTitleOffset(0.7);
0243 ChanEff->GetYaxis()->SetTitleSize(0.06);
0244 ChanEff->GetYaxis()->SetTitleOffset(0.7);
0245 ChanEff->Draw();
0246
0247 EffCanv->cd(2);
0248 FirstTime = (TH2F*)myFile->Get(FirstTimeGraphName);
0249 FirstTime->GetYaxis()->SetLimits(0,0.5);
0250 FirstTime->GetXaxis()->SetLimits(0,20);
0251 FirstTime->GetXaxis()->SetTitleSize(0.06);
0252 FirstTime->GetXaxis()->SetTitleOffset(0.7);
0253 FirstTime->GetYaxis()->SetTitleSize(0.06);
0254 FirstTime->GetYaxis()->SetTitleOffset(0.7);
0255 FirstTime->Draw();
0256
0257 PrintAsGif(ParCanv, "ParChamCanv");
0258 PrintAsGif(NDFCanv, "NDFChamCanv");
0259 PrintAsGif(EffCanv, "EffChamCanv");
0260 gSystem->cd("../");
0261 }
0262
0263 gSystem->cd("../../../");
0264 directoryCheck();
0265 }
0266
0267 void GetConnectGraphs(TFile *myFile2, TString fileName2, std::vector<TString> chID2){
0268 gSystem->cd("images/AFEBAnalysis");
0269 gSystem->cd(fileName2);
0270
0271 TH1F *LayNmbPulseGraph;
0272 TCanvas *LayNmbPulseCanv;
0273
0274 LayNmbPulseCanv = new TCanvas ("LayNmbPulseChamCanv", "LayNmbPulseChamCanv", 1100, 700);
0275 LayNmbPulseCanv->cd();
0276 LayNmbPulseGraph = (TH1F*)myFile2->Get("Layer_Nmb_Pulses");
0277 LayNmbPulseGraph->Draw();
0278
0279 PrintAsGif(LayNmbPulseCanv, "LayNmbPulseChamCanv");
0280
0281 TH2F *AnodeFirstTime;
0282
0283 TH1F *AnodeEff;
0284 TH1F *AnodeLayerNonPair;
0285 TH1F *AnodeLayerPair;
0286
0287 TH1F *AnodeWireEff;
0288 TH1F *AnodeWireNonPair;
0289 TH1F *AnodeWirePair;
0290
0291 TCanvas *FirstTimeCanv;
0292 TCanvas *LayerCanv;
0293 TCanvas *WireCanv;
0294
0295 for (int CHndx=0; CHndx<chID2.size(); ++CHndx){
0296 TString chamID = chID2.at(CHndx);
0297 TString chamID_direc = chamID + "_ConnectivityGraphs";
0298 gSystem->cd(chamID_direc);
0299 FirstTimeCanv = new TCanvas ("FirstTime", "FirstTime", 1100, 700);
0300 TString AnodeFirstTimeGraphName = chamID + "_Anode_First_Time" ;
0301
0302 LayerCanv = new TCanvas ("LayerEff_Crosstalk", "LayerEff_Crosstalk", 1100, 700);
0303 LayerCanv->Divide(1,3);
0304 TString AnodeEffGraphName = chamID + "_Anode_Eff" ;
0305 TString AnodeLayerNonPairGraphName = chamID + "_Anode_NonPair_Layer_Crosstalk" ;
0306 TString AnodeLayerPairGraphName = chamID + "_Anode_Pair_Layer_Crosstalk" ;
0307
0308 WireCanv = new TCanvas ("WireEff_Crosstalk", "WireEff_Crosstalk", 1100, 700);
0309 WireCanv->Divide(1,3);
0310 TString AnodeWireEffGraphName = chamID + "_Anode_Wire_Eff" ;
0311 TString AnodeWireNonPairGraphName = chamID + "_Anode_Wire_NonPair_Crosstalk" ;
0312 TString AnodeWirePairGraphName = chamID + "_Anode_Wire__Pair_Crosstalk" ;
0313
0314 AnodeFirstTime= (TH2F*)myFile2->Get(AnodeFirstTimeGraphName);
0315 FirstTimeCanv->cd();
0316 AnodeFirstTime->GetYaxis()->SetLimits(0,0.5);
0317 AnodeFirstTime->GetXaxis()->SetLimits(0,20);
0318 AnodeFirstTime->GetXaxis()->SetTitleSize(0.06);
0319 AnodeFirstTime->GetXaxis()->SetTitleOffset(0.7);
0320 AnodeFirstTime->GetYaxis()->SetTitleSize(0.06);
0321 AnodeFirstTime->GetYaxis()->SetTitleOffset(0.7);
0322 AnodeFirstTime->Draw();
0323 PrintAsGif(FirstTimeCanv, "FirstTime");
0324
0325 AnodeEff = (TH1F*)myFile2->Get(AnodeEffGraphName);
0326 LayerCanv->cd(1);
0327 AnodeEff->GetYaxis()->SetLimits(0,0.5);
0328 AnodeEff->GetXaxis()->SetLimits(0,20);
0329 AnodeEff->GetXaxis()->SetTitleSize(0.06);
0330 AnodeEff->GetXaxis()->SetTitleOffset(0.7);
0331 AnodeEff->GetYaxis()->SetTitleSize(0.06);
0332 AnodeEff->GetYaxis()->SetTitleOffset(0.7);
0333 AnodeEff->Draw();
0334
0335 AnodeLayerNonPair = (TH1F*)myFile2->Get(AnodeLayerNonPairGraphName);
0336 LayerCanv->cd(2);
0337 AnodeLayerNonPair->GetYaxis()->SetLimits(0,0.5);
0338 AnodeLayerNonPair->GetXaxis()->SetLimits(0,20);
0339 AnodeLayerNonPair->GetXaxis()->SetTitleSize(0.06);
0340 AnodeLayerNonPair->GetXaxis()->SetTitleOffset(0.7);
0341 AnodeLayerNonPair->GetYaxis()->SetTitleSize(0.06);
0342 AnodeLayerNonPair->GetYaxis()->SetTitleOffset(0.7);
0343 AnodeLayerNonPair->Draw();
0344
0345 AnodeLayerPair = (TH1F*)myFile2->Get(AnodeLayerPairGraphName);
0346 LayerCanv->cd(3);
0347 AnodeLayerPair->GetYaxis()->SetLimits(0,0.5);
0348 AnodeLayerPair->GetXaxis()->SetLimits(0,20);
0349 AnodeLayerPair->GetXaxis()->SetTitleSize(0.06);
0350 AnodeLayerPair->GetXaxis()->SetTitleOffset(0.7);
0351 AnodeLayerPair->GetYaxis()->SetTitleSize(0.06);
0352 AnodeLayerPair->GetYaxis()->SetTitleOffset(0.7);
0353 AnodeLayerPair->Draw();
0354 PrintAsGif(LayerCanv, "LayerEff_Crosstalk");
0355
0356 AnodeWireEff = (TH1F*)myFile2->Get(AnodeWireEffGraphName);
0357 WireCanv->cd(1);
0358 AnodeWireEff->GetYaxis()->SetLimits(0,0.5);
0359 AnodeWireEff->GetXaxis()->SetLimits(0,20);
0360 AnodeWireEff->GetXaxis()->SetTitleSize(0.06);
0361 AnodeWireEff->GetXaxis()->SetTitleOffset(0.7);
0362 AnodeWireEff->GetYaxis()->SetTitleSize(0.06);
0363 AnodeWireEff->GetYaxis()->SetTitleOffset(0.7);
0364 AnodeWireEff->Draw();
0365
0366
0367
0368
0369
0370
0371
0372
0373
0374
0375
0376
0377
0378
0379
0380
0381
0382
0383
0384
0385 PrintAsGif(WireCanv, "WireEff_Crosstalk");
0386 gSystem->cd("../");
0387 }
0388
0389 gSystem->cd("../../../");
0390 directoryCheck();
0391 }