Ignore:
Timestamp:
10/26/12 09:23:36 (12 years ago)
Author:
Jens Buss
Message:
new Members
File:
1 edited

Legend:

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

    r14480 r14534  
    1717    mSuffix     = suffix;
    1818    mVerbLevel  = verbLevel;
     19    mSeparator  = ";";
    1920
    2021    BuildPath();
     
    3940    if (!mSuffix.IsNull()){
    4041
    41         if (mSuffix = -1)
     42        if (mSuffix.Contains("-1"))
    4243            mSuffix = "AllPixel";
    4344
    44         mSuffix.Append("_");
     45        mSuffix.Prepend("_");
    4546        mPath.Append(mSuffix);
    4647    }
     
    5556
    5657bool
    57 Csv::WritePixelToCsv(
     58Csv::WritePointSetToCsv(
    5859        Pixel*          pixel,
    5960        TString         overlayMethod,
     
    6768    }
    6869
    69     WritePointsetExplain();
    70 
    71     WritePointSetToCsv(
     70    WritePointSetHeader();
     71
     72    WritePointSet(
    7273            pixel,
    7374            overlayMethod,
     
    8889    TH1F*  Median_histo     = NULL;
    8990    TH1F*  Mean_histo       = NULL;
     91    int overlayPos          = 0;
    9092
    9193    if (overlayMethod.Contains("Maximum"))
     
    9496        Median_histo    = pixel->hPixelMedian[order];
    9597        Mean_histo      = pixel->hPixelMean[order];
     98        overlayPos      = 1;
    9699    }
    97100    else if (overlayMethod.Contains("Edge"))
     
    100103        Median_histo    = pixel->hPixelMedian[order];
    101104        Mean_histo      = pixel->hPixelMean[order];
     105        overlayPos      = 2;
    102106    }
    103107    else
    104108    {
    105109        cout << endl << "Unknown Overlay Method-->aborting" << endl;
    106         return 1;
     110        return ;
    107111    }
    108112
     
    117121    if (mVerbLevel > 2) cout << "...number of bins " << nbins << endl;
    118122
     123    //fill coulums
     124    for (int TimeSlice=1;TimeSlice<=nbins;TimeSlice++)
     125    {
     126        mCsvFile << TimeSlice << mSeparator ;
     127        mCsvFile << pixel->mChid << mSeparator ;
     128        mCsvFile << order << mSeparator ;
     129        mCsvFile << overlayPos << mSeparator ;
     130        mCsvFile.precision(8);
     131        mCsvFile << Max_histo->GetBinContent(TimeSlice) << mSeparator;
     132        mCsvFile << Mean_histo->GetBinContent(TimeSlice) << mSeparator;
     133        mCsvFile << Median_histo->GetBinContent(TimeSlice) << endl;
     134        mCsvFile.precision(mPrecision);
     135    }
     136
     137    return ;
     138}
     139
     140void
     141Csv::WritePointSetHeader()
     142{
     143    mCsvFile << "### point-set of a single photon pulse template"
     144             << endl
     145             << "### Slice's Amplitude determined by calculating the "
     146             << endl
     147             << "### value of maximum propability of slice -> AmplitudeMax "
     148             << endl
     149             << "### mean of slice -> AmplitudeMean "
     150             << endl
     151             << "### median of slice -> AmplitudeMedian "
     152             << endl
     153             << "### for each slice"
     154             << endl
     155             << "### "
     156             << endl
     157             << "### OverlayMethods (1) at Maximum, (2) at rising Edge" << endl;
     158
    119159    //name coulums header
    120     mCsvFile << "pixel [CHid]"          << ",";
    121     mCsvFile << "OverlayPosition"       << ",";
    122     mCsvFile << "AmplitudeMax [mV]"     << ",";
    123     mCsvFile << "AmplitudeMean [mV]"    << ",";
     160    mCsvFile << "TimeSlice [a.u.]"          << mSeparator;
     161    mCsvFile << "pixel [CHid]"          << mSeparator;
     162    mCsvFile << "Pulseorder [PhE]"          << mSeparator;
     163    mCsvFile << "OverlayPosition"       << mSeparator;
     164    mCsvFile << "AmplitudeMax [mV]"     << mSeparator;
     165    mCsvFile << "AmplitudeMean [mV]"    << mSeparator;
    124166    mCsvFile << "AmplitudeMedian [mV]";
    125167    mCsvFile << endl;
    126 
    127     //fill coulums
    128     for (int TimeSlice=1;TimeSlice<=nbins;TimeSlice++)
    129     {
    130         mCsvFile << pixel->mChid << "," ;
    131         mCsvFile << overlayMethod << "," ;
    132         mCsvFile << TimeSlice << "," ;
    133         mCsvFile << Max_histo->GetBinContent(TimeSlice) << ",";
    134         mCsvFile << Mean_histo->GetBinContent(TimeSlice) << ",";
    135         mCsvFile << Median_histo->GetBinContent(TimeSlice) << endl;
    136     }
    137     return 0;
    138 }
    139 
    140 void
    141 Csv::WritePointSetExplain()
    142 {
    143     mCsvFile << "### point-set of a single photon pulse template"
    144              << endl;
    145              << "### Slice's Amplitude determined by calculating the "
    146              << endl
    147              << "### value of maximum propability of slice -> AmplitudeMax "
    148              << endl
    149              << "### mean of slice -> AmplitudeMean "
    150              << endl
    151              << "### median of slice -> AmplitudeMedian "
    152              << endl
    153              << "### for each slice"
    154              << endl
    155              << "### " << endl;
    156 }
    157 
     168}
     169
     170void
     171Csv::WritePulseAttributesHeader()
     172{
     173    //name coulums header
     174    mCsvFile << "pixel [CHid]"      << mSeparator;
     175    mCsvFile << "OverlayPosition"   << mSeparator;
     176    mCsvFile << "ModelName"         << mSeparator ;
     177    mCsvFile << "Bsl"               << mSeparator;
     178    mCsvFile << "BslErr"            << mSeparator;
     179    mCsvFile << "Height"            << mSeparator ;
     180    mCsvFile << "HeightErr"         << mSeparator ;
     181    mCsvFile << "T0"                << mSeparator ;
     182    mCsvFile << "T0Err"             << mSeparator ;
     183    mCsvFile << "T1"                << mSeparator ;
     184    mCsvFile << "T1Err"             << mSeparator ;
     185    mCsvFile << "Tau1"              << mSeparator ;
     186    mCsvFile << "Tau1Err"           << mSeparator ;
     187    mCsvFile << "Tau2"              << mSeparator ;
     188    mCsvFile << "Tau2Err"           << mSeparator ;
     189    mCsvFile << "Integral"          << mSeparator ;
     190    mCsvFile << "IntegralErr"       << mSeparator ;
     191    mCsvFile << "Amplitude"         << mSeparator ;
     192    mCsvFile << "AmplitudeErr"      << mSeparator ;
     193    mCsvFile << "Phe"               << mSeparator ;
     194    mCsvFile << "PheErr"            << mSeparator ;
     195    mCsvFile << "Order"             << mSeparator ;
     196    mCsvFile << "Type"              << mSeparator ;
     197    mCsvFile << "FitProb"           << mSeparator ;
     198    mCsvFile << "FitNCalls"         << mSeparator ;
     199    mCsvFile << "FitNdf"            << mSeparator ;
     200    mCsvFile << "Chi2"                     ;
     201    mCsvFile << endl;
     202}
    158203void
    159204Csv::WritePulseAttributes(
    160205        Pixel*          pixel,
    161206        Pulse*          pulse,
    162         TString         overlayMethod
     207        TString         overlayMethod,
     208        int             order
    163209        )
    164210{
    165     //name coulums header
    166     mCsvFile << "pixel [CHid]"      << ",";
    167     mCsvFile << "OverlayPosition"   << ",";
    168     mCsvFile << "ModelName"         << "," ;
    169     mCsvFile << "Bsl"               << ",";
    170     mCsvFile << "Height"            << "," ;
    171     mCsvFile << "T0"                << "," ;
    172     mCsvFile << "T1"                << "," ;
    173     mCsvFile << "Tau1"              << "," ;
    174     mCsvFile << "Tau2"              << "," ;
    175     mCsvFile << "Integral"          << "," ;
    176     mCsvFile << "Amplitude"         << "," ;
    177     mCsvFile << "PhE"               << "," ;
    178     mCsvFile << "Type"              << "," ;
    179     mCsvFile << "FitProb"           << "," ;
    180     mCsvFile << "FitNCalls"         << "," ;
    181     mCsvFile << "FitNdf"            << "," ;
    182     mCsvFile << "Chi2"                     ;
     211    //fill coulums
     212    mCsvFile << pixel->mChid << mSeparator ;
     213    mCsvFile << overlayMethod << mSeparator ;
     214    mCsvFile << pulse->GetName() << mSeparator ;
     215    mCsvFile.precision(12);
     216    mCsvFile << pulse->GetBsl() << mSeparator ;
     217    mCsvFile << pulse->GetBslErr() << mSeparator ;
     218    mCsvFile << pulse->GetHeight() << mSeparator ;
     219    mCsvFile << pulse->GetHeightErr() << mSeparator ;
     220    mCsvFile.precision(12);
     221    mCsvFile << pulse->GetT0() << mSeparator ;
     222    mCsvFile << pulse->GetT0Err() << mSeparator ;
     223    mCsvFile << pulse->GetT1() << mSeparator ;
     224    mCsvFile << pulse->GetT1Err() << mSeparator ;
     225    mCsvFile << pulse->GetTau1() << mSeparator ;
     226    mCsvFile << pulse->GetTau1Err() << mSeparator ;
     227    mCsvFile << pulse->GetTau2() << mSeparator ;
     228    mCsvFile << pulse->GetTau2Err() << mSeparator ;
     229    mCsvFile.precision(8);
     230    mCsvFile << pulse->GetIntegral() << mSeparator ;
     231    mCsvFile << pulse->GetAmplitude() << mSeparator ;
     232    mCsvFile.precision(2);
     233    mCsvFile << pulse->GetPhE() << mSeparator ;
     234    mCsvFile << pulse->GetPhEErr() << mSeparator ;
     235    mCsvFile << order << mSeparator ;
     236    mCsvFile << pulse->GetType() << mSeparator ;
     237    mCsvFile << pulse->GetFitProb() << mSeparator ;
     238    mCsvFile.precision(12);
     239    mCsvFile << pulse->GetFitNCalls() << mSeparator ;
     240    mCsvFile << pulse->GetFitNdf() << mSeparator ;
     241    mCsvFile << pulse->GetChi2() << mSeparator ;
    183242    mCsvFile << endl;
    184 
    185     //fill coulums
    186     for (int TimeSlice=1;TimeSlice<=nbins;TimeSlice++)
    187     {
    188         mCsvFile << pixel->mChid << "," ;
    189         mCsvFile << overlayMethod << "," ;
    190         mCsvFile << pulse->GetName() << "," ;
    191         mCsvFile << pulse->GetBsl() << "," ;
    192         mCsvFile << pulse->GetHeight() << "," ;
    193         mCsvFile << pulse->GetT0() << "," ;
    194         mCsvFile << pulse->GetT1() << "," ;
    195         mCsvFile << pulse->GetTau1() << "," ;
    196         mCsvFile << pulse->GetTau2() << "," ;
    197         mCsvFile << pulse->GetIntegral() << "," ;
    198         mCsvFile << pulse->GetAmplitude() << "," ;
    199         mCsvFile << pulse->GetPhE() << "," ;
    200         mCsvFile << pulse->GetType() << "," ;
    201         mCsvFile << pulse->GetFitProb() << "," ;
    202         mCsvFile << pulse->GetFitNCalls() << "," ;
    203         mCsvFile << pulse->GetFitNdf() << "," ;
    204         mCsvFile << pulse->GetChi2() << "," ;
    205         mCsvFile << endl;
    206     }
     243    mCsvFile.precision(mPrecision);
    207244}
    208245
     
    211248    if (mVerbLevel > 2) cout << "...opening csv file" << endl;
    212249    mCsvFile.open( mPath );
     250    mPrecision = mCsvFile.precision();
    213251}
    214252
     
    223261// ===========================================================================
    224262
    225 void
     263TString
    226264Csv::GetFilename(){
    227265    return mFilename;
    228266}
    229267
    230 void
     268TString
    231269Csv::GetPath(){
    232270    return mPath;
Note: See TracChangeset for help on using the changeset viewer.