ROOT logo
Double_t ApplyCorrections(const char* datafile, const char* datatask, const char* corrfile, const char* idstring ,const char* outfile, const char* gifdir = 0)
//void ApplyCorrections()
{

// tmp setting
//     const char* datafile = "/lustre/alice/train/V005.PbPb/2010-11-28_0258.4230/mergedPeriods/data/PbPb/LHC10h.pass1/mknichel_dNdPtPbPb_gt_v0_c0.root";
//     const char* datatask = "mknichel_dNdPtPbPb_gt_v0_c0";
//     const char* corrfile = "/u/mknichel/alice/dNdPt/2010-11-28/corrMatr_gt_v0_c0.root";
//     const char* idstring = "gt_v0_c0";
//     const char* outfile = "/u/mknichel/alice/dNdPt/2010-11-28/finalSpectra_v0_c0.root";
//     const char* gifdir = "/u/mknichel/alice/dNdPt/2010-11-28";
    
    // settings vor zVertex cut (event and track level)
    Double_t zVert = 10.0;
    
    // setting on eta cut (track level)
    Double_t eta = 0.8;
    
    //load required libraries
    //load required libraries    
    gSystem->AddIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/ -I$ALICE_ROOT/include -I$ALICE_ROOT/STEER  -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWG0 -I$ALICE_ROOT/PWGPP -I$ALICE_ROOT/PWG2 -I$ALICE_ROOT/PWG3 -I$ALICE_ROOT/PWG3/vertexingHF -I$ALICE_ROOT/PWG4 -I$ALICE_ROOT/CORRFW -I$ALICE_ROOT/TPC -I$ALICE_ROOT/TRD -I$ALICE_ROOT/PWG3/muon -I$ALICE_ROOT/JETAN -I$ALICE_ROOT/ANALYSIS/Tender");
    
  gSystem->Load("libCore");
  gSystem->Load("libPhysics");
  gSystem->Load("libMinuit");
  gSystem->Load("libGui");
  gSystem->Load("libXMLParser");

  gSystem->Load("libGeom");
  gSystem->Load("libVMC");

  gSystem->Load("libNet");

  gSystem->Load("libSTEERBase");
  gSystem->Load("libESD");
  gSystem->Load("libCDB");
  gSystem->Load("libRAWDatabase");
  gSystem->Load("libRAWDatarec");
  gSystem->Load("libANALYSIS");

    
    
    gSystem->Load("libANALYSIS.so");
    gSystem->Load("libANALYSISalice.so");
    gSystem->Load("libTENDER.so");
    gSystem->Load("libCORRFW.so");
    gSystem->Load("libPWG0base.so");    
    gSystem->Load("libPWG0dep"); 
    gSystem->Load("libPWG0selectors.so");
    

    // make plots nicer
    gROOT->SetStyle("Plain");
    gStyle->SetPalette(1);
    
    // array for all histograms to be saves
    TObjArray* Hists = new TObjArray();
    
    // open file with correction matrices
    TFile *fcorr = TFile::Open(corrfile,"READ");
    if (!fcorr) return -2;
    
    // load data
    TFile* fdata = TFile::Open(datafile,"READ");
    if (!fdata) return -1;
    TList* ldata = dynamic_cast<TList*>(fdata->Get(datatask));
    if (!ldata) return -1;
    AlidNdPtAnalysisPbPb *obj = dynamic_cast<AlidNdPtAnalysisPbPb*>(ldata->FindObject("dNdPtAnalysisPbPb"));
    if (!obj) return -1;
    
    //Event statistics
    THnSparse *fRecEventHist2 = obj->GetRecEventHist2(); //reconstructed events	
    TH2D* h2RecEvent2All = fRecEventHist2->Projection(0,1)->Clone("h2RecEvent2All");
    fRecEventHist2->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01);//zVer
    TH2D* h2RecEvent2 = fRecEventHist2->Projection(0,1)->Clone("h2RecEvent2");
    
    Double_t ReconstructedEvents = h2RecEvent2->Integral();
    Double_t ReconstructedEventsAll = h2RecEvent2All->Integral();
    
    Hists->Add(h2RecEvent2);
    Hists->Add(h2RecEvent2All);
  
    printf("=== Number of events from DATA                      %lf ===\n",ReconstructedEvents);
    printf("=== Number of events from DATA (before zVertex cut) %lf ===\n",ReconstructedEventsAll);        
  
    TH1D* h1ReconstructedEvents = new TH1D("h1ReconstructedEvents","h1ReconstructedEvents",1,0,1);
    TH1D* h1ReconstructedEventsAll = new TH1D("h1ReconstructedEventsAll","h1ReconstructedEventsAll",1,0,1);
    
    h1ReconstructedEvents->Fill(0,ReconstructedEvents);
    h1ReconstructedEvents->SetEntries(ReconstructedEvents);
    h1ReconstructedEventsAll->Fill(0,ReconstructedEventsAll);
    h1ReconstructedEventsAll->SetEntries(ReconstructedEventsAll);
        
    Hists->Add(h1ReconstructedEvents);
    Hists->Add(h1ReconstructedEventsAll);

     // retrieve tracks
    THnSparse* fRecTrackHist2 = obj->GetRecTrackHist2(2); //after all cuts (2)
    fRecTrackHist2->GetAxis(0)->SetRangeUser(-zVert, zVert-0.01); //zVertex
    fRecTrackHist2->GetAxis(2)->SetRangeUser(-eta, eta-0.01); // eta   
   
    TH1D* h1RecTrackHist2_zv = fRecTrackHist2->Projection(0)->Clone("h1RecTrackHist2_zv");
    TH1D* h1RecTrackHist2_pt = fRecTrackHist2->Projection(1)->Clone("h1RecTrackHist2_pt");
    TH1D* h1RecTrackHist2_eta = fRecTrackHist2->Projection(2)->Clone("h1RecTrackHist2_eta");
   
    Hists->Add(h1RecTrackHist2_zv);
    Hists->Add(h1RecTrackHist2_pt);
    Hists->Add(h1RecTrackHist2_eta);

    // retrieve correction matrices for tracking efficiency (note different binning!)
    TH1D* h1TrackCorr_pt  = (TH1D*)fcorr->Get("h1TrackCorr_pt");  
    TH1D* h1TrackCorr_eta = (TH1D*)fcorr->Get("h1TrackCorr_eta");
        
    // retrieve correction matrices for secondaries (note different binning!)
    TH1D* h1SecCorr_pt  = (TH1D*)fcorr->Get("h1SecCorr_pt");  
    TH1D* h1SecCorr_eta = (TH1D*)fcorr->Get("h1SecCorr_eta");

    // create corrected spectra (as clone of raw data)
    TH1D* h1Corrected_pt  = h1RecTrackHist2_pt->Clone("h1Corrected_pt");
    TH1D* h1Corrected_eta  = h1RecTrackHist2_eta->Clone("h1Corrected_eta");

    // secondaries correction for pt spectrum
    for (int i=1; i <= h1Corrected_pt->GetNbinsX() ; i++) {
        Double_t pt = h1Corrected_pt->GetBinCenter(i);
        Double_t val = h1Corrected_pt->GetBinContent(i);
        Double_t err = h1Corrected_pt->GetBinError(i);
        if (pt >= 19) { pt = 19; }  // above 20 GeV corr matr have low statistics
        Double_t secCorr    = h1SecCorr_pt->GetBinContent(h1SecCorr_pt->FindBin(pt));
        Double_t secCorrErr = h1SecCorr_pt->GetBinError(h1SecCorr_pt->FindBin(pt));
        Double_t cval = val*secCorr;
        Double_t cerr = TMath::Sqrt(val*val*secCorrErr*secCorrErr + err*err*secCorr*secCorr);
        h1Corrected_pt->SetBinContent(i,cval);
        h1Corrected_pt->SetBinError(i,cerr);
    }

    // tracking efficiency correction pt spectrum
    for (int i=1; i <= h1Corrected_pt->GetNbinsX() ;i++) {
        Double_t pt = h1Corrected_pt->GetBinCenter(i);
        Double_t val = h1Corrected_pt->GetBinContent(i);
        Double_t err = h1Corrected_pt->GetBinError(i);
        if (pt >= 19) { pt = 19; } // above 20 GeV corr matr have low statistics
        Double_t effCorr    = h1TrackCorr_pt->GetBinContent(h1TrackCorr_pt->FindBin(pt));
        Double_t effCorrErr = h1TrackCorr_pt->GetBinError(h1TrackCorr_pt->FindBin(pt));
        
        Double_t cval = val*effCorr;
        Double_t cerr = TMath::Sqrt(val*val*effCorrErr*effCorrErr + err*err*effCorr*effCorr);
        h1Corrected_pt->SetBinContent(i,cval);
        h1Corrected_pt->SetBinError(i,cerr);
    }
    
    // for eta the correction is simpler because of same binning
    h1Corrected_eta->Multiply(h1SecCorr_eta);
    h1Corrected_eta->Multiply(h1TrackCorr_eta);
    
    Hists->Add(h1Corrected_pt);
    Hists->Add(h1Corrected_eta);

    // create final spectra (as clone of corrected data)
    TH1D* dNdPt   = h1Corrected_pt->Clone("dNdPt");
    TH1D* dNdEta  = h1Corrected_eta->Clone("dNdEta");
       
    // also uncorrected spectra (as clone of raw data)
    TH1D* dNdPt_raw   = h1RecTrackHist2_pt->Clone("dNdPt_raw");
    TH1D* dNdEta_raw  = h1RecTrackHist2_eta->Clone("dNdEta_raw");
       

