Algebraic function added (Marian)
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 3 Apr 2007 17:15:49 +0000 (17:15 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 3 Apr 2007 17:15:49 +0000 (17:15 +0000)
Add, Multiply, Divide

TPC/AliTPCCalROC.cxx
TPC/AliTPCCalROC.h

index 5a6f527..c8810c6 100644 (file)
@@ -123,6 +123,59 @@ void AliTPCCalROC::Streamer(TBuffer &R__b)
    }
 }
 
+//  //
+//   // algebra
+//   void Add(Float_t c1);
+//   void Multiply(Float_t c1);
+//   void Add(const AliTPCCalROC * roc, Double_t c1 = 1);
+//   void Divide(const AliTPCCalROC * roc);   
+
+void AliTPCCalROC::Add(Float_t c1){
+  //
+  // add constant
+  //
+  for (UInt_t  idata = 0; idata< fNChannels; idata++) fData[idata]+=c1;
+}
+void AliTPCCalROC::Multiply(Float_t c1){
+  //
+  // add constant
+  //
+  for (UInt_t  idata = 0; idata< fNChannels; idata++) fData[idata]*=c1;
+}
+
+void AliTPCCalROC::Add(const AliTPCCalROC * roc, Double_t c1){
+  //
+  // add values 
+  //
+  for (UInt_t  idata = 0; idata< fNChannels; idata++){
+    fData[idata]+=roc->fData[idata]*c1;
+  }
+}
+
+
+void AliTPCCalROC::Multiply(const AliTPCCalROC*  roc) {
+  //
+  // multiply values - per by pad
+  //
+  for (UInt_t  idata = 0; idata< fNChannels; idata++){
+    fData[idata]*=roc->fData[idata];
+  }
+}
+
+
+void AliTPCCalROC::Divide(const AliTPCCalROC*  roc) {
+  //
+  // divide values 
+  //
+  Float_t kEpsilon=0.00000000000000001;
+  for (UInt_t  idata = 0; idata< fNChannels; idata++){
+    if (TMath::Abs(roc->fData[idata])>kEpsilon)
+      fData[idata]/=roc->fData[idata];
+  }
+}
+
+
+
 
 Double_t AliTPCCalROC::GetLTM(Double_t *sigma, Double_t fraction){
   //
index ddceadc..70a17f4 100644 (file)
@@ -35,6 +35,14 @@ class AliTPCCalROC : public TObject {
   void         SetValue(UInt_t channel, Float_t vd) {fData[channel]= vd; };
   virtual void Draw(Option_t* option = "");
   //
+  // algebra
+  void Add(Float_t c1);
+  void Multiply(Float_t c1);
+  void Add(const AliTPCCalROC * roc, Double_t c1 = 1);
+  void Multiply(const AliTPCCalROC * roc);   
+  void Divide(const AliTPCCalROC * roc);   
+  // statistic
+  //
   Double_t GetMean(){return TMath::Mean(fNChannels, fData);}
   Double_t GetRMS() {return TMath::RMS(fNChannels, fData);}
   Double_t GetMedian() {return TMath::Median(fNChannels, fData);}