CbmRoot
Loading...
Searching...
No Matches
CbmBbaAlignTask Class Reference

#include <CbmBbaAlignTask.h>

Inheritance diagram for CbmBbaAlignTask:
[legend]
Collaboration diagram for CbmBbaAlignTask:
[legend]

Classes

struct  Histograms
 
struct  Sensor
 
struct  TrackContainer
 
class  Trajectory
 

Public Types

enum  AlignmentMode { station , sensor }
 

Public Member Functions

 CbmBbaAlignTask (const char *name="CbmBbaAlignTask", Int_t iVerbose=0, TString histoFileName="./CbmBbaAlignmentHisto.root", size_t nMaxTracks=1000)
 
InitStatus Init ()
 
void Exec (Option_t *opt)
 
void Finish ()
 
void SetSimulatedMisalignmentRange (double range)
 
double GetSimulatedMisalignmentRange () const
 
void SetRandomSeed (int seed)
 
int GetRandomSeed () const
 
void SetMaxTracks (size_t nMaxTracks)
 
size_t GetMaxTracks () const
 

Private Member Functions

unsigned SelectTracks (TClonesArray *inputTracks, std::vector< TrackContainer > &tracks)
 
std::vector< SensorSensorsFromTracks (const std::vector< TrackContainer > &tracks) const
 
std::vector< cbm::bba::AlignmentBodyCreateAndSetAlignmentBodies (AlignmentMode mode, std::vector< Sensor > &sensors) const
 
void SetReferences (const std::vector< Sensor > &sensors, std::vector< TrackContainer > &tracks) const
 
std::vector< bba::Parameter > CreateAlignmentParameters () const
 
std::vector< double > InvertParameters (std::vector< double > par) const
 
std::vector< double > DiffParameters (const std::vector< double > &par1, const std::vector< double > &par2) const
 
std::string PrintParameters (const std::vector< double > &par) const
 
std::string PrintRMSE (const std::vector< bba::Parameter > &par, const std::vector< double > &parMC, const std::vector< double > &parValues) const
 
std::vector< double > SimulateMisalignment (const std::vector< bba::Parameter > &par, std::vector< TrackContainer > &tracks, std::vector< cbm::bba::AlignmentBody > &AlignmentBodies) const
 
void InitializeHistograms ()
 
void FillHistograms (const std::vector< TrackContainer > &tracks, Histograms &histo)
 
void WriteObjectsCurFile (TObject *obj)
 
void SetAlignment (const std::vector< double > &par, std::vector< cbm::bba::AlignmentBody > &AlignmentBodies) const
 
void ApplyAlignment (const std::vector< double > &par, std::vector< TrackContainer > &tracks, std::vector< cbm::bba::AlignmentBody > &AlignmentBodies, bool invert) const
 
double CostFunction (const std::vector< double > &par, std::vector< TrackContainer > &tracks)
 
double CostFunction (const std::vector< double > &par)
 
std::pair< std::string, TGeoHMatrix > CreateAlignmentNode (std::string path, double shiftX, double shiftY, double shiftZ, double rotX, double rotY, double rotZ) const
 
std::map< std::string, TGeoHMatrix > CreateAlignmentMatrices (const std::vector< double > &par) const
 
 ClassDef (CbmBbaAlignTask, 0)
 

Private Attributes

TString fMatrixOutFileName {"AlignmentMatrices.root"}
 
std::vector< TrackContainerfTracks
 
std::vector< SensorfSensors
 
std::vector< cbm::bba::AlignmentBodyfAlignmentBodies
 
TClonesArray * fInputStsTracks {nullptr}
 
CbmKfTrackFitter< cbm::algo::kf::DoFitTime::NfFitter
 
int fNtrackingStations {0}
 
size_t fNevents {0}
 
size_t fNmaxTracks {0}
 
size_t fNcallsCost {}
 
double fSimulatedMisalignmentRange {0.}
 
int fRandomSeed {1}
 
std::vector< double > fParMC
 
std::vector< double > fParStart
 
AlignmentMode fAlignmentMode {station}
 
double fCostIdeal {1.e10}
 
double fCostInitial {0.}
 
int fNthreads {1}
 
long fFixedNdf {-1}
 
