FEDRA emulsion software from the OPERA Collaboration
EdbPredictionsBox Class Reference

#include <EdbPrediction.h>

Inheritance diagram for EdbPredictionsBox:
Collaboration diagram for EdbPredictionsBox:

Public Member Functions

void AddPrediction (int id, int event, int flag, float ty, float tz, float y, float z)
 
EdbPointAt (int i) const
 
 EdbPredictionsBox ()
 
 EdbPredictionsBox (const EdbPredictionsBox &pb)
 
 EdbPredictionsBox (int n)
 
void Generate (int n)
 
Int_t GetN () const
 
EdbPredictionDCGetPrediction (int i) const
 
TClonesArray * GetPredictions () const
 
TNtuple * MakeNtuple (const char *name="predictions") const
 
Int_t N () const
 
void Print (Option_t *opt="") const
 
int ReadDC (const char *file)
 
int ReadDC0 (const char *file)
 
void WriteDC (const char *file="predictions.dc") const
 
void WriteDC1 (const char *file="predictions.dc") const
 
virtual ~EdbPredictionsBox ()
 
- Public Member Functions inherited from EdbPointsBox2D
virtual Float_t DeltaX ()
 
virtual Float_t DeltaY ()
 
virtual void DrawPoints (int style=23, int col=4, float size=1., bool same=false)
 
 EdbPointsBox2D ()
 
 EdbPointsBox2D (const EdbPointsBox2D &pb)
 
virtual const EdbAffine2DGetKeep () const
 
virtual void GetKeep (EdbAffine2D &aff)
 
virtual void Retransform ()
 
virtual void Rotate (float angle)
 
virtual void ScaleX (float scaleFactor)
 
virtual void ScaleY (float scaleFactor)
 
virtual void SetKeep (float a11, float a12, float a21, float a22, float b1, float b2)
 
virtual void SetX (float x)
 
virtual void SetY (float y)
 
virtual void SetZ (float z)
 
virtual void ShiftX (float offset)
 
virtual void ShiftY (float offset)
 
virtual void SmearXY (float sigmax, float sigmay)
 
virtual void Substruct (EdbPointsBox2D *b)
 
virtual void Transform (const EdbAffine2D *a)
 
virtual Float_t X () const
 
virtual TH1F * Xhist ()
 
virtual Float_t Xmax () const
 
virtual Float_t Xmin () const
 
virtual TH2F * XYhist ()
 
virtual Float_t Y () const
 
virtual TH1F * Yhist ()
 
virtual Float_t Ymax () const
 
virtual Float_t Ymin () const
 
virtual Float_t Z () const
 
virtual ~EdbPointsBox2D ()
 
- Public Member Functions inherited from EdbPoint3D
virtual void Substruct (EdbPoint *p)
 
virtual void Test () const
 
virtual void TestPoint3D () const
 
virtual void Transform (const EdbAffine3D *a)
 
virtual ~EdbPoint3D ()
 
- Public Member Functions inherited from EdbPoint2D
virtual void TestPoint2D () const
 
virtual ~EdbPoint2D ()
 
- Public Member Functions inherited from EdbPoint
virtual ~EdbPoint ()
 

Private Attributes

TClonesArray * ePredictions
 

Constructor & Destructor Documentation

◆ EdbPredictionsBox() [1/3]

EdbPredictionsBox::EdbPredictionsBox ( )
69 {
70  ePredictions = new TClonesArray("EdbPredictionDC",1000);
71 }
TClonesArray * ePredictions
Definition: EdbPrediction.h:75

◆ EdbPredictionsBox() [2/3]

EdbPredictionsBox::EdbPredictionsBox ( const EdbPredictionsBox pb)
74  : EdbPointsBox2D(pb)
75 {
76  if(pb.GetPredictions()) ePredictions = new TClonesArray(*pb.GetPredictions());
77  else ePredictions = new TClonesArray("EdbPredictionDC",1000);
78 }
EdbPointsBox2D()
Definition: EdbVirtual.cxx:124
TClonesArray * GetPredictions() const
Definition: EdbPrediction.h:89

◆ EdbPredictionsBox() [3/3]

EdbPredictionsBox::EdbPredictionsBox ( int  n)
82 {
83  ePredictions = new TClonesArray("EdbPredictionDC",n);
84 }

◆ ~EdbPredictionsBox()

EdbPredictionsBox::~EdbPredictionsBox ( )
virtual
88 {
89  if(ePredictions) delete ePredictions;
90 }

Member Function Documentation

◆ AddPrediction()

void EdbPredictionsBox::AddPrediction ( int  id,
int  event,
int  flag,
float  ty,
float  tz,
float  y,
float  z 
)
186 {
187  new((*ePredictions)[GetN()])
188  EdbPredictionDC( id, event, flag,
189  ty, tz, y, z );
190 }
Definition: EdbPrediction.h:21
Int_t GetN() const
Definition: EdbPrediction.cxx:116
int event
Definition: shower_tr.C:25

◆ At()

EdbPoint* EdbPredictionsBox::At ( int  i) const
inlinevirtual

Implements EdbPointsBox2D.

93 { return (EdbPoint*)GetPrediction(i); }
Definition: EdbVirtual.h:28
EdbPredictionDC * GetPrediction(int i) const
Definition: EdbPrediction.cxx:281

◆ Generate()

void EdbPredictionsBox::Generate ( int  n)
194 {
195  for( int i=0; i<n; i++ ) {
196 
197  AddPrediction( i, i, 0, 0, 0, 1000*i, 1000*i );
198 
199  }
200 }
void AddPrediction(int id, int event, int flag, float ty, float tz, float y, float z)
Definition: EdbPrediction.cxx:184

◆ GetN()

Int_t EdbPredictionsBox::GetN ( ) const
117 {
118  if(ePredictions) return ePredictions->GetLast()+1; else return 0;
119 }

◆ GetPrediction()

EdbPredictionDC * EdbPredictionsBox::GetPrediction ( int  i) const
282 {
283  if(ePredictions) return (EdbPredictionDC*) ePredictions->At(i);
284  else return 0;
285 }

◆ GetPredictions()

TClonesArray* EdbPredictionsBox::GetPredictions ( ) const
inline
89 { return ePredictions; }

◆ MakeNtuple()

TNtuple * EdbPredictionsBox::MakeNtuple ( const char *  name = "predictions") const
157 {
158  TNtuple *nt = new TNtuple( name, "$c predictions", "id:event:flag:ty:tz:y:z" );
159  EdbPredictionDC *pdc=0;
160 
161  if( N()>0 ) {
162  for(int i=0; i<N(); i++ ) {
163  pdc = GetPrediction(i);
164  nt->Fill( pdc->GetID(),
165  pdc->GetEvent(),
166  pdc->GetFlag(),
167  pdc->GetTy(),
168  pdc->GetTz(),
169  pdc->GetYp(),
170  pdc->GetZp() );
171  }
172  }
173  return nt;
174 }
virtual Float_t GetTz() const
Definition: EdbPrediction.h:46
virtual Int_t GetID() const
Definition: EdbPrediction.h:42
virtual Int_t GetEvent() const
Definition: EdbPrediction.h:43
virtual Float_t GetTy() const
Definition: EdbPrediction.h:45
virtual Int_t GetFlag() const
Definition: EdbPrediction.h:44
virtual Float_t GetZp() const
Definition: EdbPrediction.h:48
virtual Float_t GetYp() const
Definition: EdbPrediction.h:47
Int_t N() const
Definition: EdbPrediction.h:92
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24

◆ N()

Int_t EdbPredictionsBox::N ( ) const
inlinevirtual

Implements EdbPointsBox2D.

92 { return GetN(); }

◆ Print()

void EdbPredictionsBox::Print ( Option_t *  opt = "") const
virtual

Reimplemented from EdbPointsBox2D.

178 {
179  printf("EdbPredictionsBox: %d elements\n", N() );
180  if( N()>0 ) for(int i=0; i<N(); i++ ) GetPrediction(i)->Print();
181 }
virtual void Print(Option_t *opt=0) const
Definition: EdbPrediction.cxx:60

◆ ReadDC()

