|
BmnRoot 26.10.0-210-gc52d34b0
Software framework of the BM@N experiment
|
#include "BmnAlignModels.h"#include "BmnDataFilters.h"#include "BmnDataReader.h"#include "BmnHit.h"#include "BmnHitRecord.h"#include "BmnWeightedLine.h"#include "CbmStsHit.h"#include "CbmStsTrack.h"#include "TClonesArray.h"#include "TF1.h"#include "TFile.h"#include "TMath.h"#include "TProfile.h"#include "TTree.h"#include "TTreeReaderValue.h"#include <algorithm>#include <cmath>#include <iostream>#include <vector>#include "fairlogger/Logger.h"Go to the source code of this file.
Functions | |
| int | vertex (const char *fileListPath="/home/igor/bmnroot/align_new/cfg/run9/9555.noa_rlerr.sample.list", const char *outPath="vertex.root", Long64_t maxEvents=1000) |
| Compare the SiBT beam line with the STS tracks at the target centre. | |
| int vertex | ( | const char * | fileListPath = "/home/igor/bmnroot/align_new/cfg/run9/9555.noa_rlerr.sample.list", |
| const char * | outPath = "vertex.root", | ||
| Long64_t | maxEvents = 1000 ) |
For every event with one hit in each SiBT station the beam is fitted as a straight line and taken at the target centre z_c. Every STS track the aligner would accept is fitted the way the aligner fits it - a weighted straight line per projection - and taken at the same z_c. The per-event ntuple is written out for interactive study, and a summary answers the phase 0 questions: the real beam error, where the tracks meet the beam and how far they scatter around it, the window that selects vertex tracks, and how many tracks of one event share its vertex hit (see Expansion.md).
The residual is r = beam - track at z_c. A track from z_v = z_c + dz gives r = (track slope - beam slope) * dz. A z offset of the tracker relative to the target has the same form, so the dz fitted from the slope dependence is the vertex z in the tracker frame, not the interaction depth. Before the alignment the station halves are shifted against each other, so tracks going to either side of the beam get a line of their own.
| fileListPath | text file listing the DST files, '#' lines are ignored |
| outPath | .root file for the ntuple and the profiles |
| maxEvents | number of events to read, 0 for all of them |
Definition at line 66 of file vertex.C.
References BmnWeightedLine::Add(), BmnWeightedLine::At(), BMN_TRACKS_CUT_STR, BmnAcceptHit(), BmnAcceptTrack(), TTree::Branch(), BmnWeightedLine::Chi2(), TFile::Close(), TString::Data(), TTree::Draw(), TTree::Fill(), TH1::Fit(), TString::Format(), TH1::GetEntries(), TH1::GetFunction(), TNamed::GetName(), CbmStsTrack::GetNStsHits(), TF1::GetParameter(), BmnHit::GetStation(), CbmStsTrack::GetStsHitIndex(), TTree::GetV1(), i, BmnDetectorModel::Init(), TObject::IsZombie(), TMath::KOrdStat(), TMath::Mean(), BmnWeightedLine::N(), TTreeReader::Next(), TMath::NormQuantile(), TMath::QuietNaN(), BmnDataReader::Reader(), TTree::SetEstimate(), BmnWeightedLine::Slope(), BmnDetectorModel::Target(), BmnWeightedLine::Var(), BmnHitRecord::Weight(), TFile::Write(), BmnDetectorModel::Layer::zEnd, and BmnDetectorModel::Layer::zStart.
Referenced by KFParticle::KFParticle(), KFParticleSIMD::KFParticleSIMD(), compareA(), DistFromPointToLine3D(), BmnTrackingQaOffline::DoAnalisys(), BmnLambdaEmbeddingQa::DoDigiAnalysis(), BmnLambdaEmbeddingQa::DoDrawEventsWithEmbeddedSignals(), BmnLambdaEmbeddingQa::DoEffAnalysis(), BmnLambdaEmbeddingQa::DoInnerTrackerRecoEfficiency(), EmbDstView(), BmnLambdaEmbedding::Embedding(), CbmStsFindTracksQa::Exec(), CbmStsReconstructionQa::Exec(), extractVertAppr(), FilterPV(), FilterPV(), CbmPrimaryVertexFinder::FindPrimaryVertex(), CbmPVFinderKF::FindPrimaryVertex(), BmnVertexFinder::FindVZByVirtualPlanes(), SrcVertexFinder::FindVZByVirtualPlanes(), BmnAligner::FitTargetZ(), CbmMCTrack::GetStartVertex(), BmnLambdaEmbedding::ListOfEventsWithReconstructedVp(), BmnAlignTestTask::Make(), outFigs(), BmnTrackConv::ProcessEVE(), read_dst_example(), MpdPlutoGenerator::ReadEvent(), and run_reco_bmn().