alignChamSum.cc File Reference

#include "Alignment/AlignChamW0.h"
#include "Geometry/GChamGeo.h"
#include <TChain.h>
#include <TFile.h>
#include <TProfile.h>
#include <iostream>

Go to the source code of this file.

Functions

int main (int argc, char **argv)


Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 22 of file alignChamSum.cc.

References f, kNCham, kNPlane, GChamGeo::Name(), name, nt, p, and GChamGeo::Pitch().

00022                                 {
00023 
00024   AlResidNt* nt = new AlResidNt;
00025   TChain* restree = new TChain("AlignChamW0_CAlign/resid0");
00026   for (int i = 1; i < argc; ++i) restree->Add(argv[i]);
00027   restree->SetBranchAddress("fNt", &nt);
00028   
00029   int nEnt = restree->GetEntries();
00030   cout << "Got " << nEnt << " entries" << endl;
00031 
00032   TFile* f = TFile::Open("alignSummary.root", "recreate");
00033   
00034   TProfile* resVsQP1[9][4];
00035   TProfile* resVsQP2[9][4];
00036   TProfile* resVsU1[9][4];
00037   TProfile* resVsU2[9][4];
00038   TProfile* resVsUperp1[9][4];
00039   TProfile* resVsUperp2[9][4];
00040 
00041   double limu[9] = {
00042     10, 10, 10,
00043     50, 50, 50,
00044     80, 80, 100
00045   };
00046     
00047 
00048   char name[256], title[256];
00049   for (int c = 0; c < kNCham; ++c) {
00050     for (int p = 0; p < kNPlane; ++p) {
00051       sprintf(name, "resqp1%s%d", GChamGeo::Name(c), p + 1);
00052       sprintf(title, 
00053           "Residual vs Q/P, no BC, %s%d;Q/P (1/GeV/c);U_{cham}-U_{Fit} (w.s.)", 
00054           GChamGeo::Name(c), p + 1);
00055       resVsQP1[c][p] = new TProfile(name, title, 500, -0.25, 0.25);
00056 
00057       sprintf(name, "resqp2%s%d", GChamGeo::Name(c), p + 1);
00058       sprintf(title, 
00059           "Residual vs Q/P, with BC, %s%d;Q/P (1/GeV/c);U_{cham}-U_{Fit} (w.s.)", 
00060           GChamGeo::Name(c), p + 1);
00061       resVsQP2[c][p] = new TProfile(name, title, 500, -0.25, 0.25);
00062 
00063       sprintf(name, "resu1%s%d", GChamGeo::Name(c), p + 1);
00064       sprintf(title, 
00065           "Residual vs U, no BC, %s%d;U (cm);U_{cham}-U_{Fit} (w.s.)", 
00066           GChamGeo::Name(c), p + 1);
00067       resVsU1[c][p] = new TProfile(name, title, 500, -limu[c], limu[c]);
00068 
00069       sprintf(name, "resu2%s%d", GChamGeo::Name(c), p + 1);
00070       sprintf(title, 
00071           "Residual vs U, with BC, %s%d;U (cm);U_{cham}-U_{Fit} (w.s.)", 
00072           GChamGeo::Name(c), p + 1);
00073       resVsU2[c][p] = new TProfile(name, title, 500, -limu[c], limu[c]);
00074 
00075       sprintf(name, "resuperp1%s%d", GChamGeo::Name(c), p + 1);
00076       sprintf(title, 
00077           "Residual vs U_{perp}, no BC, %s%d;U_{perp} (cm);U_{cham}-U_{Fit} (w.s.)", 
00078           GChamGeo::Name(c), p + 1);
00079       resVsUperp1[c][p] = new TProfile(name, title, 500, -limu[c], limu[c]);
00080 
00081       sprintf(name, "resuperp2%s%d", GChamGeo::Name(c), p + 1);
00082       sprintf(title, 
00083           "Residual vs U_{perp}, with BC, %s%d;U_{perp} (cm);U_{cham}-U_{Fit} (w.s.)", 
00084           GChamGeo::Name(c), p + 1);
00085       resVsUperp2[c][p] = new TProfile(name, title, 500, -limu[c], limu[c]);
00086 
00087     }
00088   }
00089 
00090 
00091   for (int ent = 0; ent < nEnt; ++ent) {
00092     restree->GetEntry(ent);
00093     if (nt->poq > 150) continue;
00094 
00095     for (int c = 0; c < kNCham; ++c) {
00096       if (nt->poq < -limu[c]) continue;
00097 
00098       for (int p = 0; p < kNPlane; ++p) {
00099     if (nt->u[c][p] > 1000) continue;
00100 
00101     double res = nt->resid[c][p] / GChamGeo::Pitch(c);
00102     
00103     if (nt->nclust < 24) { // no BC
00104       resVsQP1[c][p]->Fill(1/nt->poq, res);
00105       resVsU1[c][p]->Fill(nt->u[c][p], res);
00106       resVsUperp1[c][p]->Fill(nt->uperp[c][p], res);
00107     }
00108     else {
00109       resVsQP2[c][p]->Fill(1/nt->poq, res);
00110       resVsU2[c][p]->Fill(nt->u[c][p], res);
00111       resVsUperp2[c][p]->Fill(nt->uperp[c][p], res);
00112     }
00113       }
00114     }
00115   }
00116 
00117   f->Write();
00118   delete f;
00119 }


Generated on Mon Nov 23 08:02:29 2009 for MIPP(E907) by  doxygen 1.4.7