//TF1 *fperi  = new TF1("fperi","1.00343-0.000608425*x-6.7038e-05*x*x",5.,40.);
//TF1 *fcent  = new TF1("cent","1.01074e+00-1.98127e-03*x-1.19903e-04*x*x",5.,40.);
TString id = TString(idstring);
if ( id.Contains("c0") || id.Contains("c5") ) {
  TF1 *fun  = new TF1("cent","1.01074e+00-1.98127e-03*x-1.19903e-04*x*x",5.,40.);    
  cout << "++++++++++++++++++++++++++++++++++++++" << endl;
  cout << "CENTRAL pt-resolution correction used!" << endl;
  cout << "++++++++++++++++++++++++++++++++++++++" << endl;
} else {
TF1 *fun  = new TF1("fperi","1.00343-0.000608425*x-6.7038e-05*x*x",5.,40.);
  cout << "+++++++++++++++++++++++++++++++++++++++++" << endl;
  cout << "PERIPHERAL pt-resolution correction used!" << endl;
  cout << "+++++++++++++++++++++++++++++++++++++++++" << endl;
}

    // normalization and finalization
    // 1/N_evt 1/(2 pi pt) 1/width 1/etarange
   for (int i=1; i <= dNdPt->GetNbinsX() ;i++) {
        Double_t pt = dNdPt->GetBinCenter(i);
        Double_t width = dNdPt->GetBinWidth(i);
        Double_t val = dNdPt->GetBinContent(i);
        Double_t err = dNdPt->GetBinError(i);
        Double_t corrPtResol = 1.0;
        corrPtResol = fun->Eval(pt);
        if (pt < 5.) { corrPtResol = 1.0; }
        Double_t cval = (val * corrPtResol)/(width * 2.0 * TMath::Pi() * 1.6 * ReconstructedEvents * pt);
        Double_t cerr = (err * corrPtResol)/(width * 2.0 * TMath::Pi() * 1.6 * ReconstructedEvents * pt);
        dNdPt->SetBinContent(i,cval);
        dNdPt->SetBinError(i,cerr);
    }
    // for dndeta again simpler
    dNdEta->Scale(1,"width");
    dNdEta->Scale(1./ReconstructedEvents);
    
    // normalization and finalization
    // 1/N_evt 1/(2 pi pt) 1/width 1/etarange
   for (int i=1; i <= dNdPt_raw->GetNbinsX() ;i++) {
        Double_t pt = dNdPt_raw->GetBinCenter(i);
        Double_t width = dNdPt_raw->GetBinWidth(i);
        Double_t val = dNdPt_raw->GetBinContent(i);
        Double_t err = dNdPt_raw->GetBinError(i);
        Double_t cval = val/(width * 2.0 * TMath::Pi() * 1.6 * ReconstructedEvents * pt);
        Double_t cerr = err/(width * 2.0 * TMath::Pi() * 1.6 * ReconstructedEvents * pt);
        dNdPt_raw->SetBinContent(i,cval);
        dNdPt_raw->SetBinError(i,cerr);
    }
    // for dndeta again simpler
    dNdEta_raw->Scale(1,"width");
    dNdEta_raw->Scale(1./ReconstructedEvents);
     
    dNdEta->SetMarkerStyle(21);
    dNdPt->SetMarkerStyle(21);
    dNdPt->SetTitle("; p_{T} (GeV/c) ; 1/N_{evt} 1/(2#pi p_{T}) (d^{2}N_{ch})/(d#eta dp_{T})^{-2}");
    dNdEta->SetTitle("; #eta ; 1/N_{evt} (d^{2}N_{ch})/(d#eta)");
    
    dNdPt_raw->SetTitle("; p_{T} (GeV/c) ; 1/N_{evt} 1/(2#pi p_{T}) (d^{2}N_{ch})/(d#eta dp_{T})^{-2}");
    dNdEta_raw->SetTitle("; #eta ; 1/N_{evt} (d^{2}N_{ch})/(d#eta)");
    
    Hists->Add(dNdEta_raw);
    Hists->Add(dNdPt_raw);
    Hists->Add(dNdEta);
    Hists->Add(dNdPt);
    
    
   // plot pictures and save to gifdir
    for (i=0; i < Hists->LastIndex(); i++) {    
        TCanvas* ctmp = PlotHist(Hists->At(i),idstring);
        if (gifdir && ctmp) {
            TString gif(gifdir);
            gif += '/';
            gif += ctmp->GetName();
            gif += ".gif";
            ctmp->SaveAs(gif.Data(),"gif");     
            delete ctmp;
        }
    }  

    // save all correction matrices and control histograms to file
    if (!outfile) { return; }
    TFile *out = TFile::Open(outfile,"RECREATE");
    Hists->Write();
    out->Close();    

    return ReconstructedEvents;

}

