1#ifndef BMNTOF2RAW2DIGITNEW_H
2#define BMNTOF2RAW2DIGITNEW_H
6#define HPTIMEBIN 0.02344
7#define INVHPTIMEBIN 42.6666
9#define TOF2_MAX_STRIPS_IN_CHAMBER 32
10#define TOF2_MAX_CHANNELS_IN_SLOT 64
12#define TOF2_MAX_CHANNELS_IN_MODULE 64
13#define TOF2_MAX_CRATES 5
14#define TOF2_MAX_SLOTS_IN_CRATE 20
16#define TOF2_MAX_CHAMBERS 59
17#define TOF2_MAX_CHANNEL 4000
20#define TOF700_TDC_TYPE (0x53)
22#include "BmnADCDigit.h"
24#include "BmnSyncDigit.h"
25#include "BmnTDCDigit.h"
26#include "BmnTof2Digit.h"
38#include <unordered_map>
58 TString geomFile =
"TOF700_geometry_run7.txt");
64 void getEventInfo(
long long* ev,
long long* t1,
long long* t2);
86 if (wcut !=
Wcutc[c - 1]) {
112 if (wm !=
Wmaxc[c - 1]) {
172 if (leadmin !=
LeadMin[c - 1]) {
188 if (leadmax !=
LeadMax[c - 1]) {
213 unordered_map<UInt_t, Long64_t>* ts,
241 int get_strip_xyz(
int chamber,
int strip,
float* x,
float* y,
float* z);
243 int get_track_hits(
float* xyz,
float* cxyy,
int* nhits,
int* chamb,
int* strip);
245 float get_hit_x0(
int chamber,
int strip,
float diff);
246 void get_hit_xyz0(
int chamber,
int strip,
float diff,
float* x,
float* y,
float* z);
247 float get_hit_diff(
int chamber,
int strip,
float diff_corrected);
248 float get_hit_x(
int chamber,
int strip,
float diff_corrected);
249 void get_hit_xyz(
int chamber,
int strip,
float diff_corrected,
float* x,
float* y,
float* z);
250 float get_hit_xp(
int chamber,
int strip,
float diff);
251 void get_hit_xyzp(
int chamber,
int strip,
float diff,
float* x,
float* y,
float* z);
252 float get_hit_xng(
int chamber,
int strip,
float diff);
253 void get_hit_xyzng(
int chamber,
int strip,
float diff,
float* x,
float* y,
float* z);
254 float get_hit_xnl(
int chamber,
int strip,
float diff);
255 void get_hit_xyznl(
int chamber,
int strip,
float diff,
float* x,
float* y,
float* z);
#define TOF2_MAX_STRIPS_IN_CHAMBER
#define TOF2_MAX_CHAMBERS
#define TOF2_MAX_SLOTS_IN_CRATE
#define TOF2_MAX_CHANNELS_IN_SLOT
#define ClassDef(name, id)
TProfile2D * TvsW[TOF2_MAX_CHAMBERS][4]
int Wcutc[TOF2_MAX_CHAMBERS]
void fillEvent(TClonesArray *data, unordered_map< UInt_t, Long64_t > *ts, Double_t t0, Double_t t0width, TClonesArray *tof2digit)
float ycens[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
void getEventInfo(long long *ev, long long *t1, long long *t2)
BmnTof2Raw2DigitNew(TString mappingFile, TString RunFile="empty", Int_t SlewingRun=0, UInt_t SlewingChamber=0, TString geomFile="TOF700_geometry_run7.txt")
float slopexl[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
float get_hit_diff(int chamber, int strip, float diff_corrected)
int idcrates[TOF2_MAX_CRATES]
float halfywidth[TOF2_MAX_CHAMBERS]
int devnum[TOF2_MAX_CRATES *TOF2_MAX_SLOTS_IN_CRATE]
int readXYCalibrationNew(char *xcalibration, char *ycalibration)
int numstrip[TOF2_MAX_CHAMBERS]
int readXYCalibration(char *xcalibration, char *ycalibration)
int devcrate[TOF2_MAX_CRATES *TOF2_MAX_SLOTS_IN_CRATE]
TH2F * TvsS[TOF2_MAX_CHAMBERS]
float interxl[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
int readGeom(const char *geomFile)
void get_hit_xyzp(int chamber, int strip, float diff, float *x, float *y, float *z)
int chamber_slewing[TOF2_MAX_CHAMBERS]
float xcens[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
int LeadMin[TOF2_MAX_CHAMBERS]
TH2F * TvsWt0p[TOF2_MAX_CHAMBERS][4]
virtual ~BmnTof2Raw2DigitNew()
double Toffsets00n[TOF2_MAX_CHANNEL]
void readSlewing(Bool_t update=false)
int get_strip_xyz(int chamber, int strip, float *x, float *y, float *z)
float xmaxs[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
float get_hit_xp(int chamber, int strip, float diff)
TH2F * TvsWall[TOF2_MAX_CHAMBERS]
float zchamb[TOF2_MAX_CHAMBERS]
void WritePreparationHists()
void BookSlewingResults()
float xmins[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
float yslope[TOF2_MAX_CHAMBERS]
int get_ch_tdc72vhl(unsigned int tdc, unsigned int ch)
int nrec[TOF2_MAX_CRATES][TOF2_MAX_SLOTS_IN_CRATE][TOF2_MAX_CHANNELS_IN_SLOT]
int numcrates[TOF2_MAX_CRATES]
float lroffsets[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
void fillSlewing(TClonesArray *data, unordered_map< UInt_t, Long64_t > *ts, Double_t t0, Double_t t0width)
float halfxwidth[TOF2_MAX_CHAMBERS]
void SetLeadMin(int c, int leadmin)
float get_hit_diff0(int chamber, int strip, float diff)
int devslot[TOF2_MAX_CRATES *TOF2_MAX_SLOTS_IN_CRATE]
float xoffset[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
int numcha[TOF2_MAX_CHAMBERS]
void SetPreparationFileName(TString prep)
TH2F * TvsWallmax[TOF2_MAX_CHAMBERS]
float get_hit_xnl(int chamber, int strip, float diff)
char dnlname[TOF2_MAX_CRATES][TOF2_MAX_SLOTS_IN_CRATE][128]
void get_hit_xyz0(int chamber, int strip, float diff, float *x, float *y, float *z)
int get_ch_tdc64vhle(unsigned int tdc, unsigned int ch)
int get_ch_tdc32vl(unsigned int tdc, unsigned int ch)
int numcr[TOF2_MAX_CRATES *TOF2_MAX_SLOTS_IN_CRATE]
int readLRoffsets(char *LRoffsetsFile)
float xslope[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
int LeadMaxW[TOF2_MAX_CHAMBERS][500]
void WritePreparationHists0()
void SetWmaxc(int c, int wm)
void SetWcutc(int c, int wcut)
TString fPreparationFileName
float get_hit_x(int chamber, int strip, float diff_corrected)
float ymins[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
void get_hit_xyzng(int chamber, int strip, float diff, float *x, float *y, float *z)
int numslots[TOF2_MAX_CRATES *TOF2_MAX_SLOTS_IN_CRATE]
Bmn_Tof2_map_element_new mapa[TOF2_MAX_CHANNEL]
float slopexg[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
char filname_slewing[TOF2_MAX_CHAMBERS][256]
void WriteSlewingResults()
int dnltype[TOF2_MAX_CRATES][TOF2_MAX_SLOTS_IN_CRATE]
void fillEqualization(TClonesArray *data, unordered_map< UInt_t, Long64_t > *ts, Double_t t0, Double_t t0width)
void SetW(int wcut, int wm)
unsigned devser[TOF2_MAX_CRATES][TOF2_MAX_SLOTS_IN_CRATE]
float get_hit_x0(int chamber, int strip, float diff)
void get_hit_xyz(int chamber, int strip, float diff_corrected, float *x, float *y, float *z)
float ymaxs[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
void fillSlewingT0(TClonesArray *data, unordered_map< UInt_t, Long64_t > *ts, Double_t t0, Double_t t0width)
void writeSlewingLimits()
void SetT0shift(float shift)
char filname_base_results[256]
TH2F * WvsS[TOF2_MAX_CHAMBERS]
float idchambers[TOF2_MAX_CHAMBERS]
void fillPreparation(TClonesArray *data, unordered_map< UInt_t, Long64_t > *ts, Double_t t0, Double_t t0width)
double chtima[10][25][64]
int lrsign[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
double Toffsets00[TOF2_MAX_CHANNEL]
void SetLeadMinMax(int c, int leadmin, int leadmax)
float interxg[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
float yoffset[TOF2_MAX_CHAMBERS]
TProfile * TvsWr[TOF2_MAX_CHAMBERS][4]
float shifty[TOF2_MAX_CHAMBERS][TOF2_MAX_STRIPS_IN_CHAMBER]
int get_chamber_z(int chamber, float *z)
double DNL_Table[TOF2_MAX_CRATES][TOF2_MAX_SLOTS_IN_CRATE][72][1024]
int Wmaxc[TOF2_MAX_CHAMBERS]
int nstrips[TOF2_MAX_CHAMBERS]
TProfile * TvsWt0r[TOF2_MAX_CHAMBERS][4]
TH2F * TvsWp[TOF2_MAX_CHAMBERS][4]
void get_hit_xyznl(int chamber, int strip, float diff, float *x, float *y, float *z)
TH2F * TvsSm[TOF2_MAX_CHAMBERS][4]
void SetWT0(int wt1, int wt2)
int get_track_hits(float *xyz, float *cxyy, int *nhits, int *chamb, int *strip)
int LeadMinW[TOF2_MAX_CHAMBERS][500]
int type_slewing[TOF2_MAX_CHAMBERS]
TProfile2D * TvsWt0[TOF2_MAX_CHAMBERS][4]
int LeadMax[TOF2_MAX_CHAMBERS]
void SetLeadMax(int c, int leadmax)
void SetSlewingReference(Int_t chamber, Int_t refrun, Int_t refchamber)
float get_hit_xng(int chamber, int strip, float diff)
double Toffsets00e[TOF2_MAX_CHANNEL]
Bmn_Tof2_map_element_new()