Changeset 13597


Ignore:
Timestamp:
05/08/12 11:51:22 (13 years ago)
Author:
Jens Buss
Message:
DrawHistograms changed to
DrawOverlayHistograms, added function for
drawing template histograms
File:
1 edited

Legend:

Unmodified
Added
Removed
  • fact/tools/rootmacros/PulseTemplates/pixel.C

    r13594 r13597  
    227227//----------------------------------------------------------------------------
    228228
    229 
    230 void
    231 Pixel::DrawHistograms(
    232         TCanvas**    pixelCanvas,
    233         int*        histoFrameNr
    234         )
    235 {
    236     if (mVerbosityLevel > 2) cout << endl << "...drawing pulse histograms" ;
    237     for (int pulse_order = 0; pulse_order < mMaxPulseOrder; pulse_order++)
    238     {
    239         pixelCanvas[pulse_order]->cd( histoFrameNr[0] );
    240         hMaxOverlay[pulse_order]->Draw("COLZ");
    241         pixelCanvas[pulse_order]->cd( histoFrameNr[2] );
    242         hMaxProfile[pulse_order]->Draw();
    243         hEdgeProfile[pulse_order]->Draw("SAME");
    244 
    245         pixelCanvas[pulse_order]->cd( histoFrameNr[1] );
    246         hEdgeOverlay[pulse_order]->Draw("COLZ");
    247     }
    248 }
    249 // end of DrawPulseHistograms
    250 //----------------------------------------------------------------------------
    251 
    252 
    253229void
    254230Pixel::BookDistributionHistos( )
     
    330306    }
    331307}
    332 
    333 void
    334 Pixel::DrawDistributionHistograms(
    335         TCanvas**    pixelCanvas,
    336         int*        histoFrameNr
    337         )
    338 {
    339     if (mVerbosityLevel > 2) cout << endl << "...drawing distribution histograms" ;
    340     bool nothing_to_fill = true;
    341     for (int pulse_order = 0; pulse_order < mMaxPulseOrder; pulse_order++)
    342     {
    343         if (mOptions.Contains("S") )
    344         {
    345         pixelCanvas[pulse_order]->cd( histoFrameNr[0] );
    346         hSlopeRisingEdge[pulse_order]->Draw();
    347         nothing_to_fill = false;
    348         }
    349 
    350         if (mOptions.Contains("R") )
    351         {
    352         pixelCanvas[pulse_order]->cd( histoFrameNr[1] );
    353         hRisingEdgeToMax[pulse_order]->Draw();
    354         nothing_to_fill = false;
    355         }
    356 
    357         if (mOptions.Contains("M") )
    358         {
    359         pixelCanvas[pulse_order]->cd( histoFrameNr[2] );
    360         hPosOfMax[pulse_order]->Draw();
    361         nothing_to_fill = false;
    362         }
    363 
    364     }
    365     if (nothing_to_fill)
    366     {
    367         cout << endl << "there were NO DISTRIBUTION HISTOGRAMS to fill" << endl;
    368     }
    369 }
    370 // end of DrawDistributionHistograms
    371 //----------------------------------------------------------------------------
    372 
    373 void
    374 Pixel::SavePixelHistograms(
    375         const char* outRootFileName,
    376         bool        saveResults
    377         )
    378 {
    379     if (mVerbosityLevel > 2) cout << endl << "Saving histograms of Pixel# " << mChid;
    380     if (!saveResults) return;
    381     SaveHistograms(
    382             outRootFileName,
    383             CreateSubDirName( mChid ),
    384             hList,
    385             saveResults,
    386             mVerbosityLevel
    387             );
    388 }
    389 // end of SavePixelHistograms
    390 //----------------------------------------------------------------------------
    391 
    392 void
    393 Pixel::DeletePixelHistos()
    394 {
    395     if (mVerbosityLevel > 2)
    396     {
    397         cout << endl
    398              << "\t...delete current overlay histograms of Pixel# " << mChid;
    399     }
    400     for (int order = 0;
    401          order < mMaxPulseOrder;
    402          order ++)
    403     {
    404         if (mVerbosityLevel > 3)
    405         cout << endl << "\t\t...deleting hMaxOverlay"
    406                                       << mChid << "_" << order
    407                                       << " hMaxOverlay[order] adr " << hMaxOverlay[order]
    408                                       << " hMaxOverlay adr " << hMaxOverlay
    409                                          ;
    410 
    411         delete hMaxOverlay[order];
    412         hMaxOverlay[order] = NULL;
    413 
    414         if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hEdgeOverlay"
    415                                       << mChid << "_" << order ;
    416         delete hEdgeOverlay[order];
    417         hEdgeOverlay[order] = NULL;
    418 
    419         if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hMaxProfile"
    420                                       << mChid << "_" << order ;
    421         delete hMaxProfile[order];
    422         hMaxProfile[order] = NULL;
    423 
    424         if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hMaxProfile2"
    425                                       << mChid << "_" << order ;
    426         delete hEdgeProfile[order];
    427         hEdgeProfile[order] = NULL;
    428     }
    429     if (mVerbosityLevel > 3) cout << endl << "\t...deleting histogram Arrays";
    430 
    431     if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hMaxOverlay";
    432     delete[] hMaxOverlay;
    433     hMaxOverlay = NULL;
    434 
    435     if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hEdgeOverlay";
    436     delete[] hEdgeOverlay;
    437     hEdgeOverlay = NULL;
    438 
    439     if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hMaxProfile";
    440     delete[] hMaxProfile;
    441     hMaxProfile = NULL;
    442 
    443     if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hEdgeProfile";
    444     delete[] hEdgeProfile;
    445     hEdgeProfile = NULL;
    446 }
    447 // end of DeletePixelHistos
    448 //----------------------------------------------------------------------------
    449 
    450 void
    451 Pixel::DeleteDistributionHistos()
    452 {
    453     if (mVerbosityLevel > 2)
    454     {
    455         cout << endl
    456              << "\t...delete current distribution histograms" ;
    457     }
    458 
    459     for (int order = 0;
    460          order < mMaxPulseOrder;
    461          order ++)
    462     {
    463         if (mOptions.Contains("S"))
    464         {
    465             if (mVerbosityLevel > 3) cout << endl
    466                                           << "\t\t...deleting hSlopeRisingEdge"
    467                                           << mChid << "_" << order ;
    468             delete hSlopeRisingEdge[order];
    469         }
    470 
    471         if (mOptions.Contains("R"))
    472         {
    473             if (mVerbosityLevel > 3) cout << endl
    474                                           << "\t\t...deleting hRisingEdgeToMax"
    475                                           << mChid << "_" << order ;
    476 //            delete hRisingEdgeToMax[order];
    477         }
    478 
    479         if (mOptions.Contains("M"))
    480         {
    481             if (mVerbosityLevel > 3) cout << endl
    482                                           << "\t\t...deleting hPosOfMax"
    483                                           << mChid << "_" << order ;
    484 
    485 //            delete hPosOfMax[order];
    486         }
    487 
    488     }
    489     if (mVerbosityLevel > 3) cout << endl << "\t...deleting histogram Arrays";
    490 
    491     if (mOptions.Contains("S"))
    492     {
    493         if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hSlopeRisingEdge";
    494         delete[] hSlopeRisingEdge;
    495         hSlopeRisingEdge = NULL;
    496     }
    497 
    498     if (mOptions.Contains("R"))
    499     {
    500         if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hRisingEdgeToMax";
    501         delete[] hRisingEdgeToMax;
    502         hRisingEdgeToMax = NULL;
    503     }
    504 
    505     if (mOptions.Contains("M"))
    506     {
    507         if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hPosOfMax";
    508         delete[] hPosOfMax;
    509         hPosOfMax = NULL;
    510     }
    511 }
    512 // end of DeletePixelHistos
    513 //----------------------------------------------------------------------------
    514 
    515 void
    516 Pixel::LoadPulseHistos()
    517 {
    518     mRootFile->cd();
    519     mRootFile->cd(CreateSubDirName( mChid ));
    520     for (int order = 0; order < mMaxPulseOrder; order++)
    521     {
    522         hMaxOverlay[order]  = (TH2F*)mRootFile->Get( HistoName("hMaxOverlay", order) );
    523         hEdgeOverlay[order] = (TH2F*)mRootFile->Get( HistoName("hEdgeOverlay", order) );
    524         hMaxProfile[order]  = (TProfile*)mRootFile->Get( HistoName("hMaxProfile", order) );
    525         hEdgeProfile[order] = (TProfile*)mRootFile->Get( HistoName("hEdgeProfile", order) );
    526     }
    527 }
    528 
    529 TString
    530 Pixel::HistoName(
    531         TString     histoname,
    532         int         order
    533         )
    534 {
    535     histoname +=   mChid;
    536     histoname +=   "_";
    537     histoname +=   order;
    538     return histoname;
    539 }
    540 
    541 TString
    542 Pixel::HistoTitle(
    543         TString     histo_title,
    544         int         order
    545         )
    546 {
    547     histo_title +=   " [Pixel_Order] ";
    548     histo_title +=   mChid;
    549     histo_title +=   "_";
    550     histo_title +=   order;
    551     return histo_title;
    552 }
     308//end of BookDistributionHistos
     309//----------------------------------------------------------------------------
    553310
    554311void
     
    624381//----------------------------------------------------------------------------
    625382
     383
     384void
     385Pixel::DrawOverlayHistograms(
     386        TCanvas**    pixelCanvas,
     387        int*        histoFrameNr
     388        )
     389{
     390    if (mVerbosityLevel > 2) cout << endl << "...drawing pulse histograms" ;
     391    for (int pulse_order = 0; pulse_order < mMaxPulseOrder; pulse_order++)
     392    {
     393        pixelCanvas[pulse_order]->cd( histoFrameNr[0] );
     394        hMaxOverlay[pulse_order]->Draw("COLZ");
     395        pixelCanvas[pulse_order]->cd( histoFrameNr[2] );
     396        hMaxProfile[pulse_order]->Draw();
     397        hEdgeProfile[pulse_order]->Draw("SAME");
     398
     399        pixelCanvas[pulse_order]->cd( histoFrameNr[1] );
     400        hEdgeOverlay[pulse_order]->Draw("COLZ");
     401    }
     402}
     403// end of DrawOverlayHistograms
     404//----------------------------------------------------------------------------
     405
     406void
     407Pixel::DrawDistributionHistograms(
     408        TCanvas**    pixelCanvas,
     409        int*        histoFrameNr
     410        )
     411{
     412    if (mVerbosityLevel > 2) cout << endl << "...drawing distribution histograms" ;
     413    bool nothing_to_fill = true;
     414    for (int pulse_order = 0; pulse_order < mMaxPulseOrder; pulse_order++)
     415    {
     416        if (mOptions.Contains("S") )
     417        {
     418        pixelCanvas[pulse_order]->cd( histoFrameNr[0] );
     419        hSlopeRisingEdge[pulse_order]->Draw();
     420        nothing_to_fill = false;
     421        }
     422
     423        if (mOptions.Contains("R") )
     424        {
     425        pixelCanvas[pulse_order]->cd( histoFrameNr[1] );
     426        hRisingEdgeToMax[pulse_order]->Draw();
     427        nothing_to_fill = false;
     428        }
     429
     430        if (mOptions.Contains("M") )
     431        {
     432        pixelCanvas[pulse_order]->cd( histoFrameNr[2] );
     433        hPosOfMax[pulse_order]->Draw();
     434        nothing_to_fill = false;
     435        }
     436
     437    }
     438    if (nothing_to_fill)
     439    {
     440        cout << endl << "there were NO DISTRIBUTION HISTOGRAMS to fill" << endl;
     441    }
     442}
     443// end of DrawDistributionHistograms
     444//----------------------------------------------------------------------------
     445
     446void
     447Pixel::DrawTemplateHistograms(
     448        TCanvas**    pixelCanvas,
     449        int*        histoFrameNr
     450        )
     451{
     452    if (mVerbosityLevel > 2) cout << endl << "...drawing Template histograms" ;
     453    for (int pulse_order = 0; pulse_order < mMaxPulseOrder; pulse_order++)
     454    {
     455        pixelCanvas[pulse_order]->cd( histoFrameNr[0] );
     456        hPixelMax[pulse_order]->Draw();
     457
     458        pixelCanvas[pulse_order]->cd( histoFrameNr[1] );
     459        hPixelMedian[pulse_order]->Draw();
     460
     461        pixelCanvas[pulse_order]->cd( histoFrameNr[2] );
     462        hPixelMean[pulse_order]->Draw();
     463
     464    }
     465}
     466// end of DrawTemplateHistograms
     467//----------------------------------------------------------------------------
     468
     469void
     470Pixel::DeletePixelHistos()
     471{
     472    if (mVerbosityLevel > 2)
     473    {
     474        cout << endl
     475             << "\t...delete current overlay histograms of Pixel# " << mChid;
     476    }
     477    for (int order = 0;
     478         order < mMaxPulseOrder;
     479         order ++)
     480    {
     481        if (mVerbosityLevel > 3)
     482        cout << endl << "\t\t...deleting hMaxOverlay"
     483                                      << mChid << "_" << order
     484                                      << " hMaxOverlay[order] adr " << hMaxOverlay[order]
     485                                      << " hMaxOverlay adr " << hMaxOverlay
     486                                         ;
     487
     488        delete hMaxOverlay[order];
     489        hMaxOverlay[order] = NULL;
     490
     491        if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hEdgeOverlay"
     492                                      << mChid << "_" << order ;
     493        delete hEdgeOverlay[order];
     494        hEdgeOverlay[order] = NULL;
     495
     496        if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hMaxProfile"
     497                                      << mChid << "_" << order ;
     498        delete hMaxProfile[order];
     499        hMaxProfile[order] = NULL;
     500
     501        if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hMaxProfile2"
     502                                      << mChid << "_" << order ;
     503        delete hEdgeProfile[order];
     504        hEdgeProfile[order] = NULL;
     505    }
     506    if (mVerbosityLevel > 3) cout << endl << "\t...deleting histogram Arrays";
     507
     508    if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hMaxOverlay";
     509    delete[] hMaxOverlay;
     510    hMaxOverlay = NULL;
     511
     512    if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hEdgeOverlay";
     513    delete[] hEdgeOverlay;
     514    hEdgeOverlay = NULL;
     515
     516    if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hMaxProfile";
     517    delete[] hMaxProfile;
     518    hMaxProfile = NULL;
     519
     520    if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hEdgeProfile";
     521    delete[] hEdgeProfile;
     522    hEdgeProfile = NULL;
     523}
     524// end of DeletePixelHistos
     525//----------------------------------------------------------------------------
     526
     527void
     528Pixel::DeleteDistributionHistos()
     529{
     530    if (mVerbosityLevel > 2)
     531    {
     532        cout << endl
     533             << "\t...delete current distribution histograms" ;
     534    }
     535
     536    for (int order = 0;
     537         order < mMaxPulseOrder;
     538         order ++)
     539    {
     540        if (mOptions.Contains("S"))
     541        {
     542            if (mVerbosityLevel > 3) cout << endl
     543                                          << "\t\t...deleting hSlopeRisingEdge"
     544                                          << mChid << "_" << order ;
     545            delete hSlopeRisingEdge[order];
     546        }
     547
     548        if (mOptions.Contains("R"))
     549        {
     550            if (mVerbosityLevel > 3) cout << endl
     551                                          << "\t\t...deleting hRisingEdgeToMax"
     552                                          << mChid << "_" << order ;
     553//            delete hRisingEdgeToMax[order];
     554        }
     555
     556        if (mOptions.Contains("M"))
     557        {
     558            if (mVerbosityLevel > 3) cout << endl
     559                                          << "\t\t...deleting hPosOfMax"
     560                                          << mChid << "_" << order ;
     561
     562//            delete hPosOfMax[order];
     563        }
     564
     565    }
     566    if (mVerbosityLevel > 3) cout << endl << "\t...deleting histogram Arrays";
     567
     568    if (mOptions.Contains("S"))
     569    {
     570        if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hSlopeRisingEdge";
     571        delete[] hSlopeRisingEdge;
     572        hSlopeRisingEdge = NULL;
     573    }
     574
     575    if (mOptions.Contains("R"))
     576    {
     577        if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hRisingEdgeToMax";
     578        delete[] hRisingEdgeToMax;
     579        hRisingEdgeToMax = NULL;
     580    }
     581
     582    if (mOptions.Contains("M"))
     583    {
     584        if (mVerbosityLevel > 3) cout << endl << "\t\t...deleting hPosOfMax";
     585        delete[] hPosOfMax;
     586        hPosOfMax = NULL;
     587    }
     588}
     589// end of DeletePixelHistos
     590//----------------------------------------------------------------------------
     591
    626592void
    627593Pixel::DeleteTemplateHistos()
     
    671637    hPixelMean = NULL;
    672638}
     639// end of DeleteTemplateHistos
     640//----------------------------------------------------------------------------
     641
     642void
     643Pixel::SavePixelHistograms(
     644        const char* outRootFileName,
     645        bool        saveResults
     646        )
     647{
     648    if (mVerbosityLevel > 2) cout << endl << "Saving histograms of Pixel# " << mChid;
     649    if (!saveResults) return;
     650    SaveHistograms(
     651            outRootFileName,
     652            CreateSubDirName( mChid ),
     653            hList,
     654            saveResults,
     655            mVerbosityLevel
     656            );
     657}
     658// end of SavePixelHistograms
     659//----------------------------------------------------------------------------
     660
     661void
     662Pixel::LoadPulseHistos()
     663{
     664    mRootFile->cd();
     665    mRootFile->cd(CreateSubDirName( mChid ));
     666    for (int order = 0; order < mMaxPulseOrder; order++)
     667    {
     668        hMaxOverlay[order]  = (TH2F*)mRootFile->Get( HistoName("hMaxOverlay", order) );
     669        hEdgeOverlay[order] = (TH2F*)mRootFile->Get( HistoName("hEdgeOverlay", order) );
     670        hMaxProfile[order]  = (TProfile*)mRootFile->Get( HistoName("hMaxProfile", order) );
     671        hEdgeProfile[order] = (TProfile*)mRootFile->Get( HistoName("hEdgeProfile", order) );
     672    }
     673}
     674// end of LoadPulseHistos
     675//----------------------------------------------------------------------------
     676
     677TString
     678Pixel::HistoName(
     679        TString     histoname,
     680        int         order
     681        )
     682{
     683    histoname +=   mChid;
     684    histoname +=   "_";
     685    histoname +=   order;
     686    return histoname;
     687}
     688
     689TString
     690Pixel::HistoTitle(
     691        TString     histo_title,
     692        int         order
     693        )
     694{
     695    histo_title +=   " [Pixel_Order] ";
     696    histo_title +=   mChid;
     697    histo_title +=   "_";
     698    histo_title +=   order;
     699    return histo_title;
     700}
     701
     702
    673703
    674704//============================= ACESS      ===================================
Note: See TracChangeset for help on using the changeset viewer.