8#ifndef BMNZDCBSCANNER_H
9#define BMNZDCBSCANNER_H
11#include <TClonesArray.h>
29 void Reset() { fHits = 0; fM = fMX = fMY = fMXX = fMYY = fMC = fMD = 0.; }
35 Double_t
m = (scale * p->
GetAmp())*1e-3;
36 if (chan > 104 ||
m == 0)
return;
38 Double_t x = (p->
GetX() - fXc)*1e-3;
39 Double_t y = (p->
GetX() - fYc)*1e-3;
48 if (chan < 69) fMD +=
m;
else fMC +=
m;
52 Double_t
GetE() {
return fM; }
54 Double_t
GetXo() {
return fM == 0. ? 0. : fMX/fM; }
55 Double_t
GetYo() {
return fM == 0. ? 0. : fMY/fM; }
59 return TMath::Sqrt(x*x + y*y);
63 Double_t Xo =
GetXo();
64 return (fMXX - 2.0*Xo*fMX + Xo*Xo*fM);
67 Double_t Yo =
GetYo();
68 return (fMYY - 2.0*Yo*fMY + Yo*Yo*fM);
71 Double_t
GetIo() {
return (fMXX + fMYY); }
72 Double_t
GetM() {
return fM == 0. ? 0. :
GetI() / fM; }
73 Double_t
GetMo() {
return fM == 0. ? 0. :
GetIo() / fM; }
74 Double_t
GetA() {
return fM == 0. ? 0. : (fMC - fMD) / fM; }
81 UInt_t fMaxEntries = 0;
82 UInt_t fScanWidth = 1000;
83 Double_t fSimScale = 1.;
85 Bool_t fShowProgress = kFALSE;
93 UInt_t fIndexSize = 0;
95 static bool compareItem(Item i1, Item i2) {
96 return (i1.index < i2.index);
99 void OnEvent(TClonesArray* pArrayOfBmnZDCDigit,
char mode, Double_t b);
100 void OnScan(Int_t n, Double_t scanValue, TH1D* pBH);
104 if (fIndex)
delete fIndex;
108 void SetEventData(TClonesArray * pArrayOfBmnZDCDigit, Double_t scale = 1.);
109 void AddSimDigit(
const char * fileName) { fInpChain.Add(fileName); }
114 virtual TH1D *
Scan(
char mode);
UShort_t GetChannel() const
virtual ~BmnZdcBScanner()
void SetSimScale(Double_t scale)
void SetShowProgress(Bool_t show)
void SetEventData(TClonesArray *pArrayOfBmnZDCDigit, Double_t scale=1.)
virtual TH1D * Scan(char mode)
void AddSimDigit(const char *fileName)
void SetScanWidth(UInt_t entries)
void Add(BmnZDCDigit *p, Double_t scale=1.)
void SetCenter(Double_t x, Double_t y)