PandaRoot
PndCAParam.h
Go to the documentation of this file.
1 //-*- Mode: C++ -*-
2 // @(#) $Id: PndCAParam.h,v 1.4 2011/10/01 00:23:44 perev Exp $
3 // ************************************************************************
4 // This file is property of and copyright by the ALICE HLT Project *
5 // ALICE Experiment at CERN, All rights reserved. *
6 // See cxx source for full Copyright notice *
7 // *
8 //*************************************************************************
9 
10 #ifndef PNDCAPARAM_H
11 #define PNDCAPARAM_H
12 
13 #include "PndCADef.h"
14 #include "PndCAVector.h"
15 #include "PndCAMath.h"
16 //#include "PndCATrackParam.h";
17 class PndCATrackParam;
19 #include "PndCAParameters.h"
20 #include "PndCAStation.h"
21 #include "PndCAFieldValue.h"
22 #include <cstdio>
23 #include <sstream>
24 
33 class PndCAParam {
34  friend std::istringstream &operator>>(std::istringstream &, PndCAParam &);
35  // friend std::ostream &operator<<( std::ostream &, const PndCAParam & );
36  public:
37  PndCAParam();
39  {
40  if (fStations)
41  delete[] fStations;
42  }
43  int NStations() const { return fNStations; }
44 
45  const PndCAStation &Station(short i) const { return fStations[i]; }
46 
47  float Bz() const { return fBz; }
48  float cBz() const { return fBz * 0.000299792458; }
49 
50  void SetBz(float v) { fBz = v; }
51 
52  void SetBoundaries(float z, float r)
53  {
54  fMaxZ = z;
55  fMaxR = r;
56  }
57 
58  float GetBz() const { return fBz; }
59  float GetBz(float x, float y, float z) const;
60  float_v GetBz(float_v x, float_v y, float_v z) const;
61  float GetBz(const PndCATrackParam &t) const;
62  float_v GetBz(const PndCATrackParamVector &t) const;
63 
64  float GetXOverX0(short iSt) const { return fStations[iSt].xOverX0; };
65  float GetXTimesRho(short iSt) const { return fStations[iSt].xTimesRho; };
66  float GetR(short iSt) const { return fStations[iSt].r; };
67  float_v GetXOverX0(int_v iSt, float_m mask) const
68  {
69  float_v r;
70  r.gather(fStations, &PndCAStation::xOverX0, static_cast<uint_v>(iSt), mask);
71  return r;
72  };
73  float_v GetXTimesRho(int_v iSt, float_m mask) const
74  {
75  float_v r;
76  r.gather(fStations, &PndCAStation::xTimesRho, static_cast<uint_v>(iSt), mask);
77  return r;
78  };
79  float_v GetR(int_v iSt, const float_m &mask) const
80  {
81  float_v r;
82  r.gather(fStations, &PndCAStation::r, static_cast<uint_v>(iSt), mask);
83  return r;
84  }
85 
86  float MinZ() const { return fMinZ; }
87  float MaxZ() const { return fMaxZ; }
88  float MinR() const { return fMinR; }
89  float MaxR() const { return fMaxR; }
90 
91  const PndCAFieldValue &VtxFieldValue() const { return fVtxFieldValue; }
92 
93  protected:
96  float fBz;
97 
98  PndCAFieldValue fVtxFieldValue; // field at the vertex position.
99 
100  float fMinZ, fMaxZ, fMinR, fMaxR;
101 };
102 
103 std::istringstream &operator>>(std::istringstream &, PndCAParam &);
104 // std::ostream &operator<<( std::ostream &, const PndCAParam & );
105 
106 #endif
float MinR() const
Definition: PndCAParam.h:88
float GetXOverX0(short iSt) const
Definition: PndCAParam.h:64
float GetXTimesRho(short iSt) const
Definition: PndCAParam.h:65
float xTimesRho
Definition: PndCAStation.h:23
float GetR(short iSt) const
Definition: PndCAParam.h:66
float fBz
Definition: PndCAParam.h:96
float_v GetXOverX0(int_v iSt, float_m mask) const
Definition: PndCAParam.h:67
__m128 v
Definition: P4_F32vec4.h:3
float cBz() const
Definition: PndCAParam.h:48
unsigned int i
Definition: P4_F32vec4.h:21
const PndCAFieldValue & VtxFieldValue() const
Definition: PndCAParam.h:91
float MaxR() const
Definition: PndCAParam.h:89
float MinZ() const
Definition: PndCAParam.h:86
void SetBz(float v)
Definition: PndCAParam.h:50
float Bz() const
Definition: PndCAParam.h:47
float fMinR
Definition: PndCAParam.h:100
int NStations() const
Definition: PndCAParam.h:43
const PndCAStation & Station(short i) const
Definition: PndCAParam.h:45
int fNStations
Definition: PndCAParam.h:94
float fMaxR
Definition: PndCAParam.h:100
float fMinZ
Definition: PndCAParam.h:100
float fMaxZ
Definition: PndCAParam.h:100
friend std::istringstream & operator>>(std::istringstream &, PndCAParam &)
PndCAFieldValue fVtxFieldValue
Definition: PndCAParam.h:98
float_v GetR(int_v iSt, const float_m &mask) const
Definition: PndCAParam.h:79
float GetBz() const
Definition: PndCAParam.h:58
PndCAStation * fStations
Definition: PndCAParam.h:95
float_v GetXTimesRho(int_v iSt, float_m mask) const
Definition: PndCAParam.h:73
float MaxZ() const
Definition: PndCAParam.h:87
void SetBoundaries(float z, float r)
Definition: PndCAParam.h:52