CbmRoot
PairAnalysisVarManager.h
Go to the documentation of this file.
1 #ifndef PAIRANALYSISVARMANAGER_H
2 #define PAIRANALYSISVARMANAGER_H
3 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4  * based on the ALICE-dielectron package */
5 
6 //#############################################################
7 //# #
8 //# Class for management of available variables #
9 //# #
10 //# Authors: #
11 //# Julian Book, Uni Ffm / Julian.Book@cern.ch #
12 //# #
13 //#############################################################
14 
15 #include <TDatabasePDG.h>
16 #include <TNamed.h>
17 #include <TPDGCode.h>
18 
19 #include <TBits.h>
20 #include <TFormula.h>
21 #include <TMatrixFSym.h>
22 #include <TRandom3.h>
23 #include <TVector2.h>
24 #include <TVector3.h>
25 
26 #include <CbmCluster.h>
27 #include <CbmMuchPixelHit.h>
28 #include <CbmMvdHit.h>
29 #include <CbmPixelHit.h>
30 #include <CbmRichElectronIdAnn.h>
31 #include <CbmRichHit.h>
32 #include <CbmStsHit.h>
33 #include <CbmTofHit.h>
34 #include <CbmTrdCluster.h>
35 #include <CbmTrdHit.h>
36 #include <FairRootManager.h>
37 
38 #include <FairMCPoint.h>
39 #include <FairTrackParam.h>
40 
41 #include <CbmDefs.h>
42 #include <CbmGlobalTrack.h>
43 #include <CbmKFVertex.h>
44 #include <CbmMCTrack.h>
45 #include <CbmMuchTrack.h>
46 #include <CbmRichRing.h>
47 #include <CbmStsTrack.h>
48 #include <CbmTrackMatchNew.h>
49 #include <CbmTrdTrack.h>
50 #include <CbmVertex.h>
51 #include <FairMCEventHeader.h>
52 
53 
54 //#include "L1Field.h"
55 //#include "CbmL1PFFitter.h"
56 //#include <CbmStsKFTrackFitter.h>
57 
58 #include "PairAnalysisEvent.h"
59 #include "PairAnalysisHelper.h"
60 #include "PairAnalysisMC.h"
61 #include "PairAnalysisPair.h"
62 #include "PairAnalysisPairLV.h"
63 #include "PairAnalysisTrack.h"
64 
65 #include "assert.h"
66 
67 //________________________________________________________________
68 class PairAnalysisVarManager : public TNamed {
69 
70 public:
71  enum ValueTypes {
72  // Constant information
73  kMEL = 1, // pdg mass of electrons
74  kMMU, // pdg mass of muons
75  kMPI, // pdg mass of pions
76  kMKA, // pdg mass of kaons
77  kMPR, // pdg mass of protons
78  kMK0, // pdg mass of neutral kaons
79  kMLA, // pdg mass of lambdas
80  kMPair, // pdg mass of pair
81  kEbeam, // beam energy
83  // Hit specific variables
84  kPosX = kConstMax, // X position [cm]
85  kPosY, // Y position [cm]
86  kPosZ, // Z position [cm]
87  kLinksMC, // number of matched MC links
88  kTrdLayer, // plane/layer id
89  kTrdPads, // number of pads contributing to cluster/hit
90  kTrdCols, // number of pads columns contributing to cluster/hit
91  kTrdRows, // number of pads rows contributing to cluster/hit
92  kEloss, // TRD energy loss dEdx+TR
93  // kElossdEdx, // TRD energy loss dEdx only
94  // kElossTR, // TRD energy loss TR only
95  kNPhotons, // RICH number of photons in this hit
96  kPmtId, // RICH photomultiplier number
97  kBeta, // TOF beta
98  kTofPidDeltaBetaEL, // delta of TOF beta to expected beta for electrons
99  kTofPidDeltaBetaMU, // delta of TOF beta to expected beta for muons
100  kTofPidDeltaBetaPI, // delta of TOF beta to expected beta for pions
101  kTofPidDeltaBetaKA, // delta of TOF beta to expected beta for kaons
102  kTofPidDeltaBetaPR, // delta of TOF beta to expected beta for protons
103  kMassSq, // TOF mass squared
105  // Particle specific variables
106  kPx = kHitMax, // px
107  kPy, // py
108  kPz, // pz
109  kPt, // transverse momentum
110  kPtSq, // transverse momentum squared
111  kP, // momentum
112  kXv, // vertex position in x
113  kYv, // vertex position in y
114  kZv, // vertex position in z
115  kOneOverPt, // 1/pt
116  kPhi, // phi angle
117  kTheta, // theta polar angle
118  kEta, // pseudo-rapidity
119  kY, // rapidity
120  kYlab, // rapidity lab
121  kE, // energy
122  kM, // mass
123  kCharge, // charge
124  kMt, // transverse mass sqrt(m^2+pt^2)
125  kChi2NDFtoVtx, // chi2/ndf impact parameter STS(+MVD) track to primary vertex in (sigmas)
126  kImpactParXY, // Impact parameter in XY plane
127  kImpactParZ, // Impact parameter in Z
128  kInclAngle, // inclination angle
130  // Track specific variables
131  // global track
132  kTrackLength = kParticleMax, // Track length (cm)
133  kTrackChi2NDF, // chi2/ndf
134  kPin, // first point momentum (GeV/c)
135  kPtin, // first point transverse momentum (GeV/c)
136  kPout, // last point momentum (GeV/c)
137  kPtout, // last point transverse momentum (GeV/c)
138  // trd track information
139  kTrdSignal, // TRD energy loss dEdx+TR (keV)
140  kTrdPidWkn, // PID value Wkn method
141  kTrdPidANN, // PID value Artificial Neural Network (ANN-method)
142  kTrdPidLikeEL, // PID value Likelihood method: electron
143  kTrdPidLikePI, // PID value Likelihood method: pion
144  kTrdPidLikeKA, // PID value Likelihood method: kaon
145  kTrdPidLikePR, // PID value Likelihood method: proton
146  kTrdPidLikeMU, // PID value Likelihood method: muon
147  kTrdHits, // number of TRD hits
148  kTrdChi2NDF, // chi2/ndf TRD
149  kTrdPin, // first point TRD momentum (GeV/c)
150  kTrdPtin, // first point TRD transverse momentum (GeV/c)
151  kTrdPhiin, // first point TRD azimuthal angle (rad)
152  kTrdThetain, // first point TRD polar angle (rad)
153  kTrdPout, // last point TRD momentum (GeV/c)
154  kTrdPtout, // last point TRD transverse momentum (GeV/c)
155  kTrdThetaCorr, // correction factor for theta track angle
156  kTrdPhiCorr, // correction factor for phi track angle
157  // kTrdTrackLength, // track length in cm of the trd tracklet
158  // sts track information
159  kMvdhasEntr, // weather track enters first MVD station
160  kMvdHits, // number of MVD hits
161  kMvdFirstHitPosZ, // position of the first hit in the MVD (cm)
162  kMvdFirstExtX, // x-position of the extrapolated track at the first MVD station (cm)
163  kMvdFirstExtY, // y-position of the extrapolated track at the first MVD station (cm)
164  // kImpactParZ, // Impact parameter of track at target z, in units of its error
165  kStsHits, // number of STS hits
166  kStsChi2NDF, // chi2/ndf STS
167  kStsPin, // first point STS momentum (GeV/c)
168  kStsPtin, // first point STS transverse momentum (GeV/c)
169  kStsPout, // last point STS momentum (GeV/c)
170  kStsPtout, // last point STS transverse momentum (GeV/c)
171  kStsXv, // STS point: x-coordinate
172  kStsYv, // STS point: y-coordinate
173  kStsZv, // STS point: z-coordinate
174  kStsFirstHitPosZ, // position of the first hit in the STS (cm)
175  // rich ring information
176  kRichhasProj, // weather rich ring has a projection onto the pmt plane
177  kRichPidANN, // PID value Artificial Neural Network (ANN-method)
178  kRichHitsOnRing, // number of RICH hits on the ring
179  kRichHits, // number of RICH hits (ANN input)
180  kRichChi2NDF, // chi2/ndf ring fit (ANN input)
181  kRichRadius, // ring radius
182  kRichAxisA, // major semi-axis (ANN input)
183  kRichAxisB, // minor semi-axis (ANN input)
184  kRichCenterX, // ring center in x
185  kRichCenterY, // ring center in y
186  kRichDistance, // distance between ring center and track (ANN input)
187  kRichRadialPos, // radial psoition = sqrt(x**2+abs(y-110)**2), (ANN input)
188  kRichRadialAngle, // radial angle (0||1||2)*pi +- atan( abs((+-100-y)/-x) ), (ANN input)
189  kRichPhi, // phi rotation angle of ellipse (ANN input)
190  // tof track information
191  kTofHits, // number of TOF hits
192  // much track information
193  kMuchHits, // number of MUCH hits
194  kMuchHitsPixel, // number of MUCH pixel hits
195  kMuchChi2NDF, // chi2/ndf MUCH
196  // technical variables
197  kRndmTrack, // randomly created number (used to apply special selection cuts)
199 
200  // Pair specific variables
201  kChi2NDF = kTrackMax, // Chi^2/NDF
202  kDecayLength, // decay length p*t (cm)
203  kR, // xy-distance to origin (cm)
204  kOpeningAngle, // opening angle
205  kCosPointingAngle, // cosine of the pointing angle
206  kArmAlpha, // Armenteros-Podolanski alpha
207  kArmPt, // Armenteros-Podolanski pt
208  // helicity picture: Z-axis is considered the direction of the mother's 3-momentum vector
209  kThetaHE, // theta in mother's rest frame in the helicity picture
210  kPhiHE, // phi in mother's rest frame in the helicity picture
211  kThetaSqHE, // squared value of kThetaHE
212  kCos2PhiHE, // Cosine of 2*phi in mother's rest frame in the helicity picture
213  kCosTilPhiHE, // Shifted phi depending on kThetaHE
214  // Collins-Soper picture: Z-axis is considered the direction of the vectorial difference between
215  // the 3-mom vectors of target and projectile beams
216  kThetaCS, // theta in mother's rest frame in Collins-Soper picture
217  kPhiCS, // phi in mother's rest frame in Collins-Soper picture
218  kThetaSqCS, // squared value of kThetaCS
219  kCos2PhiCS, // Cosine of 2*phi in mother's rest frame in the Collins-Soper picture
220  kCosTilPhiCS, // Shifted phi depending on kThetaCS
221  kPsiPair, // phi in mother's rest frame in Collins-Soper picture
222  kPhivPair, // angle between ee plane and the magnetic field (can be useful for conversion rejection)
223 
224  kLegDist, // distance of the legs
225  kLegDistXY, // distance of the legs in XY
226  kDeltaEta, // Absolute value of Delta Eta for the legs
227  kDeltaPhi, // Absolute value of Delta Phi for the legs
228  kLegsP, // sqrt of p_leg1*p_leg2
229  kMerr, // error of mass calculation
230  kDCA, // distance of closest approach TODO: not implemented yet
231  kPairType, // type of the pair, like like sign ++ unlikesign ...
232  kMomAsymDau1, // momentum fraction of daughter1
233  kMomAsymDau2, // momentum fraction of daughter2
234  kPairEff, // pair efficiency
235  kOneOverPairEff, // 1 / pair efficiency (correction factor)
236  kOneOverPairEffSq, // 1 / pair efficiency squared (correction factor)
237  kRndmPair, // radomly created number (used to apply special signal reduction cuts)
238  kPairs, // number of Ev1PM pair candidates after all cuts
240 
241  // Event specific variables
247  kXRes, // primary vertex x-resolution
248  kYRes, // primary vertex y-resolution
249  kZRes, // primary vertex z-resolution
250  kMaxPt, // track with maximum pt
251 
252  kRndmRej, // random rejection probability by the pair pre filter
253  kNTrk, // number of tracks
254  kTracks, // track after all cuts
256 
257  kCentrality, // event centrality fraction
258  kNevents, // event counter
259  kRunNumber, // run number
260  kYbeam, // beam rapdity
261  kMixingBin, // event mixing pool number
262  kTotalTRDHits, // size of trd hit array
264 
265  // MC information
266  // Hit specific variables
267  kPosXMC = kNMaxValues, // X position [cm]
268  kPosYMC, // Y position [cm]
269  kPosZMC, // Z position [cm]
270  kElossMC, // energy loss dEdx+TR
272  // Particle specific MC variables
273  kPxMC = kHitMaxMC, // px
274  kPyMC, // py
275  kPzMC, // pz
276  kPtMC, // transverse momentum
277  kPtSqMC, // transverse momentum squared
278  kPMC, // momentum
279  kXvMC, // vertex position in x
280  kYvMC, // vertex position in y
281  kZvMC, // vertex position in z
282  kPhivMC, // vertex position in phi
283  kThetavMC, // vertex position in theta
284  kOneOverPtMC, // 1/pt
285  kPhiMC, // phi angle
286  kThetaMC, // theta angle
287  kEtaMC, // pseudo-rapidity
288  kYMC, // rapidity
289  kYlabMC, // rapidity lab
290  kBetaGammaMC, // beta gamma
291  kEMC, // energy
292  kEMotherMC, // energy of the mother
293  kMMC, // mass
294  kChargeMC, // charge
295  kPdgCode, // PDG code
296  kPdgCodeMother, // PDG code of the mother
297  kPdgCodeGrandMother, // PDG code of the grand mother
298  kGeantId, // geant process id (see TMCProcess)
299  kWeight, // weight NxBR
301 
302  // Track specific MC variables
303  kTrdHitsMC = kParticleMaxMC, // number of TRD hits
304  kMvdHitsMC, // number of MVD hits
305  kStsHitsMC, // number of STS hits
306  kTofHitsMC, // number of TOF hits
307  kMuchHitsMC, // number of MUCH hits
308  kRichHitsMC, // number of RICH hits
309  kTrdMCTracks, // number of TRD MC Points in reconstructed track
310  kRichMCPoints, // number of TRD MC Points in reconstructed track
311  kTrdTrueHits, // number of true TRD hits in reconstructed track
312  kTrdDistHits, // number of distorted TRD hits in reconstructed track
313  kTrdFakeHits, // number of fake TRD hits in reconstructed track
314  kTrdDistortion, // level of distortion of reconstructed track [0,1]
315  kStsTrueHits, // number of true STS hits in reconstructed track
316  kStsDistHits, // number of distorted STS hits in reconstructed track
317  kStsFakeHits, // number of fake STS hits in reconstructed track
318  kTrdisMC, // status bit for matching btw. glbl. and local MC track
319  kMvdisMC, // status bit for matching btw. glbl. and local MC track
320  kStsisMC, // status bit for matching btw. glbl. and local MC track
321  kMuchisMC, // status bit for matching btw. glbl. and local MC track
322  kRichisMC, // status bit for matching btw. glbl. and local MC track
323  kTofisMC, // status bit for matching btw. glbl. and local MC track
325 
326  // Pair specific MC variables
327  kOpeningAngleMC = kTrackMaxMC, // opening angle
328  kCosPointingAngleMC, // cosine of the pointing angle
329  // kPhivPairMC, // angle between d1d2 plane and the magnetic field
331 
332  // Event specific MCvariables
333  kNTrkMC = kPairMaxMC, // number of MC tracks
337  kStsMatches, // number of matched STS tracks
338  kTrdMatches, // number of matched TRD tracks
339  kVageMatches, // number of MC tracks (STS) matched to multiple reconstr. track
340  kTotalTRDHitsMC, // size of trd MC point array
341  kImpactParam, // impact parameter from MC header
342  kNPrimMC, // primary particles from MC header
344 
345  };
346 
347 
349  PairAnalysisVarManager(const char* name, const char* title);
350  virtual ~PairAnalysisVarManager();
351 
352  static void InitFormulas();
353  static void InitFitter();
354 
355  static void Fill(const TObject* particle, Double_t* const values);
356  static void FillVarMCParticle(const CbmMCTrack* p1,
357  const CbmMCTrack* p2,
358  Double_t* const values);
359  static void FillSum(const TObject* particle, Double_t* const values);
360 
361  static void CalculateHitTypes(const PairAnalysisTrack* track,
362  ECbmModuleId idet,
363  Int_t* trueH,
364  Int_t* distH,
365  Int_t* fakeH);
366 
367  // Setter
368  static void SetFillMap(TBits* map) { fgFillMap = map; }
369  static void SetEvent(PairAnalysisEvent* const ev);
370  static void
372  static void SetValue(ValueTypes var, Double_t val) { fgData[var] = val; }
373 
374  // Getter
376  static const CbmKFVertex* GetKFVertex() { return fgKFVertex; }
377  static const char* GetValueName(Int_t i) {
378  return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][0] : "";
379  }
380  static const char* GetValueLabel(Int_t i) {
381  return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][1] : "";
382  }
383  static const char* GetValueUnit(Int_t i) {
384  return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][2] : "";
385  }
386  static Double_t* GetData() { return fgData; }
387  static Double_t GetValue(ValueTypes val) { return fgData[val]; }
388  static UInt_t GetValueType(const char* valname);
389  static UInt_t GetValueTypeMC(UInt_t var);
390 
391  static UInt_t* GetArray(ValueTypes var0,
392  ValueTypes var1 = kNMaxValuesMC,
393  ValueTypes var2 = kNMaxValuesMC,
394  ValueTypes var3 = kNMaxValuesMC,
395  ValueTypes var4 = kNMaxValuesMC,
396  ValueTypes var5 = kNMaxValuesMC,
397  ValueTypes var6 = kNMaxValuesMC,
398  ValueTypes var7 = kNMaxValuesMC,
399  ValueTypes var8 = kNMaxValuesMC,
400  ValueTypes var9 = kNMaxValuesMC);
401 
402  // data member
403  static TFormula* fgFormula[kNMaxValuesMC]; // variable formulas
404 
405 private:
406  // data member
407  static Double_t fgData[kNMaxValuesMC];
408  static const char* fgkParticleNames[kNMaxValuesMC][3]; // variable names
409  //static const char* fgkParticleNamesMC[kNMaxValuesMC]; // MC variable names
410  static PairAnalysisEvent* fgEvent; // current event pointer
411  static CbmKFVertex*
412  fgKFVertex; // kf vertex @TODO: OBSOLETE/UNUSED?
413  static CbmVertex* fgVertexMC; // MC vertex
414  // static CbmStsKFTrackFitter*fgKFFitter; // kf fitter
415  // static CbmL1PFFitter *fgL1Fitter; // L1 fitter
416  static TBits* fgFillMap; // map for filling variables
417  static Int_t fgCurrentRun; // current run number
418 
419  // fill functions
420  static Bool_t Req(ValueTypes var) {
421  return (fgFillMap ? fgFillMap->TestBitNumber(var) : kTRUE);
422  }
423 
424  static void FillVarConstants(Double_t* const values);
425  static void FillVarPairAnalysisEvent(const PairAnalysisEvent* event,
426  Double_t* const values);
427  static void FillVarVertex(const CbmVertex* vertex, Double_t* const values);
428  static void FillVarPairAnalysisTrack(const PairAnalysisTrack* track,
429  Double_t* const values);
430  static void FillVarGlobalTrack(const CbmGlobalTrack* track,
431  Double_t* const values);
432  static void FillVarStsTrack(const CbmStsTrack* track, Double_t* const values);
433  static void FillVarMuchTrack(const CbmMuchTrack* track,
434  Double_t* const values);
435  static void FillVarTrdTrack(const CbmTrdTrack* track, Double_t* const values);
436  static void FillVarRichRing(const CbmRichRing* track, Double_t* const values);
437  static void FillVarMCTrack(const CbmMCTrack* particle,
438  Double_t* const values);
439  static void FillVarPairAnalysisPair(const PairAnalysisPair* pair,
440  Double_t* const values);
441  static void FillVarMvdHit(const CbmMvdHit* hit, Double_t* const values);
442  static void FillVarStsHit(const CbmStsHit* hit, Double_t* const values);
443  static void FillVarMuchHit(const CbmMuchPixelHit* hit,
444  Double_t* const values);
445  static void FillVarTrdHit(const CbmTrdHit* hit, Double_t* const values);
446  static void FillVarRichHit(const CbmRichHit* hit, Double_t* const values);
447  static void FillVarTofHit(const CbmTofHit* hit, Double_t* const values);
448  static void FillVarPixelHit(const CbmPixelHit* hit, Double_t* const values);
449  static void FillVarTrdCluster(const CbmTrdCluster* cluster,
450  Double_t* const values);
451  static void FillVarMCPoint(const FairMCPoint* hit, Double_t* const values);
452  static void FillSumVarMCPoint(const FairMCPoint* hit, Double_t* const values);
453  static void FillVarMCHeader(const FairMCEventHeader* header,
454  Double_t* const values);
455 
456  // static Double_t GetChiToVertex( const CbmStsTrack *track, CbmVertex *vertex);
457 
458  // static void FillVarKFParticle(const AliKFParticle *pair, Double_t * const values);
459 
460  // setter
461  static void ResetArrayData(Int_t to, Double_t* const values);
462  static void ResetArrayDataMC(Int_t to, Double_t* const values);
463 
466 
469  1); // Variables management for event, pair, track, hit infos (static)
470 };
471 
472 
473 //Inline functions
474 inline void PairAnalysisVarManager::Fill(const TObject* object,
475  Double_t* const values) {
476  //
477  // Main function to fill all available variables according to the type
478  //
479 
480  //Protect
481  if (!object) return;
482 
483  if (object->IsA() == PairAnalysisEvent::Class())
484  FillVarPairAnalysisEvent(static_cast<const PairAnalysisEvent*>(object),
485  values);
486  else if (object->IsA() == CbmVertex::Class())
487  FillVarVertex(static_cast<const CbmVertex*>(object), values);
488  else if (object->IsA() == PairAnalysisTrack::Class())
489  FillVarPairAnalysisTrack(static_cast<const PairAnalysisTrack*>(object),
490  values);
491  else if (object->IsA() == CbmGlobalTrack::Class())
492  FillVarGlobalTrack(static_cast<const CbmGlobalTrack*>(object), values);
493  else if (object->IsA() == CbmStsTrack::Class())
494  FillVarStsTrack(static_cast<const CbmStsTrack*>(object), values);
495  else if (object->IsA() == CbmMuchTrack::Class())
496  FillVarMuchTrack(static_cast<const CbmMuchTrack*>(object), values);
497  else if (object->IsA() == CbmTrdTrack::Class())
498  FillVarTrdTrack(static_cast<const CbmTrdTrack*>(object), values);
499  else if (object->IsA() == CbmRichRing::Class())
500  FillVarRichRing(static_cast<const CbmRichRing*>(object), values);
501  else if (object->IsA() == CbmMCTrack::Class())
502  FillVarMCTrack(static_cast<const CbmMCTrack*>(object), values);
503  else if (object->InheritsFrom(PairAnalysisPair::Class()))
504  FillVarPairAnalysisPair(static_cast<const PairAnalysisPair*>(object),
505  values);
506  else if (object->IsA() == CbmMvdHit::Class())
507  FillVarMvdHit(static_cast<const CbmMvdHit*>(object), values);
508  else if (object->IsA() == CbmStsHit::Class())
509  FillVarStsHit(static_cast<const CbmStsHit*>(object), values);
510  else if (object->IsA() == CbmMuchPixelHit::Class())
511  FillVarMuchHit(static_cast<const CbmMuchPixelHit*>(object), values);
512  else if (object->IsA() == CbmTrdHit::Class())
513  FillVarTrdHit(static_cast<const CbmTrdHit*>(object), values);
514  else if (object->IsA() == CbmRichHit::Class())
515  FillVarRichHit(static_cast<const CbmRichHit*>(object), values);
516  else if (object->IsA() == CbmTofHit::Class())
517  FillVarTofHit(static_cast<const CbmTofHit*>(object), values);
518  else if (object->InheritsFrom(FairMCPoint::Class()))
519  FillVarMCPoint(static_cast<const FairMCPoint*>(object), values);
520  else
521  printf("PairAnalysisVarManager::Fill: Type %s is not supported by "
522  "PairAnalysisVarManager! \n",
523  object->ClassName());
524 }
525 
526 
527 inline void PairAnalysisVarManager::FillSum(const TObject* object,
528  Double_t* const values) {
529  //
530  // Main function to incremenebt available variables according to the type
531  //
532 
533  //Protect
534  if (!object)
535  return;
536  else if (object->InheritsFrom(FairMCPoint::Class()))
537  FillSumVarMCPoint(static_cast<const FairMCPoint*>(object), values);
538  else
539  printf("PairAnalysisVarManager::FillSum: Type %s is not supported by "
540  "PairAnalysisVarManager! \n",
541  object->ClassName());
542 }
543 
545  Double_t* const values) {
546  // Protect
547  if (to >= kNMaxValues) return;
548  // Reset
549  for (Int_t i = kConstMax; i < to; ++i) {
550  values[i] = 0.;
551  }
552  // reset values different from zero
553  if (to >= kTrackMax && to > kParticleMax) {
554  values[kTrdPidANN] = -999.;
555  values[kRichPidANN] = -999.;
556  }
557  if (to >= kHitMax && to > kConstMax) {
558  values[kMassSq] = -999.;
559  values[kBeta] = -999.;
560  values[kTofPidDeltaBetaEL] = -999.;
561  values[kTofPidDeltaBetaMU] = -999.;
562  values[kTofPidDeltaBetaPI] = -999.;
563  values[kTofPidDeltaBetaKA] = -999.;
564  values[kTofPidDeltaBetaPR] = -999.;
565  }
566 }
567 
568 
570  Double_t* const values) {
571  // Protect
572  if (to >= kNMaxValuesMC) return;
573  // Reset
574  for (Int_t i = kNMaxValues; i < to; ++i)
575  values[i] = 0.;
576  // reset values different from zero
577  // /*
578  values[kPdgCode] = -99999.;
579  values[kPdgCodeMother] = -99999.;
580  values[kPdgCodeGrandMother] = -99999.;
581  // */
582  //valuesMC[kNumberOfDaughters] = -999.;
583  if (to >= kHitMaxMC && to > kNMaxValues) {
584  values[kPosXMC] = -999.;
585  values[kPosYMC] = -999.;
586  values[kPosZMC] = -999.;
587  values[kElossMC] = -999.;
588  }
589 }
590 
591 inline void
593  Double_t* const values) {
594  //
595  // Fill event information available into an array
596  //
597 
598  // Reset array
599  ResetArrayData(kNMaxValues, values);
601 
602  // Protect
603  if (!event) return;
604 
605  // Set
606  values[kNTrk] = event->GetNumberOfTracks();
607  values[kStsMatches] = event->GetNumberOfMatches(ECbmModuleId::kSts);
608  values[kTrdMatches] = event->GetNumberOfMatches(ECbmModuleId::kTrd);
609  values[kVageMatches] = event->GetNumberOfVageMatches();
610  values[kTotalTRDHits] = event->GetNumberOfHits(ECbmModuleId::kTrd);
611  const Double_t proMass = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
612  Double_t beta =
613  TMath::Sqrt(values[kEbeam] * values[kEbeam] - proMass * proMass)
614  / (values[kEbeam] + proMass);
615  values[kYbeam] = TMath::ATanH(beta);
616  // Printf("beam rapidity new: %f",values[kYbeam]);
617  values[kNTrkMC] = event->GetNumberOfMCTracks();
618  values[kTotalTRDHitsMC] = event->GetNumberOfPoints(ECbmModuleId::kTrd);
619 
620 
621  // Set vertex
622  FillVarVertex(event->GetPrimaryVertex(), values);
623 
624  // Set header information
625  FillVarMCHeader(event->GetMCHeader(), values);
626 }
627 
628 inline void
629 PairAnalysisVarManager::FillVarMCHeader(const FairMCEventHeader* header,
630  Double_t* const values) {
631  //
632  // Fill MCheader information available into an array
633  //
634 
635  // Protect
636  if (!header) return;
637 
638  // Reset
639  // ResetArrayData(kNMaxValues, values);
640  if (fgVertexMC) fgVertexMC->Reset();
641 
642  // Set
643  // values[k] = header->GetPhi(); // event plane angle [rad]
644 
645  // accessors via first FairMCEventHeader
646  values[kXvPrimMC] = header->GetX();
647  values[kYvPrimMC] = header->GetY();
648  values[kZvPrimMC] = header->GetZ();
649  values[kImpactParam] = header->GetB(); // [fm]
650  values[kNPrimMC] = header->GetNPrim();
651 
652  // Fill mc vertex data member
653  TMatrixFSym mat(3);
654  fgVertexMC->SetVertex(values[kXvPrimMC],
655  values[kYvPrimMC],
656  values[kZvPrimMC],
657  -999.,
658  1.,
659  values[kNPrimMC],
660  mat);
661 }
662 
664  Double_t* const values) {
665  //
666  // Fill vertex information available into an array
667  //
668 
669  // Protect
670  if (!vertex) return;
671 
672  // Reset
673  // ResetArrayData(kNMaxValues, values);
674 
675  // Set
676  values[kXvPrim] = vertex->GetX();
677  values[kYvPrim] = vertex->GetY();
678  values[kZvPrim] = vertex->GetZ();
679  values[kNVtxContrib] = vertex->GetNTracks();
680  values[kVtxChi] = vertex->GetChi2();
681  values[kVtxNDF] = vertex->GetNDF();
682 }
683 
684 
685 inline void
687  Double_t* const values) {
688  //
689  // Fill track information for the all track and its sub tracks
690  //
691 
692  // Reset
693  ResetArrayData(kTrackMax, values);
694  ResetArrayDataMC(kTrackMaxMC, values);
695 
696  // Protect
697  if (!track) return;
698 
699  // Set track specific variables
700  Fill(track->GetGlobalTrack(), values);
701  Fill(track->GetStsTrack(), values);
702  Fill(track->GetMuchTrack(), values);
703  Fill(track->GetTrdTrack(), values);
704  Fill(track->GetRichRing(), values);
705 
706  values[kP] = track->P();
707 
708  values[kRichDistance] =
709  1.; //CbmRichUtil::GetRingTrackDistance(track->GetGlobalIndex());
711  track->GetGlobalIndex(), values[kP]); // fgRichElIdA
712 
713  // acceptance defintions
714  FairTrackParam* param = NULL;
715  if ((param = track->GetRichProj())) { // RICH
716  values[kRichhasProj] = (TMath::Abs(param->GetX() + param->GetY()) > 0.);
717  }
718  if ((param = track->GetMvdEntrance())) { // MVD
719  values[kMvdFirstExtX] = param->GetX();
720  values[kMvdFirstExtY] = param->GetY();
721  Double_t innerLimit = 0.5; //cm, TODO: no hardcoding
722  Double_t outerLimit = 2.5; //cm
723  values[kMvdhasEntr] = ((TMath::Abs(param->GetX()) > innerLimit
724  && TMath::Abs(param->GetX()) < outerLimit
725  && TMath::Abs(param->GetY()) < outerLimit)
726  || (TMath::Abs(param->GetY()) > innerLimit
727  && TMath::Abs(param->GetY()) < outerLimit
728  && TMath::Abs(param->GetX()) < outerLimit));
729  }
730 
731  // mc
732  Fill(track->GetMCTrack(), values); // this contains particle infos as well
733 
734  if (track->GetTrackMatch(
735  ECbmModuleId::
736  kTrd)) { // track match specific (accessors via CbmTrackMatchNew)
738  ->GetNofLinks(); //number of different! mc tracks
739 
740  Int_t trueHits = 0, distHits = 0, fakeHits = 0;
742  track, ECbmModuleId::kTrd, &trueHits, &distHits, &fakeHits);
743 
744  values[kTrdTrueHits] = trueHits;
745  values[kTrdDistHits] = distHits;
746  values[kTrdFakeHits] = fakeHits;
747  // values[kTrdDistortion] = dist/links;
748  /* values[kTrdTrueHits] = tmtch->GetNofTrueHits(); //NOTE: changed defintion */
749  /* values[kTrdFakeHits] = tmtch->GetNofWrongHits(); //NOTE: changed definition */
750  }
751  if (track->GetTrackMatch(ECbmModuleId::kSts)) {
752  Int_t trueHits = 0, distHits = 0, fakeHits = 0;
754  track, ECbmModuleId::kSts, &trueHits, &distHits, &fakeHits);
755 
756  values[kStsTrueHits] = trueHits;
757  values[kStsDistHits] = distHits;
758  values[kStsFakeHits] = fakeHits;
759  }
760  if (track->GetTrackMatch(ECbmModuleId::kRich)) {
761  values[kRichMCPoints] =
763  }
764  values[kStsisMC] =
765  track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kSts)));
766  values[kMuchisMC] =
767  track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kMuch)));
768  values[kTrdisMC] =
769  track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kTrd)));
770  values[kRichisMC] =
771  track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kRich)));
772  values[kMvdisMC] =
773  track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kMvd)));
774  values[kTofisMC] =
775  track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kTof)));
776  values[kWeight] = track->GetWeight();
777 
778  // Reset
779  ResetArrayData(kParticleMax, values);
780 
781  // Set DATA default (refitted sts track to primary vertex)
782  values[kPx] = track->Px();
783  values[kPy] = track->Py();
784  values[kPz] = track->Pz();
785  values[kPt] = track->Pt();
786  values[kPtSq] = track->Pt() * track->Pt();
787  values[kP] = track->P();
788 
789  values[kXv] = track->Xv();
790  values[kYv] = track->Yv();
791  values[kZv] = track->Zv();
792 
793  values[kOneOverPt] = (track->Pt() > 1.0e-3 ? track->OneOverPt() : 0.0);
794  values[kPhi] =
795  (TMath::IsNaN(track->Phi()) ? -999. : TVector2::Phi_0_2pi(track->Phi()));
796  values[kTheta] = track->Theta();
797  // values[kEta] = track->Eta();
798  values[kY] = track->Y() - values[kYbeam];
799  values[kYlab] = track->Y();
800  values[kE] = track->E();
801  values[kM] = track->M();
802  values[kCharge] = track->Charge();
803  values[kMt] = TMath::Sqrt(values[kMPair] * values[kMPair] + values[kPtSq]);
804  // values[kPdgCode] = track->PdgCode();
805  values[kChi2NDFtoVtx] = track->ChiToVertex();
806  values[kImpactParXY] =
807  TMath::Sqrt(TMath::Power(TMath::Abs(values[kXv] - values[kXvPrim]), 2)
808  + TMath::Power(TMath::Abs(values[kYv] - values[kYvPrim]), 2));
809  values[kImpactParZ] = TMath::Abs(values[kZv] - values[kZvPrim]);
810 
811  // special
813  // values[kTrackLength] = track->GetGlobalTrack()->GetLength(); // cm
814  values[kInclAngle] = TMath::ASin(track->Pt() / track->P());
815  Fill(track->GetTofHit(), values);
816  values[kTofHits] = (track->GetTofHit() ? 1. : 0.);
817  values[kRndmTrack] = gRandom->Rndm();
818 }
819 
820 inline void
822  Double_t* const values) {
823  //
824  // Fill track information for the global track into array
825  //
826 
827  // Protect
828  if (!track) return;
829 
830  // Set
831  values[kTrackChi2NDF] =
832  (track->GetNDF() > 0. ? track->GetChi2() / track->GetNDF() : -999.);
833  values[kTrackLength] = track->GetLength(); // cm
834  // accessors via first FairTrackParam
835  TVector3 mom;
836  track->GetParamFirst()->Momentum(mom);
837  values[kPin] = mom.Mag();
838  values[kPtin] = mom.Pt();
839  track->GetParamLast()->Momentum(mom);
840  values[kPout] = mom.Mag();
841  values[kPtout] = mom.Pt();
842  values[kCharge] = (track->GetParamFirst()->GetQp() > 0. ? +1. : -1.);
843 }
844 
846  Double_t* const values) {
847  //
848  // Fill track information for the trd track into array
849  //
850 
851  // Protect
852  if (!track) return;
853 
854  // Set
855  //Do Select is no longer supported use CbmRichElectronIdAnn::GetInstance().CalculateAnnValue(globalTrackIndex, momentum);
856  // values[kRichPidANN] = -1; // fgRichElIdAnn->DoSelect(const_cast<CbmRichRing*>(track), values[kP]); // PID value ANN method
857  values[kRichHitsOnRing] = track->GetNofHitsOnRing();
858  values[kRichHits] = track->GetNofHits();
859  values[kRichChi2NDF] =
860  (track->GetNDF() > 0. ? track->GetChi2() / track->GetNDF() : -999.);
861  values[kRichRadius] = track->GetRadius();
862  values[kRichAxisA] = track->GetAaxis();
863  values[kRichAxisB] = track->GetBaxis();
864  values[kRichCenterX] = track->GetCenterX();
865  values[kRichCenterY] = track->GetCenterY();
866  // CbmRichRing::GetDistance() method is no longer supported
867  // If you wan to use cuts update code using CbmRichUtil::GetRingTrackDistance()
868  // values[kRichDistance] = 1.;
869  values[kRichRadialPos] = track->GetRadialPosition();
870  values[kRichRadialAngle] = track->GetRadialAngle();
871  values[kRichPhi] = track->GetPhi();
872 }
873 
875  Double_t* const values) {
876  //
877  // Fill track information for the trd track into array
878  //
879 
880  // Protect
881  if (!track) return;
882 
883  // Calculate eloss
884  TClonesArray* hits = fgEvent->GetHits(ECbmModuleId::kTrd);
885  if (hits && track->GetELoss() < 1.e-8 /*&& Req(kTrdSignal)*/) {
886  Double_t eloss = 0;
887  for (Int_t ihit = 0; ihit < track->GetNofHits(); ihit++) {
888  Int_t idx = track->GetHitIndex(ihit);
889  CbmTrdHit* hit = (CbmTrdHit*) hits->At(idx);
890  if (hit) {
891  eloss += hit->GetELoss(); // dEdx + TR
892  }
893  }
894  // printf("track %p \t eloss %.3e \n",track,eloss);
895  const_cast<CbmTrdTrack*>(track)->SetELoss(eloss); // NOTE: this is the sum
896  }
897 
898  // Set
899  values[kTrdSignal] =
900  track->GetELoss()
901  * 1.e+6; //GeV->keV, NOTE: see corrections,normalisation below (angles,#hits)
902  values[kTrdPidWkn] = track->GetPidWkn(); // PID value Wkn method
903  values[kTrdPidANN] = track->GetPidANN(); // PID value ANN method
904  // PID value Likelihood method
905  values[kTrdPidLikeEL] = track->GetPidLikeEL();
906  values[kTrdPidLikePI] = track->GetPidLikePI();
907  values[kTrdPidLikeKA] = track->GetPidLikeKA();
908  values[kTrdPidLikePR] = track->GetPidLikePR();
909  values[kTrdPidLikeMU] = track->GetPidLikeMU();
910  // accessors via CbmTrack
911  values[kTrdHits] = track->GetNofHits();
912  values[kTrdChi2NDF] =
913  (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.);
914  // accessors via first FairTrackParam
915  TVector3 mom;
916  track->GetParamFirst()->Momentum(mom);
917  values[kTrdPin] = mom.Mag();
918  values[kTrdPtin] = mom.Pt();
919  values[kTrdThetain] = mom.Theta();
920  values[kTrdPhiin] = mom.Phi();
921  // correction factors
922  values[kTrdThetaCorr] = 1. / mom.CosTheta();
923  values[kTrdPhiCorr] = 1. / TMath::Cos(mom.Phi());
924  // apply correction and normalisation
925  values[kTrdSignal] /=
926  values[kTrdHits]; // * values[kTrdThetaCorr] * values[kTrdPhiCorr]);
927 
928  track->GetParamLast()->Momentum(mom);
929  values[kTrdPout] = mom.Mag();
930  values[kTrdPtout] = mom.Pt();
931  // values[kTrdCharge] = (track->GetParamFirst()->GetQp()>0. ? +1. : -1. );
932  /* TVector3 pos1; */
933  /* track->GetParamFirst()->Position(pos1); */
934  /* TVector3 pos2; */
935  /* track->GetParamLast()->Position(pos2); */
936  // values[kTrdTrackLength] = (pos2!=pos1 ? (pos2-=pos1).Mag() : 1.);
937 }
938 
940  Double_t* const values) {
941  //
942  // Fill track information for the Sts track into array
943  //
944 
945  // Protect
946  if (!track) return;
947 
948  // Calculate first hit position for sts and mvd
949  Double_t minSts = 9999.;
950  TClonesArray* hits = fgEvent->GetHits(ECbmModuleId::kSts);
951  if (hits /*&& Req(kStsFirstHitPosZ)*/) {
952  for (Int_t ihit = 0; ihit < track->GetNofStsHits(); ihit++) {
953  Int_t idx = track->GetStsHitIndex(ihit);
954  CbmStsHit* hit = (CbmStsHit*) hits->At(idx);
955  if (hit && minSts > hit->GetZ()) {
956  minSts = hit->GetZ();
957  // Printf("hit %d idx %d position %.5f",ihit,idx,min);
958  }
959  }
960  }
961  Double_t minMvd = 9999.;
963  if (hits) {
964  for (Int_t ihit = 0; ihit < track->GetNofMvdHits(); ihit++) {
965  Int_t idx = track->GetMvdHitIndex(ihit);
966  CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx);
967  if (hit && minMvd > hit->GetZ()) { minMvd = hit->GetZ(); }
968  }
969  }
970 
971  // Set
972  values[kMvdHits] = track->GetNofMvdHits();
973  // values[kImpactParZ] = track->GetB(); //Impact parameter of track at target z, in units of its error
974  // printf(" mom %f impactparz %f \n",values[kPout],values[kImpactParZ]);
975  // accessors via CbmTrack
976  values[kStsHits] = track->GetNofStsHits();
977  values[kStsChi2NDF] =
978  (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.);
979  // accessors via first FairTrackParam
980  TVector3 mom;
981  track->GetParamFirst()->Momentum(mom);
982  values[kStsPin] = mom.Mag();
983  values[kStsPtin] = mom.Pt();
984  track->GetParamFirst()->Position(mom);
985  values[kStsXv] = mom.X();
986  values[kStsYv] = mom.Y();
987  values[kStsZv] = mom.Z();
988  track->GetParamLast()->Momentum(mom);
989  values[kStsPout] = mom.Mag();
990  values[kStsPtout] = mom.Pt();
991  // values[kStsCharge] = (track->GetParamFirst()->GetQp()>0. ? +1. : -1. );
992 
993  values[kMvdFirstHitPosZ] = minMvd;
994  values[kStsFirstHitPosZ] = minSts;
995 }
996 
998  Double_t* const values) {
999  //
1000  // Fill track information for the Much track into array
1001  //
1002 
1003  // Protect
1004  if (!track) return;
1005 
1006  // Calculate straw, (TODO:trigger) and pixel hits
1007  values[kMuchHitsPixel] = 0.;
1008  for (Int_t ihit = 0; ihit < track->GetNofHits(); ihit++) {
1009  // Int_t idx = track->GetHitIndex(ihit);
1010  Int_t hitType = track->GetHitType(ihit);
1012  values[kMuchHitsPixel]++;
1013  }
1014 
1015  // Set
1016  // accessors via CbmTrack
1017  values[kMuchHits] = track->GetNofHits();
1018  values[kMuchChi2NDF] =
1019  (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.);
1020 }
1021 
1023  const CbmMCTrack* p2,
1024  Double_t* const values) {
1025  //
1026  // fill 2 track information starting from MC legs
1027  //
1028 
1029  // Reset
1030  ResetArrayDataMC(kPairMaxMC, values);
1031 
1032  // Protect
1033  if (!p1 || !p2) return;
1034 
1035  // Get the MC interface if available
1037  if (!mc->HasMC()) return;
1038 
1039  // Set
1040  CbmMCTrack* mother = 0x0;
1041  Int_t mLabel1 = p1->GetMotherId();
1042  Int_t mLabel2 = p2->GetMotherId();
1043  if (mLabel1 == mLabel2) mother = mc->GetMCTrackFromMCEvent(mLabel1);
1044 
1045  PairAnalysisPair* pair = new PairAnalysisPairLV();
1046  pair->SetMCTracks(p1, p2);
1047 
1048  if (mother)
1049  FillVarMCTrack(mother, values);
1050  else {
1051  values[kPxMC] = pair->Px();
1052  values[kPyMC] = pair->Py();
1053  values[kPzMC] = pair->Pz();
1054  values[kPtMC] = pair->Pt();
1055  values[kPtSqMC] = pair->Pt() * pair->Pt();
1056  values[kPMC] = pair->P();
1057 
1058  values[kXvMC] = pair->Xv();
1059  values[kYvMC] = pair->Yv();
1060  values[kZvMC] = pair->Zv();
1061  //TODO values[kTMC] = 0.;
1062 
1063  values[kOneOverPtMC] = (pair->Pt() > 1.0e-3 ? pair->OneOverPt() : 0.0);
1064  values[kPhiMC] =
1065  (TMath::IsNaN(pair->Phi()) ? -999. : TVector2::Phi_0_2pi(pair->Phi()));
1066  values[kThetaMC] = pair->Theta();
1067  // values[kEtaMC] = pair->Eta();
1068  values[kYMC] = pair->Y() - values[kYbeam];
1069  values[kYlabMC] = pair->Y();
1070  values[kEMC] = pair->E();
1071  values[kMMC] = pair->M();
1072  values[kChargeMC] = p1->GetCharge() * p2->GetCharge();
1073  }
1074  values[kOpeningAngleMC] = pair->OpeningAngle();
1075  values[kCosPointingAngleMC] =
1077  // values[kPhivPairMC] = pair->PhivPair(1.);
1078 
1079  // delete the surplus pair
1080  delete pair;
1081 }
1082 
1084  Double_t* const values) {
1085  //
1086  // fill particle information from MC leg
1087  //
1088 
1089  // Reset
1090  ResetArrayDataMC(kTrackMaxMC, values);
1091 
1092  // Protect
1093  if (!particle) return;
1094 
1095  // Get the MC interface if available
1097  if (!mc->HasMC()) return;
1098 
1099  // Set
1100  CbmMCTrack* mother = 0x0;
1101  Int_t mLabel1 = particle->GetMotherId();
1102  mother = mc->GetMCTrackFromMCEvent(mLabel1);
1103 
1104  values[kPdgCode] = particle->GetPdgCode();
1105  values[kPdgCodeMother] = (mother ? mother->GetPdgCode() : -99999.);
1106  values[kEMotherMC] = (mother ? mother->GetEnergy() : -99999.);
1107  CbmMCTrack* granni = 0x0;
1108  if (mother) granni = mc->GetMCTrackMother(mother);
1109  values[kPdgCodeGrandMother] =
1110  (granni ? granni->GetPdgCode() : -99999.); //mc->GetMotherPDG(mother);
1111  values[kGeantId] = particle->GetGeantProcessId();
1112 
1113  values[kPxMC] = particle->GetPx();
1114  values[kPyMC] = particle->GetPy();
1115  values[kPzMC] = particle->GetPz();
1116  values[kPtMC] = particle->GetPt();
1117  values[kPtSqMC] = particle->GetPt() * particle->GetPt();
1118  values[kPMC] = particle->GetP();
1119 
1120  values[kXvMC] = particle->GetStartX();
1121  values[kYvMC] = particle->GetStartY();
1122  values[kZvMC] = particle->GetStartZ();
1123  TVector3 vtx;
1124  particle->GetStartVertex(vtx);
1125  values[kPhivMC] = vtx.Phi();
1126  values[kThetavMC] = vtx.Theta();
1127  //TODO values[kTMC] = particle->GetStartT(); [ns]
1128 
1129  TLorentzVector mom;
1130  if (particle) particle->Get4Momentum(mom);
1131  values[kOneOverPtMC] =
1132  (particle->GetPt() > 1.0e-3 ? 1. / particle->GetPt() : 0.0);
1133  values[kPhiMC] =
1134  (TMath::IsNaN(mom.Phi()) ? -999. : TVector2::Phi_0_2pi(mom.Phi()));
1135  values[kThetaMC] = mom.Theta();
1136  // values[kEtaMC] = mom.Eta();
1137  values[kYMC] = particle->GetRapidity() - values[kYbeam];
1138  ;
1139  values[kYlabMC] = particle->GetRapidity();
1140  Double_t pom = particle->GetP() / particle->GetMass();
1141  Double_t beta = pom / TMath::Sqrt(pom * pom + 1.);
1142  // Double_t gamma = 1./ TMath::Sqrt(1.-pom*pom);
1143  values[kBetaGammaMC] = 1. / TMath::Sqrt(1. - beta * beta);
1144  values[kEMC] = particle->GetEnergy();
1145  values[kMMC] = mom.M(); //particle->GetMass();
1146  values[kChargeMC] = particle->GetCharge();
1147 
1148  // detector info
1149  values[kRichHitsMC] = particle->GetNPoints(ECbmModuleId::kRich);
1150  values[kTrdHitsMC] = particle->GetNPoints(ECbmModuleId::kTrd);
1151  values[kMvdHitsMC] = particle->GetNPoints(ECbmModuleId::kMvd);
1152  values[kStsHitsMC] = particle->GetNPoints(ECbmModuleId::kSts);
1153  values[kTofHitsMC] = particle->GetNPoints(ECbmModuleId::kTof);
1154  values[kMuchHitsMC] = particle->GetNPoints(ECbmModuleId::kMuch);
1155 }
1156 
1157 inline void
1159  Double_t* const values) {
1160  //
1161  // Fill pair information available for histogramming into an array
1162  //
1163 
1164  // Reset
1165  ResetArrayData(kPairMax, values);
1166  ResetArrayDataMC(kPairMaxMC, values);
1167 
1168  // Protect
1169  if (!pair) return;
1170 
1171  // set the beamenergy (needed by some variables)
1172  pair->SetBeamEnergy(values[kEbeam]);
1173 
1174  // first fill mc info to avoid kWeight beeing reset
1175  // TODO: check if it makes sence only for pairtypes of SE
1177  pair->GetSecondDaughter()->GetMCTrack(),
1178  values);
1179 
1180  // Set
1181  values[kPairType] = pair->GetType();
1182 
1183  values[kPx] = pair->Px();
1184  values[kPy] = pair->Py();
1185  values[kPz] = pair->Pz();
1186  values[kPt] = pair->Pt();
1187  values[kPtSq] = pair->Pt() * pair->Pt();
1188  values[kP] = pair->P();
1189 
1190  values[kXv] = pair->Xv();
1191  values[kYv] = pair->Yv();
1192  values[kZv] = pair->Zv();
1193 
1194  values[kOneOverPt] = (pair->Pt() > 1.0e-3 ? pair->OneOverPt() : 0.0);
1195  values[kPhi] =
1196  (TMath::IsNaN(pair->Phi()) ? -999. : TVector2::Phi_0_2pi(pair->Phi()));
1197  values[kTheta] = pair->Theta();
1198  // values[kEta] = pair->Eta();
1199  values[kY] = pair->Y() - values[kYbeam];
1200  values[kYlab] = pair->Y();
1201  values[kE] = pair->E();
1202  values[kM] = pair->M();
1203  values[kCharge] = pair->Charge();
1204  values[kMt] = TMath::Sqrt(values[kMPair] * values[kMPair] + values[kPtSq]);
1205 
1207  /* values[kPdgCode]=-1; */
1208  /* values[kPdgCodeMother]=-1; */
1209  /* values[kPdgCodeGrandMother]=-1; */
1210  values[kWeight] = pair->GetWeight();
1211 
1212  Double_t thetaHE = 0;
1213  Double_t phiHE = 0;
1214  Double_t thetaCS = 0;
1215  Double_t phiCS = 0;
1216  if (Req(kThetaHE) || Req(kPhiHE) || Req(kThetaCS) || Req(kPhiCS)) {
1217  pair->GetThetaPhiCM(thetaHE, phiHE, thetaCS, phiCS);
1218 
1219  values[kThetaHE] = thetaHE;
1220  values[kPhiHE] = phiHE;
1221  values[kThetaSqHE] = thetaHE * thetaHE;
1222  values[kCos2PhiHE] = TMath::Cos(2.0 * phiHE);
1223  values[kCosTilPhiHE] = (thetaHE > 0)
1224  ? (TMath::Cos(phiHE - TMath::Pi() / 4.))
1225  : (TMath::Cos(phiHE - 3 * TMath::Pi() / 4.));
1226  values[kThetaCS] = thetaCS;
1227  values[kPhiCS] = phiCS;
1228  values[kThetaSqCS] = thetaCS * thetaCS;
1229  values[kCos2PhiCS] = TMath::Cos(2.0 * phiCS);
1230  values[kCosTilPhiCS] = (thetaCS > 0)
1231  ? (TMath::Cos(phiCS - TMath::Pi() / 4.))
1232  : (TMath::Cos(phiCS - 3 * TMath::Pi() / 4.));
1233  }
1234 
1235  values[kChi2NDF] = pair->GetChi2() / pair->GetNdf();
1236  values[kDecayLength] = pair->GetDecayLength();
1237  values[kR] = pair->GetR();
1238  values[kOpeningAngle] = pair->OpeningAngle();
1239  values[kCosPointingAngle] =
1241 
1242  values[kLegDist] = pair->DistanceDaughters();
1243  values[kLegDistXY] = pair->DistanceDaughtersXY();
1244  // values[kDeltaEta] = pair->DeltaEta();
1245  // values[kDeltaPhi] = pair->DeltaPhi();
1246  values[kLegsP] = TMath::Sqrt(pair->DaughtersP());
1247 
1248  // Armenteros-Podolanski quantities
1249  values[kArmAlpha] = pair->GetArmAlpha();
1250  values[kArmPt] = pair->GetArmPt();
1251 
1252  //if(Req(kPsiPair)) values[kPsiPair] = fgEvent ? pair->PsiPair(fgEvent->GetMagneticField()) : -5;
1253  //if(Req(kPhivPair)) values[kPhivPair] = pair->PhivPair(1.);
1254 
1255  // impact parameter
1256  Double_t d0z0[2] = {-999., -999.};
1257  if (fgEvent) pair->GetDCA(fgEvent->GetPrimaryVertex(), d0z0);
1258  values[kImpactParXY] = d0z0[0];
1259  values[kImpactParZ] = d0z0[1];
1260 
1261  values[kRndmPair] = gRandom->Rndm();
1262 }
1263 
1264 
1266  Double_t* const values) {
1267  //
1268  // Fill hit information for the rich hit into array
1269  //
1270 
1271  // Protect
1272  if (!hit) return;
1273 
1274  // accessors via CbmPixelHit
1275  values[kPosX] = hit->GetX();
1276  values[kPosY] = hit->GetY();
1277  // accessors via CbmHit
1278  values[kPosZ] = hit->GetZ();
1279  // accessors via CbmMatch
1280  values[kLinksMC] = (hit->GetMatch() ? hit->GetMatch()->GetNofLinks() : 0.);
1281 }
1282 
1284  Double_t* const values) {
1285  //
1286  // Fill hit information for the sts hit into array
1287  //
1288 
1289  // Reset array
1290  ResetArrayData(kHitMax, values);
1291 
1292  // Protect
1293  if (!hit) return;
1294 
1295  // accessors via CbmPixelHit & CbmHit
1296  FillVarPixelHit(hit, values);
1297 
1298  // Set
1299  // ...
1300 }
1301 
1303  Double_t* const values) {
1304  //
1305  // Fill hit information for the mvd hit into array
1306  //
1307 
1308  // Reset array
1309  ResetArrayData(kHitMax, values);
1310 
1311  // Protect
1312  if (!hit) return;
1313 
1314  // accessors via CbmPixelHit & CbmHit
1315  FillVarPixelHit(hit, values);
1316 
1317  // Set
1318  // TODO: add center of gravity?
1319  // ...
1320 }
1321 
1323  Double_t* const values) {
1324  //
1325  // Fill hit information for the much hit into array
1326  //
1327 
1328  // Reset array
1329  ResetArrayData(kHitMax, values);
1330 
1331  // Protect
1332  if (!hit) return;
1333 
1334  // accessors via CbmPixelHit & CbmHit
1335  FillVarPixelHit(hit, values);
1336 
1337  // Set
1338  // ...
1339 }
1340 
1342  Double_t* const values) {
1343  //
1344  // Fill hit information for the rich hit into array
1345  //
1346 
1347  // Reset array
1348  ResetArrayData(kHitMax, values);
1349 
1350  // Protect
1351  if (!hit) return;
1352 
1353  // accessors via CbmPixelHit & CbmHit
1354  FillVarPixelHit(hit, values);
1355 
1356  // Set
1357  values[kNPhotons] = 1; //hit->GetNPhotons();
1358  values[kPmtId] = hit->GetPmtId();
1359 }
1360 
1362  Double_t* const values) {
1363  //
1364  // Fill hit information for the trd hit into array
1365  //
1366 
1367  // Reset array
1368  ResetArrayData(kHitMax, values);
1369 
1370  // Protect
1371  if (!hit) return;
1372 
1373  // accessors via CbmPixelHit & CbmHit
1374  FillVarPixelHit(hit, values);
1375 
1376  // accessors via CbmCluster & CbmTrdCluster
1377  TClonesArray* cluster = fgEvent->GetCluster(ECbmModuleId::kTrd);
1378  if (cluster->GetEntriesFast() > 0) {
1379  const CbmTrdCluster* cls =
1380  static_cast<const CbmTrdCluster*>(cluster->At(hit->GetRefId()));
1381  FillVarTrdCluster(cls, values);
1382  // if(cls) std::cout << (cls->ToString()).data();
1383  }
1384 
1385  // Set
1386  values[kTrdLayer] = hit->GetPlaneId(); //layer id
1388  values[kEloss] = hit->GetELoss() * 1.e+6; //GeV->keV, dEdx + TR
1389  // values[kElossdEdx] = hit->GetELossdEdX() * 1.e+6; //GeV->keV, dEdx
1390  // values[kElossTR] = hit->GetELossTR() * 1.e+6; //GeV->keV, TR
1391  // Printf("eloss trd: %.3e (%.3e TR, %.3e dEdx)",hit->GetELoss(),hit->GetELossTR(),hit->GetELossdEdX());
1392 }
1393 
1395  Double_t* const values) {
1396  //
1397  // Fill hit information for the tof hit into array
1398  //
1399 
1400  // Reset array
1401  ResetArrayData(kHitMax, values);
1402 
1403  // Protect
1404  if (!hit) return;
1405 
1406  // accessors via CbmPixelHit & CbmHit
1407  FillVarPixelHit(hit, values);
1408 
1409  // Set
1410  values[kBeta] =
1411  values[kTrackLength] / 100 / (hit->GetTime() * 1e-9) / TMath::C();
1412  // PID value detla beta
1413  values[kTofPidDeltaBetaEL] =
1414  values[kBeta]
1415  - (values[kP]
1416  / TMath::Sqrt(values[kMEL] * values[kMEL] + values[kP] * values[kP]));
1417  values[kTofPidDeltaBetaMU] =
1418  values[kBeta]
1419  - (values[kP]
1420  / TMath::Sqrt(values[kMMU] * values[kMMU] + values[kP] * values[kP]));
1421  values[kTofPidDeltaBetaPI] =
1422  values[kBeta]
1423  - (values[kP]
1424  / TMath::Sqrt(values[kMPI] * values[kMPI] + values[kP] * values[kP]));
1425  values[kTofPidDeltaBetaKA] =
1426  values[kBeta]
1427  - (values[kP]
1428  / TMath::Sqrt(values[kMKA] * values[kMKA] + values[kP] * values[kP]));
1429  values[kTofPidDeltaBetaPR] =
1430  values[kBeta]
1431  - (values[kP]
1432  / TMath::Sqrt(values[kMPR] * values[kMPR] + values[kP] * values[kP]));
1433 
1434  values[kMassSq] =
1435  values[kP] * values[kP] * (TMath::Power(1. / values[kBeta], 2) - 1);
1436 
1437  // Printf("track length: %f beta: %f",values[kTrackLength],values[kBeta]);
1438  // Double_t mass2 = TMath::Power(momentum, 2.) * (TMath::Power(time/ trackLength, 2) - 1);
1439 }
1440 
1441 inline void
1443  Double_t* const values) {
1444  //
1445  // Fill cluster information for the trd cluster into array
1446  //
1447 
1448  // Reset array
1449  // ResetArrayDataMC( kHitMaxMC, values);
1450 
1451  // Protect
1452  if (!cluster) return;
1453 
1454  // accessors via CbmCluster
1455  values[kTrdPads] = cluster->GetNofDigis();
1456 
1457  // Set
1458  values[kTrdCols] = cluster->GetNCols();
1459  values[kTrdRows] = cluster->GetNRows();
1460 }
1461 
1462 inline void PairAnalysisVarManager::FillVarMCPoint(const FairMCPoint* hit,
1463  Double_t* const values) {
1464  //
1465  // Fill MC hit information
1466  //
1467 
1468  // Reset array
1469  ResetArrayDataMC(kHitMaxMC, values);
1470 
1471  // Protect
1472  if (!hit) return;
1473 
1474  // Set
1475  values[kPosXMC] = hit->GetX();
1476  values[kPosYMC] = hit->GetY();
1477  values[kPosZMC] = hit->GetZ();
1478  values[kElossMC] = hit->GetEnergyLoss() * 1.e+6; //GeV->keV, dEdx
1479 }
1480 
1481 inline void PairAnalysisVarManager::FillSumVarMCPoint(const FairMCPoint* hit,
1482  Double_t* const values) {
1483  //
1484  // Sum upMC hit information
1485  //
1486 
1487  // DO NOT reset array
1488 
1489  // Protect
1490  if (!hit) return;
1491 
1492  // Set
1493  values[kPosXMC] += hit->GetX();
1494  values[kPosYMC] += hit->GetY();
1495  values[kPosZMC] += hit->GetZ();
1496  values[kElossMC] += hit->GetEnergyLoss() * 1.e+6; //GeV->keV, dEdx
1497 }
1498 
1499 inline void PairAnalysisVarManager::FillVarConstants(Double_t* const values) {
1500  //
1501  // Fill constant information available into an array
1502  // make use of TPDGCode
1503  //
1504 
1505  // Set
1506  values[kMEL] = TDatabasePDG::Instance()->GetParticle(kElectron)->Mass();
1507  values[kMMU] = TDatabasePDG::Instance()->GetParticle(kMuonMinus)->Mass();
1508  values[kMPI] = TDatabasePDG::Instance()->GetParticle(kPiPlus)->Mass();
1509  values[kMKA] = TDatabasePDG::Instance()->GetParticle(kKPlus)->Mass();
1510  values[kMPR] = TDatabasePDG::Instance()->GetParticle(kProton)->Mass();
1511  values[kMK0] = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass();
1512  values[kMLA] = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass();
1513  values[kMPair] = fgData
1514  [kMPair];
1515  values[kEbeam] = fgData
1516  [kEbeam];
1517 }
1518 
1520  //
1521  // set event and vertex
1522  //
1523 
1524  // Set
1525  fgEvent = ev;
1526 
1527  // Reset
1528  if (fgKFVertex) delete fgKFVertex;
1529  fgKFVertex = 0x0;
1530  if (fgVertexMC)
1531  fgVertexMC->Reset();
1532  else
1533  fgVertexMC = new CbmVertex();
1534 
1535  // Set
1537  if (ev && ev->GetPrimaryVertex())
1538  fgKFVertex = new CbmKFVertex(*ev->GetPrimaryVertex());
1539  Fill(fgEvent, fgData);
1540 }
1541 
1543  const Double_t data[PairAnalysisVarManager::kNMaxValuesMC]) {
1544  /* for (Int_t i=0; i<kNMaxValuesMC;++i) fgData[i]=0.; */
1545  for (Int_t i = kPairMax; i < kNMaxValues; ++i)
1546  fgData[i] = data[i];
1547  for (Int_t i = kPairMaxMC; i < kNMaxValuesMC; ++i)
1548  fgData[i] = data[i];
1549 }
1550 
1551 
1552 inline void
1554  ECbmModuleId idet,
1555  Int_t* trueH,
1556  Int_t* distH,
1557  Int_t* fakeH) {
1558 
1559  CbmTrack* trkl = track->GetTrack(idet);
1560  CbmRichRing* ring = track->GetRichRing();
1561  Int_t nhits = 0;
1562  switch (idet) {
1563  case ECbmModuleId::kMvd:
1564  if (trkl) nhits = static_cast<CbmStsTrack*>(trkl)->GetNofMvdHits();
1565  break;
1566  case ECbmModuleId::kSts:
1567  if (trkl) nhits = static_cast<CbmStsTrack*>(trkl)->GetNofStsHits();
1568  break;
1569  case ECbmModuleId::kMuch:
1570  case ECbmModuleId::kTrd:
1571  if (trkl) nhits = trkl->GetNofHits();
1572  break;
1573  case ECbmModuleId::kTof:
1574  nhits = 1; /* one is maximum */
1575  break;
1576  case ECbmModuleId::kRich:
1577  if (ring) nhits = ring->GetNofHits();
1578  break;
1579  default: return;
1580  }
1581 
1582  CbmTrackMatchNew* tmtch = track->GetTrackMatch(idet);
1583  Int_t mctrk = (tmtch && tmtch->GetNofHits() > 0 && tmtch->GetNofLinks() > 0
1584  ? tmtch->GetMatchedLink().GetIndex()
1585  : -1);
1586 
1588  if (mc) {
1589 
1591  TClonesArray* hits = fgEvent->GetHits(idet);
1592  TClonesArray* pnts = fgEvent->GetPoints(idet);
1593 
1594  Int_t links = 0;
1595  Double_t dist = 0.;
1596  *trueH = 0;
1597  *distH = 0;
1598  *fakeH = (mctrk > -1 ? 0 : nhits);
1599  if (hits && pnts && mctrk > -1) {
1600  for (Int_t ihit = 0; ihit < nhits; ihit++) {
1601 
1602  CbmHit* hit = NULL;
1603  Int_t idx = -1;
1604  switch (idet) {
1605  case ECbmModuleId::kMvd:
1606  idx = static_cast<CbmStsTrack*>(trkl)->GetMvdHitIndex(ihit);
1607  break;
1608  case ECbmModuleId::kSts:
1609  idx = static_cast<CbmStsTrack*>(trkl)->GetStsHitIndex(ihit);
1610  break;
1611  case ECbmModuleId::kMuch:
1612  case ECbmModuleId::kTrd: idx = trkl->GetHitIndex(ihit); break;
1613  case ECbmModuleId::kTof: hit = track->GetTofHit(); break;
1614  case ECbmModuleId::kRich: idx = ring->GetHit(ihit); break;
1615  default: continue;
1616  }
1617 
1618  if (idet != ECbmModuleId::kTof && idx > -1) {
1619  hit = dynamic_cast<CbmHit*>(hits->At(idx));
1620  }
1621 
1622  if (!hit) {
1623  (*fakeH)++;
1624  continue;
1625  }
1626  CbmMatch* mtch = hit->GetMatch();
1627  if (!mtch) {
1628  (*fakeH)++;
1629  continue;
1630  }
1631 
1632  Bool_t btrueH = kTRUE;
1633  Bool_t bfakeH = kTRUE;
1634  Int_t nlinks = mtch->GetNofLinks();
1635  links += nlinks;
1636  for (Int_t iLink = 0; iLink < nlinks; iLink++) {
1637  // if(nlinks!=1) { fakeH++; continue; }
1638  FairMCPoint* pnt = static_cast<FairMCPoint*>(
1639  pnts->At(mtch->GetLink(iLink).GetIndex()));
1640  // hit defintion
1641  if (!pnt)
1642  btrueH = kFALSE;
1643  else {
1644  Int_t lbl = pnt->GetTrackID();
1645  Int_t lblM = mc->GetMothersLabel(lbl);
1646  Int_t lblG = mc->GetMothersLabel(lblM);
1647  if (lbl != mctrk && lblM != mctrk && lblG != mctrk) {
1648  btrueH = kFALSE;
1649  dist += 1.;
1650  } else
1651  bfakeH = kFALSE;
1652  }
1653  }
1654  // increase counters
1655  if (btrueH) (*trueH)++;
1656  if (bfakeH) (*fakeH)++;
1657  if (!btrueH && !bfakeH) (*distH)++;
1658  }
1659  }
1660  /* values[kTrdDistortion] = dist/links; */
1661  }
1662 }
1663 
1664 
1666  ValueTypes var1,
1667  ValueTypes var2,
1668  ValueTypes var3,
1669  ValueTypes var4,
1670  ValueTypes var5,
1671  ValueTypes var6,
1672  ValueTypes var7,
1673  ValueTypes var8,
1674  ValueTypes var9) {
1675  //
1676  // build var array for e.g. TFormula's, THnBase's
1677  //
1678  static UInt_t arr[10] = {0};
1679  arr[0] = static_cast<UInt_t>(var0);
1680  arr[1] = static_cast<UInt_t>(var1);
1681  arr[2] = static_cast<UInt_t>(var2);
1682  arr[3] = static_cast<UInt_t>(var3);
1683  arr[4] = static_cast<UInt_t>(var4);
1684  arr[5] = static_cast<UInt_t>(var5);
1685  arr[6] = static_cast<UInt_t>(var6);
1686  arr[7] = static_cast<UInt_t>(var7);
1687  arr[8] = static_cast<UInt_t>(var8);
1688  arr[9] = static_cast<UInt_t>(var9);
1689  return arr;
1690 }
1691 
1693  if (fgFormula[1]) return;
1694  for (Int_t i = 1; i < kNMaxValuesMC - 1; ++i) {
1695  fgFormula[i] = new TFormula(fgkParticleNames[i][0], "[0]");
1696  fgFormula[i]->SetParameter(0, i);
1697  fgFormula[i]->SetParName(0, fgkParticleNames[i][0]);
1698  }
1699 }
1700 
1702  /* if(!fgKFFitter) { */
1703  /* fgKFFitter = new CbmStsKFTrackFitter(); */
1704  /* fgKFFitter->Init(); */
1705  /* } */
1706  // if(!fgL1Fitter) fgL1Fitter = new CbmL1PFFitter();
1707 }
1708 
1709 #endif
PairAnalysisVarManager::FillVarTrdHit
static void FillVarTrdHit(const CbmTrdHit *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1361
PairAnalysisVarManager::kTrdMCTracks
@ kTrdMCTracks
Definition: PairAnalysisVarManager.h:309
CbmVertex::GetNTracks
Int_t GetNTracks() const
Definition: CbmVertex.h:73
CbmVertex::SetVertex
void SetVertex(Double_t x, Double_t y, Double_t z, Double_t chi2, Int_t ndf, Int_t nTracks, const TMatrixFSym &covMat)
Definition: CbmVertex.cxx:129
PairAnalysisVarManager::kCosTilPhiCS
@ kCosTilPhiCS
Definition: PairAnalysisVarManager.h:220
PairAnalysisVarManager::kLegsP
@ kLegsP
Definition: PairAnalysisVarManager.h:228
CbmTrdTrack::GetPidLikePR
Double_t GetPidLikePR() const
Definition: CbmTrdTrack.h:37
PairAnalysisPair::GetDCA
void GetDCA(const CbmVertex *primVtx, Double_t d0z0[2]) const
Definition: PairAnalysisPair.cxx:135
PairAnalysisVarManager::kPairEff
@ kPairEff
Definition: PairAnalysisVarManager.h:234
PairAnalysisVarManager::kPhiMC
@ kPhiMC
Definition: PairAnalysisVarManager.h:285
CbmHit::GetZ
Double_t GetZ() const
Definition: CbmHit.h:70
PairAnalysisVarManager::ClassDef
ClassDef(PairAnalysisVarManager, 1)
PairAnalysisVarManager::kXvPrim
@ kXvPrim
Definition: PairAnalysisVarManager.h:242
CbmMCTrack::GetMotherId
Int_t GetMotherId() const
Definition: CbmMCTrack.h:71
PairAnalysisTrack::P
Double_t P() const
Definition: PairAnalysisTrack.h:90
CbmMatch::GetMatchedLink
const CbmLink & GetMatchedLink() const
Definition: CbmMatch.h:37
PairAnalysisVarManager::kPhivMC
@ kPhivMC
Definition: PairAnalysisVarManager.h:282
PairAnalysisVarManager::SetEvent
static void SetEvent(PairAnalysisEvent *const ev)
Definition: PairAnalysisVarManager.h:1519
PairAnalysisEvent::GetPrimaryVertex
CbmVertex * GetPrimaryVertex() const
Definition: PairAnalysisEvent.h:38
PairAnalysisVarManager::FillVarMuchHit
static void FillVarMuchHit(const CbmMuchPixelHit *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1322
PairAnalysisVarManager::kStsZv
@ kStsZv
Definition: PairAnalysisVarManager.h:173
PairAnalysisPair::GetWeight
Double_t GetWeight() const
Definition: PairAnalysisPair.h:81
PairAnalysisVarManager::kStsDistHits
@ kStsDistHits
Definition: PairAnalysisVarManager.h:316
CbmTrack::GetChiSq
Double_t GetChiSq() const
Definition: CbmTrack.h:58
CbmMCTrack::GetMass
Double_t GetMass() const
Mass of the associated particle.
Definition: CbmMCTrack.cxx:114
PairAnalysisVarManager::FillVarMuchTrack
static void FillVarMuchTrack(const CbmMuchTrack *track, Double_t *const values)
Definition: PairAnalysisVarManager.h:997
CbmMatch
Definition: CbmMatch.h:22
PairAnalysisVarManager::kNPhotons
@ kNPhotons
Definition: PairAnalysisVarManager.h:95
PairAnalysisVarManager::fgFormula
static TFormula * fgFormula[kNMaxValuesMC]
Definition: PairAnalysisVarManager.h:403
CbmMCTrack::GetStartX
Double_t GetStartX() const
Definition: CbmMCTrack.h:75
PairAnalysisVarManager::kTrdPidANN
@ kTrdPidANN
Definition: PairAnalysisVarManager.h:141
PairAnalysisVarManager::FillVarMCPoint
static void FillVarMCPoint(const FairMCPoint *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1462
PairAnalysisVarManager::kPin
@ kPin
Definition: PairAnalysisVarManager.h:134
PairAnalysisPair::GetFirstDaughter
PairAnalysisTrack * GetFirstDaughter() const
Definition: PairAnalysisPair.h:140
PairAnalysisPair::DistanceDaughtersXY
virtual Double_t DistanceDaughtersXY() const
Definition: PairAnalysisPair.h:105
PairAnalysisVarManager::kThetaSqHE
@ kThetaSqHE
Definition: PairAnalysisVarManager.h:211
CbmVertex.h
CbmTrack::GetParamLast
const FairTrackParam * GetParamLast() const
Definition: CbmTrack.h:62
PairAnalysisVarManager::kPxMC
@ kPxMC
Definition: PairAnalysisVarManager.h:273
PairAnalysisTrack::GetWeight
Double_t GetWeight() const
Definition: PairAnalysisTrack.h:110
PairAnalysisVarManager::kTofPidDeltaBetaPI
@ kTofPidDeltaBetaPI
Definition: PairAnalysisVarManager.h:100
PairAnalysisVarManager::operator=
PairAnalysisVarManager & operator=(const PairAnalysisVarManager &c)
PairAnalysisVarManager::kR
@ kR
Definition: PairAnalysisVarManager.h:203
PairAnalysisVarManager::kTrackMaxMC
@ kTrackMaxMC
Definition: PairAnalysisVarManager.h:324
PairAnalysisVarManager::FillVarConstants
static void FillVarConstants(Double_t *const values)
Definition: PairAnalysisVarManager.h:1499
PairAnalysisVarManager::FillVarPairAnalysisPair
static void FillVarPairAnalysisPair(const PairAnalysisPair *pair, Double_t *const values)
Definition: PairAnalysisVarManager.h:1158
PairAnalysisVarManager::kPtin
@ kPtin
Definition: PairAnalysisVarManager.h:135
PairAnalysisVarManager::kPairMax
@ kPairMax
Definition: PairAnalysisVarManager.h:239
CbmPixelHit::GetX
Double_t GetX() const
Definition: CbmPixelHit.h:83
PairAnalysisVarManager::kNMaxValuesMC
@ kNMaxValuesMC
Definition: PairAnalysisVarManager.h:343
CbmMatch::GetLink
const CbmLink & GetLink(Int_t i) const
Definition: CbmMatch.h:35
PairAnalysisVarManager::SetFillMap
static void SetFillMap(TBits *map)
Definition: PairAnalysisVarManager.h:368
PairAnalysisVarManager::kEtaMC
@ kEtaMC
Definition: PairAnalysisVarManager.h:287
CbmMatch::GetNofLinks
Int_t GetNofLinks() const
Definition: CbmMatch.h:38
PairAnalysisVarManager::GetArray
static UInt_t * GetArray(ValueTypes var0, ValueTypes var1=kNMaxValuesMC, ValueTypes var2=kNMaxValuesMC, ValueTypes var3=kNMaxValuesMC, ValueTypes var4=kNMaxValuesMC, ValueTypes var5=kNMaxValuesMC, ValueTypes var6=kNMaxValuesMC, ValueTypes var7=kNMaxValuesMC, ValueTypes var8=kNMaxValuesMC, ValueTypes var9=kNMaxValuesMC)
Definition: PairAnalysisVarManager.h:1665
PairAnalysisVarManager::kConstMax
@ kConstMax
Definition: PairAnalysisVarManager.h:82
PairAnalysisVarManager::kInclAngle
@ kInclAngle
Definition: PairAnalysisVarManager.h:128
PairAnalysisVarManager::kMuchHitsPixel
@ kMuchHitsPixel
Definition: PairAnalysisVarManager.h:194
PairAnalysisVarManager::kPtout
@ kPtout
Definition: PairAnalysisVarManager.h:137
CbmTrack::GetNofHits
virtual Int_t GetNofHits() const
Definition: CbmTrack.h:53
PairAnalysisVarManager::kTofisMC
@ kTofisMC
Definition: PairAnalysisVarManager.h:323
PairAnalysisPair::Zv
virtual Double_t Zv() const
Definition: PairAnalysisPair.h:56
PairAnalysisVarManager::kStsFirstHitPosZ
@ kStsFirstHitPosZ
Definition: PairAnalysisVarManager.h:174
PairAnalysisVarManager::kPdgCodeMother
@ kPdgCodeMother
Definition: PairAnalysisVarManager.h:296
PairAnalysisVarManager::InitFitter
static void InitFitter()
Definition: PairAnalysisVarManager.h:1701
PairAnalysisVarManager::kZvMC
@ kZvMC
Definition: PairAnalysisVarManager.h:281
PairAnalysisVarManager::fgFillMap
static TBits * fgFillMap
Definition: PairAnalysisVarManager.h:416
PairAnalysisVarManager::kPMC
@ kPMC
Definition: PairAnalysisVarManager.h:278
CbmPixelHit::GetY
Double_t GetY() const
Definition: CbmPixelHit.h:84
PairAnalysisVarManager::kStsPtout
@ kStsPtout
Definition: PairAnalysisVarManager.h:170
PairAnalysisTrack::Y
Double_t Y() const
Definition: PairAnalysisTrack.h:104
PairAnalysisVarManager::kStsXv
@ kStsXv
Definition: PairAnalysisVarManager.h:171
PairAnalysisVarManager::kTrdPidLikeMU
@ kTrdPidLikeMU
Definition: PairAnalysisVarManager.h:146
PairAnalysisVarManager::FillVarPairAnalysisEvent
static void FillVarPairAnalysisEvent(const PairAnalysisEvent *event, Double_t *const values)
Definition: PairAnalysisVarManager.h:592
PairAnalysisVarManager::kLinksMC
@ kLinksMC
Definition: PairAnalysisVarManager.h:87
PairAnalysisVarManager::kStsYv
@ kStsYv
Definition: PairAnalysisVarManager.h:172
PairAnalysisVarManager::kEbeam
@ kEbeam
Definition: PairAnalysisVarManager.h:81
PairAnalysisVarManager::kCharge
@ kCharge
Definition: PairAnalysisVarManager.h:123
PairAnalysisPair::E
virtual Double_t E() const
Definition: PairAnalysisPair.h:73
CbmTrdTrack::GetPidLikeEL
Double_t GetPidLikeEL() const
Definition: CbmTrdTrack.h:34
CbmTrdHit::GetELoss
Double_t GetELoss() const
Definition: CbmTrdHit.h:79
PairAnalysisTrack::GetRichRing
CbmRichRing * GetRichRing() const
Definition: PairAnalysisTrack.h:74
CbmGlobalTrack::GetParamLast
const FairTrackParam * GetParamLast() const
Definition: CbmGlobalTrack.h:44
PairAnalysisTrack::M
Double_t M() const
Definition: PairAnalysisTrack.h:101
PairAnalysisVarManager::GetValue
static Double_t GetValue(ValueTypes val)
Definition: PairAnalysisVarManager.h:387
PairAnalysisVarManager::ResetArrayDataMC
static void ResetArrayDataMC(Int_t to, Double_t *const values)
Definition: PairAnalysisVarManager.h:569
PairAnalysisTrack::GetGlobalIndex
Int_t GetGlobalIndex() const
Definition: PairAnalysisTrack.h:70
PairAnalysisVarManager::kTrdPads
@ kTrdPads
Definition: PairAnalysisVarManager.h:89
PairAnalysisVarManager::kXvPrimMC
@ kXvPrimMC
Definition: PairAnalysisVarManager.h:334
PairAnalysisVarManager::kTrdMatches
@ kTrdMatches
Definition: PairAnalysisVarManager.h:338
PairAnalysisHelper.h
PairAnalysisTrack::Zv
Double_t Zv() const
Definition: PairAnalysisTrack.h:94
PairAnalysisVarManager::kZRes
@ kZRes
Definition: PairAnalysisVarManager.h:249
PairAnalysisVarManager::kPhiHE
@ kPhiHE
Definition: PairAnalysisVarManager.h:210
PairAnalysisVarManager::kRichHitsMC
@ kRichHitsMC
Definition: PairAnalysisVarManager.h:308
ECbmDataType::kMuchPixelHit
@ kMuchPixelHit
PairAnalysisVarManager::fgEvent
static PairAnalysisEvent * fgEvent
Definition: PairAnalysisVarManager.h:410
PairAnalysisTrack::Charge
Short_t Charge() const
Definition: PairAnalysisTrack.h:107
CbmVertex::Reset
void Reset()
Definition: CbmVertex.cxx:159
PairAnalysisVarManager::kPx
@ kPx
Definition: PairAnalysisVarManager.h:106
PairAnalysisPair::GetType
UChar_t GetType() const
Definition: PairAnalysisPair.h:85
PairAnalysisVarManager::FillVarVertex
static void FillVarVertex(const CbmVertex *vertex, Double_t *const values)
Definition: PairAnalysisVarManager.h:663
PairAnalysisMC.h
PairAnalysisVarManager::FillVarTrdCluster
static void FillVarTrdCluster(const CbmTrdCluster *cluster, Double_t *const values)
Definition: PairAnalysisVarManager.h:1442
CbmMCTrack::GetPdgCode
Int_t GetPdgCode() const
Definition: CbmMCTrack.h:70
PairAnalysisVarManager::kStsHits
@ kStsHits
Definition: PairAnalysisVarManager.h:165
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
PairAnalysisVarManager::kXv
@ kXv
Definition: PairAnalysisVarManager.h:112
PairAnalysisVarManager::kMuchHitsMC
@ kMuchHitsMC
Definition: PairAnalysisVarManager.h:307
PairAnalysisVarManager::kNTrkMC
@ kNTrkMC
Definition: PairAnalysisVarManager.h:333
PairAnalysisVarManager::kMaxPt
@ kMaxPt
Definition: PairAnalysisVarManager.h:250
PairAnalysisVarManager::fgCurrentRun
static Int_t fgCurrentRun
Definition: PairAnalysisVarManager.h:417
CbmRichRing::GetChi2
Double_t GetChi2() const
Definition: CbmRichRing.h:95
PairAnalysisPair::GetThetaPhiCM
virtual void GetThetaPhiCM(Double_t &thetaHE, Double_t &phiHE, Double_t &thetaCS, Double_t &phiCS) const =0
CbmTrdHit
data class for a reconstructed Energy-4D measurement in the TRD
Definition: CbmTrdHit.h:35
PairAnalysisVarManager::kPtSqMC
@ kPtSqMC
Definition: PairAnalysisVarManager.h:277
PairAnalysisVarManager::kOneOverPt
@ kOneOverPt
Definition: PairAnalysisVarManager.h:115
PairAnalysisVarManager::kTrdPidLikePR
@ kTrdPidLikePR
Definition: PairAnalysisVarManager.h:145
PairAnalysisTrack::GetMCTrack
CbmMCTrack * GetMCTrack() const
Definition: PairAnalysisTrack.h:81
PairAnalysisVarManager::kDecayLength
@ kDecayLength
Definition: PairAnalysisVarManager.h:202
PairAnalysisVarManager::kOneOverPairEff
@ kOneOverPairEff
Definition: PairAnalysisVarManager.h:235
PairAnalysisVarManager::kTrackLength
@ kTrackLength
Definition: PairAnalysisVarManager.h:132
PairAnalysisVarManager::kZvPrim
@ kZvPrim
prim vertex [cm]
Definition: PairAnalysisVarManager.h:244
PairAnalysisVarManager::kPmtId
@ kPmtId
Definition: PairAnalysisVarManager.h:96
PairAnalysisVarManager::SetEventData
static void SetEventData(const Double_t data[PairAnalysisVarManager::kNMaxValuesMC])
Definition: PairAnalysisVarManager.h:1542
PairAnalysisVarManager::FillVarRichRing
static void FillVarRichRing(const CbmRichRing *track, Double_t *const values)
Definition: PairAnalysisVarManager.h:845
PairAnalysisVarManager
Definition: PairAnalysisVarManager.h:68
PairAnalysisVarManager::kLegDistXY
@ kLegDistXY
Definition: PairAnalysisVarManager.h:225
PairAnalysisVarManager::kOneOverPairEffSq
@ kOneOverPairEffSq
Definition: PairAnalysisVarManager.h:236
CbmGlobalTrack.h
PairAnalysisVarManager::kEloss
@ kEloss
Definition: PairAnalysisVarManager.h:92
PairAnalysisTrack::GetMvdEntrance
FairTrackParam * GetMvdEntrance() const
Definition: PairAnalysisTrack.h:79
ECbmModuleId::kMvd
@ kMvd
Micro-Vertex Detector.
PairAnalysisVarManager::Fill
static void Fill(const TObject *particle, Double_t *const values)
Definition: PairAnalysisVarManager.h:474
ECbmModuleId
ECbmModuleId
Definition: CbmDefs.h:33
PairAnalysisVarManager::kYRes
@ kYRes
Definition: PairAnalysisVarManager.h:248
CbmRichRing::GetNofHits
Int_t GetNofHits() const
Definition: CbmRichRing.h:40
PairAnalysisVarManager::FillVarMCParticle
static void FillVarMCParticle(const CbmMCTrack *p1, const CbmMCTrack *p2, Double_t *const values)
Definition: PairAnalysisVarManager.h:1022
CbmRichRing
Definition: CbmRichRing.h:17
CbmHit::GetRefId
Int_t GetRefId() const
Definition: CbmHit.h:72
PairAnalysisVarManager::GetValueName
static const char * GetValueName(Int_t i)
Definition: PairAnalysisVarManager.h:377
CbmGlobalTrack::GetLength
Double_t GetLength() const
Definition: CbmGlobalTrack.h:50
PairAnalysisTrack
Definition: PairAnalysisTrack.h:37
CbmMCTrack::GetPx
Double_t GetPx() const
Definition: CbmMCTrack.h:72
CbmGlobalTrack::GetChi2
Double_t GetChi2() const
Definition: CbmGlobalTrack.h:47
PairAnalysisVarManager::kTrdPidLikeKA
@ kTrdPidLikeKA
Definition: PairAnalysisVarManager.h:144
PairAnalysisPair::M
virtual Double_t M() const
Definition: PairAnalysisPair.h:74
PairAnalysisVarManager::GetValueType
static UInt_t GetValueType(const char *valname)
Definition: PairAnalysisVarManager.cxx:355
PairAnalysisVarManager::kTofPidDeltaBetaEL
@ kTofPidDeltaBetaEL
Definition: PairAnalysisVarManager.h:98
PairAnalysisVarManager::kEMC
@ kEMC
Definition: PairAnalysisVarManager.h:291
PairAnalysisVarManager::kDCA
@ kDCA
Definition: PairAnalysisVarManager.h:230
CbmMCTrack::GetPy
Double_t GetPy() const
Definition: CbmMCTrack.h:73
PairAnalysisPair::OpeningAngle
virtual Double_t OpeningAngle() const
Definition: PairAnalysisPair.h:101
PairAnalysisVarManager::GetCurrentEvent
static PairAnalysisEvent * GetCurrentEvent()
Definition: PairAnalysisVarManager.h:375
PairAnalysisVarManager::kTrdisMC
@ kTrdisMC
Definition: PairAnalysisVarManager.h:318
PairAnalysisTrack::GetStsTrack
CbmStsTrack * GetStsTrack() const
Definition: PairAnalysisTrack.h:71
PairAnalysisTrack::GetTrack
CbmTrack * GetTrack(ECbmModuleId det) const
Definition: PairAnalysisTrack.cxx:231
PairAnalysisPair::GetChi2
virtual Double_t GetChi2() const
Definition: PairAnalysisPair.h:97
PairAnalysisVarManager::kMerr
@ kMerr
Definition: PairAnalysisVarManager.h:229
PairAnalysisVarManager::kPosXMC
@ kPosXMC
Definition: PairAnalysisVarManager.h:267
CbmRichRing.h
ECbmModuleId::kTof
@ kTof
Time-of-flight Detector.
PairAnalysisVarManager::kTrdDistortion
@ kTrdDistortion
Definition: PairAnalysisVarManager.h:314
CbmRichRing::GetRadialPosition
Float_t GetRadialPosition() const
Definition: CbmRichRing.cxx:181
PairAnalysisVarManager::ResetArrayData
static void ResetArrayData(Int_t to, Double_t *const values)
Definition: PairAnalysisVarManager.h:544
PairAnalysisVarManager::kMEL
@ kMEL
Definition: PairAnalysisVarManager.h:73
PairAnalysisVarManager::kTofPidDeltaBetaKA
@ kTofPidDeltaBetaKA
Definition: PairAnalysisVarManager.h:101
PairAnalysisVarManager::GetKFVertex
static const CbmKFVertex * GetKFVertex()
Definition: PairAnalysisVarManager.h:376
PairAnalysisVarManager::kTrackChi2NDF
@ kTrackChi2NDF
Definition: PairAnalysisVarManager.h:133
PairAnalysisTrack::GetTofHit
CbmTofHit * GetTofHit() const
Definition: PairAnalysisTrack.h:75
PairAnalysisPair
Definition: PairAnalysisPair.h:25
PairAnalysisPair::Phi
virtual Double_t Phi() const
Definition: PairAnalysisPair.h:67
PairAnalysisVarManager::kPhi
@ kPhi
Definition: PairAnalysisVarManager.h:116
PairAnalysisVarManager::kRndmRej
@ kRndmRej
Definition: PairAnalysisVarManager.h:252
CbmVertex::GetX
Double_t GetX() const
Definition: CbmVertex.h:68
PairAnalysisVarManager::kTrdPhiin
@ kTrdPhiin
Definition: PairAnalysisVarManager.h:151
PairAnalysisVarManager::FillVarTofHit
static void FillVarTofHit(const CbmTofHit *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1394
CbmVertex::GetChi2
Double_t GetChi2() const
Definition: CbmVertex.h:71
PairAnalysisVarManager::FillVarGlobalTrack
static void FillVarGlobalTrack(const CbmGlobalTrack *track, Double_t *const values)
Definition: PairAnalysisVarManager.h:821
PairAnalysisVarManager::kMMU
@ kMMU
Definition: PairAnalysisVarManager.h:74
CbmMuchTrack
Definition: CbmMuchTrack.h:16
PairAnalysisVarManager::kPyMC
@ kPyMC
Definition: PairAnalysisVarManager.h:274
PairAnalysisVarManager::kCos2PhiCS
@ kCos2PhiCS
Definition: PairAnalysisVarManager.h:219
PairAnalysisTrack::Pt
Double_t Pt() const
Definition: PairAnalysisTrack.h:89
PairAnalysisVarManager::kTrdCols
@ kTrdCols
Definition: PairAnalysisVarManager.h:90
PairAnalysisVarManager::kYvPrimMC
@ kYvPrimMC
MC vertex [cm].
Definition: PairAnalysisVarManager.h:335
PairAnalysisVarManager::kRichHitsOnRing
@ kRichHitsOnRing
Definition: PairAnalysisVarManager.h:178
PairAnalysisEvent::GetPoints
TClonesArray * GetPoints(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:542
PairAnalysisVarManager::kY
@ kY
Definition: PairAnalysisVarManager.h:119
CbmMvdHit
Definition: CbmMvdHit.h:29
PairAnalysisVarManager::kVtxNDF
@ kVtxNDF
chi2
Definition: PairAnalysisVarManager.h:246
CbmCluster::GetNofDigis
Int_t GetNofDigis() const
Number of digis in cluster.
Definition: CbmCluster.h:69
CbmMCTrack::GetCharge
Double_t GetCharge() const
Charge of the associated particle.
Definition: CbmMCTrack.cxx:146
PairAnalysisVarManager::kParticleMax
@ kParticleMax
Definition: PairAnalysisVarManager.h:129
PairAnalysisVarManager::kBetaGammaMC
@ kBetaGammaMC
Definition: PairAnalysisVarManager.h:290
PairAnalysisVarManager::InitFormulas
static void InitFormulas()
Definition: PairAnalysisVarManager.h:1692
PairAnalysisVarManager::kMt
@ kMt
Definition: PairAnalysisVarManager.h:124
PairAnalysisVarManager::kOneOverPtMC
@ kOneOverPtMC
Definition: PairAnalysisVarManager.h:284
PairAnalysisVarManager::kTofPidDeltaBetaMU
@ kTofPidDeltaBetaMU
Definition: PairAnalysisVarManager.h:99
CbmTrdCluster
Data Container for TRD clusters.
Definition: CbmTrdCluster.h:23
CbmStsTrack::GetNofMvdHits
Int_t GetNofMvdHits() const
Definition: CbmStsTrack.h:84
PairAnalysisVarManager::kStsChi2NDF
@ kStsChi2NDF
Definition: PairAnalysisVarManager.h:166
PairAnalysisVarManager::FillSumVarMCPoint
static void FillSumVarMCPoint(const FairMCPoint *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1481
PairAnalysisTrack::Xv
Double_t Xv() const
Definition: PairAnalysisTrack.h:92
PairAnalysisPair::GetArmPt
virtual Double_t GetArmPt() const =0
PairAnalysisVarManager::kCos2PhiHE
@ kCos2PhiHE
Definition: PairAnalysisVarManager.h:212
PairAnalysisVarManager::kRichChi2NDF
@ kRichChi2NDF
Definition: PairAnalysisVarManager.h:180
CbmRichRing::GetRadialAngle
Double_t GetRadialAngle() const
Definition: CbmRichRing.cxx:189
PairAnalysisVarManager::kRichMCPoints
@ kRichMCPoints
Definition: PairAnalysisVarManager.h:310
CbmMCTrack::GetStartZ
Double_t GetStartZ() const
Definition: CbmMCTrack.h:77
PairAnalysisVarManager::kThetavMC
@ kThetavMC
Definition: PairAnalysisVarManager.h:283
CbmHit::GetMatch
CbmMatch * GetMatch() const
Definition: CbmHit.h:74
PairAnalysisVarManager::kTrdDistHits
@ kTrdDistHits
Definition: PairAnalysisVarManager.h:312
CbmStsHit
data class for a reconstructed 3-d hit in the STS
Definition: CbmStsHit.h:31
PairAnalysisVarManager::kImpactParXY
@ kImpactParXY
Definition: PairAnalysisVarManager.h:126
PairAnalysisVarManager::kCosPointingAngleMC
@ kCosPointingAngleMC
Definition: PairAnalysisVarManager.h:328
PairAnalysisVarManager::FillVarRichHit
static void FillVarRichHit(const CbmRichHit *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1341
PairAnalysisPair::Yv
virtual Double_t Yv() const
Definition: PairAnalysisPair.h:55
PairAnalysisVarManager::kPairMaxMC
@ kPairMaxMC
Definition: PairAnalysisVarManager.h:330
PairAnalysisVarManager::kHitMaxMC
@ kHitMaxMC
Definition: PairAnalysisVarManager.h:271
PairAnalysisVarManager::kArmPt
@ kArmPt
Definition: PairAnalysisVarManager.h:207
PairAnalysisVarManager::kPosYMC
@ kPosYMC
Definition: PairAnalysisVarManager.h:268
CbmRichRing::GetHit
UInt_t GetHit(Int_t i) const
Definition: CbmRichRing.h:42
CbmTrack
Definition: CbmTrack.h:32
PairAnalysisVarManager::kYvMC
@ kYvMC
Definition: PairAnalysisVarManager.h:280
PairAnalysisVarManager::kMK0
@ kMK0
Definition: PairAnalysisVarManager.h:78
PairAnalysisVarManager::kYMC
@ kYMC
Definition: PairAnalysisVarManager.h:288
PairAnalysisVarManager::kPhivPair
@ kPhivPair
Definition: PairAnalysisVarManager.h:222
CbmStsTrack.h
Data class for STS tracks.
CbmTrdTrack::GetELoss
Double_t GetELoss() const
Definition: CbmTrdTrack.h:33
PairAnalysisVarManager::kGeantId
@ kGeantId
Definition: PairAnalysisVarManager.h:298
PairAnalysisVarManager::kPdgCodeGrandMother
@ kPdgCodeGrandMother
Definition: PairAnalysisVarManager.h:297
PairAnalysisVarManager::kChi2NDF
@ kChi2NDF
Definition: PairAnalysisVarManager.h:201
PairAnalysisVarManager::FillVarTrdTrack
static void FillVarTrdTrack(const CbmTrdTrack *track, Double_t *const values)
Definition: PairAnalysisVarManager.h:874
PairAnalysisVarManager::kPtMC
@ kPtMC
Definition: PairAnalysisVarManager.h:276
PairAnalysisPair::Charge
Short_t Charge() const
Definition: PairAnalysisPair.h:79
PairAnalysisVarManager::kYlabMC
@ kYlabMC
Definition: PairAnalysisVarManager.h:289
PairAnalysisVarManager::kPy
@ kPy
Definition: PairAnalysisVarManager.h:107
CbmTrdTrack::GetPidANN
Double_t GetPidANN() const
Definition: CbmTrdTrack.h:32
PairAnalysisVarManager::kEta
@ kEta
Definition: PairAnalysisVarManager.h:118
PairAnalysisPair::OneOverPt
virtual Double_t OneOverPt() const
Definition: PairAnalysisPair.h:64
PairAnalysisVarManager::kTrdPidLikePI
@ kTrdPidLikePI
Definition: PairAnalysisVarManager.h:143
CbmMuchTrack.h
PairAnalysisVarManager::kNMaxValues
@ kNMaxValues
Definition: PairAnalysisVarManager.h:263
PairAnalysisPair::Py
virtual Double_t Py() const
Definition: PairAnalysisPair.h:43
PairAnalysisVarManager::kTofHitsMC
@ kTofHitsMC
Definition: PairAnalysisVarManager.h:306
PairAnalysisVarManager::kMassSq
@ kMassSq
Definition: PairAnalysisVarManager.h:103
PairAnalysisPair::SetBeamEnergy
static void SetBeamEnergy(Double_t beamEbyHand=-1.)
Definition: PairAnalysisPair.cxx:150
PairAnalysisVarManager::PairAnalysisVarManager
PairAnalysisVarManager(const PairAnalysisVarManager &c)
PairAnalysisVarManager::kMomAsymDau1
@ kMomAsymDau1
Definition: PairAnalysisVarManager.h:232
PairAnalysisVarManager::kPdgCode
@ kPdgCode
Definition: PairAnalysisVarManager.h:295
PairAnalysisTrack::E
Double_t E() const
Definition: PairAnalysisTrack.h:100
PairAnalysisTrack::GetTrackMatch
CbmTrackMatchNew * GetTrackMatch(ECbmModuleId det) const
Definition: PairAnalysisTrack.cxx:215
CbmMCTrack::GetNPoints
Int_t GetNPoints(ECbmModuleId detId) const
Definition: CbmMCTrack.cxx:186
PairAnalysisPair::GetDecayLength
virtual Double_t GetDecayLength() const
Definition: PairAnalysisPair.h:99
PairAnalysisVarManager::kTofHits
@ kTofHits
Definition: PairAnalysisVarManager.h:191
PairAnalysisVarManager::FillVarPairAnalysisTrack
static void FillVarPairAnalysisTrack(const PairAnalysisTrack *track, Double_t *const values)
Definition: PairAnalysisVarManager.h:686
PairAnalysisVarManager::kTrdPtout
@ kTrdPtout
Definition: PairAnalysisVarManager.h:154
PairAnalysisVarManager::kNVtxContrib
@ kNVtxContrib
Definition: PairAnalysisVarManager.h:255
PairAnalysisVarManager::kCentrality
@ kCentrality
number of primary vertex contibutors
Definition: PairAnalysisVarManager.h:257
PairAnalysisVarManager::kLegDist
@ kLegDist
Definition: PairAnalysisVarManager.h:224
PairAnalysisVarManager::kPtSq
@ kPtSq
Definition: PairAnalysisVarManager.h:110
PairAnalysisVarManager::kStsMatches
@ kStsMatches
MC vertex [cm].
Definition: PairAnalysisVarManager.h:337
PairAnalysisVarManager::kWeight
@ kWeight
Definition: PairAnalysisVarManager.h:299
PairAnalysisVarManager::kMvdFirstHitPosZ
@ kMvdFirstHitPosZ
Definition: PairAnalysisVarManager.h:161
CbmTrdCluster::GetNRows
UShort_t GetNRows() const
Definition: CbmTrdCluster.h:65
PairAnalysisVarManager::kRichAxisA
@ kRichAxisA
Definition: PairAnalysisVarManager.h:182
PairAnalysisVarManager::kDeltaPhi
@ kDeltaPhi
Definition: PairAnalysisVarManager.h:227
CbmHit::GetTime
Double_t GetTime() const
Definition: CbmHit.h:75
PairAnalysisVarManager::kRichAxisB
@ kRichAxisB
Definition: PairAnalysisVarManager.h:183
PairAnalysisVarManager::fgData
static Double_t fgData[kNMaxValuesMC]
Definition: PairAnalysisVarManager.h:407
CbmTrdTrack::GetPidLikeKA
Double_t GetPidLikeKA() const
Definition: CbmTrdTrack.h:36
PairAnalysisTrack::GetTrdTrack
CbmTrdTrack * GetTrdTrack() const
Definition: PairAnalysisTrack.h:73
PairAnalysisVarManager::kTofPidDeltaBetaPR
@ kTofPidDeltaBetaPR
Definition: PairAnalysisVarManager.h:102
PairAnalysisVarManager::GetValueLabel
static const char * GetValueLabel(Int_t i)
Definition: PairAnalysisVarManager.h:380
CbmTrack::GetHitIndex
Int_t GetHitIndex(Int_t iHit) const
Definition: CbmTrack.h:54
PairAnalysisVarManager::kMuchChi2NDF
@ kMuchChi2NDF
Definition: PairAnalysisVarManager.h:195
CbmTrackMatchNew.h
PairAnalysisVarManager::kMPR
@ kMPR
Definition: PairAnalysisVarManager.h:77
CbmVertex
Definition: CbmVertex.h:26
PairAnalysisVarManager::kPhiCS
@ kPhiCS
Definition: PairAnalysisVarManager.h:217
PairAnalysisPair::DaughtersP
virtual Double_t DaughtersP() const
Definition: PairAnalysisPair.h:110
PairAnalysisVarManager::kNevents
@ kNevents
Definition: PairAnalysisVarManager.h:258
PairAnalysisVarManager::Req
static Bool_t Req(ValueTypes var)
Definition: PairAnalysisVarManager.h:420
PairAnalysisVarManager::kPairType
@ kPairType
Definition: PairAnalysisVarManager.h:231
PairAnalysisVarManager::kPosZ
@ kPosZ
Definition: PairAnalysisVarManager.h:86
PairAnalysisVarManager::kXRes
@ kXRes
nof degrees of freedom
Definition: PairAnalysisVarManager.h:247
PairAnalysisVarManager::FillVarPixelHit
static void FillVarPixelHit(const CbmPixelHit *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1265
PairAnalysisTrack::Px
Double_t Px() const
Definition: PairAnalysisTrack.h:86
PairAnalysisVarManager::kChargeMC
@ kChargeMC
Definition: PairAnalysisVarManager.h:294
PairAnalysisPairLV.h
PairAnalysisVarManager::kStsPin
@ kStsPin
Definition: PairAnalysisVarManager.h:167
PairAnalysisVarManager::kRichPhi
@ kRichPhi
Definition: PairAnalysisVarManager.h:189
PairAnalysisVarManager::kStsPtin
@ kStsPtin
Definition: PairAnalysisVarManager.h:168
PairAnalysisPairLV
Definition: PairAnalysisPairLV.h:25
ECbmModuleId::kRich
@ kRich
Ring-Imaging Cherenkov Detector.
PairAnalysisVarManager::kTrackMax
@ kTrackMax
Definition: PairAnalysisVarManager.h:198
PairAnalysisTrack::ChiToVertex
Double_t ChiToVertex() const
Definition: PairAnalysisTrack.h:106
CbmTrack::GetNDF
Int_t GetNDF() const
Definition: CbmTrack.h:59
PairAnalysisPair::GetNdf
virtual Int_t GetNdf() const
Definition: PairAnalysisPair.h:98
CbmTrdHit.h
Class for hits in TRD detector.
PairAnalysisTrack::Phi
Double_t Phi() const
Definition: PairAnalysisTrack.h:97
PairAnalysisVarManager::kPairs
@ kPairs
Definition: PairAnalysisVarManager.h:238
CbmVertex::GetZ
Double_t GetZ() const
Definition: CbmVertex.h:70
CbmMCTrack::GetGeantProcessId
UInt_t GetGeantProcessId() const
Definition: CbmMCTrack.h:69
PairAnalysisVarManager::kRndmTrack
@ kRndmTrack
Definition: PairAnalysisVarManager.h:197
CbmTrdTrack::GetPidLikePI
Double_t GetPidLikePI() const
Definition: CbmTrdTrack.h:35
PairAnalysisVarManager::kTrdPout
@ kTrdPout
Definition: PairAnalysisVarManager.h:153
PairAnalysisVarManager::kPosX
@ kPosX
Definition: PairAnalysisVarManager.h:84
PairAnalysisVarManager::kTrdLayer
@ kTrdLayer
Definition: PairAnalysisVarManager.h:88
PairAnalysisVarManager::kRndmPair
@ kRndmPair
Definition: PairAnalysisVarManager.h:237
PairAnalysisVarManager::kChi2NDFtoVtx
@ kChi2NDFtoVtx
Definition: PairAnalysisVarManager.h:125
PairAnalysisVarManager::kOpeningAngleMC
@ kOpeningAngleMC
Definition: PairAnalysisVarManager.h:327
CbmMCTrack::GetStartVertex
void GetStartVertex(TVector3 &vertex) const
Definition: CbmMCTrack.h:182
PairAnalysisVarManager::FillVarMvdHit
static void FillVarMvdHit(const CbmMvdHit *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1302
PairAnalysisVarManager::kElossMC
@ kElossMC
Definition: PairAnalysisVarManager.h:270
PairAnalysisVarManager::kMvdisMC
@ kMvdisMC
Definition: PairAnalysisVarManager.h:319
xMath::Pi
double Pi()
Definition: xMath.h:5
CbmPixelHit.h
CbmTrackMatchNew::GetNofHits
Int_t GetNofHits() const
Definition: CbmTrackMatchNew.h:34
PairAnalysisVarManager::kMvdHits
@ kMvdHits
Definition: PairAnalysisVarManager.h:160
PairAnalysisVarManager::fgkParticleNames
static const char * fgkParticleNames[kNMaxValuesMC][3]
data
Definition: PairAnalysisVarManager.h:408
CbmTrack::GetHitType
HitType GetHitType(Int_t iHit) const
Definition: CbmTrack.h:55
PairAnalysisVarManager::kMLA
@ kMLA
Definition: PairAnalysisVarManager.h:79
CbmTrack::GetParamFirst
const FairTrackParam * GetParamFirst() const
Definition: CbmTrack.h:61
PairAnalysisVarManager::kHitMax
@ kHitMax
Definition: PairAnalysisVarManager.h:104
PairAnalysisVarManager::kPt
@ kPt
Definition: PairAnalysisVarManager.h:109
CbmRichRing::GetAaxis
Double_t GetAaxis() const
Definition: CbmRichRing.h:83
PairAnalysisVarManager::kMvdFirstExtX
@ kMvdFirstExtX
Definition: PairAnalysisVarManager.h:162
PairAnalysisVarManager::kTotalTRDHits
@ kTotalTRDHits
Definition: PairAnalysisVarManager.h:262
PairAnalysisVarManager::kPosY
@ kPosY
Definition: PairAnalysisVarManager.h:85
PairAnalysisMC
Definition: PairAnalysisMC.h:25
PairAnalysisVarManager::FillVarMCHeader
static void FillVarMCHeader(const FairMCEventHeader *header, Double_t *const values)
Definition: PairAnalysisVarManager.h:629
PairAnalysisVarManager::kStsPout
@ kStsPout
Definition: PairAnalysisVarManager.h:169
PairAnalysisVarManager::kBeta
@ kBeta
Definition: PairAnalysisVarManager.h:97
PairAnalysisVarManager::SetValue
static void SetValue(ValueTypes var, Double_t val)
Definition: PairAnalysisVarManager.h:372
CbmMCTrack::GetPt
Double_t GetPt() const
Definition: CbmMCTrack.h:99
PairAnalysisTrack.h
PairAnalysisVarManager::kPout
@ kPout
Definition: PairAnalysisVarManager.h:136
PairAnalysisVarManager::kParticleMaxMC
@ kParticleMaxMC
Definition: PairAnalysisVarManager.h:300
PairAnalysisVarManager::kTotalTRDHitsMC
@ kTotalTRDHitsMC
Definition: PairAnalysisVarManager.h:340
PairAnalysisVarManager::kTrdPidLikeEL
@ kTrdPidLikeEL
Definition: PairAnalysisVarManager.h:142
PairAnalysisVarManager::kRichRadialAngle
@ kRichRadialAngle
Definition: PairAnalysisVarManager.h:188
PairAnalysisVarManager::CalculateHitTypes
static void CalculateHitTypes(const PairAnalysisTrack *track, ECbmModuleId idet, Int_t *trueH, Int_t *distH, Int_t *fakeH)
Definition: PairAnalysisVarManager.h:1553
ECbmModuleId::kTrd
@ kTrd
Transition Radiation Detector.
PairAnalysisVarManager::kTrdThetaCorr
@ kTrdThetaCorr
Definition: PairAnalysisVarManager.h:155
CbmRichHit::GetPmtId
virtual Int_t GetPmtId() const
Definition: CbmRichHit.h:59
CbmTrdTrack
Definition: CbmTrdTrack.h:22
PairAnalysisEvent
Definition: PairAnalysisEvent.h:25
CbmTrdCluster::GetNCols
UShort_t GetNCols() const
Definition: CbmTrdCluster.h:64
CbmRichRing::GetBaxis
Double_t GetBaxis() const
Definition: CbmRichRing.h:84
PairAnalysisVarManager::kArmAlpha
@ kArmAlpha
Definition: PairAnalysisVarManager.h:206
PairAnalysisVarManager::kMixingBin
@ kMixingBin
Definition: PairAnalysisVarManager.h:261
PairAnalysisVarManager::kImpactParZ
@ kImpactParZ
Definition: PairAnalysisVarManager.h:127
PairAnalysisVarManager::kTrdTrueHits
@ kTrdTrueHits
Definition: PairAnalysisVarManager.h:311
PairAnalysisTrack::GetMuchTrack
CbmMuchTrack * GetMuchTrack() const
Definition: PairAnalysisTrack.h:72
CbmGlobalTrack
Definition: CbmGlobalTrack.h:26
CbmMCTrack::GetRapidity
Double_t GetRapidity() const
Definition: CbmMCTrack.cxx:177
PairAnalysisVarManager::kTheta
@ kTheta
Definition: PairAnalysisVarManager.h:117
CbmRichElectronIdAnn::GetInstance
static CbmRichElectronIdAnn & GetInstance()
Definition: CbmRichElectronIdAnn.h:43
PairAnalysisVarManager::kStsTrueHits
@ kStsTrueHits
Definition: PairAnalysisVarManager.h:315
CbmMCTrack::GetStartY
Double_t GetStartY() const
Definition: CbmMCTrack.h:76
PairAnalysisVarManager::kTrdPtin
@ kTrdPtin
Definition: PairAnalysisVarManager.h:150
PairAnalysisPair::Pz
virtual Double_t Pz() const
Definition: PairAnalysisPair.h:44
PairAnalysisVarManager::kMvdhasEntr
@ kMvdhasEntr
Definition: PairAnalysisVarManager.h:159
PairAnalysisVarManager::kYbeam
@ kYbeam
Definition: PairAnalysisVarManager.h:260
PairAnalysisEvent::GetCluster
TClonesArray * GetCluster(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:558
PairAnalysisVarManager::kRichPidANN
@ kRichPidANN
Definition: PairAnalysisVarManager.h:177
PairAnalysisVarManager::fgKFVertex
static CbmKFVertex * fgKFVertex
Definition: PairAnalysisVarManager.h:412
CbmRichRing::GetPhi
Double_t GetPhi() const
Definition: CbmRichRing.h:87
PairAnalysisVarManager::kTrdPhiCorr
@ kTrdPhiCorr
Definition: PairAnalysisVarManager.h:156
CbmMCTrack.h
PairAnalysisEvent::GetHits
TClonesArray * GetHits(ECbmModuleId det) const
Definition: PairAnalysisEvent.cxx:508
PairAnalysisVarManager::kMMC
@ kMMC
Definition: PairAnalysisVarManager.h:293
CbmGlobalTrack::GetNDF
Int_t GetNDF() const
Definition: CbmGlobalTrack.h:48
PairAnalysisVarManager::kMvdHitsMC
@ kMvdHitsMC
Definition: PairAnalysisVarManager.h:304
PairAnalysisVarManager::kRichRadius
@ kRichRadius
Definition: PairAnalysisVarManager.h:181
PairAnalysisMC::GetMCTrackMother
CbmMCTrack * GetMCTrackMother(const PairAnalysisTrack *_track)
Definition: PairAnalysisMC.cxx:132
PairAnalysisVarManager::kThetaSqCS
@ kThetaSqCS
Definition: PairAnalysisVarManager.h:218
PairAnalysisVarManager::kPsiPair
@ kPsiPair
Definition: PairAnalysisVarManager.h:221
PairAnalysisVarManager::kRichRadialPos
@ kRichRadialPos
Definition: PairAnalysisVarManager.h:187
CbmVertex::GetY
Double_t GetY() const
Definition: CbmVertex.h:69
PairAnalysisVarManager::kNTrk
@ kNTrk
Definition: PairAnalysisVarManager.h:253
PairAnalysisVarManager::PairAnalysisVarManager
PairAnalysisVarManager()
Definition: PairAnalysisVarManager.cxx:318
CbmMCTrack
Definition: CbmMCTrack.h:34
CbmHit
Definition: CbmHit.h:38
PairAnalysisTrack::GetRichProj
FairTrackParam * GetRichProj() const
Definition: PairAnalysisTrack.h:78
PairAnalysisVarManager::kMuchisMC
@ kMuchisMC
Definition: PairAnalysisVarManager.h:321
ToIntegralType
constexpr auto ToIntegralType(T enumerator) -> typename std::underlying_type< T >::type
Definition: CbmDefs.h:24
PairAnalysisVarManager::kTrdChi2NDF
@ kTrdChi2NDF
Definition: PairAnalysisVarManager.h:148
CbmMvdHit.h
PairAnalysisVarManager::kRunNumber
@ kRunNumber
Definition: PairAnalysisVarManager.h:259
CbmTrdTrack::GetPidWkn
Double_t GetPidWkn() const
Definition: CbmTrdTrack.h:31
CbmRichRing::GetNofHitsOnRing
Int_t GetNofHitsOnRing() const
Definition: CbmRichRing.h:99
PairAnalysisVarManager::kStsFakeHits
@ kStsFakeHits
Definition: PairAnalysisVarManager.h:317
PairAnalysisVarManager::kTrdSignal
@ kTrdSignal
Definition: PairAnalysisVarManager.h:139
PairAnalysisVarManager::GetValueTypeMC
static UInt_t GetValueTypeMC(UInt_t var)
Definition: PairAnalysisVarManager.cxx:368
CbmMuchPixelHit.h
Class for pixel hits in MUCH detector.
CbmRichElectronIdAnn::CalculateAnnValue
double CalculateAnnValue(int globalTrackIndex, double momentum)
Calculate output value of the ANN.
Definition: CbmRichElectronIdAnn.cxx:84
PairAnalysisVarManager::kP
@ kP
Definition: PairAnalysisVarManager.h:111
PairAnalysisPair::SetMCTracks
virtual void SetMCTracks(const CbmMCTrack *const particle1, const CbmMCTrack *const particle2)=0
PairAnalysisPair.h
PairAnalysisPair::Px
virtual Double_t Px() const
Definition: PairAnalysisPair.h:42
PairAnalysisVarManager::kVtxChi
@ kVtxChi
prim vertex [cm]
Definition: PairAnalysisVarManager.h:245
PairAnalysisVarManager::kE
@ kE
Definition: PairAnalysisVarManager.h:121
PairAnalysisVarManager::kThetaHE
@ kThetaHE
Definition: PairAnalysisVarManager.h:209
PairAnalysisVarManager::kRichDistance
@ kRichDistance
Definition: PairAnalysisVarManager.h:186
hits
static vector< vector< QAHit > > hits
Definition: CbmTofHitFinderTBQA.cxx:114
PairAnalysisVarManager::kYv
@ kYv
Definition: PairAnalysisVarManager.h:113
PairAnalysisVarManager::kZvPrimMC
@ kZvPrimMC
MC vertex [cm].
Definition: PairAnalysisVarManager.h:336
CbmRichRing::GetNDF
Double_t GetNDF() const
Definition: CbmRichRing.h:96
PairAnalysisVarManager::kMomAsymDau2
@ kMomAsymDau2
Definition: PairAnalysisVarManager.h:233
PairAnalysisVarManager::kYlab
@ kYlab
Definition: PairAnalysisVarManager.h:120
CbmStsTrack::GetMvdHitIndex
Int_t GetMvdHitIndex(Int_t iHit) const
Definition: CbmStsTrack.h:70
PairAnalysisVarManager::kRichisMC
@ kRichisMC
Definition: PairAnalysisVarManager.h:322
PairAnalysisVarManager::kM
@ kM
Definition: PairAnalysisVarManager.h:122
CbmPixelHit
Definition: CbmPixelHit.h:21
CbmRichRing::GetRadius
Float_t GetRadius() const
Definition: CbmRichRing.h:82
PairAnalysisMC::HasMC
Bool_t HasMC() const
Definition: PairAnalysisMC.h:32
PairAnalysisVarManager::GetData
static Double_t * GetData()
Definition: PairAnalysisVarManager.h:386
PairAnalysisMC::GetMCTrackFromMCEvent
CbmMCTrack * GetMCTrackFromMCEvent(Int_t label) const
Definition: PairAnalysisMC.cxx:75
CbmRichRing::GetCenterY
Float_t GetCenterY() const
Definition: CbmRichRing.h:81
ECbmModuleId::kMuch
@ kMuch
Muon detection system.
CbmTrackMatchNew
Definition: CbmTrackMatchNew.h:19
PairAnalysisVarManager::FillVarStsTrack
static void FillVarStsTrack(const CbmStsTrack *track, Double_t *const values)
Definition: PairAnalysisVarManager.h:939
PairAnalysisPair::Y
virtual Double_t Y() const
Definition: PairAnalysisPair.h:77
PairAnalysisVarManager::kRichhasProj
@ kRichhasProj
Definition: PairAnalysisVarManager.h:176
PairAnalysisVarManager::kTrdHits
@ kTrdHits
Definition: PairAnalysisVarManager.h:147
CbmRichElectronIdAnn.h
Implementation of the electron identification algorithm in the RICH detector using Artificial Neural ...
PairAnalysisMC::Instance
static PairAnalysisMC * Instance()
PairAnalysisVarManager::kTracks
@ kTracks
Definition: PairAnalysisVarManager.h:254
CbmTofHit
Definition: core/data/tof/CbmTofHit.h:26
PairAnalysisVarManager::kNPrimMC
@ kNPrimMC
Definition: PairAnalysisVarManager.h:342
PairAnalysisPair::Xv
virtual Double_t Xv() const
Definition: PairAnalysisPair.h:54
PairAnalysisVarManager::kThetaMC
@ kThetaMC
Definition: PairAnalysisVarManager.h:286
CbmMCTrack::Get4Momentum
void Get4Momentum(TLorentzVector &momentum) const
Definition: CbmMCTrack.h:177
CbmMuchPixelHit
Definition: CbmMuchPixelHit.h:17
PairAnalysisVarManager::kTrdPidWkn
@ kTrdPidWkn
Definition: PairAnalysisVarManager.h:140
CbmCluster.h
Base class for cluster objects.
CbmGlobalTrack::GetParamFirst
const FairTrackParam * GetParamFirst() const
Definition: CbmGlobalTrack.h:43
PairAnalysisPair::Pt
virtual Double_t Pt() const
Definition: PairAnalysisPair.h:45
PairAnalysisVarManager::kTrdHitsMC
@ kTrdHitsMC
Definition: PairAnalysisVarManager.h:303
CbmTrdCluster.h
Data Container for TRD clusters.
PairAnalysisVarManager::FillVarMCTrack
static void FillVarMCTrack(const CbmMCTrack *particle, Double_t *const values)
Definition: PairAnalysisVarManager.h:1083
CbmTrdTrack::GetPidLikeMU
Double_t GetPidLikeMU() const
Definition: CbmTrdTrack.h:38
PairAnalysisVarManager::kCosTilPhiHE
@ kCosTilPhiHE
Definition: PairAnalysisVarManager.h:213
CbmRichHit.h
PairAnalysisVarManager::FillVarStsHit
static void FillVarStsHit(const CbmStsHit *hit, Double_t *const values)
Definition: PairAnalysisVarManager.h:1283
CbmTrdTrack.h
PairAnalysisVarManager::kPz
@ kPz
Definition: PairAnalysisVarManager.h:108
CbmStsTrack::GetStsHitIndex
Int_t GetStsHitIndex(Int_t iHit) const
Definition: CbmStsTrack.h:98
PairAnalysisVarManager::kMPair
@ kMPair
Definition: PairAnalysisVarManager.h:80
PairAnalysisPair::GetArmAlpha
virtual Double_t GetArmAlpha() const =0
CbmVertex::GetNDF
Int_t GetNDF() const
Definition: CbmVertex.h:72
PairAnalysisVarManager::ValueTypes
ValueTypes
Definition: PairAnalysisVarManager.h:71
PairAnalysisPair::DistanceDaughters
virtual Double_t DistanceDaughters() const
Definition: PairAnalysisPair.h:104
PairAnalysisPair::Theta
virtual Double_t Theta() const
Definition: PairAnalysisPair.h:68
PairAnalysisVarManager::kMPI
@ kMPI
Definition: PairAnalysisVarManager.h:75
CbmMCTrack::GetEnergy
Double_t GetEnergy() const
Definition: CbmMCTrack.h:165
PairAnalysisVarManager::kOpeningAngle
@ kOpeningAngle
Definition: PairAnalysisVarManager.h:204
CbmStsTrack
Definition: CbmStsTrack.h:37
PairAnalysisVarManager::kRichHits
@ kRichHits
Definition: PairAnalysisVarManager.h:179
PairAnalysisVarManager::~PairAnalysisVarManager
virtual ~PairAnalysisVarManager()
Definition: PairAnalysisVarManager.cxx:345
ECbmModuleId::kSts
@ kSts
Silicon Tracking System.
PairAnalysisVarManager::kPosZMC
@ kPosZMC
Definition: PairAnalysisVarManager.h:269
PairAnalysisVarManager::kMKA
@ kMKA
Definition: PairAnalysisVarManager.h:76
PairAnalysisVarManager::kYvPrim
@ kYvPrim
prim vertex [cm]
Definition: PairAnalysisVarManager.h:243
PairAnalysisVarManager::kRichCenterY
@ kRichCenterY
Definition: PairAnalysisVarManager.h:185
PairAnalysisPair::GetR
virtual Double_t GetR() const
Definition: PairAnalysisPair.h:100
PairAnalysisVarManager::kStsHitsMC
@ kStsHitsMC
Definition: PairAnalysisVarManager.h:305
CbmKFVertex.h
PairAnalysisVarManager::kDeltaEta
@ kDeltaEta
Definition: PairAnalysisVarManager.h:226
CbmMCTrack::GetP
Double_t GetP() const
Definition: CbmMCTrack.h:100
PairAnalysisVarManager::kPzMC
@ kPzMC
Definition: PairAnalysisVarManager.h:275
CbmRichRing::GetCenterX
Float_t GetCenterX() const
Definition: CbmRichRing.h:80
PairAnalysisVarManager::fgVertexMC
static CbmVertex * fgVertexMC
Definition: PairAnalysisVarManager.h:413
PairAnalysisVarManager::FillSum
static void FillSum(const TObject *particle, Double_t *const values)
Definition: PairAnalysisVarManager.h:527
PairAnalysisTrack::Pz
Double_t Pz() const
Definition: PairAnalysisTrack.h:88
PairAnalysisEvent.h
PairAnalysisVarManager::kTrdFakeHits
@ kTrdFakeHits
Definition: PairAnalysisVarManager.h:313
PairAnalysisVarManager::kTrdRows
@ kTrdRows
Definition: PairAnalysisVarManager.h:91
PairAnalysisVarManager::kImpactParam
@ kImpactParam
Definition: PairAnalysisVarManager.h:341
CbmMCTrack::GetPz
Double_t GetPz() const
Definition: CbmMCTrack.h:74
PairAnalysisPair::GetSecondDaughter
PairAnalysisTrack * GetSecondDaughter() const
Definition: PairAnalysisPair.h:143
PairAnalysisVarManager::kTrdThetain
@ kTrdThetain
Definition: PairAnalysisVarManager.h:152
PairAnalysisTrack::OneOverPt
Double_t OneOverPt() const
Definition: PairAnalysisTrack.h:96
PairAnalysisVarManager::GetValueUnit
static const char * GetValueUnit(Int_t i)
Definition: PairAnalysisVarManager.h:383
CbmRichHit
Definition: CbmRichHit.h:19
PairAnalysisVarManager::kMuchHits
@ kMuchHits
Definition: PairAnalysisVarManager.h:193
PairAnalysisVarManager::kMvdFirstExtY
@ kMvdFirstExtY
Definition: PairAnalysisVarManager.h:163
PairAnalysisTrack::GetGlobalTrack
CbmGlobalTrack * GetGlobalTrack() const
Definition: PairAnalysisTrack.h:69
PairAnalysisVarManager::kThetaCS
@ kThetaCS
Definition: PairAnalysisVarManager.h:216
PairAnalysisVarManager::kCosPointingAngle
@ kCosPointingAngle
Definition: PairAnalysisVarManager.h:205
PairAnalysisEvent::GetMCHeader
FairMCEventHeader * GetMCHeader() const
Definition: PairAnalysisEvent.h:37
PairAnalysisVarManager::kTrdPin
@ kTrdPin
Definition: PairAnalysisVarManager.h:149
CbmKFVertex
Definition: CbmKFVertex.h:6
PairAnalysisVarManager::kRichCenterX
@ kRichCenterX
Definition: PairAnalysisVarManager.h:184
PairAnalysisTrack::Yv
Double_t Yv() const
Definition: PairAnalysisTrack.h:93
CbmStsHit.h
Data class for a reconstructed hit in the STS.
PairAnalysisPair::GetCosPointingAngle
virtual Double_t GetCosPointingAngle(const CbmVertex *primVtx) const
Definition: PairAnalysisPair.cxx:118
PairAnalysisTrack::Py
Double_t Py() const
Definition: PairAnalysisTrack.h:87
PairAnalysisVarManager::kXvMC
@ kXvMC
Definition: PairAnalysisVarManager.h:279
PairAnalysisVarManager::kStsisMC
@ kStsisMC
Definition: PairAnalysisVarManager.h:320
PairAnalysisVarManager::kEMotherMC
@ kEMotherMC
Definition: PairAnalysisVarManager.h:292
CbmStsTrack::GetNofStsHits
Int_t GetNofStsHits() const
Definition: CbmStsTrack.h:90
PairAnalysisVarManager::kZv
@ kZv
Definition: PairAnalysisVarManager.h:114
PairAnalysisVarManager::kVageMatches
@ kVageMatches
Definition: PairAnalysisVarManager.h:339
PairAnalysisPair::P
virtual Double_t P() const
Definition: PairAnalysisPair.h:46
PairAnalysisMC::GetMothersLabel
Int_t GetMothersLabel(Int_t daughterLabel) const
Definition: PairAnalysisMC.cxx:237
CbmDefs.h
PairAnalysisTrack::Theta
Double_t Theta() const
Definition: PairAnalysisTrack.h:98
CbmTrdHit::GetPlaneId
Int_t GetPlaneId() const
Inherited from CbmBaseHit.
Definition: CbmTrdHit.h:73