File indexing completed on 2024-04-06 11:55:58
0001 #include "TChain.h"
0002 #include "TClonesArray.h"
0003
0004 void CocoaAna() {
0005
0006 gSystem->CompileMacro("NtupleObjects.cc","k");
0007
0008 TChain* chain = new TChain("CocoaTree");
0009 chain->AddFile("report.root",TChain::kBigNumber);
0010
0011 double chi2meas;
0012 double chi2cal;
0013 int ndof;
0014 int nfitparam;
0015 int noptobj;
0016 int nsensor2d;
0017 int ndistancemeter;
0018 int ndistancemeter1dim;
0019 int ntiltmeter;
0020 int ncops;
0021
0022 chain->SetBranchAddress("Chi2Measurements", &chi2meas);
0023 chain->SetBranchAddress("Chi2CalibratedParameters", &chi2cal);
0024 chain->SetBranchAddress("NDegreesOfFreedom", &ndof);
0025 chain->SetBranchAddress("NFitParameters", &nfitparam);
0026 chain->SetBranchAddress("NOptObjects", &noptobj);
0027 chain->SetBranchAddress("NSensor2D", &nsensor2d);
0028 chain->SetBranchAddress("NDistancemeter", &ndistancemeter);
0029 chain->SetBranchAddress("NDistancemeter1Dim", &ndistancemeter1dim);
0030 chain->SetBranchAddress("NTiltmeter", &ntiltmeter);
0031 chain->SetBranchAddress("NCops", &ncops);
0032
0033 TClonesArray* FitParamA = new TClonesArray("FitParam");
0034 TClonesArray* OptObjectA = new TClonesArray("OptObject");
0035 TClonesArray* Sensor2DMeasA = new TClonesArray("Sensor2DMeas");
0036 TClonesArray* DistancemeterMeasA = new TClonesArray("DistancemeterMeas");
0037 TClonesArray* Distancemeter1DimMeasA = new TClonesArray("Distancemeter1DimMeas");
0038 TClonesArray* TiltmeterMeasA = new TClonesArray("TiltmeterMeas");
0039 TClonesArray* CopsMeasA = new TClonesArray("CopsMeas");
0040
0041 chain->SetBranchAddress("FitParameters", &FitParamA);
0042 chain->SetBranchAddress("OptObjects", &OptObjectA);
0043 chain->SetBranchAddress("Sensor2DMeasurements", &Sensor2DMeasA);
0044 chain->SetBranchAddress("DistancemeterMeasurements", &DistancemeterMeasA);
0045 chain->SetBranchAddress("Distancemeter1DimMeasurements", &Distancemeter1DimMeasA);
0046 chain->SetBranchAddress("TiltmeterMeasurements", &TiltmeterMeasA);
0047 chain->SetBranchAddress("CopsMeasurements", &CopsMeasA);
0048
0049 int nEvents = chain -> GetEntries();
0050 int counter = 0;
0051
0052 for(int ev=0; ev<nEvents; ev++) {
0053
0054 counter++;
0055
0056 chain -> GetEntry(ev);
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110 cout << chi2meas << " " << chi2cal << " " << ndof << endl;
0111
0112 for (int np = 0; np<nfitparam; np++) {
0113
0114 FitParam* fitparam = (FitParam*) FitParamA->At(np);
0115 cout << np << " " << fitparam->Name << " " << fitparam->Quality << " " << " " << fitparam->InitialValue << " " << fitparam->InitialSigma << " " << fitparam->FittedValue << " " << endl;
0116
0117 }
0118
0119 for (int no = 0; no<noptobj; no++) {
0120
0121 OptObject* optobj = (OptObject*) OptObjectA->At(no);
0122 int pr = optobj->Parent; OptObject* optobjp = (OptObject*) OptObjectA->At(pr);
0123 cout << " " << optobj->CentreGlobal[0] << " " << optobj->CentreGlobal[1] << " " << optobj->CentreGlobal[2] << " " << optobj->CentreLocal[0] << " " << optobj->CentreLocal[1] << " " << optobj->CentreLocal[2] << endl;
0124 cout << " " << optobj->AnglesGlobal[0] << " " << optobj->AnglesGlobal[1] << " " << optobj->AnglesGlobal[2] << " " << optobj->AnglesLocal[0] << " " << optobj->AnglesLocal[1] << " " << optobj->AnglesLocal[2] << endl;
0125
0126 }
0127
0128 for (int ns = 0; ns<nsensor2d; ns++) {
0129
0130 Sensor2DMeas* sensor2d = (Sensor2DMeas*) Sensor2DMeasA->At(ns);
0131 cout << ns << " " << sensor2d->Name << " " << sensor2d->Position[0] << " " << sensor2d->PosError[0] << " " << sensor2d->SimulatedPosition[0] << " " << sensor2d->SimulatedPosition[0]-sensor2d->Position[0] << endl;
0132
0133 }
0134
0135 for (int ns = 0; ns<ndistancemeter; ns++) {
0136
0137 DistancemeterMeas* dist = (DistancemeterMeas*) DistancemeterMeasA->At(ns);
0138 cout << ns << " " << dist->Name << " " << dist->Distance << " " << dist->DisError << " " << dist->SimulatedDistance << endl;
0139
0140 }
0141
0142
0143
0144 }
0145
0146
0147
0148
0149 }