30 double fitf(
double *
x,
double *par) {
34 double v1 =
pow(wc/n*(x[0]-par[1]), n);
35 double v2 = TMath::Exp(n-wc*(x[0]-par[1]));
36 double v = par[0]*v1*v2;
38 if (x[0] < par[1]) v = 0;
52 fit_ =
new TF1(
"fitShape",
fitf, -200, 200, 4);
53 fit_->SetParameters(50, 10, 0, 0);
56 for (
int i = 0;
i < 2; ++
i)
57 for (
int j = 0;
j < 2; ++
j)
60 dqmStore_->setCurrentFolder(prefixME_ +
"/ESTimingTask");
65 for (
int i=0 ;
i<2; ++
i)
66 for (
int j=0 ;
j<2; ++
j) {
67 int iz = (
i==0)? 1:-1;
68 sprintf(histo,
"ES Timing Z %d P %d", iz,
j+1);
69 hTiming_[
i][
j] = dqmStore_->book1D(histo, histo, 81, -20.5, 20.5);
70 hTiming_[
i][
j]->setAxisTitle(
"ES Timing (ns)", 1);
73 sprintf(histo,
"ES 2D Timing");
74 h2DTiming_ = dqmStore_->book2D(histo, histo, 81, -20.5, 20.5, 81, -20.5, 20.5);
75 h2DTiming_->setAxisTitle(
"ES- Timing (ns)", 1);
76 h2DTiming_->setAxisTitle(
"ES+ Timing (ns)", 2);
78 htESP_ =
new TH1F(
"htESP",
"Timing ES+", 81, -20.5, 20.5);
79 htESM_ =
new TH1F(
"htESM",
"Timing ES-", 81, -20.5, 20.5);
97 runNum_ = e.
id().
run();
104 int zside, plane, ix, iy, is;
123 if (zside==1 && plane==1 && ix==7 && iy==28)
continue;
124 if (zside==1 && plane==1 && ix==24 && iy==9 && is==21)
continue;
125 if (zside==-1 && plane==2 && ix==35 && iy==17 && is==23)
continue;
127 int i = (zside==1)? 0:1;
130 for (
int k=0;
k<dataframe.
size(); ++
k)
134 if (adc[1] < 200) status = 1;
135 if (fabs(adc[0]) > 10) status = 1;
136 if (adc[1] < 0 || adc[2] < 0) status = 1;
137 if (adc[0] > adc[1] || adc[0] > adc[2]) status = 1;
138 if (adc[2] > adc[1]) status = 1;
140 if (
int(status) == 0) {
145 double aaa = (A2 > 0 && A1 > 0) ?
log(A2/A1)/n_ : 20.;
146 double bbb = wc_/n_*DeltaT;
147 double ccc=
exp(aaa+bbb);
149 double t0 = (2.-ccc)/(1.-ccc) * DeltaT - 5;
150 hTiming_[
i][
j]->Fill(t0);
165 if (zside == 1) htESP_->Fill(t0);
166 else if (zside == -1) htESM_->Fill(t0);
171 LogWarning(
"ESTimingTask") << digilabel_ <<
" not available";
174 if (htESP_->GetEntries() > 0 && htESM_->GetEntries() > 0)
175 h2DTiming_->Fill(htESM_->GetMean(), htESP_->GetMean());
183 const ESGain *gain = esgain_.product();
int adc(sample_type sample)
get the ADC sample (12 bits)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
virtual void beginJob(void)
double fitf(double *x, double *par)
DEFINE_FWK_MODULE(TauMET)
const ESDetId & id() const
void set(const edm::EventSetup &es)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
const ESSample & sample(int i) const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
virtual void endJob(void)
int adc() const
get the ADC sample (singed 16 bits)
ESTimingTask(const edm::ParameterSet &ps)
Power< A, B >::type pow(const A &a, const B &b)
void set(const std::string &name, int value)
set the flag, with a run-time name