- limit statistics of the largest THnSparse data memers when merging
authormikolaj <mikolaj@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 22 Oct 2012 13:27:42 +0000 (13:27 +0000)
committermikolaj <mikolaj@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 22 Oct 2012 13:27:42 +0000 (13:27 +0000)
- add a GetEntries method

TPC/AliTPCcalibGainMult.cxx
TPC/AliTPCcalibGainMult.h
TPC/AliTPCcalibTimeGain.cxx
TPC/AliTPCcalibTimeGain.h

index 41511cd..51a13f2 100644 (file)
@@ -70,6 +70,7 @@ Send comments etc. to: A.Kalweit@gsi.de, marian.ivanov@cern.ch
 
 ClassImp(AliTPCcalibGainMult)
 
+Double_t AliTPCcalibGainMult::fgMergeEntriesCut=10000000.;
 
 AliTPCcalibGainMult::AliTPCcalibGainMult() 
   :AliTPCcalibBase(),
@@ -477,7 +478,19 @@ Long64_t AliTPCcalibGainMult::Merge(TCollection *li) {
     if (cal->GetHistNTracks()) fHistNTracks->Add(cal->GetHistNTracks());
     if (cal->GetHistClusterShape()) fHistClusterShape->Add(cal->GetHistClusterShape());
     if (cal->GetHistQA()) fHistQA->Add(cal->GetHistQA());
-    if (cal->GetHistGainSector()) fHistGainSector->Add(cal->GetHistGainSector());
+    if (cal->GetHistGainSector() && fHistGainSector )
+    { 
+      if ((fHistGainSector->GetEntries()+cal->GetHistGainSector()->GetEntries()) < fgMergeEntriesCut)
+      {        
+        //AliInfo(Form("fHistGainSector has %.0f tracks, going to add %.0f\n",fHistGainSector->GetEntries(),cal->GetHistGainSector()->GetEntries()));
+        fHistGainSector->Add(cal->GetHistGainSector());
+      }
+      else 
+      { 
+        AliInfo(Form("fHistGainSector full (has %.0f entries, trying to add %.0f., max allowed: %.0f)",
+        fHistGainSector->GetEntries(),cal->GetHistGainSector()->GetEntries(),fgMergeEntriesCut));
+      }
+    }
     if (cal->GetHistPadEqual()) fHistPadEqual->Add(cal->GetHistPadEqual());
     if (cal->GetHistGainMult()) {
        if (fHistGainMult->GetEntries()<kMaxEntriesSparse) fHistGainMult->Add(cal->GetHistGainMult());
@@ -1343,7 +1356,7 @@ void AliTPCcalibGainMult::ProcessCosmic(const AliESDEvent * event) {
       Int_t eventNumber = event->GetEventNumberInFile(); 
       Bool_t hasFriend=(esdFriend) ? (esdFriend->GetTrack(itrack0)!=0):0; 
       Bool_t hasITS=(track0->GetNcls(0)+track1->GetNcls(0)>4);
-      printf("DUMPHPTCosmic:%s|%f|%d|%d|%d\n",filename.Data(),(TMath::Min(track0->Pt(),track1->Pt())), eventNumber,hasFriend,hasITS);
+      AliInfo(Form("DUMPHPTCosmic:%s|%f|%d|%d|%d\n",filename.Data(),(TMath::Min(track0->Pt(),track1->Pt())), eventNumber,hasFriend,hasITS));
       //
       //       
       TTreeSRedirector * pcstream =  GetDebugStreamer();
index 2ad8d39..1d4fa16 100644 (file)
@@ -66,8 +66,13 @@ public:
   void     UpdateGainMap();
   void     UpdateClusterParam();
 
+  Double_t GetEntries() const {return fHistGainSector->GetEntries();}
+
+  static void SetMergeEntriesCut(Double_t c) {fgMergeEntriesCut=c;}
 
 private:
+  static Double_t fgMergeEntriesCut;  //maximal number of entries for merging  -can be modified via setter
+
   //
   // parameter specifications
   //
index 90beb4e..a32e33b 100644 (file)
@@ -180,6 +180,7 @@ TGaxis *axis = new TGaxis(xmax,ymin,xmax,ymax,ymin,ymax,50510,"+L");
 
 ClassImp(AliTPCcalibTimeGain)
 
+Double_t AliTPCcalibTimeGain::fgMergeEntriesCut=10000000.;
 
 AliTPCcalibTimeGain::AliTPCcalibTimeGain() 
   :AliTPCcalibBase(), 
@@ -550,7 +551,19 @@ Long64_t AliTPCcalibTimeGain::Merge(TCollection *li) {
     }
 
     // add histograms here...
-    if (cal->GetHistGainTime()) fHistGainTime->Add(cal->GetHistGainTime());
+    if (cal->GetHistGainTime() && fHistGainTime ) 
+    {
+      if ((fHistGainTime->GetEntries() + cal->GetHistGainTime()->GetEntries()) < fgMergeEntriesCut) 
+      {
+        //AliInfo(Form("fHistGainTime has %.0f tracks, going to add %.0f\n",fHistGainTime->GetEntries(),cal->GetHistGainTime()->GetEntries()));
+        fHistGainTime->Add(cal->GetHistGainTime());
+      }
+      else
+      {
+        AliInfo(Form("fHistGainTime full (has %.0f merged tracks, max allowed: %.0f)",fHistGainTime->GetEntries(),fgMergeEntriesCut));
+      }
+    }
+
     if (cal->GetHistDeDxTotal()) fHistDeDxTotal->Add(cal->GetHistDeDxTotal());
 
   }
index b87a7bb..0dfb3e5 100644 (file)
@@ -7,6 +7,7 @@
 #include "AliTPCcalibBase.h"
 #include "TH2F.h"
 #include "TF1.h"
+#include "THnSparse.h"
 #include "TArrayD.h"
 #include "TObjArray.h"
 #include "AliSplineFit.h"
@@ -14,7 +15,6 @@
 class TH1F;
 class TH3F;
 class TH2F;
-class THnSparse;
 class TList;
 class TGraphErrors;
 class AliESDEvent;
@@ -60,8 +60,13 @@ public:
   void SetLowMemoryConsumption(Bool_t LowMemoryConsumption){fLowMemoryConsumption = LowMemoryConsumption;};
   void SetUseCookAnalytical(Bool_t UseCookAnalytical){fUseCookAnalytical = UseCookAnalytical;};
 
+  static void SetMergeEntriesCut(Double_t entriesCut){fgMergeEntriesCut = entriesCut;}
+
+  Double_t GetEntries() const {return fHistGainTime->GetEntries();}
+
 private:
-  //
+  static Double_t fgMergeEntriesCut;  //maximal number of entries for merging  -can be modified via setter
+
   Float_t GetTPCdEdx(AliTPCseed * seed);   // wrapper for CookdEdxNorm or analytical
   //
   THnSparse    * fHistGainTime;            // dEdx vs. time, type, Driftlength, momentum P