/[PAMELA software]/calo/flight/CaloProfile/src/CaloProfile.cpp
ViewVC logotype

Diff of /calo/flight/CaloProfile/src/CaloProfile.cpp

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

revision 1.10 by mocchiut, Wed Aug 12 14:57:00 2009 UTC revision 1.15 by mocchiut, Mon Sep 14 13:56:50 2009 UTC
# Line 281  CaloLat::CaloLat(PamLevel2 *l2p){   Line 281  CaloLat::CaloLat(PamLevel2 *l2p){  
281    PKT = 0;    PKT = 0;
282    atime = 0;    atime = 0;
283    //    //
284      suf = "";
285    debug = false;    debug = false;
286    //    //
287  };  };
# Line 297  Calo2D::Calo2D(PamLevel2 *l2p){   Line 298  Calo2D::Calo2D(PamLevel2 *l2p){  
298    PKT = 0;    PKT = 0;
299    atime = 0;    atime = 0;
300    //    //
301      suf = "";
302    debug = false;    debug = false;
303    //    //
304  };  };
# Line 375  void CaloLat::Draw(Int_t view,Int_t plan Line 377  void CaloLat::Draw(Int_t view,Int_t plan
377    //    //
378    for (Int_t v=minv; v<maxv;v++){    for (Int_t v=minv; v<maxv;v++){
379       for (Int_t p=minp; p<maxp;p++){       for (Int_t p=minp; p<maxp;p++){
380          TString hid = Form("clatv%ip%i",v,p);           TString hid = Form("clatv%ip%i%s",v,p,suf.Data());      
381          TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));          TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));
382          if ( tc ){          if ( tc ){
383  //       tc->Clear();  //       tc->Clear();
# Line 383  void CaloLat::Draw(Int_t view,Int_t plan Line 385  void CaloLat::Draw(Int_t view,Int_t plan
385           tc = new TCanvas(hid,hid);           tc = new TCanvas(hid,hid);
386          };          };
387          //          //
388          TString thid = Form("hlatv%ip%i",v,p);            TString thid = Form("hlatv%ip%i%s",v,p,suf.Data());    
389          TH1F *th  = dynamic_cast<TH1F*>(gDirectory->FindObject(thid));          TH1F *th  = dynamic_cast<TH1F*>(gDirectory->FindObject(thid));
390          if ( th ) th->Delete();          if ( th ) th->Delete();
391  //       th->Clear();  //       th->Clear();
# Line 426  void Calo2D::Draw(Int_t plane){ Line 428  void Calo2D::Draw(Int_t plane){
428    gStyle->SetNdivisions(510,"XY");    gStyle->SetNdivisions(510,"XY");
429    //    //
430    for (Int_t p=minp; p<maxp;p++){    for (Int_t p=minp; p<maxp;p++){
431      TString hid = Form("c2dp%i",p);          TString hid = Form("c2dp%i%s",p,suf.Data());        
432      TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));      TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));
433      if ( tc ){      if ( tc ){
434        //         tc->Clear();        //         tc->Clear();
# Line 434  void Calo2D::Draw(Int_t plane){ Line 436  void Calo2D::Draw(Int_t plane){
436        tc = new TCanvas(hid,hid);        tc = new TCanvas(hid,hid);
437      };      };
438      //      //
439      TString thid = Form("h2dp%i",p);          TString thid = Form("h2dp%i%s",p,suf.Data());      
440      TH2F *th  = dynamic_cast<TH2F*>(gDirectory->FindObject(thid));      TH2F *th  = dynamic_cast<TH2F*>(gDirectory->FindObject(thid));
441      if ( th ) th->Delete();      if ( th ) th->Delete();
442      //   th->Clear();      //   th->Clear();
# Line 671  CaloLong::CaloLong(PamLevel2 *l2p){   Line 673  CaloLong::CaloLong(PamLevel2 *l2p){  
673    umax = 100.;    umax = 100.;
674    slmax = "";    slmax = "";
675    sumax = "";    sumax = "";
676      suf = "";
677      xyaverage = true;
678      //
679      letmax = -1;
680      heavytail = false;
681      lmipth = 100.;
682    //    //
683  };  };
684    
# Line 696  void CaloLong::UnMaskSection(TString sec Line 704  void CaloLong::UnMaskSection(TString sec
704    
705  void CaloLong::Clear(){  void CaloLong::Clear(){
706    //    //
707      if ( debug ) printf(" Clear called \n");
708      //
709    memset(eplane,0, 2*22*sizeof(Float_t));    memset(eplane,0, 2*22*sizeof(Float_t));
710    //    //
711    chi2 = 0.;    chi2 = 0.;
# Line 848  void CaloLong::Process(){ Line 858  void CaloLong::Process(){
858    //    //
859    // inclination factor (stolen from Daniele's code)    // inclination factor (stolen from Daniele's code)
860    //    //
861    Float_t ytgx = 0;    Float_t ytgx = 0.;
862    Float_t ytgy = 0;    Float_t ytgy = 0.;
863    ytgx = 0.76 * clp->tanx[0];    ytgx = 0.76 * clp->tanx[0];
864    ytgy = 0.76 * clp->tany[0];      ytgy = 0.76 * clp->tany[0];  
865    X0pl = sqrt( pow(0.76,2.) + pow(ytgx,2.) + pow(ytgy,2.) );    X0pl = sqrt( pow(0.76,2.) + pow(ytgx,2.) + pow(ytgy,2.) );
# Line 943  void CaloLong::SetEnergies(Float_t myene Line 953  void CaloLong::SetEnergies(Float_t myene
953      };      };
954    };    };
955    //    //
956      if ( !clp && debug ) printf(" ERROR!! no CaloLevel2 obj!!\n");
957      //
958    // inclination factor (stolen from Daniele's code)    // inclination factor (stolen from Daniele's code)
959    //    //
960    Float_t ytgx = 0;    Float_t ytgx = 0.;
961    Float_t ytgy = 0;    Float_t ytgy = 0.;
962    ytgx = 0.76 * clp->tanx[0];    ytgx = 0.76 * clp->tanx[0];
963    ytgy = 0.76 * clp->tany[0];      ytgy = 0.76 * clp->tany[0];  
964    X0pl = sqrt( pow(0.76,2.) + pow(ytgx,2.) + pow(ytgy,2.) );    X0pl = sqrt( pow(0.76,2.) + pow(ytgx,2.) + pow(ytgy,2.) );
965      if ( debug ) printf(" X0pl %f tanx %f tany %f \n",X0pl,ytgx,ytgy);
966    //    //
967    // Find experimental plane of maximum    // Find experimental plane of maximum
968    //    //
# Line 970  void CaloLong::SetEnergies(Float_t myene Line 983  void CaloLong::SetEnergies(Float_t myene
983    //    //
984    if ( vmax == 0 ) pmax++;    if ( vmax == 0 ) pmax++;
985    etmax = pmax * X0pl;    etmax = pmax * X0pl;
986      letmax = etmax;
987    //    //
988    if ( debug ) this->Print();    if ( debug ) this->Print();
989    if ( debug ) printf(" exit \n");    if ( debug ) printf(" exit \n");
# Line 994  void CaloLong::Fit(){ Line 1008  void CaloLong::Fit(){
1008    this->Fit(false);    this->Fit(false);
1009  };  };
1010    
1011  Float_t CaloLong::Evaluate(TString s, Float_t tmax){  Float_t CaloLong::Evaluate(TString s, Float_t tmax, Float_t X0pl){
1012    /* SAMPLE OUTPUT:    /* SAMPLE OUTPUT:
1013       Enter Infix Expression : A + B + C / (E - F)       Enter Infix Expression : A + B + C / (E - F)
1014       Postfix Expression is : A B + C E F - / +         Postfix Expression is : A B + C E F - / +  
1015    */      */  
1016    if ( !s.Contains("t") ){    if ( !s.Contains("tmax") && !s.Contains("X0pl") ){
1017      printf(" ERROR, the input formula must contain \"t\"\n");      printf(" ERROR, the input formula must contain \"t\"\n");
1018      return 0.;      return 0.;
1019    };    };
# Line 1008  Float_t CaloLong::Evaluate(TString s, Fl Line 1022  Float_t CaloLong::Evaluate(TString s, Fl
1022      return 0.;      return 0.;
1023    };    };
1024    TString g=Form("%f",tmax);    TString g=Form("%f",tmax);
1025      TString h=Form("%f",X0pl);
1026    TString *ts= new TString("");    TString *ts= new TString("");
1027    ts->Prepend(s.Data());    ts->Prepend(s.Data());
1028    ts->ReplaceAll("t",1,g.Data(),g.Capacity());    ts->ReplaceAll("tmax",4,g.Data(),g.Capacity());
1029      ts->ReplaceAll("X0pl",4,h.Data(),h.Capacity());
1030    ts->Prepend("(");    ts->Prepend("(");
1031    ts->Append(")");    ts->Append(")");
1032    if ( debug )  printf(" ts %s tssize %i capac %i s %s g %s \n",ts->Data(),ts->Sizeof(),ts->Capacity(),s.Data(),g.Data());    if ( debug )  printf(" ts %s tssize %i capac %i s %s g %s \n",ts->Data(),ts->Sizeof(),ts->Capacity(),s.Data(),g.Data());
# Line 1063  void CaloLong::Fit(Bool_t draw){ Line 1079  void CaloLong::Fit(Bool_t draw){
1079      gStyle->SetNdivisions(510,"XY");      gStyle->SetNdivisions(510,"XY");
1080    };    };
1081    //    //
1082    TString hid = Form("clongfit");          TString hid = Form("clongfit%s",suf.Data());  
1083    TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));    TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));
1084    //  if ( tc ) tc->Delete();    //  if ( tc ) tc->Delete();
1085    //  if ( tc ) tc->Close();    //  if ( tc ) tc->Close();
# Line 1073  void CaloLong::Fit(Bool_t draw){ Line 1089  void CaloLong::Fit(Bool_t draw){
1089      if ( tc ) tc->cd();      if ( tc ) tc->cd();
1090    };    };
1091    //    //
1092    TString thid = Form("hlongfit");          TString thid = Form("hlongfit%s",suf.Data());
1093    TH1F *th  = dynamic_cast<TH1F*>(gDirectory->FindObject(thid));    TH2F *th  = dynamic_cast<TH2F*>(gDirectory->FindObject(thid));
1094    if ( th ) th->Delete();    if ( th ) th->Delete();
1095      //
1096      TString ghid = Form("glongfit%s",suf.Data());
1097      TGraphErrors *gh  = dynamic_cast<TGraphErrors*>(gDirectory->FindObject(ghid));
1098      if ( gh ) gh->Delete();
1099      //
1100    Float_t xpos = 0.;    Float_t xpos = 0.;
1101    Float_t enemip = 0.;    Float_t enemip = 0.;
1102    Float_t xmax = NC * X0pl + 0.2;    Float_t xmax = NC * X0pl + 0.2;
1103    //  th = new TH1F(thid,thid,int(NC*1.5),-0.2,xmax);    //
1104    th = new TH1F(thid,thid,100,-0.2,xmax);    Double_t xxx[50];
1105      Double_t exx[50];
1106      Double_t yyy[50];
1107      Double_t eyy[50];
1108      Int_t numpo = 0;
1109      memset(xxx,0,50*sizeof(Double_t));
1110      memset(exx,0,50*sizeof(Double_t));
1111      memset(yyy,0,50*sizeof(Double_t));
1112      memset(eyy,0,50*sizeof(Double_t));
1113    //    //
1114    // AGH, BUG!    // AGH, BUG!
1115    //    //
# Line 1094  void CaloLong::Fit(Bool_t draw){ Line 1123  void CaloLong::Fit(Bool_t draw){
1123      mmax = NC;      mmax = NC;
1124    };    };
1125    //    //
1126      Float_t emax = 0.;
1127    Float_t qtotparz = 0.;    Float_t qtotparz = 0.;
1128    for (Int_t st=mmin;st<mmax+1;st++){    for (Int_t st=mmin;st<mmax+1;st++){
1129      enemip = 0.;      enemip = 0.;
1130      xpos = (st - mmin) * X0pl;      xpos = (st - mmin) * X0pl;
1131      if ( st > mmin && st < mmax ){            //
1132        if ( no18x && ( st == 18+1 || st == mask18b+1 )){      if ( xyaverage ){
1133          if ( !maskYO ){        //
1134            enemip = 2. * eplane[1][st];        if ( st > mmin && st < mmax ){      
1135            if ( no18x && ( st == 18+1 || st == mask18b+1 )){
1136              if ( !maskYO ){
1137                enemip = 2. * eplane[1][st];
1138              } else {
1139                enemip = eplane[1][st];
1140              };
1141          } else {          } else {
1142            enemip = eplane[1][st];            enemip = eplane[0][st-1] + eplane[1][st];
1143          };          };
1144        } else {        } else {
1145          enemip = eplane[0][st-1] + eplane[1][st];          if ( st == mmin ){
1146              if ( !maskYE ){
1147                enemip = 2. * eplane[1][st];
1148              } else {
1149                enemip = eplane[1][st];
1150              };
1151            };
1152            if ( st == mmax ){
1153              if ( !maskXE ){
1154                enemip = 2. * eplane[0][st-1];
1155              } else {
1156                enemip = eplane[0][st-1];
1157              };
1158            };
1159          };
1160          //
1161          qtotparz += enemip;
1162          if ( enemip > emax ) emax = enemip;
1163          if ( enemip > 0. ){
1164            xxx[numpo] = xpos;
1165            exx[numpo] = 0.1;
1166            yyy[numpo] = enemip;
1167            eyy[numpo] = sqrt(enemip*3.)+sqrt(5.);
1168            if ( xpos > letmax && enemip > lmipth && heavytail) eyy[numpo] = (sqrt(enemip*3.)+sqrt(5.))/numpo;
1169            numpo++;
1170            //      th->Fill(xpos,enemip);
1171            if ( debug ) printf(" AVE Filling: st %i xpos %f energy %f error %f letmax %f lmpith %f \n",st,xpos,enemip,eyy[numpo-1],letmax,lmipth);
1172        };        };
1173      } else {      } else {
1174        if ( st == mmin ){        for (Int_t jj=0; jj<2; jj++){
1175          if ( !maskYE ){          if ( st > mmin && st < mmax ){
1176            enemip = 2. * eplane[1][st];            if ( jj == 0 && no18x && ( st == 18+1 || st == mask18b+1 )){
1177                enemip = eplane[1][st];
1178              } else {
1179                if ( jj == 0 ){
1180                  enemip = eplane[jj][st-1];
1181                } else {
1182                  enemip = eplane[jj][st];
1183                };        
1184              };
1185          } else {          } else {
1186            enemip = eplane[1][st];            if ( st == mmin && jj == 1 ){
1187                enemip = eplane[jj][st];
1188              };
1189              if ( st == mmax && jj == 0){
1190                enemip = eplane[jj][st-1];
1191              };
1192          };          };
1193        };          //
1194        if ( st == mmax ){          qtotparz += enemip;
1195          if ( !maskXE ){        if ( enemip > emax ) emax = enemip;
1196            enemip = 2. * eplane[0][st-1];          if ( enemip > 0. ){
1197          } else {            xxx[numpo] = xpos;
1198            enemip = eplane[0][st-1];            exx[numpo] = 0.1;
1199              yyy[numpo] = enemip;
1200              eyy[numpo] = sqrt(enemip*3.)+sqrt(5.);
1201            if ( xpos > letmax && enemip > lmipth && heavytail ) eyy[numpo] = (sqrt(enemip*3.)+sqrt(5.))/numpo;
1202              //      eyy[numpo] = sqrt(enemip)/(st*0.95);
1203              numpo++;
1204              //      th->Fill(xpos,enemip);
1205              if ( debug ) printf(" XY Filling: st %i xpos %f energy %f \n",st,xpos,enemip);
1206          };          };
1207        };        };        
     };  
     //  
     qtotparz += enemip;  
     if ( enemip > 0. ){  
       th->Fill(xpos,enemip);  
       if ( debug ) printf(" Filling: st %i xpos %f energy %f \n",st,xpos,enemip);  
1208      };      };
1209    
1210      //      //
1211      //    for (Int_t v=1; v>=0;v--)// {      //    for (Int_t v=1; v>=0;v--)// {
1212  //       //  //       //
# Line 1155  void CaloLong::Fit(Bool_t draw){ Line 1232  void CaloLong::Fit(Bool_t draw){
1232  //     };  //     };
1233    };    };
1234    //    //
1235    TF1 *lfit = new TF1("lfit",ccurve,0.,xmax,3);    //  th = new TH2F(thid,thid,int(NC*1.5),-0.2,xmax);
1236      th = new TH2F(thid,thid,1000,-0.2,xmax,1000,0.,emax*1.2);
1237      gh = new TGraphErrors(numpo,xxx,yyy,exx,eyy);
1238      TString fnam=Form("lfit%s",suf.Data());
1239      TF1 *lfit  = dynamic_cast<TF1*>(gDirectory->FindObject(fnam));
1240      if ( lfit ) lfit->Delete();
1241      lfit = new TF1(fnam,ccurve,0.,xmax,3);
1242    //   if ( !lfit ){
1243    //     lfit = new TF1(fnam,ccurve,0.,xmax,3);
1244    //   };
1245    //   lfit->Clear();
1246    //   lfit->SetName(fnam);
1247    //   lfit->SetRange(0.,xmax);
1248    //  lfit->Print();
1249      //
1250    if ( debug ) printf("qtot %f qtotparz %f \n",clp->qtot,qtotparz);    if ( debug ) printf("qtot %f qtotparz %f \n",clp->qtot,qtotparz);
1251    E0 = qtotparz;    E0 = qtotparz;
1252    //  E0 = clp->qtot;    //  E0 = clp->qtot;
# Line 1166  void CaloLong::Fit(Bool_t draw){ Line 1257  void CaloLong::Fit(Bool_t draw){
1257    //  lfit->SetParLimits(0,0.,1000.);    //  lfit->SetParLimits(0,0.,1000.);
1258    //  lfit->SetParLimits(1,-1.,80.);    //  lfit->SetParLimits(1,-1.,80.);
1259    //  lfit->SetParLimits(2,-1.,10.);    //  lfit->SetParLimits(2,-1.,10.);
1260    TString optio;    // TString optio = "ROW"; // "RO"
1261      TString optio = "RO"; // "RO"
1262    if ( debug ){    if ( debug ){
1263      //    optio = "MERBOV";      optio += "NV";
1264      //    optio = "MEROV";      if ( draw ) optio += "V";
     //    optio = "EROV";  
     optio = "RNOV";  
     if ( draw ) optio = "ROV";  
1265    } else {    } else {
1266      //    optio = "MERNOQ";      optio += "NQ";
1267      //    optio = "ERNOQ";      if ( draw ) optio += "Q";
     optio = "RNOQ";  
     if ( draw ) optio = "ROQ";  
1268    };    };
1269    //    //
1270    if ( debug ) printf(" OK, start the fitting procedure...\n");    if ( debug ) printf(" OK, start the fitting procedure... options: %s \n",optio.Data());
1271    //    //
1272    fitresult = th->Fit("lfit",optio);    //  fitresult = th->Fit("lfit",optio);
1273      //  lfit->Update();
1274      fitresult = gh->Fit("lfit",optio);
1275      //  fitresult = gh->Fit("lfit","ROQW");
1276    //    //
1277    if ( debug ) printf(" the fit is done! result: %i \n",fitresult);    if ( debug ) printf(" the fit is done! result: %i \n",fitresult);
1278    //    //
# Line 1203  void CaloLong::Fit(Bool_t draw){ Line 1293  void CaloLong::Fit(Bool_t draw){
1293      asymm = -1.;      asymm = -1.;
1294      defE0 = -1.;      defE0 = -1.;
1295    } else {    } else {
1296      if ( slmax.MaybeRegexp() ) lmax = this->Evaluate(slmax,tmax);      if ( slmax.MaybeRegexp() ) lmax = this->Evaluate(slmax,tmax,X0pl);
1297      if ( sumax.MaybeRegexp() ) umax = this->Evaluate(sumax,tmax);      if ( sumax.MaybeRegexp() ) umax = this->Evaluate(sumax,tmax,X0pl);
1298      Int_t npp = 1000;      Int_t npp = 1000;
1299      double *xpp=new double[npp];      double *xpp=new double[npp];
1300      double *wpp=new double[npp];      double *wpp=new double[npp];
# Line 1226  void CaloLong::Fit(Bool_t draw){ Line 1316  void CaloLong::Fit(Bool_t draw){
1316      delete w;      delete w;
1317      delete xp;      delete xp;
1318      delete wp;      delete wp;
1319        delete xpp;
1320        delete wpp;
1321      //    Float_t i10max = lfit->Integral(0.,10.*tmax);      //    Float_t i10max = lfit->Integral(0.,10.*tmax);
1322      if ( debug ) printf(" Integral: %f \n",i10max);      if ( debug ) printf(" Integral: %f \n",i10max);
1323      //      //
# Line 1259  void CaloLong::Fit(Bool_t draw){ Line 1351  void CaloLong::Fit(Bool_t draw){
1351      // axis titles      // axis titles
1352      th->SetXTitle("Depth [X0]");      th->SetXTitle("Depth [X0]");
1353      th->SetYTitle("Energy [MIP]");      th->SetYTitle("Energy [MIP]");
1354      th->DrawCopy("Perror");      //    th->DrawCopy("Perror");
1355        th->DrawCopy();
1356        gh->SetMarkerSize(1.);
1357        gh->SetMarkerStyle(21);
1358        //    gh->SetMarkerColor(kRed);
1359        gh->Draw("Psame");
1360      lfit->Draw("same");      lfit->Draw("same");
1361      tc->Modified();      tc->Modified();
1362      tc->Update();      tc->Update();
# Line 1271  void CaloLong::Fit(Bool_t draw){ Line 1368  void CaloLong::Fit(Bool_t draw){
1368      if ( th ) th->Delete();      if ( th ) th->Delete();
1369    };    };
1370    //    //
1371    delete lfit;  //   gMinuit->SetPrintLevel(1);
1372    //   gMinuit->mnamin();
1373    //   //  gMinuit->mnfree(0);
1374    //   gMinuit->mncler();
1375    //   gMinuit->mnrset(1);
1376      //  gMinuit->Delete();
1377      //ROOT::Math::Minimizer::Clear();
1378      //  gMinuit->mnhelp("*");
1379      //
1380      //  delete lfit;
1381    //    //
1382  };  };
1383    
# Line 1300  void CaloLong::Draw(Int_t view){ Line 1406  void CaloLong::Draw(Int_t view){
1406    //    //
1407    if ( maxv != -1 ){    if ( maxv != -1 ){
1408      for (Int_t v=minv; v<maxv;v++){      for (Int_t v=minv; v<maxv;v++){
1409        TString hid = Form("clongv%i",v);        TString hid = Form("clongv%i%s",v,suf.Data());    
1410        TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));        TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));
1411        if ( tc ){        if ( tc ){
1412          //       tc->Clear();          //       tc->Clear();
# Line 1308  void CaloLong::Draw(Int_t view){ Line 1414  void CaloLong::Draw(Int_t view){
1414          tc = new TCanvas(hid,hid);          tc = new TCanvas(hid,hid);
1415        };        };
1416        //        //
1417        TString thid = Form("hlongv%i",v);                TString thid = Form("hlongv%i%s",v,suf.Data());  
1418        TH1F *th  = dynamic_cast<TH1F*>(gDirectory->FindObject(thid));        TH1F *th  = dynamic_cast<TH1F*>(gDirectory->FindObject(thid));
1419        if ( th ) th->Delete();        if ( th ) th->Delete();
1420        //         th->Clear();        //         th->Clear();
# Line 1327  void CaloLong::Draw(Int_t view){ Line 1433  void CaloLong::Draw(Int_t view){
1433      };      };
1434    } else {    } else {
1435      //      //
1436      TString hid = Form("clongvyvx");          TString hid = Form("clongvyvx%s",suf.Data());      
1437      TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));      TCanvas *tc  = dynamic_cast<TCanvas*>(gDirectory->FindObject(hid));
1438      if ( tc ){      if ( tc ){
1439      } else {      } else {
1440        tc = new TCanvas(hid,hid);        tc = new TCanvas(hid,hid);
1441      };      };
1442      //      //
1443      TString thid = Form("hlongvyvx");        TString thid = Form("hlongvyvx%s",suf.Data());      
1444      TH1F *th  = dynamic_cast<TH1F*>(gDirectory->FindObject(thid));      TH1F *th  = dynamic_cast<TH1F*>(gDirectory->FindObject(thid));
1445      if ( th ) th->Delete();      if ( th ) th->Delete();
1446      th = new TH1F(thid,thid,44,-0.5,43.5);      th = new TH1F(thid,thid,44,-0.5,43.5);

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.23