/[PAMELA software]/calo/flight/FQLOOK/macros/FCaloQLOOK.cxx
ViewVC logotype

Diff of /calo/flight/FQLOOK/macros/FCaloQLOOK.cxx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.18 by mocchiut, Fri Sep 29 06:22:43 2006 UTC revision 1.23 by mocchiut, Mon Sep 22 20:12:28 2008 UTC
# Line 40  Line 40 
40  #include <TObject.h>  #include <TObject.h>
41  #include <TString.h>  #include <TString.h>
42  #include <TFile.h>  #include <TFile.h>
43    #include <TROOT.h>
44  #include <TCanvas.h>  #include <TCanvas.h>
45  #include <TH1.h>  #include <TH1.h>
46  #include <TH1F.h>  #include <TH1F.h>
# Line 86  TString getFilename(const TString filena Line 87  TString getFilename(const TString filena
87    } else {    } else {
88      Int_t posiz2 = 0;      Int_t posiz2 = 0;
89      stringcopy(file2,gSystem->BaseName(filename.Data()),posiz2,posiz);      stringcopy(file2,gSystem->BaseName(filename.Data()),posiz2,posiz);
90      TString pdat(".dat");      TString pdat(".pam");
91      stringappend(file2,pdat);        stringappend(file2,pdat);  
92    };    };
93    return file2;    return file2;
# Line 140  void FCaloQLOOK(TString filename, Int_t Line 141  void FCaloQLOOK(TString filename, Int_t
141    //    //
142    Float_t ctshitthr = 0.65;    Float_t ctshitthr = 0.65;
143    Float_t cbasethr = 0.95;    Float_t cbasethr = 0.95;
144    Float_t cdexythr = 0.995;    //  Float_t cdexythr = 0.995;
145      Float_t cdexythr = 0.95;
146    //Float_t cdexythr = 0.90;    //Float_t cdexythr = 0.90;
147    Float_t cdexycthr = 0.95;    Float_t cdexycthr = 0.95;
148    Float_t h1rth = 0.90;    Float_t h1rth = 0.90;
# Line 191  void FCaloQLOOK(TString filename, Int_t Line 193  void FCaloQLOOK(TString filename, Int_t
193    };    };
194    Int_t const size = nevents;    Int_t const size = nevents;
195    Double_t iev2[size+1];    Double_t iev2[size+1];
196    Int_t ver[4][23], lver[4][23],shit[4][11], rshit[4][11], se,bl, pl, fulldiff[4],cshit, cpre[4],nullsh[4][11], lalarm[4];    //aumentata la lunghezza di ver, prima era 23
197      Int_t ver[4][24], lver[4][23],shit[4][11], rshit[4][11], se,bl, pl, fulldiff[4],cshit, cpre[4],nullsh[4][11], lalarm[4];
198    se = 0;    se = 0;
199    pl = 0;        pl = 0;    
200    Float_t allbase = 0.;    Float_t allbase = 0.;
# Line 293  void FCaloQLOOK(TString filename, Int_t Line 296  void FCaloQLOOK(TString filename, Int_t
296        maxevent = fromevent - 1;        maxevent = fromevent - 1;
297      };      };
298    };    };
299          //azzera i tipi di errore
300    for (Int_t k = 0; k < 4; k++ ){    for (Int_t k = 0; k < 4; k++ ){
301      for (Int_t m = 0; m < 23 ; m++ ){      for (Int_t m = 0; m < 23 ; m++ ){
302        ver[k][m] = 0 ;        ver[k][m] = 0 ;
# Line 305  void FCaloQLOOK(TString filename, Int_t Line 308  void FCaloQLOOK(TString filename, Int_t
308        };        };
309        lalarm[k] = 0;        lalarm[k] = 0;
310      };      };
311        //il 23 lo azzero cosi per non modificare le altre variabili
312        ver[k][23]=0;
313    };    };
314    Int_t pdone, bdone;    Int_t pdone, bdone;
315    pdone = 0;    pdone = 0;
# Line 378  void FCaloQLOOK(TString filename, Int_t Line 383  void FCaloQLOOK(TString filename, Int_t
383      tshit = 0;      tshit = 0;
384      trshit = 0;      trshit = 0;
385      tr->GetEntry(i);      tr->GetEntry(i);
386    
387      iev2[i] = ce->iev;          iev2[i] = ce->iev;    
388      //      //
389      ph = eh->GetPscuHeader();      ph = eh->GetPscuHeader();
390      headco = headc;      headco = headc;
391      headc = ph->GetCounter();      headc = ph->GetCounter();
392      obt = ph->GetOrbitalTime();      obt = ph->GetOrbitalTime();
393    
394      if ( (int)abs((int)(ce->calevnum[0]-ce->calevnum[1])) ) calevn1++;      if ( (int)abs((int)(ce->calevnum[0]-ce->calevnum[1])) ) calevn1++;
395      if ( (int)abs((int)(ce->calevnum[2]-ce->calevnum[3])) ) calevn2++;      if ( (int)abs((int)(ce->calevnum[2]-ce->calevnum[3])) ) calevn2++;
396      if ( (int)abs((int)(ce->calevnum[0]-ce->calevnum[3])) ) calevn3++;      if ( (int)abs((int)(ce->calevnum[0]-ce->calevnum[3])) ) calevn3++;
# Line 440  void FCaloQLOOK(TString filename, Int_t Line 447  void FCaloQLOOK(TString filename, Int_t
447            sighandler(headc,obt,i,3,nevents,evdone);            sighandler(headc,obt,i,3,nevents,evdone);
448            printf(" jump in the counter calev is %i oldcalev was %i \n",calev3,oldcalev3);            printf(" jump in the counter calev is %i oldcalev was %i \n",calev3,oldcalev3);
449          };          };
450        }        };
451      };      };
452      //  jumpprintout:      //  jumpprintout:
453      memcpy(shit, nullsh, sizeof(nullsh));      memcpy(shit, nullsh, sizeof(nullsh));
# Line 514  void FCaloQLOOK(TString filename, Int_t Line 521  void FCaloQLOOK(TString filename, Int_t
521                    if ( obt > maxobt[se] ) maxobt[se] = obt;                    if ( obt > maxobt[se] ) maxobt[se] = obt;
522                  };                  };
523                  lver[se][2]++ ;                          lver[se][2]++ ;        
524                  sighandler(headc,obt,i,se,nevents,evdone);                  if ( lver[se][2] == 1000 ){
525                  printf(" latch up (data) in DSP mode alldexy %i planebases %i \n",alldexy,planebases);                    sighandler(headc,obt,i,se,nevents,evdone);
526                      printf(" latch up (data) in DSP mode alldexy %i planebases %i \n",alldexy,planebases);
527                      printf(" WARNING TOO MANY LATCHUP ERRORS ON DATA FOR THIS SECTION \n");
528                      printf(" THEY WILL NOT BE DISPLAYED HERE ANYMORE FOR THIS FILE! \n");
529                    };
530                    if ( lver[se][2] < 1000 ){
531                      sighandler(headc,obt,i,se,nevents,evdone);
532                      printf(" latch up (data) in DSP mode alldexy %i planebases %i \n",alldexy,planebases);
533                    };
534                };                };
535              }              }
536              //              //
537              if ( !bdone ){              if ( !bdone ){
538                Baseline->Fill(ce->base[l][ii][bl]);                Baseline->Fill(ce->base[l][ii][bl]);
539                if ( ce->base[l][ii][bl] > 2000. && ce->base[l][ii][bl] < 4500. ){                if ( ce->base[l][ii][bl] > 2000. && ce->base[l][ii][bl] < 5500. ){
540                  inbase++;                  inbase++;
541                } else {                } else {
542                  outbase++;                  outbase++;
# Line 579  void FCaloQLOOK(TString filename, Int_t Line 594  void FCaloQLOOK(TString filename, Int_t
594            } else {            } else {
595              if ( !pdone ){              if ( !pdone ){
596                if ( ( alldexy2 > 3072000 ||  alldexy2 == 0) && ce->perror[se] == 0 ) {                if ( ( alldexy2 > 3072000 ||  alldexy2 == 0) && ce->perror[se] == 0 ) {
597                  //            if ( (alldexy2>512000 || alldexy2 == 0) && ce->perror[se] == 0 ) {                  //            if ( (alldexy2>512000 || alldexy2 == 0) && ce->perror[se] == 0 )
598                  pdone = 1;                  pdone = 1;
599                  pshit[se][pl]++ ;                                          pshit[se][pl]++ ;                        
600                  if ( (ce->stwerr[se] & (1 << 4)) == 0 ){                  if ( (ce->stwerr[se] & (1 << 4)) == 0 ){
# Line 589  void FCaloQLOOK(TString filename, Int_t Line 604  void FCaloQLOOK(TString filename, Int_t
604                    if ( obt > maxobt[se] ) maxobt[se] = obt;                    if ( obt > maxobt[se] ) maxobt[se] = obt;
605                  };                  };
606                  lver[se][2]++ ;                  lver[se][2]++ ;
607                  sighandler(headc,obt,i,se,nevents,evdone);                  if ( lver[se][2] == 1000 ){
608                  printf(" latch up (data) in RAW mode alldexy2 %i \n",alldexy2);                    sighandler(headc,obt,i,se,nevents,evdone);
609                      printf(" latch up (data) in RAW mode alldexy2 %i \n",alldexy2);
610                      printf(" WARNING TOO MANY LATCHUP ERRORS ON DATA FOR THIS SECTION \n");
611                      printf(" THEY WILL NOT BE DISPLAYED HERE ANYMORE FOR THIS FILE! \n");
612                    };
613                    if ( lver[se][2] < 1000 ){
614                      sighandler(headc,obt,i,se,nevents,evdone);
615                      printf(" latch up (data) in RAW mode alldexy2 %i \n",alldexy2);
616                    };
617                };                };
618              };              };
619              if ( ce->dexy[l][ii][kk] > 0 && ce->dexy[l][ii][kk] < 32000 ) {              if ( ce->dexy[l][ii][kk] > 0 && ce->dexy[l][ii][kk] < 32000 ) {
# Line 611  void FCaloQLOOK(TString filename, Int_t Line 634  void FCaloQLOOK(TString filename, Int_t
634      for (Int_t k = 0; k < 4 ; k++ ){      for (Int_t k = 0; k < 4 ; k++ ){
635        isCOMP = false;        isCOMP = false;
636        isFULL = false;        isFULL = false;
637        cestw=0;        cestw=0;// queste righe qui
638        if ( ce->stwerr[k] ) cestw =  ce->stwerr[k] & cmask ;        if ( ce->stwerr[k] ) cestw =  ce->stwerr[k] & cmask ;//
639        if ( ce->stwerr[k] & (1 << 16) && !(cestw & (1 << 3)) ) isCOMP = true;        if ( ce->stwerr[k] & (1 << 16) && !(cestw & (1 << 3)) ) isCOMP = true;
640        if ( ce->stwerr[k] & (1 << 17) && !(cestw & (1 << 3)) ) isFULL = true;        if ( ce->stwerr[k] & (1 << 17) && !(cestw & (1 << 3)) ) isFULL = true;
641        //        //
# Line 638  void FCaloQLOOK(TString filename, Int_t Line 661  void FCaloQLOOK(TString filename, Int_t
661          if ( cestw & (1 << 3) ) ver[k][3]++ ; // raw mode          if ( cestw & (1 << 3) ) ver[k][3]++ ; // raw mode
662          if ( cestw & (1 << 4) ){          if ( cestw & (1 << 4) ){
663            ver[k][2]++ ;            ver[k][2]++ ;
664            sighandler(headc,obt,i,k,nevents,evdone);            if ( ver[k][2] == 1000 ){
665            printf(" latch up alarm (st. word)\n");              sighandler(headc,obt,i,k,nevents,evdone);
666                printf(" latch up alarm (st. word)\n");
667                printf(" WARNING TOO MANY LATCHUP ERRORS ON DATA FOR THIS SECTION \n");
668                printf(" THEY WILL NOT BE DISPLAYED HERE ANYMORE FOR THIS FILE! \n");
669              };
670              if ( ver[k][2] < 1000 ){
671                sighandler(headc,obt,i,k,nevents,evdone);
672                printf(" latch up alarm (st. word)\n");
673              };
674            lupstw[k]->Fill(obt);            lupstw[k]->Fill(obt);
675            if ( swfirstobt[k] ) swminobt[k] = obt;            if ( swfirstobt[k] ) swminobt[k] = obt;
676            if ( obt > swmaxobt[k] ) swmaxobt[k] = obt;            if ( obt > swmaxobt[k] ) swmaxobt[k] = obt;
# Line 654  void FCaloQLOOK(TString filename, Int_t Line 685  void FCaloQLOOK(TString filename, Int_t
685            sighandler(headc,obt,i,k,nevents,evdone);            sighandler(headc,obt,i,k,nevents,evdone);
686            printf(" DSP ack error \n");            printf(" DSP ack error \n");
687          };          };
688        };        };// controllo se ci sono errori crc se perr=0 ok!
689        if (  ce->stwerr[k] == 0 && ce->perror[k] == 0 ) ver[k][8]++ ;        if (  ce->stwerr[k] == 0 && ce->perror[k] == 0 ) ver[k][8]++ ;
690        if ( ce->perror[k] != 0. ){        if ( ce->perror[k] != 0. ){
691          if (ce->perror[k] == 128){          if (ce->perror[k] == 128){
# Line 720  void FCaloQLOOK(TString filename, Int_t Line 751  void FCaloQLOOK(TString filename, Int_t
751            sighandler(headc,obt,i,k,nevents,evdone);            sighandler(headc,obt,i,k,nevents,evdone);
752            printf(" packet length is zero (YODA input error), skipped\n");            printf(" packet length is zero (YODA input error), skipped\n");
753          };          };
754            //aggiunto questo errore
755            if (ce->perror[k] == 143){
756              ver[k][23]++ ;
757              sighandler(headc,obt,i,k,nevents,evdone);
758              printf(" corrupted packet lenght \n");
759            };
760        };        };
761        for (Int_t kk = 0; kk < 11 ; kk++ ){        for (Int_t kk = 0; kk < 11 ; kk++ ){
762          tshit += shit[k][kk];          tshit += shit[k][kk];
# Line 729  void FCaloQLOOK(TString filename, Int_t Line 766  void FCaloQLOOK(TString filename, Int_t
766      if (isCOMP || isFULL){      if (isCOMP || isFULL){
767        Calstriphit->Fill(cshit);        Calstriphit->Fill(cshit);
768        //    if ( (cshit > 0 && cshit < 25) || (cshit > 40 && cshit < 80) ){        //    if ( (cshit > 0 && cshit < 25) || (cshit > 40 && cshit < 80) ){
769        if ( (cshit > 10 && cshit < 100) ){        //
770          //cambiata la banda di soglia  ora 5  prima era 10
771          //
772          if ( (cshit > 5 && cshit < 100) ){
773          incshit++;          incshit++;
774        } else {        } else {
775          outcshit++;          outcshit++;
# Line 737  void FCaloQLOOK(TString filename, Int_t Line 777  void FCaloQLOOK(TString filename, Int_t
777        //        //
778        if ( tshit>0 ) h1->Fill(tshit);        if ( tshit>0 ) h1->Fill(tshit);
779        //    if ( (tshit > 0 && tshit < 25) || (tshit > 40 && tshit < 80) ){        //    if ( (tshit > 0 && tshit < 25) || (tshit > 40 && tshit < 80) ){
780        if ( (tshit > 10 && tshit < 100) ){        //cambiata la soglia ora 5  prima era 10
781          if ( (tshit > 5 && tshit < 100) ){
782          intshit++;          intshit++;
783        } else {        } else {
784          outtshit++;          outtshit++;
# Line 825  void FCaloQLOOK(TString filename, Int_t Line 866  void FCaloQLOOK(TString filename, Int_t
866      h1->Draw();      h1->Draw();
867      //      //
868      h1max = h1->GetMaximum()*1.05;      h1max = h1->GetMaximum()*1.05;
869      Double_t xc[4] = {10.,100.,100.,10.};  
870        //cambiata banda  prima era 10  ora 5
871        Double_t xc[4] = {5.,100.,100.,5.};
872      Double_t yc[4] = {0.,0.,h1max,h1max};      Double_t yc[4] = {0.,0.,h1max,h1max};
873      banda1 = new TPolyLine(4,xc,yc);      banda1 = new TPolyLine(4,xc,yc);
874      banda1->SetLineColor(5);      banda1->SetLineColor(5);
# Line 875  void FCaloQLOOK(TString filename, Int_t Line 918  void FCaloQLOOK(TString filename, Int_t
918        h1->SetYTitle("Number of events");        h1->SetYTitle("Number of events");
919        h1->Draw();        h1->Draw();
920        h1max = h1->GetMaximum()*1.05;        h1max = h1->GetMaximum()*1.05;
921        Double_t xe[4] = {10.,100.,100.,10.};        //cambiato banda, prima era 10,ora 5
922          Double_t xe[4] = {5.,100.,100.,5.};
923        Double_t ye[4] = {0.,0.,h1max,h1max};        Double_t ye[4] = {0.,0.,h1max,h1max};
924        banda1 = new TPolyLine(4,xe,ye);        banda1 = new TPolyLine(4,xe,ye);
925        banda1->SetLineColor(5);        banda1->SetLineColor(5);
# Line 1061  void FCaloQLOOK(TString filename, Int_t Line 1105  void FCaloQLOOK(TString filename, Int_t
1105      Baseline->SetYTitle("Number of events");      Baseline->SetYTitle("Number of events");
1106      Baseline->Draw();      Baseline->Draw();
1107      h1max = Baseline->GetMaximum()*1.05;      h1max = Baseline->GetMaximum()*1.05;
1108      Double_t xc[4] = {2000.,4500.,4500.,2000.};      Double_t xc[4] = {2000.,5500.,5500.,2000.};
1109      Double_t yc[4] = {0.,0.,h1max,h1max};      Double_t yc[4] = {0.,0.,h1max,h1max};
1110      banda1 = new TPolyLine(4,xc,yc);      banda1 = new TPolyLine(4,xc,yc);
1111      banda1->SetLineColor(5);      banda1->SetLineColor(5);
# Line 1098  void FCaloQLOOK(TString filename, Int_t Line 1142  void FCaloQLOOK(TString filename, Int_t
1142      Calstriphit->SetYTitle("Number of events");      Calstriphit->SetYTitle("Number of events");
1143      Calstriphit->Draw();      Calstriphit->Draw();
1144      h1max = Calstriphit->GetMaximum()*1.05;      h1max = Calstriphit->GetMaximum()*1.05;
1145      Double_t xg[4] = {10.,100.,100.,10.};  
1146        //banda di sogla portata a 5, prima era a 10
1147        Double_t xg[4] = {5.,100.,100.,5.};
1148      Double_t yg[4] = {0.,0.,h1max,h1max};      Double_t yg[4] = {0.,0.,h1max,h1max};
1149      banda1 = new TPolyLine(4,xg,yg);      banda1 = new TPolyLine(4,xg,yg);
1150      banda1->SetLineColor(5);      banda1->SetLineColor(5);
# Line 1340  void FCaloQLOOK(TString filename, Int_t Line 1386  void FCaloQLOOK(TString filename, Int_t
1386      t->SetTextAlign(12);      t->SetTextAlign(12);
1387      t->DrawLatex(33.,97.,sezione);      t->DrawLatex(33.,97.,sezione);
1388      t->SetTextSize(0.05);      t->SetTextSize(0.05);
1389      for (Int_t j = 0; j < 23; j++){      //aggiunto un errore jmax=23
1390        for (Int_t j = 0; j < 24; j++){
1391        if ( ver[i][j] || lver[i][j] ) {        if ( ver[i][j] || lver[i][j] ) {
1392          t->SetTextColor(50);          t->SetTextColor(50);
1393          if (j == 0) {          if (j == 0) {
# Line 1528  void FCaloQLOOK(TString filename, Int_t Line 1575  void FCaloQLOOK(TString filename, Int_t
1575            t->DrawLatex(2.,3.,errore.str().c_str());            t->DrawLatex(2.,3.,errore.str().c_str());
1576            check = true;            check = true;
1577          };          };
1578        };          //aggiunto questo errore
1579      };          if (j == 23) {
1580              errore.str("");
1581              errore << "Corrupted packet lenght " << ver[i][j];
1582              errore << " time(s) ";
1583              t->DrawLatex(2.,2.,errore.str().c_str());
1584              check = true;
1585            };
1586          };
1587        };
1588      t->SetTextColor(50);      t->SetTextColor(50);
1589      if ( fulldiff[i] !=0 ) {      if ( fulldiff[i] !=0 ) {
1590        check = true;        check = true;
# Line 1556  void FCaloQLOOK(TString filename, Int_t Line 1611  void FCaloQLOOK(TString filename, Int_t
1611    if ( check ){    if ( check ){
1612      t->SetTextColor(50);      t->SetTextColor(50);
1613      t->DrawLatex(60.,95.," WARNING, CHECK! ");        t->DrawLatex(60.,95.," WARNING, CHECK! ");  
     printf("cdexyc %f cdexy %f ctshit %f cbase %f \n",cdexyc,cdexy,ctshit,cbase);  
1614    } else {    } else {
1615      t->SetTextColor(32);      t->SetTextColor(32);
1616      t->DrawLatex(60.,95.," OK! ");            t->DrawLatex(60.,95.," OK! ");      
1617    };    };
1618      printf("cdexyc %f cdexy %f ctshit %f cbase %f \n",cdexyc,cdexy,ctshit,cbase);
1619    //    //
1620    //  const string fil = (const char*)filename;    //  const string fil = (const char*)filename;
1621    //  Int_t posiz = fil.find("dw_");    //  Int_t posiz = fil.find("dw_");
# Line 1643  void FCaloQLOOK(TString filename, Int_t Line 1698  void FCaloQLOOK(TString filename, Int_t
1698      };      };
1699    };    };
1700  }  }
   

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.23

  ViewVC Help
Powered by ViewVC 1.1.23