//___________________________________________________________________________
TCanvas* PlotHist(TObject* hobj, const char* label=0)
{
    TH1* h = dynamic_cast<TH1*>(hobj);
    if (!h) return 0;
    if (h->GetDimension() > 2) return 0;
    h->SetStats(0);
    if ( TString(h->GetName()).Contains("Events")) { h->SetStats(1); } 
    TString t(label);
    if (label) t += "_";
    t += h->GetName();
    h->SetTitle(t.Data());
    TCanvas* c = new TCanvas(t.Data(),t.Data());
    if (h->GetDimension() >= 1) {
        TString xlabel(h->GetXaxis()->GetTitle());
        if (xlabel.Contains("Pt")) { c->SetLogx();  c->SetLogy();  h->GetXaxis()->SetRangeUser(0.1 , 50.); }
        if (xlabel.Contains("p_{T}")) { c->SetLogx();  c->SetLogy();  h->GetXaxis()->SetRangeUser(0.1 , 50.); }        
    }
    if (h->GetDimension() == 2) {  
        TString ylabel(h->GetYaxis()->GetTitle());
        if (ylabel.Contains("Pt")) { c->SetLogy(); h->GetYaxis()->SetRangeUser(0.1 , 50.); }
        if (ylabel.Contains("p_{T}")) { c->SetLogy(); h->GetYaxis()->SetRangeUser(0.1 , 50.); }
        h->Draw("COLZ");
    }        
    if (h->GetDimension() == 1) {
        h->Draw();
    }
    return c;

}
 ApplyCorrections.C:1
 ApplyCorrections.C:2
 ApplyCorrections.C:3
 ApplyCorrections.C:4
 ApplyCorrections.C:5
 ApplyCorrections.C:6
 ApplyCorrections.C:7
 ApplyCorrections.C:8
 ApplyCorrections.C:9
 ApplyCorrections.C:10
 ApplyCorrections.C:11
 ApplyCorrections.C:12
 ApplyCorrections.C:13
 ApplyCorrections.C:14
 ApplyCorrections.C:15
 ApplyCorrections.C:16
 ApplyCorrections.C:17
 ApplyCorrections.C:18
 ApplyCorrections.C:19
 ApplyCorrections.C:20
 ApplyCorrections.C:21
 ApplyCorrections.C:22
 ApplyCorrections.C:23
 ApplyCorrections.C:24
 ApplyCorrections.C:25
 ApplyCorrections.C:26
 ApplyCorrections.C:27
 ApplyCorrections.C:28
 ApplyCorrections.C:29
 ApplyCorrections.C:30
 ApplyCorrections.C:31
 ApplyCorrections.C:32
 ApplyCorrections.C:33
 ApplyCorrections.C:34
 ApplyCorrections.C:35
 ApplyCorrections.C:36
 ApplyCorrections.C:37
 ApplyCorrections.C:38
 ApplyCorrections.C:39
 ApplyCorrections.C:40
 ApplyCorrections.C:41
 ApplyCorrections.C:42
 ApplyCorrections.C:43
 ApplyCorrections.C:44
 ApplyCorrections.C:45
 ApplyCorrections.C:46
 ApplyCorrections.C:47
 ApplyCorrections.C:48
 ApplyCorrections.C:49
 ApplyCorrections.C:50
 ApplyCorrections.C:51
 ApplyCorrections.C:52
 ApplyCorrections.C:53
 ApplyCorrections.C:54
 ApplyCorrections.C:55
 ApplyCorrections.C:56
 ApplyCorrections.C:57
 ApplyCorrections.C:58
 ApplyCorrections.C:59
 ApplyCorrections.C:60
 ApplyCorrections.C:61
 ApplyCorrections.C:62
 ApplyCorrections.C:63
 ApplyCorrections.C:64
 ApplyCorrections.C:65
 ApplyCorrections.C:66
 ApplyCorrections.C:67
 ApplyCorrections.C:68
 ApplyCorrections.C:69
 ApplyCorrections.C:70
 ApplyCorrections.C:71
 ApplyCorrections.C:72
 ApplyCorrections.C:73
 ApplyCorrections.C:74
 ApplyCorrections.C:75
 ApplyCorrections.C:76
 ApplyCorrections.C:77
 ApplyCorrections.C:78
 ApplyCorrections.C:79
 ApplyCorrections.C:80
 ApplyCorrections.C:81
 ApplyCorrections.C:82
 ApplyCorrections.C:83
 ApplyCorrections.C:84
 ApplyCorrections.C:85
 ApplyCorrections.C:86
 ApplyCorrections.C:87
 ApplyCorrections.C:88
 ApplyCorrections.C:89
 ApplyCorrections.C:90
 ApplyCorrections.C:91
 ApplyCorrections.C:92
 ApplyCorrections.C:93
 ApplyCorrections.C:94
 ApplyCorrections.C:95
 ApplyCorrections.C:96
 ApplyCorrections.C:97
 ApplyCorrections.C:98
 ApplyCorrections.C:99
 ApplyCorrections.C:100
 ApplyCorrections.C:101
 ApplyCorrections.C:102
 ApplyCorrections.C:103
 ApplyCorrections.C:104
 ApplyCorrections.C:105
 ApplyCorrections.C:106
 ApplyCorrections.C:107
 ApplyCorrections.C:108
 ApplyCorrections.C:109
 ApplyCorrections.C:110
 ApplyCorrections.C:111
 ApplyCorrections.C:112
 ApplyCorrections.C:113
 ApplyCorrections.C:114
 ApplyCorrections.C:115
 ApplyCorrections.C:116
 ApplyCorrections.C:117
 ApplyCorrections.C:118
 ApplyCorrections.C:119
 ApplyCorrections.C:120
 ApplyCorrections.C:121
 ApplyCorrections.C:122
 ApplyCorrections.C:123
 ApplyCorrections.C:124
 ApplyCorrections.C:125
 ApplyCorrections.C:126
 ApplyCorrections.C:127
 ApplyCorrections.C:128
 ApplyCorrections.C:129
 ApplyCorrections.C:130
 ApplyCorrections.C:131
 ApplyCorrections.C:132
 ApplyCorrections.C:133
 ApplyCorrections.C:134
 ApplyCorrections.C:135
 ApplyCorrections.C:136
 ApplyCorrections.C:137
 ApplyCorrections.C:138
 ApplyCorrections.C:139
 ApplyCorrections.C:140
 ApplyCorrections.C:141
 ApplyCorrections.C:142
 ApplyCorrections.C:143
 ApplyCorrections.C:144
 ApplyCorrections.C:145
 ApplyCorrections.C:146
 ApplyCorrections.C:147
 ApplyCorrections.C:148
 ApplyCorrections.C:149
 ApplyCorrections.C:150
 ApplyCorrections.C:151
 ApplyCorrections.C:152
 ApplyCorrections.C:153
 ApplyCorrections.C:154
 ApplyCorrections.C:155
 ApplyCorrections.C:156
 ApplyCorrections.C:157
 ApplyCorrections.C:158
 ApplyCorrections.C:159
 ApplyCorrections.C:160
 ApplyCorrections.C:161
 ApplyCorrections.C:162
 ApplyCorrections.C:163
 ApplyCorrections.C:164
 ApplyCorrections.C:165
 ApplyCorrections.C:166
 ApplyCorrections.C:167
 ApplyCorrections.C:168
 ApplyCorrections.C:169
 ApplyCorrections.C:170
 ApplyCorrections.C:171
 ApplyCorrections.C:172
 ApplyCorrections.C:173
 ApplyCorrections.C:174
 ApplyCorrections.C:175
 ApplyCorrections.C:176
 ApplyCorrections.C:177
 ApplyCorrections.C:178
 ApplyCorrections.C:179
 ApplyCorrections.C:180
 ApplyCorrections.C:181
 ApplyCorrections.C:182
 ApplyCorrections.C:183
 ApplyCorrections.C:184
 ApplyCorrections.C:185
 ApplyCorrections.C:186
 ApplyCorrections.C:187
 ApplyCorrections.C:188
 ApplyCorrections.C:189
 ApplyCorrections.C:190
 ApplyCorrections.C:191
 ApplyCorrections.C:192
 ApplyCorrections.C:193
 ApplyCorrections.C:194
 ApplyCorrections.C:195
 ApplyCorrections.C:196
 ApplyCorrections.C:197
 ApplyCorrections.C:198
 ApplyCorrections.C:199
 ApplyCorrections.C:200
 ApplyCorrections.C:201
 ApplyCorrections.C:202
 ApplyCorrections.C:203
 ApplyCorrections.C:204
 ApplyCorrections.C:205
 ApplyCorrections.C:206
 ApplyCorrections.C:207
 ApplyCorrections.C:208
 ApplyCorrections.C:209
 ApplyCorrections.C:210
 ApplyCorrections.C:211
 ApplyCorrections.C:212
 ApplyCorrections.C:213
 ApplyCorrections.C:214
 ApplyCorrections.C:215
 ApplyCorrections.C:216
 ApplyCorrections.C:217
 ApplyCorrections.C:218
 ApplyCorrections.C:219
 ApplyCorrections.C:220
 ApplyCorrections.C:221
 ApplyCorrections.C:222
 ApplyCorrections.C:223
 ApplyCorrections.C:224
 ApplyCorrections.C:225
 ApplyCorrections.C:226
 ApplyCorrections.C:227
 ApplyCorrections.C:228
 ApplyCorrections.C:229
 ApplyCorrections.C:230
 ApplyCorrections.C:231
 ApplyCorrections.C:232
 ApplyCorrections.C:233
 ApplyCorrections.C:234
 ApplyCorrections.C:235
 ApplyCorrections.C:236
 ApplyCorrections.C:237
 ApplyCorrections.C:238
 ApplyCorrections.C:239
 ApplyCorrections.C:240
 ApplyCorrections.C:241
 ApplyCorrections.C:242
 ApplyCorrections.C:243
 ApplyCorrections.C:244
 ApplyCorrections.C:245
 ApplyCorrections.C:246
 ApplyCorrections.C:247
 ApplyCorrections.C:248
 ApplyCorrections.C:249
 ApplyCorrections.C:250
 ApplyCorrections.C:251
 ApplyCorrections.C:252
 ApplyCorrections.C:253
 ApplyCorrections.C:254
 ApplyCorrections.C:255
 ApplyCorrections.C:256
 ApplyCorrections.C:257
 ApplyCorrections.C:258
 ApplyCorrections.C:259
 ApplyCorrections.C:260
 ApplyCorrections.C:261
 ApplyCorrections.C:262
 ApplyCorrections.C:263
 ApplyCorrections.C:264
 ApplyCorrections.C:265
 ApplyCorrections.C:266
 ApplyCorrections.C:267
 ApplyCorrections.C:268
 ApplyCorrections.C:269
 ApplyCorrections.C:270
 ApplyCorrections.C:271
 ApplyCorrections.C:272
 ApplyCorrections.C:273
 ApplyCorrections.C:274
 ApplyCorrections.C:275
 ApplyCorrections.C:276
 ApplyCorrections.C:277
 ApplyCorrections.C:278
 ApplyCorrections.C:279
 ApplyCorrections.C:280
 ApplyCorrections.C:281
 ApplyCorrections.C:282
 ApplyCorrections.C:283
 ApplyCorrections.C:284