FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FairGeaneTr Class Reference

#include <CbmGeaneTr.h>

Inheritance diagram for FairGeaneTr:

Public Member Functions

 FairGeaneTr ()
 
 ~FairGeaneTr ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 

Private Member Functions

 ClassDef (FairGeaneTr, 1)
 

Private Attributes

TClonesArray * fPointArray1
 
TClonesArray * fPointArray2
 
CbmPlanePointfPoint1
 
CbmPlanePointfPoint2
 
TTree * t
 
TFile * f
 
TClonesArray * fTrackParIni
 
TClonesArray * fTrackParGeane
 
TClonesArray * fTrackParFinal
 
TGeant3 * gMC3
 
Int_t fEvent
 
FairGeanePro * fPro
 

Detailed Description

Definition at line 18 of file CbmGeaneTr.h.

Constructor & Destructor Documentation

FairGeaneTr::FairGeaneTr ( )

Default constructor

Definition at line 20 of file CbmGeaneTr.cxx.

20  :
21  FairTask("Test") { }
FairGeaneTr::~FairGeaneTr ( )

Destructor

Definition at line 27 of file CbmGeaneTr.cxx.

27 { }

Member Function Documentation

FairGeaneTr::ClassDef ( FairGeaneTr  ,
 
)
private
void FairGeaneTr::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 73 of file CbmGeaneTr.cxx.

References Bool_t, CAMath::Cos(), Double_t, fParticle, fPhi, fPoint1, fPoint2, fPointArray1, fPointArray2, fPro, fTrackParFinal, fTrackParGeane, fTrackParIni, fX, fY, fZ, CbmPlanePoint::GetPxIn(), CbmPlanePoint::GetPyIn(), CbmPlanePoint::GetPzIn(), CbmPlanePoint::GetTrackID(), CbmPlanePoint::GetXIn(), CbmPlanePoint::GetYIn(), CbmPlanePoint::GetZIn(), i, and CAMath::Sin().

73  {
74 // cout << "FairGeaneTr::Exec" << endl;
75  fTrackParGeane->Delete();
76  fTrackParIni->Delete();
77  fTrackParFinal->Delete();
78 
79  Int_t NoOfEntries=fPointArray1->GetEntriesFast();
80  cout<<fPointArray2->GetEntriesFast()<<endl;
81  for (Int_t i=0; i<NoOfEntries; i++) {
83 // cout << "first loop for " << i << "from "<< NoOfEntries << " entries " << endl;
84  Int_t trId=fPoint1->GetTrackID();
85  fPoint2=0;
86  for (Int_t k=0; k<fPointArray2->GetEntriesFast(); k++) {
88  // cout << "second loop for " << k << endl;
89  if(fPoint2->GetTrackID()==trId) break;
90  }
91 
92  if(fPoint2==0) break;
93 
94  TVector3 StartPos = TVector3 (fPoint1->GetXIn(),fPoint1->GetYIn(),fPoint1->GetZIn());
95 // TVector3 StartPos = TVector3 (0.,0.,0.);
96  TVector3 StartPosErr = TVector3(0,0,0);
97  TVector3 StartMom = TVector3 (fPoint1->GetPxIn(),fPoint1->GetPyIn(),fPoint1->GetPzIn());
98 // TVector3 StartMom = TVector3 (1.,0.1,0.1);
99  TVector3 StartMomErr = TVector3(0,0,0);
100 
101  TVector3 EndPos =TVector3 (fPoint2->GetXIn(),fPoint2->GetYIn(),fPoint2->GetZIn());
102  TVector3 EndPosErr=TVector3(0,0,0);
103  TVector3 EndMom= TVector3 (fPoint2->GetPxIn(),fPoint2->GetPyIn(),fPoint2->GetPzIn());
104  TVector3 EndMomErr=TVector3(0,0,0);
105 
106 
107  Int_t PDGCode= 13;
108 
109  TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
110  TParticlePDG *fParticle= fdbPDG->GetParticle(PDGCode);
111  Double_t fCharge= fParticle->Charge();
112 
113  TClonesArray& clref1 = *fTrackParIni;
114  Int_t size1 = clref1.GetEntriesFast();
115  FairTrackParH *fStart= new (clref1[size1]) FairTrackParH(StartPos, StartMom, StartPosErr, StartMomErr, fCharge);
116  // fStart->Print();
117 
118  TClonesArray& clref = *fTrackParGeane;
119  Int_t size = clref.GetEntriesFast();
120  FairTrackParH *fRes= new(clref[size]) FairTrackParH();
121  // fRes->Print();
122 
123  TClonesArray& clref2 = *fTrackParFinal;
124  Int_t size2 = clref2.GetEntriesFast();
125  FairTrackParH *fFinal= new(clref2[size2]) FairTrackParH(EndPos, EndMom, EndPosErr, EndMomErr, fCharge);
126 
127 
128  Bool_t rc = fPro->Propagate(fStart, fRes,PDGCode);
129 
130  Double_t fLm,fPhi,cLm,sLm,cphi,sphi,fX_sc,fY_sc,fZ_sc,fX,fY,fZ;
131 
132  fLm = fRes->GetLambda();
133  fPhi= fRes->GetPhi();
134  fX = fFinal->GetX();
135  fY = fFinal->GetY();
136  fZ = fFinal->GetZ();
137  cLm= TMath::Cos(fLm);
138  sLm= TMath::Sin(fLm);
139  cphi= TMath::Cos(fPhi);
140  sphi= TMath::Sin(fPhi);
141 
142  fX_sc = fX*cphi*cLm+ fY*cLm*sphi+fZ*sLm;
143  fY_sc = fY*cphi-fX*sphi;
144  fZ_sc = fZ*cLm-fY*sLm*sphi-fX*sLm*cphi;
145 
146  fFinal->SetX_sc(fX_sc);
147  fFinal->SetY_sc(fY_sc);
148  fFinal->SetZ_sc(fZ_sc);
149 
150  }
151  // }
152  fPointArray1->Delete();
153  fPointArray2->Delete();
154 
155 }
TClonesArray * fPointArray1
Definition: CbmGeaneTr.h:34
Double_t GetZIn() const
Definition: CbmPlanePoint.h:56
TClonesArray * fPointArray2
Definition: CbmGeaneTr.h:35
Double_t GetPzIn() const
Definition: CbmPlanePoint.h:59
TClonesArray * fTrackParIni
Definition: CbmGeaneTr.h:42
Double_t GetXIn() const
Definition: CbmPlanePoint.h:54
Int_t i
Definition: run_full.C:25
Double_t GetYIn() const
Definition: CbmPlanePoint.h:55
Int_t GetTrackID() const
Definition: CbmPlanePoint.h:62
CbmPlanePoint * fPoint2
Definition: CbmGeaneTr.h:37
static T Sin(const T &x)
Definition: PndCAMath.h:42
Double_t fX
Definition: PndCaloDraw.cxx:34
TClonesArray * fTrackParFinal
Definition: CbmGeaneTr.h:44
CbmPlanePoint * fPoint1
Definition: CbmGeaneTr.h:36
FairGeanePro * fPro
Definition: CbmGeaneTr.h:49
static T Cos(const T &x)
Definition: PndCAMath.h:43
Double_t fZ
Definition: PndCaloDraw.cxx:34
TClonesArray * fTrackParGeane
Definition: CbmGeaneTr.h:43
Int_t * fParticle
Definition: run_full.C:24
Double_t
Double_t const fPhi
Double_t fY
Definition: PndCaloDraw.cxx:34
Double_t GetPyIn() const
Definition: CbmPlanePoint.h:58
Double_t GetPxIn() const
Definition: CbmPlanePoint.h:57
InitStatus FairGeaneTr::Init ( )
virtual

Virtual method Init

Definition at line 32 of file CbmGeaneTr.cxx.

References fPointArray1, fPointArray2, fPro, fTrackParFinal, fTrackParGeane, and fTrackParIni.

32  {
33 
34  // Get RootManager
35  FairRootManager* ioman = FairRootManager::Instance();
36  if ( ! ioman ) {
37  cout << "-E- FairGeaneTr::Init: "
38  << "RootManager not instantised!" << endl;
39  return kFATAL;
40  }
41 
42 
43  fTrackParGeane = new TClonesArray("FairTrackParH");
44  ioman->Register("GeaneTrackPar","Geane", fTrackParGeane, kTRUE);
45 
46  fTrackParIni = new TClonesArray("FairTrackParH");
47  ioman->Register("GeaneTrackIni","Geane", fTrackParIni, kTRUE);
48 
49  fTrackParFinal = new TClonesArray("FairTrackParH");
50  ioman->Register("GeaneTrackFinal","Geane", fTrackParFinal, kTRUE);
51 
52  // Get input array
53 
54  fPointArray1 = (TClonesArray*) ioman->GetObject("Plane1Point");
55 
56  fPointArray2 = (TClonesArray*)ioman->GetObject("Plane2Point");
57 
58  // Create and register output array
59 
60  fPro = new FairGeanePro();
61 
62  fPro->PropagateToVolume("mL3",0,1);
63 
64 
65 
66  return kSUCCESS;
67 
68 }
TClonesArray * fPointArray1
Definition: CbmGeaneTr.h:34
TClonesArray * fPointArray2
Definition: CbmGeaneTr.h:35
TClonesArray * fTrackParIni
Definition: CbmGeaneTr.h:42
TClonesArray * fTrackParFinal
Definition: CbmGeaneTr.h:44
FairGeanePro * fPro
Definition: CbmGeaneTr.h:49
TClonesArray * fTrackParGeane
Definition: CbmGeaneTr.h:43

Member Data Documentation

TFile* FairGeaneTr::f
private

Definition at line 40 of file CbmGeaneTr.h.

Int_t FairGeaneTr::fEvent
private

Definition at line 48 of file CbmGeaneTr.h.

CbmPlanePoint* FairGeaneTr::fPoint1
private

Definition at line 36 of file CbmGeaneTr.h.

Referenced by Exec().

CbmPlanePoint* FairGeaneTr::fPoint2
private

Definition at line 37 of file CbmGeaneTr.h.

Referenced by Exec().

TClonesArray* FairGeaneTr::fPointArray1
private

Input array of Points

Definition at line 34 of file CbmGeaneTr.h.

Referenced by Exec(), and Init().

TClonesArray* FairGeaneTr::fPointArray2
private

Definition at line 35 of file CbmGeaneTr.h.

Referenced by Exec(), and Init().

FairGeanePro* FairGeaneTr::fPro
private

Definition at line 49 of file CbmGeaneTr.h.

Referenced by Exec(), and Init().

TClonesArray* FairGeaneTr::fTrackParFinal
private

Definition at line 44 of file CbmGeaneTr.h.

Referenced by Exec(), and Init().

TClonesArray* FairGeaneTr::fTrackParGeane
private

Definition at line 43 of file CbmGeaneTr.h.

Referenced by Exec(), and Init().

TClonesArray* FairGeaneTr::fTrackParIni
private

Output array of Hits

Definition at line 42 of file CbmGeaneTr.h.

Referenced by Exec(), and Init().

TGeant3* FairGeaneTr::gMC3
private

Definition at line 46 of file CbmGeaneTr.h.

TTree* FairGeaneTr::t
private

Definition at line 39 of file CbmGeaneTr.h.


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