#include <TGeoPhysicalNode.h>
#include <AliGeomManager.h>
#include <TRandom.h>
+#include <TF1.h>
// --- AliRoot header files ---
#include "AliVZEROConst.h"
fNdigits(0),
fDigits(0),
fCollisionMode(0),
- fBeamEnergy(0.)
+ fBeamEnergy(0.),
+ fSignalShape(NULL)
{
// default constructor
// fPMGain = TMath::Power((fPMVoltage / 112.5) ,7.04277);
// fCalibData = GetCalibData();
+
+ fSignalShape = new TF1("VZEROSignalShape",this,&AliVZERODigitizer::SignalShape,0,200,6,"AliVZERODigitizer","SignalShape");
+ fSignalShape->SetParameters(0,1.57345e1,-4.25603e-1,2.9,6.40982,3.69339e-01);
}
//____________________________________________________________________________
fNdigits(0),
fDigits(0),
fCollisionMode(0),
- fBeamEnergy(0.)
+ fBeamEnergy(0.),
+ fSignalShape(NULL)
{
// constructor
// fPMGain = TMath::Power( (fPMVoltage / 112.5) ,7.04277 );
// fCalibData = GetCalibData();
+
+ fSignalShape = new TF1("VZEROSignalShape",this,&AliVZERODigitizer::SignalShape,0,200,6,"AliVZERODigitizer","SignalShape");
+ fSignalShape->SetParameters(0,1.57345e1,-4.25603e-1,2.9,6.40982,3.69339e-01);
}
delete fDigits;
fDigits=0;
}
+
+ if (fSignalShape) {
+ delete fSignalShape;
+ fSignalShape = NULL;
+ }
}
//_____________________________________________________________________________
return pmNumber[cell];
}
-
+double AliVZERODigitizer::SignalShape(double *x, double *par)
+{
+ Double_t xx = x[0];
+ if (xx <= par[0]) return 0;
+ Double_t a = 1./TMath::Power((xx-par[0])/par[1],1./par[2]);
+ if (xx <= par[3]) return a;
+ Double_t b = 1./TMath::Power((xx-par[3])/par[4],1./par[5]);
+ // Double_t f = TMath::Min(a,b);
+ Double_t f = a*b/(a+b);
+ AliDebug(100,Form("x=%f func=%f",xx,f));
+ return f;
+}