Jpp  master_rocky
the software that should make you happy
Public Member Functions | Public Attributes | List of all members
JSIRENE::JTrk_t Struct Reference

Auxiliary class to set-up Trk. More...

#include <JSirene.hh>

Inheritance diagram for JSIRENE::JTrk_t:
Trk AAObject TObject

Public Member Functions

 JTrk_t (const int id, const int type, const int mother_id, const Vec &pos, const Vec &dir, const double t, const double E)
 Constructor. More...
 
void read (const Trk &t)
 Read track (useful in python). More...
 
void write (Trk &t) const
 Write track (useful in python). More...
 
std::string name () const
 Get the name of the MC particle type. More...
 
bool is_primary () const
 Check if this is a primary particle. More...
 
bool is_finalstate () const
 Test whether given particle is a final state inside the detector. More...
 
bool is_neutrino () const
 Check if this is a netrino. More...
 
bool is_e () const
 Check if this is an electron or positron. More...
 
bool is_muon () const
 Check if this is a muon. More...
 
bool is_tau () const
 Check if this is a tau. More...
 
bool is_lepton () const
 Check if this is a charged lepton. More...
 
bool is_orphan () const
 Check if this is an orphan (i.e. More...
 
std::vector< Trk * > get_daughters (std::vector< Trk > &mctrks)
 Get list of of pointers to tracks, all of which have their mother identifier set to identifier of this track. More...
 
void print (std::ostream &out=std::cout) const
 Print track. More...
 
int idx (const std::string &key) const
 Get index in user data of the item with given key. More...
 
bool haveusr (const std::string &key) const
 Check availability of user data of the item with given key. More...
 
int idxusr_checked (const std::string &key) const
 Get index in user data of the item with given key. More...
 
double getusr (const std::string &key) const
 Get user data item with given key. More...
 
void setusr (const std::string &key, double value)
 Set user data item with given key. More...
 
bool delusr (const std::string &key)
 Remove (first) user data item with given key. More...
 
void clearusr ()
 Clear user data. More...
 
void printusr (std::ostream &out=std::cout)
 Print user data (i.e. More...
 

Public Attributes

int id
 track identifier More...
 
Vec pos
 postion [m] of the track at time t More...
 
Vec dir
 track direction More...
 
double t
 track time [ns] (when the particle is at pos ) More...
 
double E
 Energy [GeV] (either MC truth or reconstructed) More...
 
double len
 length, if applicable [m] More...
 
double lik
 likelihood or lambda value (for aafit, lambda) More...
 
int type
 MC: particle type in PDG encoding. More...
 
int rec_type
 identifier of the fitting algorithm/chain/strategy, see km3net-dataformat/definitions/reconstruction.csv More...
 
std::vector< int > rec_stages
 list of identifyers of succesfull fitting stages resulting in this track More...
 
int status
 MC status code, see km3net-dataformat/definitions/trkmembers.csv for values. More...
 
int mother_id
 MC id of the parent particle. More...
 
int counter
 used by CORSIKA7 MC generation to store interaction counters, see CORSIKA Userguide More...
 
std::vector< double > fitinf
 place to store additional fit info, see km3net-dataformat/definitions/fitparameters.csv More...
 
std::vector< int > hit_ids
 list of associated hit-ids (corresponds to Hit::id). More...
 
std::vector< double > error_matrix
 (NxN) error covariance matrix for fit parameters (stored as linear vector) More...
 
std::string comment
 use as you like More...
 
std::vector< double > usr
 user data More...
 
std::vector< std::string > usr_names
 user keys More...
 
TObjectany
 Pointer to "any" user data. More...
 

Detailed Description

Auxiliary class to set-up Trk.

Definition at line 188 of file JSirene.hh.

Constructor & Destructor Documentation

◆ JTrk_t()

JSIRENE::JTrk_t::JTrk_t ( const int  id,
const int  type,
const int  mother_id,
const Vec pos,
const Vec dir,
const double  t,
const double  E 
)
inline

Constructor.

Parameters
ididentifier
typetype
mother_idmother identifier
posposition
dirdirection
ttime [ns]
Eenergy [GeV]

Definition at line 202 of file JSirene.hh.

209  {
210  this->id = id;
211  this->type = type;
212  this->mother_id = mother_id;
213  this->pos = pos;
214  this->dir = dir;
215  this->t = t;
216  this->E = E;
217  }
int type
MC: particle type in PDG encoding.
Definition: Trk.hh:24
int id
track identifier
Definition: Trk.hh:16
Vec dir
track direction
Definition: Trk.hh:18
double E
Energy [GeV] (either MC truth or reconstructed)
Definition: Trk.hh:20
double t
track time [ns] (when the particle is at pos )
Definition: Trk.hh:19
int mother_id
MC id of the parent particle.
Definition: Trk.hh:29
Vec pos
postion [m] of the track at time t
Definition: Trk.hh:17

Member Function Documentation

◆ read()

void Trk::read ( const Trk t)
inlineinherited

Read track (useful in python).

Parameters
ttrack

Definition at line 50 of file Trk.hh.

50 { *this = t;}

◆ write()

void Trk::write ( Trk t) const
inlineinherited

Write track (useful in python).

Parameters
ttrack

Definition at line 57 of file Trk.hh.

57 { t = *this; }

◆ name()

std::string Trk::name ( ) const
inlineinherited

Get the name of the MC particle type.

Returns
name

Definition at line 65 of file Trk.hh.

66  {
67  TParticlePDG* p = TDatabasePDG::Instance()->GetParticle( type );
68  if (!p) return "unnamed state ("+ std::to_string(type)+")";
69  return p->GetName();
70  }
std::string to_string(const T &value)
Convert value to string.

◆ is_primary()

bool Trk::is_primary ( ) const
inlineinherited

Check if this is a primary particle.

Returns
true if primary; else false

Definition at line 77 of file Trk.hh.

78  {
80  }
int status
MC status code, see km3net-dataformat/definitions/trkmembers.csv for values.
Definition: Trk.hh:28
static const int TRK_ST_PRIMARYCOSMIC
initial state cosmic ray ('track_primary' tag in evt files from corant).
Definition: trkmembers.hh:17
static const int TRK_ST_PRIMARYNEUTRINO
initial state neutrino ('neutrino' tag in evt files from gseagen and genhen).
Definition: trkmembers.hh:16

◆ is_finalstate()

bool Trk::is_finalstate ( ) const
inlineinherited

Test whether given particle is a final state inside the detector.

Returns
true if particle is final state; else false

Definition at line 87 of file Trk.hh.

88  {
89  return status==TRK_ST_FINALSTATE;
90  }
static const int TRK_ST_FINALSTATE
for MC: the particle must be processed by detector simulation ('track_in' tag in evt files)....
Definition: trkmembers.hh:15

◆ is_neutrino()

bool Trk::is_neutrino ( ) const
inlineinherited

Check if this is a netrino.

Note that its is checked if the PDG type is a nu-e, nu-mu or nu-tau.

Returns
true if neutrino; else false

Definition at line 99 of file Trk.hh.

100  {
101  return type == kNuE || type == kNuEBar || type == kNuMu || type == kNuMuBar || type == kNuTau || type == kNuTauBar;
102  }

◆ is_e()

bool Trk::is_e ( ) const
inlineinherited

Check if this is an electron or positron.

Returns
true if this is an electron or positron

Definition at line 109 of file Trk.hh.

110  {
111  return type == kElectron || type == kPositron;
112  }

◆ is_muon()

bool Trk::is_muon ( ) const
inlineinherited

Check if this is a muon.

Note that its is checked if the PDG type is a (anti-)muon.

Returns
true if muon; else false

Definition at line 121 of file Trk.hh.

122  {
123  return type == kMuonMinus || type == kMuonPlus;
124  }

◆ is_tau()

bool Trk::is_tau ( ) const
inlineinherited

Check if this is a tau.

Note that its is checked if the PDG type is a (anti-)tau.

Returns
true if tau; else false

Definition at line 133 of file Trk.hh.

134  {
135  return type == kTauMinus || type == kTauPlus;
136  }

◆ is_lepton()

bool Trk::is_lepton ( ) const
inlineinherited

Check if this is a charged lepton.

Note that its is checked if the PDG type is a (anti-)electron, (anti-)muon or (anti-)tua.

Returns
true if charged lepton; else false

Definition at line 145 of file Trk.hh.

146  {
147  return is_e() || is_muon() || is_tau();
148  }
bool is_tau() const
Check if this is a tau.
Definition: Trk.hh:133
bool is_e() const
Check if this is an electron or positron.
Definition: Trk.hh:109
bool is_muon() const
Check if this is a muon.
Definition: Trk.hh:121

◆ is_orphan()

bool Trk::is_orphan ( ) const
inlineinherited

Check if this is an orphan (i.e.

no mother).

Returns
true if orphan; else false

Definition at line 155 of file Trk.hh.

156  {
157  return mother_id == TRK_MOTHER_NONE;
158  }
static const int TRK_MOTHER_NONE
mother id of a particle if it has no parent
Definition: trkmembers.hh:13

◆ get_daughters()

std::vector< Trk* > Trk::get_daughters ( std::vector< Trk > &  mctrks)
inlineinherited

Get list of of pointers to tracks, all of which have their mother identifier set to identifier of this track.

Parameters
mctrkslist of input tracks
Returns
list of pointers to tracks

Definition at line 166 of file Trk.hh.

167  {
169 
170  for( auto& t : mctrks )
171  {
172  if ( t.mother_id == id ) r.push_back( &t );
173  }
174  return r;
175  }
data_type r[M+1]
Definition: JPolint.hh:868

◆ print()

void Trk::print ( std::ostream &  out = std::cout) const
inlineinherited

Print track.

Parameters
outoutput stream

Definition at line 182 of file Trk.hh.

183  {
184  out << "Trk: id=" << id << " pos="; pos.print(out);
185  out << " dir="; dir.print(out);
186  out << " t=" << t << " E=" << E << " pdg-type=" << type;
187  }
void print(std::ostream &out=std::cout) const
Print vector.
Definition: Vec.hh:166

◆ idx()

int AAObject::idx ( const std::string &  key) const
inlineinherited

Get index in user data of the item with given key.

Parameters
keykey
Returns
index (-1 if key does not exists)

Definition at line 29 of file AAObject.hh.

30  {
31  auto i = std::find (usr_names.begin(), usr_names.end(), key );
32  if (i == usr_names.end()) return -1;
33  return i - usr_names.begin();
34  }
std::vector< std::string > usr_names
user keys
Definition: AAObject.hh:21

◆ haveusr()

bool AAObject::haveusr ( const std::string &  key) const
inlineinherited

Check availability of user data of the item with given key.

Parameters
keykey
Returns
true if available; else false

Definition at line 42 of file AAObject.hh.

43  {
44  return idx( key ) >= 0;
45  }
int idx(const std::string &key) const
Get index in user data of the item with given key.
Definition: AAObject.hh:29

◆ idxusr_checked()

int AAObject::idxusr_checked ( const std::string &  key) const
inlineinherited

Get index in user data of the item with given key.


This method throws a run-time exception if no user data are available.

Parameters
keykey
Returns
index (-1 if key does not exists)

Definition at line 54 of file AAObject.hh.

55  {
56  int r = idx( key );
57  if (r < 0)
58  {
59  THROW(Exception, "No user data for key " << key << " in aanet object of type " << this -> ClassName());
60  }
61  return r;
62  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
General exception.
Definition: Exception.hh:13

◆ getusr()

double AAObject::getusr ( const std::string &  key) const
inlineinherited

Get user data item with given key.


This method throws a run-time exception if no user data are available.

Parameters
keykey
Returns
value

Definition at line 72 of file AAObject.hh.

73  {
74  const int i = idx( key );
75 
76  if ( i < 0 )
77  {
78  THROW(Exception, "No user data for key " << key << " in aanet object of type " << this -> ClassName());
79  }
80 
81  if ( unsigned(i) >= usr.size() )
82  {
83  THROW(Exception, "Warning: inconsistent user data " << i << " >= " << usr.size());
84  }
85 
86  return usr[i];
87  }
std::vector< double > usr
user data
Definition: AAObject.hh:20

◆ setusr()

void AAObject::setusr ( const std::string &  key,
double  value 
)
inlineinherited

Set user data item with given key.


Parameters
keykey
valuevalue

Definition at line 95 of file AAObject.hh.

96  {
97  int i = idx( key );
98  if (i < 0)
99  {
100  if ( usr.size() < usr_names.size() )
101  {
102  // this should not happen, but let's just add empty data
103  usr.resize( usr_names.size() );
104  }
105  else
106  {
107  // this is possible, add empty ("") names
108  usr_names.resize( usr.size() );
109  }
110 
111  usr_names.push_back( key );
112  usr.push_back( value );
113  }
114  else
115  {
116  usr[i] = value;
117  }
118  }

◆ delusr()

bool AAObject::delusr ( const std::string &  key)
inlineinherited

Remove (first) user data item with given key.


Parameters
keykey
Returns
true if data have been removed; else false

Definition at line 126 of file AAObject.hh.

127  {
128  int i = idx( key );
129  if ( i < 0 ) return false;
130 
131  usr.erase ( usr.begin() + i );
132  usr_names.erase( usr_names.begin() + i );
133  return true;
134  }

◆ clearusr()

void AAObject::clearusr ( )
inlineinherited

Clear user data.

Definition at line 139 of file AAObject.hh.

140  {
141  usr.resize(0);
142  usr_names.resize(0);
143  }

◆ printusr()

void AAObject::printusr ( std::ostream &  out = std::cout)
inlineinherited

Print user data (i.e.

list of all pairs of keys and values).

Parameters
outoutput stream

Definition at line 150 of file AAObject.hh.

151  {
152  unsigned n = std::max( usr.size(), usr_names.size() );
153 
154  for (unsigned i = 0; i < n ; i++)
155  {
156  std::string name = "(unnamed)";
157  if ( i < usr_names.size() && usr_names[i] != "" ) name = usr_names[i];
158  out << i << " \t " << name << " : \t ";
159  if ( i < usr.size() ) out << usr[i] << std::endl;
160  else out << "(none)" << std::endl;
161  }
162  }
const int n
Definition: JPolint.hh:786

Member Data Documentation

◆ id

int Trk::id
inherited

track identifier

Definition at line 16 of file Trk.hh.

◆ pos

Vec Trk::pos
inherited

postion [m] of the track at time t

Definition at line 17 of file Trk.hh.

◆ dir

Vec Trk::dir
inherited

track direction

Definition at line 18 of file Trk.hh.

◆ t

double Trk::t
inherited

track time [ns] (when the particle is at pos )

Definition at line 19 of file Trk.hh.

◆ E

double Trk::E
inherited

Energy [GeV] (either MC truth or reconstructed)

Definition at line 20 of file Trk.hh.

◆ len

double Trk::len
inherited

length, if applicable [m]

Definition at line 22 of file Trk.hh.

◆ lik

double Trk::lik
inherited

likelihood or lambda value (for aafit, lambda)

Definition at line 23 of file Trk.hh.

◆ type

int Trk::type
inherited

MC: particle type in PDG encoding.

Definition at line 24 of file Trk.hh.

◆ rec_type

int Trk::rec_type
inherited

identifier of the fitting algorithm/chain/strategy, see km3net-dataformat/definitions/reconstruction.csv

Definition at line 25 of file Trk.hh.

◆ rec_stages

std::vector<int> Trk::rec_stages
inherited

list of identifyers of succesfull fitting stages resulting in this track

Definition at line 26 of file Trk.hh.

◆ status

int Trk::status
inherited

MC status code, see km3net-dataformat/definitions/trkmembers.csv for values.

Definition at line 28 of file Trk.hh.

◆ mother_id

int Trk::mother_id
inherited

MC id of the parent particle.

Definition at line 29 of file Trk.hh.

◆ counter

int Trk::counter
inherited

used by CORSIKA7 MC generation to store interaction counters, see CORSIKA Userguide

Definition at line 30 of file Trk.hh.

◆ fitinf

std::vector<double> Trk::fitinf
inherited

place to store additional fit info, see km3net-dataformat/definitions/fitparameters.csv

Definition at line 32 of file Trk.hh.

◆ hit_ids

std::vector<int> Trk::hit_ids
inherited

list of associated hit-ids (corresponds to Hit::id).

Definition at line 33 of file Trk.hh.

◆ error_matrix

std::vector<double> Trk::error_matrix
inherited

(NxN) error covariance matrix for fit parameters (stored as linear vector)

Definition at line 34 of file Trk.hh.

◆ comment

std::string Trk::comment
inherited

use as you like

Definition at line 35 of file Trk.hh.

◆ usr

std::vector<double> AAObject::usr
inherited

user data

Definition at line 20 of file AAObject.hh.

◆ usr_names

std::vector<std::string> AAObject::usr_names
inherited

user keys

Definition at line 21 of file AAObject.hh.

◆ any

TObject* AAObject::any
inherited

Pointer to "any" user data.

Definition at line 171 of file AAObject.hh.


The documentation for this struct was generated from the following file: