StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFtpcLaser.cc
1 // $Id: StFtpcLaser.cc,v 1.6 2007/07/12 19:36:11 fisyak Exp $
2 //
3 // $Log: StFtpcLaser.cc,v $
4 // Revision 1.6 2007/07/12 19:36:11 fisyak
5 // Add includes for ROOT 5.16
6 //
7 // Revision 1.5 2007/01/22 13:08:15 jcs
8 // replace cout with LOG
9 //
10 // Revision 1.4 2007/01/19 08:22:58 jcs
11 // replace true, false with kTRUE, kFALSE
12 //
13 // Revision 1.3 2006/04/04 10:57:04 jcs
14 // Fix memory leak
15 //
16 // Revision 1.2 2006/03/15 15:13:56 jcs
17 // add lines for listing CVS update info
18 //
19 
20 #include "StFtpcLaser.hh"
21 #include "TMath.h"
22 #include "StMessMgr.h"
23 
24 //---------------------------------------------------------------
25 
26 StFtpcLaser::StFtpcLaser()
27 {
28  TStyle *plain = new TStyle("Plain","Plain Style (no colors/fill areas)");
29  plain->SetTitleOffset(1.25);
30  plain->SetCanvasBorderMode(0);
31  plain->SetPadBorderMode(0);
32  plain->SetPadColor(0);
33  plain->SetCanvasColor(0);
34  plain->SetTitleColor(0);
35  plain->SetStatColor(0);
36  plain->SetPalette(1);
37  plain->SetOptStat(11);
38  plain->SetOptFit(0);
39 }
40 
41 //---------------------------------------------------------------
42 
43 //StFtpcLaser::StFtpcLaser(TString filename)
44 //{
45 //
46 //f=new TFile(filename);
47 //LOG_DEBUG<<"StFtpcLaser constructed"<<endm;
48 //readtree(f);
49 //LOG_DEBUG<<"File : "<<filename<<" eingelesen !"<<endm;
50 //}
51 
52 //---------------------------------------------------------------
53 
54 void StFtpcLaser::Init(TString filename)
55 {
56 
57  f=new TFile(filename+".root");
58  LOG_INFO<<"StFtpcLaser::Init..."<<endm;
59  readtree(f);
60  LOG_INFO<<" "<<endm;
61  LOG_INFO<<"Read file : "<<filename<<".root"<<endm;
62  LOG_INFO<<"--------------"<<endm;
63 }
64 
65 //______________________________________________________________________________
66 void StFtpcLaser::GetTreeEntry(int k)
67 {
68  btcluster->GetEntry(k);
69  bthit->GetEntry(k);
70  btevent->GetEntry(k);
71 
72  bRun->GetEntry(k); //JCS
73 }
74 
75 //---------------------------------------------------------------
76 
77 void StFtpcLaser::GetClusterTreeEntry(int k)
78 {
79  bcluster->GetEntry(k);
80  bhit->GetEntry(k);
81  bevent->GetEntry(k);
82 }
83 
84 //---------------------------------------------------------------
85 
86 StFtpcLaser::~StFtpcLaser()
87 {
88  f->Close();
89  //LOG_DEBUG<<"StFtpcLaser deconstructed"<<endm;
90 }
91 //---------------------------------------------------------------
92 
93 
94 Float_t StFtpcLaser::zyltrafo(Float_t x,Float_t y, Float_t z)
95 {
96  Float_t erg=0;
97  if (x<0) erg=atan(y/x)+TMath::Pi();
98  if (x>0) erg=atan(y/x);
99  if (x==0 && y>0) erg=TMath::Pi()/2;
100  if (x==0 && y<0) erg=-TMath::Pi()/2;
101  return erg;
102 }
103 
104 //---------------------------------------------------------------
105 
106 bool StFtpcLaser::laser_sector(int whichftpc,int whichsec,int sec)
107 {
108  if (whichftpc==2)
109  {
110  switch(whichsec)
111  {
112 
113  case 0:
114  // all sectors
115  return kTRUE;
116  break;
117  case 1:
118  if (sec==32 || sec==38 || sec==44 || sec==50 || sec==56)
119  return kTRUE;
120  else
121  return kFALSE;
122  break;
123  case 2:
124  if (sec==34 || sec==40 || sec==46 || sec==52 || sec==58)
125  return kTRUE;
126  else
127  return kFALSE;
128  break;
129  case 3:
130  if (sec==36 || sec==42 || sec==48 || sec==54 || sec==60)
131  return kTRUE;
132  else
133  return kFALSE;
134  break;
135  default :
136  {
137  LOG_ERROR<<"ERROR : No valid Laser sector for Ftpc East!"<<endm;
138  return kFALSE;
139  }
140  }
141  }
142  else if (whichftpc==1)
143  {
144  switch(whichsec)
145  {
146  case 0:
147  // all sectors
148  return kTRUE;
149  break;
150  case 1:
151  if (sec==2 || sec==8 || sec==14 || sec==20 || sec==26)
152  return kTRUE;
153  else
154  return kFALSE;
155  break;
156  case 2:
157  if (sec==4 || sec==10 || sec==16 || sec==22 || sec==28)
158  return kTRUE;
159  else
160  return kFALSE;
161  break;
162  case 3:
163  if (sec==6 || sec==12 || sec==18 || sec==24 || sec==30)
164  return kTRUE;
165  else
166  return kFALSE;
167  break;
168  default :
169  {
170  LOG_ERROR<<"ERROR : No valid Laser sector for Ftpc West!"<<endm;
171  return kFALSE;
172  }
173  }
174  }
175  else if (whichftpc==0)
176  {
177  // take all tracks !!!
178  return kTRUE;
179  }
180  LOG_ERROR<<"ERROR : No FTPC chosen !"<<endm;
181 
182  return kFALSE;
183 }
184 
185 //---------------------------------------------------------------
186 
187 int StFtpcLaser::laser_straight(float *rad,int max)
188 {
189  //if (fabs(rad[0]-rad[max-1])>5)
190  if ((rad[0]-rad[max-1])>5)
191  return 0;
192  //else if ((rad[max-1]-rad[0])>0) // nur einen schraegen !
193  else if (fabs(rad[0]-rad[max-1])>5)
194  return 2;
195  else
196  return 1;
197  //else
198  //return kFALSE;
199 }
200 
201 
202 void StFtpcLaser::readtree(TFile *f)
203 {
204  drtree=(TTree*) f->Get("rinfo");
205  bRun=drtree->GetBranch("Run");
206  bRun->SetAddress(&Run);
207  dtree=(TTree*) f->Get("cl");
208  bhit=dtree->GetBranch("hit");
209  bhit->SetAddress(&hit);
210  bcluster=dtree->GetBranch("cluster");
211  bcluster->SetAddress(&cluster);
212  bevent=dtree->GetBranch("event");
213  bevent->SetAddress(&event);
214 
215  dtrtree=(TTree*) f->Get("tr");
216  btrevent=dtrtree->GetBranch("event");
217  btrevent->SetAddress(&trevent);
218  btrack=dtrtree->GetBranch("track");
219  btrack->SetAddress(&track);
220  btrvertex=dtrtree->GetBranch("vertex");
221  btrvertex->SetAddress(&mvertex);
222 
223  dttree=(TTree*) f->Get("clot");
224  btcluster=dttree->GetBranch("cluster");
225  btcluster->SetAddress(&tcluster);
226  bthit=dttree->GetBranch("hit");
227  bthit->SetAddress(&thit);
228  btevent=dttree->GetBranch("event");
229  btevent->SetAddress(&tevent);
230 }
231