RWGCF converted to native cmake
[u/mrichter/AliRoot.git] / THbtp / HBTprocCOMMON.h
1 #ifndef HBTprocessorCOMMON
2 #define HBTprocessorCOMMON
3
4
5 enum
6   {
7     TRK_MAXLEN    = 25000,
8     TRK2_MAXLEN   = 25000,
9     MAX_TRK_SEC   = 150,
10     SEC_MAXLEN    = 28000,
11     MAX_TRK_SEC2  = 150,
12     SEC_MAXLEN2   = 28000,
13     MAX_TRK_SAVE  = 150,
14     PART_MAXLEN   = 50,
15     MAX_C2_1D     = 100, 
16     MAX_C2_3D     = 10,
17     MAX_EVENTS    = 100,
18     MAX_C2_COUL   = 288,
19     MAX_H_1D      = 100,
20     MAX_H_3D      = 10
21   };
22
23
24 extern "C" {
25
26
27 #ifndef __CINT__
28 #define f2cFortran
29 #ifndef __CFORTRAN_LOADED
30 #include "cfortran.h"
31 #endif
32 #endif
33  
34 #ifndef __CINT__
35
36 /*       common/parameters/
37      1   ref_control,print_full,print_sector_data,n_pid_types,pid(2),
38      2   n_events,switch_1d,switch_3d,switch_type,switch_coherence,
39      3   switch_coulomb,switch_fermi_bose,n_part_1_trk,n_part_2_trk,
40      4   n_part_tot_trk,n_part_1_trk2,n_part_2_trk2,n_part_tot_trk2,
41      5   n_part_used_1_trk,n_part_used_2_trk,n_part_used_1_trk2,
42      6   n_part_used_2_trk2,n_part_used_1_ref,n_part_used_2_ref,
43      7   n_part_used_1_inc,n_part_used_2_inc,num_pairs_like,
44      8   num_pairs_unlike,num_pairs_like_ref,num_pairs_unlike_ref,
45      9   num_pairs_like_inc,num_pairs_unlike_inc,event_line_counter,
46      1   maxit,irand,file10_line_counter,
47      2   lambda,R_1d,Rside,Rout,Rlong,Rperp,Rparallel,R0,Q0,deltap,
48      3   delchi,pi,rad,hbc,chisq_wt_like_1d,chisq_wt_unlike_1d,
49      4   chisq_wt_like_3d_fine,chisq_wt_unlike_3d_fine,
50      5   chisq_wt_like_3d_coarse,chisq_wt_unlike_3d_coarse,
51      6   chisq_wt_hist1_1,chisq_wt_hist1_2,mass1,mass2,trk_accep
52
53 */ 
54  
55
56
57  typedef struct //PARAMETERS
58    {
59       Int_t ALICE;
60       Int_t errorcode;
61       
62       Int_t ref_control;
63       Int_t print_full;             // Full print out option - each event
64       Int_t print_sector_data;      // Print sector overflow diagnostics
65       Int_t n_pid_types;            // # particle ID types to correlate
66       Int_t pid[2];                    // Geant particle ID #s, max of 2 types
67       Int_t n_events ;              // # events in input event text file
68       Int_t switch_1d;              // Include 1D correlations
69       Int_t switch_3d;              // Include 3D correlations
70       Int_t switch_type ;           // For like, unlike or both PID pairs
71       Int_t switch_coherence;       // To include incoh/coher mixed source
72       Int_t switch_coulomb;         // Coulomb correction selection options
73       Int_t switch_fermi_bose;      // For fermions or bosons
74
75 //   Numbers of particles and pairs:
76
77       Int_t n_part_1_trk;           // Total # PID #1 in 'trk', all flags
78       Int_t n_part_2_trk;           // Total # PID #2 in 'trk', all flags
79       Int_t n_part_tot_trk;         // Total # all part. in 'trk', all flgs
80       Int_t n_part_used_1_trk;      // # PID#1, used (flag=0) in 'trk'
81       Int_t n_part_used_2_trk;      // # PID#2, used (flag=0) in 'trk'
82
83       Int_t n_part_1_trk2;          // Total # PID #1 in 'trk2', all flags
84       Int_t n_part_2_trk2;          // Total # PID #2 in 'trk2', all flags
85       Int_t n_part_tot_trk2;        // Total # all part. in 'trk2', all flgs
86       Int_t n_part_used_1_trk2;     // # PID#1, used (flag=0) in 'trk2'
87       Int_t n_part_used_2_trk2;     // # PID#2, used (flag=0) in 'trk2'
88
89       Int_t n_part_used_1_ref;      // # PID#1, used (flag=0) in Reference
90       Int_t n_part_used_2_ref;      // # PID#2, used (flag=0) in Reference
91       Int_t n_part_used_1_inc;      // # PID#1, used (flag=0) in Inclusive 
92       Int_t n_part_used_2_inc;      // # PID#2, used (flag=0) in Inclusive
93
94       Int_t num_pairs_like;         // # like pairs used (flag=0) in fit 
95       Int_t num_pairs_unlike;       // # unlike pairs used (flag=0) in fit
96       Int_t num_pairs_like_ref;     // # like pairs used (flag=0) in Ref. 
97       Int_t num_pairs_unlike_ref;   // # unlike pairs used (flag=0) in Ref. 
98       Int_t num_pairs_like_inc;     // # like pairs used (flag=0) in Incl. 
99       Int_t num_pairs_unlike_inc;   // # unlike pairs used (flag=0) in Incl. 
100
101 //   Counters:
102
103       Int_t event_line_counter;     // Input event text file line counter
104       Int_t maxit;                  // Max # iterations in track adjustment
105       Int_t irand;                  // Random # starting seed (Def=12345)      
106       Int_t file10_line_counter;    // Output, correlated event text file
107 //                                    //    line counter
108
109 //   Correlation Model Parameters:
110
111       Float_t    lambda;               // Chaoticity parameter
112       Float_t    R_1d;                   // Spherical source radius (fm)
113       Float_t    Rside;                  // 3D Bertsch-Pratt source 'side' R (fm)
114       Float_t    Rout;                   // 3D Bertsch-Pratt source 'out'  R (fm)
115       Float_t    Rlong;                  // 3D Bertsch-Pratt source 'long' R (fm)
116       Float_t    Rperp;                  // 3D YKP source transverse radius  (fm)
117       Float_t    Rparallel;              // 3D YKP source longitudinal radius(fm)
118       Float_t    R0;                     // 3D YKP source emission time durat(fm)
119       Float_t    Q0;                     // NA35 Coulomb parameter (GeV/c) or
120 //                                    // Coul radius for Pratt finite src (fm)
121
122 //   Search Control Parameters:
123
124
125       Float_t    deltap;                 // Max limit for x,y,z momt shifts(GeV/c)
126       Float_t    delchi;                 // Min% change in Chi-Sq to stop iterat.
127
128       Float_t pi;// = 3.141592654; // PI 
129       
130       Float_t rad;// = 180.0/3.14;                    // radian = 180.0/pi
131       Float_t hbc;// = 0.19732891;                       // h-bar-c (GeV*fm)
132
133 //   Chi-Square Values:
134
135       Float_t    chisq_wt_like_1d;          // 1D, Like pairs
136       Float_t    chisq_wt_unlike_1d;        // 1D, Unlike pairs
137       Float_t    chisq_wt_like_3d_fine;     // 3D, Like pairs, Fine Mesh
138       Float_t    chisq_wt_unlike_3d_fine;   // 3D, Unlike pairs, Fine Mesh
139       Float_t    chisq_wt_like_3d_coarse;   // 3D, Like pairs, Coarse Mesh
140       Float_t    chisq_wt_unlike_3d_coarse; // 3D, Unlike pairs, Coarse Mesh
141       Float_t    chisq_wt_hist1_1;          // One-body, particle ID type #1
142       Float_t    chisq_wt_hist1_2;          // One-body, particle ID type #2
143
144 //   Particle Masses:
145
146       Float_t    mass1, mass2;           // Particle ID# 1 and 2 masses (GeV)
147
148 //   Constants:
149
150
151 //     parameter (pi = 3.141592654)
152 //     parameter (hbc = 0.19732891)
153
154 //  Random Track Selection Fraction, for low multiplicity particles
155
156       Float_t trk_accep;                 // ranges from 0.0 -> 1.0
157
158   }  HBTprocParamsCommon;
159  
160 #define PARAMETERS COMMON_BLOCK(PARAMETERS,parameters)
161
162 COMMON_BLOCK_DEF(HBTprocParamsCommon,PARAMETERS);
163
164 //HBTprocParamsCommon PARAMETERS;
165
166
167 /************************************************************************************************/ 
168 /************************************************************************************************/ 
169
170  typedef struct //MESH COMMON BLOCK
171   {
172 //   One-Body Mesh:
173
174       Int_t n_pt_bins;             // # one-body pt bins
175       Int_t n_phi_bins;            // # one-body phi bins
176       Int_t n_eta_bins;            // # one-body eta bins
177      
178       Int_t n_1d_fine;             // # bins for 1D, Fine Mesh
179       Int_t n_1d_coarse;           // # bins for 1D, Coarse Mesh
180       Int_t n_1d_total;            // Total # bins for 1D
181       Int_t n_3d_fine ;            // # bins for 3D, Fine Mesh
182       Int_t n_3d_coarse;           // # bins for 3D, Coarse Mesh
183       Int_t n_3d_total;            // Total # bins for 3D
184       Int_t n_3d_fine_project;     // # 3D fine mesh bins to sum over for
185
186 //   Momentum Space Sectors for Track Sorting:
187
188       Int_t n_px_bins;             // # sector bins in px
189       Int_t n_py_bins;             // # sector bins in py
190       Int_t n_pz_bins;             // # sector bins in pz
191       Int_t n_sectors;             // Total # sectors in 3D momentum space
192
193 //   Temporary Momentum Space Sector information storage during trk adjust.
194
195       Int_t old_sec_ntrk;          // Old sector # tracks
196       Int_t old_sec_flag;         // Old sector flag value
197       Int_t old_sec_trkid[MAX_TRK_SAVE];         // Old sector track id array
198
199       Int_t new_sec_ntrk;          // New sector # tracks
200       Int_t new_sec_flag;          // New sector flag value
201       Int_t new_sec_trkid[MAX_TRK_SAVE];         // New sector track id array
202       Int_t new_sec_save;          // New sector ID value
203       Int_t old_sec_save;          // Old sector ID value
204      
205       Float_t    pt_bin_size ;          // One-body pt bin size in (GeV/c)
206       Float_t    pt_min;       // One-body pt min/max in (GeV/c)
207       Float_t    pt_max;
208       
209       Float_t    phi_bin_size;          // One-body phi bin size in (degrees)
210       Float_t    phi_min;      // One-body phi min/max in (degrees)
211       Float_t    phi_max;
212       
213       Float_t    eta_bin_size ;         // One-body eta bin size
214       Float_t    eta_min;       // One-body eta min/max
215       Float_t    eta_max;
216 //   Two-Body Histograms and Correlation Mesh for 1D and 3D distributions:
217
218 //                                     // projections onto single axis.
219
220       Float_t    binsize_1d_fine;       // Bin Size - 1D, Fine Mesh in (GeV/c)
221       Float_t    binsize_1d_coarse;     // Bin Size - 1D, Coarse Mesh in (GeV/c)
222       Float_t    qmid_1d;               // q (GeV/c) at fine-coarse mesh boundary
223       Float_t    qmax_1d;               // Max q (GeV/c) for 1D distributions
224       Float_t    binsize_3d_fine;       // Bin Size - 3D, Fine Mesh in (GeV/c)
225       Float_t    binsize_3d_coarse;     // Bin Size - 3D, Coarse Mesh in (GeV/c)
226       Float_t    qmid_3d;               // q (GeV/c) at fine-coarse mesh boundary
227       Float_t    qmax_3d;               // Max q (GeV/c) for 3D distributions
228
229
230
231
232       Float_t    px_min;        // Sector range in px in GeV/c
233       Float_t    px_max;
234       Float_t    delpx;                 // Mom. space sector cell size - px(GeV/c)     
235       
236       Float_t    py_min;        // Sector range in py in GeV/c
237       Float_t    py_max;
238       Float_t    delpy;                 // Mom. space sector cell size - py(GeV/c)     
239
240       Float_t    pz_min;        // Sector range in pz in GeV/c
241       Float_t    pz_max;
242       Float_t    delpz;                 // Mom. space sector cell size - pz(GeV/c)
243
244     
245   }HBTprocMeshCommon;
246
247 #define MESH COMMON_BLOCK(MESH,mesh)
248 COMMON_BLOCK_DEF(HBTprocMeshCommon, MESH);
249 //HBTprocMeshCommon MESH;
250
251 /************************************************************************************************/ 
252 /************************************************************************************************/ 
253
254 typedef struct //TRACK1 COMMON
255   {
256       Int_t   trk_id[TRK_MAXLEN];         // Track ID number
257       Int_t   trk_px_sec[TRK_MAXLEN];      // px sector number
258       Int_t   trk_py_sec[TRK_MAXLEN];      // py sector number
259       Int_t   trk_pz_sec[TRK_MAXLEN];      // pz sector number
260       Int_t   trk_sector[TRK_MAXLEN];      // unique sector ID number
261       Int_t   trk_flag[TRK_MAXLEN];        // normally=0,if 1 indicates track assigned
262 //                               // to sector with too many tracks, if = 1
263 //                               // then track is not used.  See /sec_trk_map/ 
264       Int_t   trk_out_flag[TRK_MAXLEN];    // flag indicating track in/out of accept.
265 //                               // non-zero for track pushed out of accept.
266       Int_t   trk_merge_flag[TRK_MAXLEN];  // flag indicating track is merged (not used)
267       Int_t   trk_ge_pid[TRK_MAXLEN];      // Geant particle ID code number
268       Int_t   trk_start_vertex[TRK_MAXLEN]; // From input event file - track's start vrtx
269       Int_t   trk_stop_vertex[TRK_MAXLEN];  // From input event file - track's stop vrtx
270       Int_t   trk_event_line[TRK_MAXLEN];  // Line # of track in input event text file
271       
272       Float_t      trk_px[TRK_MAXLEN];          // x component of track momentum in GeV/c
273       Float_t      trk_py[TRK_MAXLEN];          // y component of track momentum in GeV/c
274       Float_t      trk_pz[TRK_MAXLEN];          // z component of track momentum in GeV/c
275       Float_t      trk_E[TRK_MAXLEN];           // Total energy of track in GeV
276       Float_t      trk_pt[TRK_MAXLEN];          // pt of track momentum in GeV/c
277       Float_t      trk_phi[TRK_MAXLEN];         // azimuthal angle of track in degrees 
278       Float_t      trk_eta[TRK_MAXLEN];         // pseudorapidity of track
279
280     
281   }HBTprocTrack1Common;
282   
283 #define TRACK1 COMMON_BLOCK(TRACK1,track1)
284 COMMON_BLOCK_DEF(HBTprocTrack1Common, TRACK1);
285
286 /************************************************************************************************/ 
287 /************************************************************************************************/ 
288
289   typedef struct //TRACK2  COMMON
290    {
291       Int_t   trk2_id[TRK2_MAXLEN];          // Track ID number
292       Int_t   trk2_px_sec[TRK2_MAXLEN];      // px sector number
293       Int_t   trk2_py_sec[TRK2_MAXLEN];      // py sector number
294       Int_t   trk2_pz_sec [TRK2_MAXLEN];     // pz sector number
295       Int_t   trk2_sector[TRK2_MAXLEN];      // unique sector ID number
296       Int_t   trk2_flag[TRK2_MAXLEN];        // normally=0,if 1 indicates track assigned
297 //                               // to sector with too many tracks, if = 1
298 //                               // then track is not used.  See /sec_trk2_map/ 
299       Int_t   trk2_out_flag[TRK2_MAXLEN];    // flag indicating track in/out of accept.
300 //                               // non-zero for track pushed out of accept.
301       Int_t   trk2_merge_flag[TRK2_MAXLEN];  // flag indicating track is merged (not used)
302       Int_t   trk2_ge_pid[TRK2_MAXLEN];      // Geant particle ID code number
303       Int_t   trk2_start_vertex[TRK2_MAXLEN]; // From input event file - track's start vrtx
304       Int_t   trk2_stop_vertex[TRK2_MAXLEN];  // From input event file - track's stop vrtx
305       Int_t   trk2_event_line[TRK2_MAXLEN];  // Line # of track in input event text file
306       
307       Float_t      trk2_px[TRK2_MAXLEN];          // x component of track momentum in GeV/c
308       Float_t      trk2_py[TRK2_MAXLEN];          // y component of track momentum in GeV/c
309       Float_t      trk2_pz[TRK2_MAXLEN];          // z component of track momentum in GeV/c
310       Float_t      trk2_E[TRK2_MAXLEN];           // Total energy of track in GeV
311       Float_t      trk2_pt[TRK2_MAXLEN];          // pt of track momentum in GeV/c
312       Float_t      trk2_phi[TRK2_MAXLEN];         // azimuthal angle of track in degrees 
313       Float_t      trk2_eta [TRK2_MAXLEN];        // pseudorapidity of track
314
315    }HBTprocTrack2Common;
316
317 #define TRACK2 COMMON_BLOCK(TRACK2,track2)
318 COMMON_BLOCK_DEF(HBTprocTrack2Common, TRACK2);
319 /************************************************************************************************/ 
320 /************************************************************************************************/ 
321 typedef struct //SEC_TRK_MAP COMMON BLOCK
322   {
323     
324       Int_t stm_sec_id [SEC_MAXLEN];       //  unique sector ID number
325       Int_t stm_n_trk_sec[SEC_MAXLEN];     //  Number of tracks assigned to sector
326       Int_t stm_flag[SEC_MAXLEN];          //  normally=0, if = 1 then more than
327 //                                         //  max_trk_sec tracks could have been 
328 //                                         //  assigned to this sector, however the
329 //                                         //  maximum number that can be assigned is
330 //                                         //  max_trk_sec.
331       Int_t stm_track_id[SEC_MAXLEN][MAX_TRK_SEC];      //  Foreign keys to tracks in /track/ that
332 //                                                      //  are assigned to this sector.
333
334   }HBTprocSecTrackMapCommon;
335
336 #define SEC_TRK_MAP COMMON_BLOCK(SEC_TRK_MAP,sec_trk_map)
337 COMMON_BLOCK_DEF(HBTprocSecTrackMapCommon, SEC_TRK_MAP);
338
339 /************************************************************************************************/ 
340 /************************************************************************************************/ 
341 typedef struct //SEC_TRK_MAP2 COMMON BLOCK
342   {
343     
344       Int_t stm_sec_id2 [SEC_MAXLEN2];       //  unique sector ID number
345       Int_t stm_n_trk_sec2[SEC_MAXLEN2];     //  Number of tracks assigned to sector
346       Int_t stm_flag2[SEC_MAXLEN2];          //  normally=0, if = 1 then more than
347 //                                         //  max_trk_sec tracks could have been 
348 //                                         //  assigned to this sector, however the
349 //                                         //  maximum number that can be assigned is
350 //                                         //  max_trk_sec.
351       Int_t stm_track_id2[SEC_MAXLEN2][MAX_TRK_SEC2];      //  Foreign keys to tracks in /track/ that
352 //                                                      //  are assigned to this sector.
353
354   }HBTprocSecTrackMap2Common;
355
356 #define SEC_TRK_MAP2 COMMON_BLOCK(SEC_TRK_MAP2,sec_trk_map2)
357 COMMON_BLOCK_DEF(HBTprocSecTrackMap2Common, SEC_TRK_MAP2);
358
359 /************************************************************************************************/ 
360 /************************************************************************************************/ 
361
362 typedef struct //PARTICLE COMMON
363  {
364 //   Variable Type Declarations:
365  
366       Int_t         part_id[PART_MAXLEN];        // Geant particle ID code number; required
367 //                                  // to be equal to the row number
368       Int_t         part_charge[PART_MAXLEN];    // Electric charge in units of |e|
369       Float_t       part_mass[PART_MAXLEN];      // Rest mass in GeV/c**2
370       Float_t       part_lifetime[PART_MAXLEN];  // Proper lifetime in sec.    
371  }HBTprocParticleCommon;
372
373 #define PARTICLE COMMON_BLOCK(PARTICLE,particle)
374 COMMON_BLOCK_DEF(HBTprocParticleCommon, PARTICLE);
375
376 /************************************************************************************************/ 
377 /************************************************************************************************/ 
378 typedef struct //CORRELATIONS COMMON
379  {
380 //   One-dimensional Functions:
381
382       Float_t c2mod_like_1d[MAX_C2_1D]; 
383       Float_t c2mod_unlike_1d[MAX_C2_1D];
384       Float_t c2fit_like_1d[MAX_C2_1D];
385       Float_t c2fit_unlike_1d[MAX_C2_1D];
386       Float_t c2err_like_1d[MAX_C2_1D];
387       Float_t c2err_unlike_1d[MAX_C2_1D];
388
389 //   Three-dimensional Functions:
390
391       Float_t c2mod_like_3d_fine[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
392       Float_t c2mod_unlike_3d_fine[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
393       Float_t c2mod_like_3d_coarse[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
394       Float_t c2mod_unlike_3d_coarse[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
395       Float_t c2fit_like_3d_fine[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
396       Float_t c2fit_unlike_3d_fine[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
397       Float_t c2fit_like_3d_coarse[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
398       Float_t c2fit_unlike_3d_coarse[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
399       Float_t c2err_like_3d_fine[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
400       Float_t c2err_unlike_3d_fine[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
401       Float_t c2err_like_3d_coarse[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
402       Float_t c2err_unlike_3d_coarse[MAX_C2_3D][MAX_C2_3D][MAX_C2_3D];
403
404   
405  }HBTprocCorrelCommon;
406
407 #define CORRELATIONS COMMON_BLOCK(CORRELATIONS,correlations)
408 COMMON_BLOCK_DEF(HBTprocCorrelCommon, CORRELATIONS);
409
410 /************************************************************************************************/ 
411 /************************************************************************************************/ 
412  typedef struct //COULMB
413    {
414       Float_t c2_coul_like[MAX_C2_COUL];
415       Float_t c2_coul_unlike[MAX_C2_COUL];
416       Float_t q_coul[MAX_C2_COUL]; 
417    }HBTprocCoulumbCommon;
418    
419 #define COULMB COMMON_BLOCK(COULMB,coulmb)
420
421 COMMON_BLOCK_DEF(HBTprocCoulumbCommon,COULMB);
422    
423 /************************************************************************************************/ 
424 /************************************************************************************************/ 
425
426 typedef struct 
427  {
428    Float_t num_iter[MAX_EVENTS]; 
429    Float_t niter_mean; 
430    Float_t niter_rms;
431    Float_t n_part_used_1_store[MAX_EVENTS]; 
432    Float_t npart1_mean; 
433    Float_t npart1_rms;
434    Float_t n_part_used_2_store[MAX_EVENTS]; 
435    Float_t npart2_mean; 
436    Float_t npart2_rms;
437    Float_t n_part_tot_store[MAX_EVENTS]; 
438    Float_t npart_tot_mean; 
439    Float_t npart_tot_rms;
440    Float_t num_sec_flagged_store[MAX_EVENTS]; 
441    Float_t nsec_flag_mean; 
442    Float_t nsec_flag_rms;
443    Float_t frac_trks_out[MAX_EVENTS]; 
444    Float_t frac_trks_out_mean;
445    Float_t frac_trks_out_rms;
446    Float_t frac_trks_flag[MAX_EVENTS];
447    Float_t frac_trks_flag_mean;
448    Float_t frac_trks_flag_rms;
449    Float_t chisq_like_1d_store[MAX_EVENTS];         
450    Float_t chi_l1d_mean;
451    Float_t chi_l1d_rms;
452    Float_t chisq_unlike_1d_store[MAX_EVENTS];       
453    Float_t chi_u1d_mean;
454    Float_t chi_u1d_rms;
455                                                                          
456   }HBTprocEventSummaryCommon;
457
458 #define EVENT_SUMMARY COMMON_BLOCK(EVENT_SUMMARY,event_summary)
459
460 COMMON_BLOCK_DEF(HBTprocEventSummaryCommon,EVENT_SUMMARY);
461 /************************************************************************************************/ 
462 /************************************************************************************************/ 
463 typedef struct//      common/histograms/
464   {
465       Int_t hist1_pt_1[MAX_H_1D];
466       Int_t hist1_phi_1[MAX_H_1D];
467       Int_t hist1_eta_1[MAX_H_1D];
468       Int_t hist1_pt_2[MAX_H_1D];
469       Int_t hist1_phi_2[MAX_H_1D];
470       Int_t hist1_eta_2[MAX_H_1D];
471       Int_t htmp1_pt_1[MAX_H_1D];
472       Int_t htmp1_phi_1[MAX_H_1D];
473       Int_t htmp1_eta_1[MAX_H_1D];
474       Int_t htmp1_pt_2[MAX_H_1D];
475       Int_t htmp1_phi_2[MAX_H_1D];
476       Int_t htmp1_eta_2[MAX_H_1D];
477       Int_t href1_pt_1[MAX_H_1D];
478       Int_t href1_phi_1[MAX_H_1D];
479       Int_t href1_eta_1[MAX_H_1D];
480       Int_t href1_pt_2[MAX_H_1D];
481       Int_t href1_phi_2[MAX_H_1D];
482       Int_t href1_eta_2[MAX_H_1D];
483       Int_t hinc1_pt_1[MAX_H_1D];
484       Int_t hinc1_phi_1[MAX_H_1D];
485       Int_t hinc1_eta_1[MAX_H_1D];
486       Int_t hinc1_pt_2[MAX_H_1D];
487       Int_t hinc1_phi_2[MAX_H_1D];
488       Int_t hinc1_eta_2[MAX_H_1D];
489       Int_t hist_like_1d[MAX_H_1D];
490       Int_t hist_unlike_1d[MAX_H_1D];
491       Int_t htmp_like_1d[MAX_H_1D];
492       Int_t htmp_unlike_1d[MAX_H_1D];
493       Int_t href_like_1d[MAX_H_1D];
494       Int_t href_unlike_1d[MAX_H_1D];
495       Int_t hinc_like_1d[MAX_H_1D];
496       Int_t hinc_unlike_1d[MAX_H_1D];
497       
498       Int_t hist_like_3d_fine[MAX_H_3D][MAX_H_3D][MAX_H_3D];
499       Int_t hist_unlike_3d_fine[MAX_H_3D][MAX_H_3D][MAX_H_3D];
500       Int_t hist_like_3d_coarse[MAX_H_3D][MAX_H_3D][MAX_H_3D];
501       Int_t hist_unlike_3d_coarse[MAX_H_3D][MAX_H_3D][MAX_H_3D];
502       Int_t htmp_like_3d_fine[MAX_H_3D][MAX_H_3D][MAX_H_3D];
503       Int_t htmp_unlike_3d_fine[MAX_H_3D][MAX_H_3D][MAX_H_3D];
504       Int_t htmp_like_3d_coarse[MAX_H_3D][MAX_H_3D][MAX_H_3D];
505       Int_t htmp_unlike_3d_coarse[MAX_H_3D][MAX_H_3D][MAX_H_3D];
506       Int_t href_like_3d_fine[MAX_H_3D][MAX_H_3D][MAX_H_3D];
507       Int_t href_unlike_3d_fine[MAX_H_3D][MAX_H_3D][MAX_H_3D];
508       Int_t href_like_3d_coarse[MAX_H_3D][MAX_H_3D][MAX_H_3D];
509       Int_t href_unlike_3d_coarse[MAX_H_3D][MAX_H_3D][MAX_H_3D];
510       Int_t hinc_like_3d_fine[MAX_H_3D][MAX_H_3D][MAX_H_3D];
511       Int_t hinc_unlike_3d_fine[MAX_H_3D][MAX_H_3D][MAX_H_3D];
512       Int_t hinc_like_3d_coarse[MAX_H_3D][MAX_H_3D][MAX_H_3D];
513       Int_t hinc_unlike_3d_coarse[MAX_H_3D][MAX_H_3D][MAX_H_3D];
514       
515   }HBTprocHistosCommon;
516   
517 #define HISTOGRAMS COMMON_BLOCK(HISTOGRAMS,histograms)
518
519 COMMON_BLOCK_DEF(HBTprocHistosCommon,HISTOGRAMS);
520
521 /************************************************************************************************/ 
522 /************************************************************************************************/ 
523  
524 #endif
525
526 }
527
528  
529 #endif