Histograms fHistoBeforeAlignment
 
Histograms fHistoAfterAlignment
 
TString fHistoFileName {"CbmBbaAlignmentHisto.root"}
 
TFile * fHistoFile {nullptr}
 
TDirectory * fHistoDir {nullptr}
 

Detailed Description

Definition at line 37 of file CbmBbaAlignTask.h.

Member Enumeration Documentation

◆ AlignmentMode

Enumerator
station 
sensor 

Definition at line 47 of file CbmBbaAlignTask.h.

Constructor & Destructor Documentation

◆ CbmBbaAlignTask()

CbmBbaAlignTask::CbmBbaAlignTask ( const char * name = "CbmBbaAlignTask",
Int_t iVerbose = 0,
TString histoFileName = "./CbmBbaAlignmentHisto.root",
size_t nMaxTracks = 1000 )

Definition at line 46 of file CbmBbaAlignTask.cxx.

References fHistoDir, fHistoFile, fHistoFileName, and fNmaxTracks.

Referenced by ClassDef().

Member Function Documentation

◆ ApplyAlignment()

void CbmBbaAlignTask::ApplyAlignment ( const std::vector< double > & par,
std::vector< TrackContainer > & tracks,
std::vector< cbm::bba::AlignmentBody > & AlignmentBodies,
bool invert = false ) const
private

◆ ClassDef()

CbmBbaAlignTask::ClassDef ( CbmBbaAlignTask ,
0  )
private

References CbmBbaAlignTask().

◆ CostFunction() [1/2]

double CbmBbaAlignTask::CostFunction ( const std::vector< double > & par)
private

Definition at line 970 of file CbmBbaAlignTask.cxx.

References CostFunction(), and fTracks.

◆ CostFunction() [2/2]

double CbmBbaAlignTask::CostFunction ( const std::vector< double > & par,
std::vector< TrackContainer > & tracks )
private

◆ CreateAlignmentMatrices()

std::map< std::string, TGeoHMatrix > CbmBbaAlignTask::CreateAlignmentMatrices ( const std::vector< double > & par) const
private

Definition at line 1112 of file CbmBbaAlignTask.cxx.

References CreateAlignmentNode(), fAlignmentBodies, and fSensors.

Referenced by Finish().

◆ CreateAlignmentNode()

std::pair< std::string, TGeoHMatrix > CbmBbaAlignTask::CreateAlignmentNode ( std::string path,
double shiftX,
double shiftY,
double shiftZ,
double rotX,
double rotY,
double rotZ ) const
private

Definition at line 1029 of file CbmBbaAlignTask.cxx.

Referenced by CreateAlignmentMatrices().

◆ CreateAlignmentParameters()

std::vector< bba::Parameter > CbmBbaAlignTask::CreateAlignmentParameters ( ) const
private

Definition at line 571 of file CbmBbaAlignTask.cxx.

References fAlignmentBodies, fNtrackingStations, and fSimulatedMisalignmentRange.

Referenced by Finish().

◆ CreateAndSetAlignmentBodies()

std::vector< cbm::bba::AlignmentBody > CbmBbaAlignTask::CreateAndSetAlignmentBodies ( CbmBbaAlignTask::AlignmentMode mode,
std::vector< Sensor > & sensors ) const
private

Definition at line 491 of file CbmBbaAlignTask.cxx.

References fNtrackingStations, sensor, and station.

Referenced by Finish().

◆ DiffParameters()

std::vector< double > CbmBbaAlignTask::DiffParameters ( const std::vector< double > & par1,
const std::vector< double > & par2 ) const
private

Definition at line 645 of file CbmBbaAlignTask.cxx.

Referenced by CostFunction(), and Finish().

◆ Exec()

void CbmBbaAlignTask::Exec ( Option_t * opt)

Definition at line 134 of file CbmBbaAlignTask.cxx.

References fInputStsTracks, fNevents, fTracks, and SelectTracks().

◆ FillHistograms()

◆ Finish()

◆ GetMaxTracks()

size_t CbmBbaAlignTask::GetMaxTracks ( ) const
inline

Definition at line 115 of file CbmBbaAlignTask.h.

References fNmaxTracks.

◆ GetRandomSeed()

int CbmBbaAlignTask::GetRandomSeed ( ) const
inline

Definition at line 113 of file CbmBbaAlignTask.h.

References fRandomSeed.

◆ GetSimulatedMisalignmentRange()

double CbmBbaAlignTask::GetSimulatedMisalignmentRange ( ) const
inline

Definition at line 111 of file CbmBbaAlignTask.h.

References fSimulatedMisalignmentRange.

◆ Init()

◆ InitializeHistograms()

void CbmBbaAlignTask::InitializeHistograms ( )
private

Definition at line 773 of file CbmBbaAlignTask.cxx.

References fAlignmentBodies, fHistoAfterAlignment, fHistoBeforeAlignment, and fHistoDir.

Referenced by Finish().

◆ InvertParameters()

std::vector< double > CbmBbaAlignTask::InvertParameters ( std::vector< double > par) const
private

Definition at line 637 of file CbmBbaAlignTask.cxx.

◆ PrintParameters()

std::string CbmBbaAlignTask::PrintParameters ( const std::vector< double > & par) const
private

Definition at line 658 of file CbmBbaAlignTask.cxx.

References fAlignmentBodies.

Referenced by CostFunction(), and Finish().

◆ PrintRMSE()

std::string CbmBbaAlignTask::PrintRMSE ( const std::vector< bba::Parameter > & par,
const std::vector< double > & parMC,
const std::vector< double > & parValues ) const
private

Definition at line 672 of file CbmBbaAlignTask.cxx.

References fAlignmentBodies, and sqrt().

Referenced by Finish().

◆ SelectTracks()

◆ SensorsFromTracks()

◆ SetAlignment()

void CbmBbaAlignTask::SetAlignment ( const std::vector< double > & par,
std::vector< cbm::bba::AlignmentBody > & AlignmentBodies ) const
private

Definition at line 906 of file CbmBbaAlignTask.cxx.

Referenced by ApplyAlignment().

◆ SetMaxTracks()

void CbmBbaAlignTask::SetMaxTracks ( size_t nMaxTracks)
inline

Definition at line 114 of file CbmBbaAlignTask.h.

References fNmaxTracks.

◆ SetRandomSeed()

void CbmBbaAlignTask::SetRandomSeed ( int seed)
inline

Definition at line 112 of file CbmBbaAlignTask.h.

References fRandomSeed.

◆ SetReferences()

◆ SetSimulatedMisalignmentRange()

void CbmBbaAlignTask::SetSimulatedMisalignmentRange ( double range)
inline

Definition at line 110 of file CbmBbaAlignTask.h.

References fSimulatedMisalignmentRange.

◆ SimulateMisalignment()

std::vector< double > CbmBbaAlignTask::SimulateMisalignment ( const std::vector< bba::Parameter > & par,
std::vector< TrackContainer > & tracks,
std::vector< cbm::bba::AlignmentBody > & AlignmentBodies ) const
private

Definition at line 727 of file CbmBbaAlignTask.cxx.

References ApplyAlignment(), fRandomSeed, fSimulatedMisalignmentRange, and tracks.

Referenced by Finish().

◆ WriteObjectsCurFile()

void CbmBbaAlignTask::WriteObjectsCurFile ( TObject * obj)
private

Definition at line 839 of file CbmBbaAlignTask.cxx.

References WriteObjectsCurFile().

Referenced by Finish(), and WriteObjectsCurFile().

Member Data Documentation

◆ fAlignmentBodies

std::vector<cbm::bba::AlignmentBody> CbmBbaAlignTask::fAlignmentBodies
private

◆ fAlignmentMode

AlignmentMode CbmBbaAlignTask::fAlignmentMode {station}
private

Definition at line 170 of file CbmBbaAlignTask.h.

Referenced by Finish().

◆ fCostIdeal

double CbmBbaAlignTask::fCostIdeal {1.e10}
private

Definition at line 172 of file CbmBbaAlignTask.h.

Referenced by CostFunction(), and Finish().

◆ fCostInitial

double CbmBbaAlignTask::fCostInitial {0.}
private

Definition at line 173 of file CbmBbaAlignTask.h.

Referenced by Finish().

◆ fFitter

CbmKfTrackFitter<cbm::algo::kf::DoFitTime::N> CbmBbaAlignTask::fFitter
private

