PandaRoot
PndSdsChargeWeightingAlgorithms.h
Go to the documentation of this file.
1 #ifndef _PNDSDSCHARGEWEIGHTINGALGORITHMS_H
2 #define _PNDSDSCHARGEWEIGHTINGALGORITHMS_H
3 
4 #include <vector>
5 #include "TObject.h"
6 #include "TClonesArray.h"
7 #include "TH2F.h"
8 #include "PndSdsDigiStrip.h"
10 class PndSdsCluster;
11 // class RunInfo;
12 class PndSdsCalcStrip;
13 
14 class PndSdsChargeWeightingAlgorithms : public TObject {
25  public:
26  PndSdsChargeWeightingAlgorithms(TClonesArray *arr);
28  : TObject(other), fDigiArray(other.fDigiArray), fCalcStrip(other.fCalcStrip), fChargeConverter(other.fChargeConverter), fVerbose(other.fVerbose){};
31  {
32  fDigiArray = other.fDigiArray;
33  fCalcStrip = other.fCalcStrip;
34  fChargeConverter = other.fChargeConverter;
35  fVerbose = other.fVerbose;
36  return *this;
37  };
38 
51  std::pair<Double_t, Double_t> CenterOfGravity(const PndSdsCluster *Cluster);
52 
65  std::pair<Double_t, Double_t> HeadTail(const PndSdsCluster *Cluster);
66 
78  std::pair<Double_t, Double_t> Eta(const PndSdsCluster *Cluster, const TH2F *PosVsEta);
79 
80  std::pair<Double_t, Double_t> EtaValue(const PndSdsCluster *Cluster, Double_t &stripno, Int_t &NmbOfStrips); // calculates the eta value for the given cluster.
92  std::pair<Double_t, Double_t> Binary(const PndSdsCluster *Cluster);
93 
105  std::pair<Double_t, Double_t> Median(const PndSdsCluster *Cluster);
106 
118  std::pair<Double_t, Double_t> AutoSelect(const PndSdsCluster *Cluster);
119 
132  // void MakedNdEta(const std::vector<PndSdsCluster>& Cluster, RunInfo& info);
135  void SetDigiArray(TClonesArray *darray) { fDigiArray = darray; };
136  void SetCalcStrip(PndSdsCalcStrip *calc) { fCalcStrip = calc; };
137  void SetChargeConverter(PndSdsChargeConversion *ChargeConverter) { fChargeConverter = ChargeConverter; };
138  void SetVerbose(Int_t level = 0) { fVerbose = level; };
139 
140  private:
141  Double_t DigiCharge(Int_t digiIndex);
142  Double_t DigiChargeError(Int_t digiIndex);
143  Int_t DigiStripno(Int_t digiIndex);
144  Double_t Erfmod(Double_t x, Double_t p0, Double_t p1, Double_t p2, Double_t p3);
145  TClonesArray *fDigiArray;
146  PndSdsCalcStrip *fCalcStrip;
147  PndSdsChargeConversion *fChargeConverter;
148  Int_t fVerbose;
149 
150  ClassDef(PndSdsChargeWeightingAlgorithms, 1);
151 };
152 #endif
std::pair< Double_t, Double_t > HeadTail(const PndSdsCluster *Cluster)
std::pair< Double_t, Double_t > CenterOfGravity(const PndSdsCluster *Cluster)
std::pair< Double_t, Double_t > Median(const PndSdsCluster *Cluster)
std::pair< Double_t, Double_t > AutoSelect(const PndSdsCluster *Cluster)
std::pair< Double_t, Double_t > Binary(const PndSdsCluster *Cluster)
Class to store the Digis which belong to one cluster This class holds the information which Digi belo...
Definition: PndSdsCluster.h:18
PndSdsChargeWeightingAlgorithms(TClonesArray *arr)
std::pair< Double_t, Double_t > EtaValue(const PndSdsCluster *Cluster, Double_t &stripno, Int_t &NmbOfStrips)
Class for calculating strip indices from wafer hits.
void SetChargeConverter(PndSdsChargeConversion *ChargeConverter)
PndSdsChargeWeightingAlgorithms(PndSdsChargeWeightingAlgorithms &other)
std::pair< Double_t, Double_t > Eta(const PndSdsCluster *Cluster, const TH2F *PosVsEta)
PndSdsChargeWeightingAlgorithms & operator=(PndSdsChargeWeightingAlgorithms &other)