39 std::vector<Double_t> timeValues;
40 std::vector<Double_t> timeValueErrors;
42 Int_t
count = 0, mcindex=-1;
46 if (pixelArray.size() == 1){
48 col = pixelArray[0].GetPixelColumn() + ((Int_t)(pixelArray[0].GetFE()%10)) *
fcol;
54 row = pixelArray[0].GetPixelRow()+ (pixelArray[0].GetFE()/10) *
frow;
63 charge = pixelArray[0].GetCharge();
69 timeValues.push_back(pixelArray[0].GetTimeStamp());
70 timeValueErrors.push_back(pixelArray[0].GetTimeStampError());
75 for (UInt_t
i = 0;
i < pixelArray.size();
i++){
82 tempRow = pixelArray[
i].GetPixelRow() + pixelArray[0].GetFE()/10 *
frow;
83 col += (tempCol*pixelArray[
i].GetCharge());
84 row += (tempRow*pixelArray[
i].GetCharge());
85 charge += pixelArray[
i].GetCharge();
86 timeValues.push_back(pixelArray[
i].GetTimeStamp());
87 timeValueErrors.push_back(pixelArray[
i].GetTimeStampError());
102 TVector3 locpos( col*
fx - offset.X(),
row*
fy - offset.Y(), 0);
103 TVector3
pos = locpos;
104 pos.SetZ(6 * pixelArray[0].GetSensorID() + 10);
110 locCov[0][0]=
fx*
fx/12.;
111 locCov[1][1]=
fy*
fy/12.;
112 locCov[2][2]=errZ*errZ/12;
114 TVector3 dpos(
sqrt(hitCov[0][0]),
sqrt(hitCov[1][1]),
sqrt(hitCov[2][2]));
122 for (UInt_t
t = 0;
t < timeValues.size();
t++){
124 meanTime += timeValues[
t] / (timeValueErrors[
t] * timeValueErrors[
t]);
125 sumVar += 1/(timeValueErrors[
t] * timeValueErrors[
t]);
134 PndSdsHit thehit(pixelArray[0].GetDetID(),pixelArray[0].GetSensorID(), pos, dpos, -1, charge, pixelArray.size(),mcindex);
136 thehit.SetTimeStamp(meanTime);
137 thehit.SetTimeStampError(1/sumVar);
Data class to store the digi output of a pixel module.
friend F32vec4 sqrt(const F32vec4 &a)
Int_t GetPixelColumn() const
TVector3 GetSensorDimensions(Int_t sensorID)
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
TMatrixT< double > TMatrixD