Int_t EdbPredictionsBox::ReadDC ( const char *  file)
204 {
205  FILE *fp = fopen( file,"r");
206  char buffer[256]="";
207 
208  int ncols=0;
209 
210  // read header
211  int module, stack, period, plate;
212  float a1, a2;
213  if (fgets (buffer, 256, fp) == NULL) return 0;
214  ncols = sscanf(buffer,"%d %d %d %d %f %f",
215  &module, &stack, &period, &plate, &a1, &a2);
216 
217  // read tracks
218  int ntr = 0;
219  int id, ev, flag;
220  float ty, tz, y, z;
221  for( int i=0; i<100000; i++ ) {
222  if (fgets (buffer, 256, fp) == NULL) break;
223  ncols = sscanf(buffer,"%d %d %d %f %f %f %f",
224  &id, &ev, &flag, &ty, &tz, &y, &z);
225  if (ncols != 7 && ncols>0) {
226  printf("*** EmuDCTrack::Read Error: ncolomns =%d != 7", ncols );
227  ncols = -1;
228  break;
229  }
230  if(ncols<=0) break;
231  AddPrediction( id, ev, flag, ty, tz, y, z );
232  ntr++;
233  }
234  fclose(fp);
235 
236  printf("%d tracks are readed from file %s\n", ntr, file );
237  return ntr;
238 }
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
fclose(pFile)
UInt_t id
Definition: tlg2pattern.C:118
#define NULL
Definition: nidaqmx.h:84
TFile * file
Definition: write_pvr.C:3

◆ ReadDC0()

Int_t EdbPredictionsBox::ReadDC0 ( const char *  file)
242 {
243  // read dc file with no header
244 
245  FILE *fp = fopen( file,"r");
246  char buffer[256]="";
247 
248  int ncols=0;
249 
250  // read header
251 // int module, stack, period, plate;
252 // float a1, a2;
253 // if (fgets (buffer, 256, fp) == NULL) return 0;
254 // ncols = sscanf(buffer,"%d %d %d %d %f %f",
255 // &module, &stack, &period, &plate, &a1, &a2);
256 
257  // read tracks
258  int ntr = 0;
259  int id, ev, flag;
260  float ty, tz, y, z;
261  for( int i=0; i<100000; i++ ) {
262  if (fgets (buffer, 256, fp) == NULL) break;
263  ncols = sscanf(buffer,"%d %d %d %f %f %f %f",
264  &id, &ev, &flag, &ty, &tz, &y, &z);
265  if (ncols != 7 && ncols>0) {
266  printf("*** EmuDCTrack::Read Error: ncolomns =%d != 7", ncols );
267  ncols = -1;
268  break;
269  }
270  if(ncols<=0) break;
271  AddPrediction( id, ev, flag, ty, tz, y, z );
272  ntr++;
273  }
274  fclose(fp);
275 
276  printf("%d tracks are readed from file %s\n", ntr, file );
277  return ntr;
278 }

◆ WriteDC()

void EdbPredictionsBox::WriteDC ( const char *  file = "predictions.dc") const
123 {
124  FILE *fp = fopen( file,"w");
125  if( N()>0 ) for(int i=0; i<N(); i++ ) GetPrediction(i)->WriteDC(fp);
126  fclose(fp);
127 }
void WriteDC(FILE *file) const
Definition: EdbPrediction.cxx:53

◆ WriteDC1()

void EdbPredictionsBox::WriteDC1 ( const char *  file = "predictions.dc") const
131 {
132  // temporary routine to renumber the tracks
133 
134  EdbPredictionDC *p = 0;
135  FILE *fp = fopen( file,"w");
136 
137  if( N()>0 ) for(int i=0; i<N(); i++ ) {
138 
139  p = GetPrediction(i);
140 
141  fprintf( fp,"%i %i %i %f %f %f %f \n",
142  i,
143  p->GetEvent(),
144  p->GetFlag(),
145  p->TX(),
146  p->TY(),
147  p->X(),
148  p->Y()
149  );
150 
151  }
152  fclose(fp);
153 }
p
Definition: testBGReduction_AllMethods.C:8

Member Data Documentation

◆ ePredictions

TClonesArray* EdbPredictionsBox::ePredictions
private

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