]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibTracksGain.cxx
Updated flags for low flux case (A. Dainese)
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTracksGain.cxx
index 6b60e55fc89c7adfa793585c56f7d620b97195af..232c1f625db0e5971793a4396c4e1ed868f04037 100644 (file)
 #include <TProfile.h>
 #include <TProfile2D.h>
 #include <TProof.h>
+#include <TStatToolkit.h>
 
 //
 // AliRoot includes
@@ -355,7 +356,7 @@ AliTPCcalibTracksGain& AliTPCcalibTracksGain::operator=(const AliTPCcalibTracksG
    return *this;
 }
 
-AliTPCcalibTracksGain::AliTPCcalibTracksGain(const char* name, const char* title, AliTPCcalibTracksCuts* cuts, TNamed* /*debugStreamPrefix*/, AliTPCcalibTracksGain* prevIter) :
+AliTPCcalibTracksGain::AliTPCcalibTracksGain(const char* name, const char* title, AliTPCcalibTracksCuts* cuts) :
   AliTPCcalibBase(),
   fCuts(0),            // cuts that are used for sieving the tracks used for calibration
   fGainMap(0),                //  gain map to be applied
@@ -577,7 +578,7 @@ Long64_t AliTPCcalibTracksGain::Merge(TCollection *list) {
    
    while ((cal = (AliTPCcalibTracksGain*)iter->Next())) {
       if (!cal->InheritsFrom(AliTPCcalibTracksGain::Class())) {
-         Error("Merge","Attempt to add object of class %s to a %s", cal->ClassName(), this->ClassName());
+       //Error("Merge","Attempt to add object of class %s to a %s", cal->ClassName(), this->ClassName());
          return -1;
       }
       
@@ -591,6 +592,8 @@ Float_t  AliTPCcalibTracksGain::GetGain(AliTPCclusterMI* cl){
   // Return local gain at cluster position
   //
   Float_t factor = 1;
+  if(!fGainMap) return factor;
+
   AliTPCCalROC * roc = fGainMap->GetCalROC(cl->GetDetector());
   Int_t irow = cl->GetRow();
   if (roc){
@@ -627,26 +630,26 @@ void AliTPCcalibTracksGain::Add(AliTPCcalibTracksGain* cal) {
    // Adds another AliTPCcalibTracksGain object to this object.
    //
    
-   fSimpleFitter->Add(cal->fSimpleFitter);
-   fSqrtFitter->Add(cal->fSqrtFitter);
-   fLogFitter->Add(cal->fLogFitter);
-   fSingleSectorFitter->Add(cal->fSingleSectorFitter);
-   //
-   //
-   //
-   fFitter0M->Add(cal->fFitter0M);
-   fFitter1M->Add(cal->fFitter1M);
-   fFitter2M->Add(cal->fFitter2M);
-   fFitter0T->Add(cal->fFitter0T);
-   fFitter1T->Add(cal->fFitter1T);
-   fFitter2T->Add(cal->fFitter2T);
-   //
-   fDFitter0M->Add(cal->fDFitter0M);
-   fDFitter1M->Add(cal->fDFitter1M);
-   fDFitter2M->Add(cal->fDFitter2M);
-   fDFitter0T->Add(cal->fDFitter0T);
-   fDFitter1T->Add(cal->fDFitter1T);
-   fDFitter2T->Add(cal->fDFitter2T);
+  fSimpleFitter->Add(cal->fSimpleFitter);
+  fSqrtFitter->Add(cal->fSqrtFitter);
+  fLogFitter->Add(cal->fLogFitter);
+  fSingleSectorFitter->Add(cal->fSingleSectorFitter);
+  //
+  //
+  //
+  if (cal->fFitter0M->GetNpoints()>0) fFitter0M->Add(cal->fFitter0M);
+  if (cal->fFitter1M->GetNpoints()>0) fFitter1M->Add(cal->fFitter1M);
+  if (cal->fFitter2M->GetNpoints()>0) fFitter2M->Add(cal->fFitter2M);
+  if (cal->fFitter0T->GetNpoints()>0) fFitter0T->Add(cal->fFitter0T);
+  if (cal->fFitter1T->GetNpoints()>0) fFitter1T->Add(cal->fFitter1T);
+  if (cal->fFitter2T->GetNpoints()>0) fFitter2T->Add(cal->fFitter2T);
+  //
+  if (cal->fDFitter0M->GetNpoints()>0) fDFitter0M->Add(cal->fDFitter0M);
+  if (cal->fDFitter1M->GetNpoints()>0) fDFitter1M->Add(cal->fDFitter1M);
+  if (cal->fDFitter2M->GetNpoints()>0) fDFitter2M->Add(cal->fDFitter2M);
+  if (cal->fDFitter0T->GetNpoints()>0) fDFitter0T->Add(cal->fDFitter0T);
+  if (cal->fDFitter1T->GetNpoints()>0) fDFitter1T->Add(cal->fDFitter1T);
+  if (cal->fDFitter2T->GetNpoints()>0) fDFitter2T->Add(cal->fDFitter2T);
    //
    //
    // histograms
@@ -1216,6 +1219,11 @@ void AliTPCcalibTracksGain::DumpTrack(AliTPCseed* track) {
    TTreeSRedirector * cstream =  GetDebugStreamer();
    if (cstream){
      (*cstream) << "Track" <<
+       "run="<<fRun<<              //  run number
+       "event="<<fEvent<<          //  event number
+       "time="<<fTime<<            //  time stamp of event
+       "trigger="<<fTrigger<<      //  trigger
+       "mag="<<fMagF<<             //  magnetic field        
        "Track.=" << track <<        // track information
        "\n";
      //
@@ -1223,6 +1231,11 @@ void AliTPCcalibTracksGain::DumpTrack(AliTPCseed* track) {
      //
      if ( GetStreamLevel()>1 && count>1){
        (*cstream) << "TrackG" <<
+        "run="<<fRun<<              //  run number
+        "event="<<fEvent<<          //  event number
+        "time="<<fTime<<            //  time stamp of event
+        "trigger="<<fTrigger<<      //  trigger
+        "mag="<<fMagF<<             //  magnetic field       
         "Track.=" << track <<        // track information
         "ncount="<<count<<
         // info for pad type 0
@@ -1412,6 +1425,12 @@ Bool_t AliTPCcalibTracksGain::GetDedx(AliTPCseed* track, Int_t padType, Int_t* /
       AddCluster(cluster, momenta, mdedx, padType, xcenter, dedxQ, dedxM, fraction, fraction2, dedge, parY, parZ, meanPos);
       Float_t gain = GetGain(cluster);
       if (cstream) (*cstream) << "dEdx" <<
+       "run="<<fRun<<              //  run number
+       "event="<<fEvent<<          //  event number
+       "time="<<fTime<<            //  time stamp of event
+       "trigger="<<fTrigger<<      //  trigger
+       "mag="<<fMagF<<             //  magnetic field        
+
                     "Cl.=" << cluster <<           // cluster of interest
                     "gain="<<gain<<                // gain at cluster position
                     "P=" << momenta <<             // track momenta
@@ -1430,6 +1449,11 @@ Bool_t AliTPCcalibTracksGain::GetDedx(AliTPCseed* track, Int_t padType, Int_t* /
    }
    
    if (cstream) (*cstream) << "dEdxT" <<
+     "run="<<fRun<<              //  run number
+     "event="<<fEvent<<          //  event number
+     "time="<<fTime<<            //  time stamp of event
+     "trigger="<<fTrigger<<      //  trigger
+     "mag="<<fMagF<<             //  magnetic field          
      "P=" << momenta <<             // track momenta
      "npoints="<<inonEdge<<         // number of points
      "sector="<<lastSector<<        // sector number
@@ -1681,7 +1705,13 @@ void  AliTPCcalibTracksGain::MakeQPosNormAll(TTree * chain, AliTPCClusterParam *
   // Fill the content of the of the AliTPCclusterParam
   // with fitted values of corrections 
   //
-  
+  param->fPosQTnorm[0] = MakeQPosNorm(chain,0,kTRUE,maxPoints,verbose);
+  param->fPosQTnorm[1] = MakeQPosNorm(chain,1,kTRUE,maxPoints,verbose);
+  param->fPosQTnorm[2] = MakeQPosNorm(chain,1,kTRUE,maxPoints,verbose);
+  //
+  param->fPosQMnorm[0] = MakeQPosNorm(chain,0,kFALSE,maxPoints,verbose);
+  param->fPosQMnorm[1] = MakeQPosNorm(chain,1,kFALSE,maxPoints,verbose);
+  param->fPosQMnorm[2] = MakeQPosNorm(chain,2,kFALSE,maxPoints,verbose);
 }