Definition at line 156 of file CbmBbaAlignTask.h.

Referenced by CostFunction(), FillHistograms(), Finish(), Init(), and SelectTracks().

◆ fFixedNdf

long CbmBbaAlignTask::fFixedNdf {-1}
private

Definition at line 177 of file CbmBbaAlignTask.h.

Referenced by CostFunction(), and Finish().

◆ fHistoAfterAlignment

Histograms CbmBbaAlignTask::fHistoAfterAlignment
private

Definition at line 181 of file CbmBbaAlignTask.h.

Referenced by Finish(), and InitializeHistograms().

◆ fHistoBeforeAlignment

Histograms CbmBbaAlignTask::fHistoBeforeAlignment
private

Definition at line 180 of file CbmBbaAlignTask.h.

Referenced by Finish(), and InitializeHistograms().

◆ fHistoDir

TDirectory* CbmBbaAlignTask::fHistoDir {nullptr}
private

Definition at line 185 of file CbmBbaAlignTask.h.

Referenced by CbmBbaAlignTask(), Finish(), and InitializeHistograms().

◆ fHistoFile

TFile* CbmBbaAlignTask::fHistoFile {nullptr}
private

Definition at line 184 of file CbmBbaAlignTask.h.

Referenced by CbmBbaAlignTask(), and Finish().

◆ fHistoFileName

TString CbmBbaAlignTask::fHistoFileName {"CbmBbaAlignmentHisto.root"}
private

Definition at line 183 of file CbmBbaAlignTask.h.

Referenced by CbmBbaAlignTask(), and Finish().

◆ fInputStsTracks

TClonesArray* CbmBbaAlignTask::fInputStsTracks {nullptr}
private

Definition at line 155 of file CbmBbaAlignTask.h.

Referenced by Exec(), and Init().

◆ fMatrixOutFileName

TString CbmBbaAlignTask::fMatrixOutFileName {"AlignmentMatrices.root"}
private

Definition at line 149 of file CbmBbaAlignTask.h.

Referenced by Finish().

◆ fNcallsCost

size_t CbmBbaAlignTask::fNcallsCost {}
private

Definition at line 161 of file CbmBbaAlignTask.h.

Referenced by CostFunction(), and Finish().

◆ fNevents

size_t CbmBbaAlignTask::fNevents {0}
private

Definition at line 159 of file CbmBbaAlignTask.h.

Referenced by Exec().

◆ fNmaxTracks

size_t CbmBbaAlignTask::fNmaxTracks {0}
private

Definition at line 160 of file CbmBbaAlignTask.h.

Referenced by CbmBbaAlignTask(), GetMaxTracks(), SelectTracks(), and SetMaxTracks().

◆ fNthreads

int CbmBbaAlignTask::fNthreads {1}
private

Definition at line 176 of file CbmBbaAlignTask.h.

Referenced by Init().

◆ fNtrackingStations

int CbmBbaAlignTask::fNtrackingStations {0}
private

◆ fParMC

std::vector<double> CbmBbaAlignTask::fParMC
private

Definition at line 166 of file CbmBbaAlignTask.h.

Referenced by CostFunction(), and Finish().

◆ fParStart

std::vector<double> CbmBbaAlignTask::fParStart
private

Definition at line 167 of file CbmBbaAlignTask.h.

Referenced by Finish().

◆ fRandomSeed

int CbmBbaAlignTask::fRandomSeed {1}
private

Definition at line 165 of file CbmBbaAlignTask.h.

Referenced by GetRandomSeed(), SetRandomSeed(), and SimulateMisalignment().

◆ fSensors

std::vector<Sensor> CbmBbaAlignTask::fSensors
private

Definition at line 152 of file CbmBbaAlignTask.h.

Referenced by CreateAlignmentMatrices(), and Finish().

◆ fSimulatedMisalignmentRange

double CbmBbaAlignTask::fSimulatedMisalignmentRange {0.}
private

◆ fTracks

std::vector<TrackContainer> CbmBbaAlignTask::fTracks
private

Definition at line 151 of file CbmBbaAlignTask.h.

Referenced by CostFunction(), Exec(), and Finish().


The documentation for this class was generated from the following files: