#include #include #include #include "TString.h" #include "TChain.h" #include "TGraph.h" #include "TGraphErrors.h" #include "TCanvas.h" #include "TMath.h" #include "TPad.h" #include "TH1.h" #include "TH2.h" #include "TF1.h" #include "TStyle.h" #include "TSystem.h" #include "TPaveText.h" #include "TROOT.h" #include "../src/TCtrack.h" #include "../src/TCcluster.h" #include "../src/TCclusterSort.h" #include #include #include #include "cuts.C" void pull(TString files){ TChain myChain("at"); TH1D *pullu = new TH1D("pullu","",500,-10,10); pullu->SetXTitle("pull u"); pullu->SetYTitle("Number of tracks"); pullu->SetStats(kFALSE); TH1D *pullv = new TH1D("pullv","",500,-10,10); pullv->SetXTitle("pull v"); pullv->SetYTitle("Number of tracks"); pullv->SetStats(kFALSE); TH1D *pullw = new TH1D("pullw","",500,-10,10); pullw->SetXTitle("pull w"); pullw->SetYTitle("Number of tracks"); pullw->SetStats(kFALSE); TH1D *resu = new TH1D("resu","",500,-1,1); resu->SetXTitle("residual u [cm]"); TH1D *resv = new TH1D("resv","",500,-0.1,0.1); resv->SetXTitle("residual v [cm]"); TH1D *resw = new TH1D("resw","",500,-0.1,0.1); resw->SetXTitle("residual w [cm]"); cout << "Adding " << myChain.Add(files) << " to the chain" << endl; Int_t nevent = myChain.GetEntries(); TCtrack *intr=0; myChain.SetBranchAddress("track", &intr); //event loop for (Int_t iev=0;ievFill(c.getRes().X()/c.getErr().X()); pullv->Fill(c.getRes().Y()/c.getErr().Y()); pullw->Fill(c.getRes().Z()/c.getErr().Z()); resu->Fill(c.getRes().X()); resv->Fill(c.getRes().Y()); resw->Fill(c.getRes().Z()); } } } TCanvas *canvas = new TCanvas(); pullv->Draw(); canvas = new TCanvas(); pullw->Draw(); canvas = new TCanvas(); pullu->Draw(); TCanvas *canvasr = new TCanvas(); resv->Draw(); canvasr = new TCanvas(); resw->Draw(); canvasr = new TCanvas(); resu->Draw(); }