FairRoot/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 
25 
35 {
36  friend std::istringstream &operator>>( std::istringstream &, PndCAParam & );
37 // friend std::ostream &operator<<( std::ostream &, const PndCAParam & );
38  public:
39 
40  PndCAParam();
42  if(fStations) delete [] fStations;
43  }
44  int NStations() const { return fNStations;}
45 
46  const PndCAStation& Station( short i ) const { return fStations[i];}
47 
48  float Bz() const { return fBz;}
49  float cBz() const { return fBz*0.000299792458;}
50 
51  void SetBz( float v ) { fBz = v;}
52 
53  void SetBoundaries( float z, float r ){ fMaxZ = z; fMaxR = r; }
54 
55  float GetBz() const { return fBz;}
56  float GetBz( float x, float y, float z ) const;
57  float_v GetBz( float_v x, float_v y, float_v z ) const;
58  float GetBz( const PndCATrackParam &t ) const;
59  float_v GetBz( const PndCATrackParamVector &t ) const;
60 
61  float GetXOverX0( short iSt) const { return fStations[iSt].xOverX0; };
62  float GetXTimesRho( short iSt) const { return fStations[iSt].xTimesRho; };
63  float GetR( short iSt ) const { return fStations[iSt].r; };
64  float_v GetXOverX0( int_v iSt, float_m mask ) const { float_v r; r.gather( fStations, &PndCAStation::xOverX0, static_cast<uint_v>(iSt), mask ); return r; };
65  float_v GetXTimesRho( int_v iSt, float_m mask ) const { float_v r; r.gather( fStations, &PndCAStation::xTimesRho, static_cast<uint_v>(iSt), mask ); return r; };
66  float_v GetR( int_v iSt, const float_m& mask ) const { float_v r; r.gather( fStations, &PndCAStation::r, static_cast<uint_v>(iSt), mask ); return r; }
67 
68  float MinZ() const { return fMinZ; }
69  float MaxZ() const { return fMaxZ; }
70  float MinR() const { return fMinR; }
71  float MaxR() const { return fMaxR; }
72 
73 
74  const PndCAFieldValue &VtxFieldValue() const { return fVtxFieldValue; }
75 
76  protected:
77 
80  float fBz;
81 
82  PndCAFieldValue fVtxFieldValue; // field at the vertex position.
83 
84  float fMinZ, fMaxZ, fMinR, fMaxR;
85 };
86 
87 std::istringstream &operator>>( std::istringstream &, PndCAParam & );
88 // std::ostream &operator<<( std::ostream &, const PndCAParam & );
89 
90 
91 #endif
float GetXTimesRho(short iSt) const
Definition: PndCAParam.h:62
double r
Definition: RiemannTest.C:14
Int_t i
Definition: run_full.C:25
float xTimesRho
Definition: PndCAStation.h:23
float_v GetR(int_v iSt, const float_m &mask) const
Definition: PndCAParam.h:66
float_v GetXTimesRho(int_v iSt, float_m mask) const
Definition: PndCAParam.h:65
float fBz
Definition: PndCAParam.h:80
const PndCAStation & Station(short i) const
Definition: PndCAParam.h:46
__m128 v
Definition: P4_F32vec4.h:4
float_v GetXOverX0(int_v iSt, float_m mask) const
Definition: PndCAParam.h:64
float Bz() const
Definition: PndCAParam.h:48
void SetBz(float v)
Definition: PndCAParam.h:51
float MaxR() const
Definition: PndCAParam.h:71
float fMinR
Definition: PndCAParam.h:84
int fNStations
Definition: PndCAParam.h:78
float GetBz() const
Definition: PndCAParam.h:55
const PndCAFieldValue & VtxFieldValue() const
Definition: PndCAParam.h:74
float MinR() const
Definition: PndCAParam.h:70
float fMaxR
Definition: PndCAParam.h:84
Double_t z
float fMinZ
Definition: PndCAParam.h:84
float fMaxZ
Definition: PndCAParam.h:84
float GetR(short iSt) const
Definition: PndCAParam.h:63
friend std::istringstream & operator>>(std::istringstream &, PndCAParam &)
Definition: PndCAParam.cxx:63
float cBz() const
Definition: PndCAParam.h:49
PndCAFieldValue fVtxFieldValue
Definition: PndCAParam.h:82
TBuffer & operator>>(TBuffer &buf, PndAnaPidSelector *&obj)
Double_t x
PndCAStation * fStations
Definition: PndCAParam.h:79
float MaxZ() const
Definition: PndCAParam.h:69
TTree * t
Definition: bump_analys.C:13
float GetXOverX0(short iSt) const
Definition: PndCAParam.h:61
float MinZ() const
Definition: PndCAParam.h:68
Double_t y
void SetBoundaries(float z, float r)
Definition: PndCAParam.h:53
int NStations() const
Definition: PndCAParam.h:44