Update by Xianguo
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 17 Apr 2012 12:36:26 +0000 (12:36 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 17 Apr 2012 12:36:26 +0000 (12:36 +0000)
TRD/AliTRDCalibTask.cxx
TRD/AliTRDCalibTask.h
TRD/AliTRDPreprocessorOffline.cxx
TRD/AliTRDPreprocessorOffline.h
TRD/AliTRDdEdxUtils.cxx
TRD/AliTRDdEdxUtils.h
TRD/AliTRDtrackV1.cxx

index 6df00b0..ee60e75 100644 (file)
@@ -165,7 +165,8 @@ ClassImp(AliTRDCalibTask)
       fSubVersionExBUsed(-1),
       fCalDetGain(0x0),
       fMaxEvent(0),
-      fCounter(0)
+      fCounter(0),
+      fPHQon(kTRUE)
 {
   //
   // Default constructor
@@ -221,7 +222,10 @@ AliTRDCalibTask::~AliTRDCalibTask()
   if(fCH2dTest) delete fCH2dTest;
   if(fPH2dTest) delete fPH2dTest;
   if(fLinearVdriftTest) delete fLinearVdriftTest;
-  AliTRDdEdxUtils::DeleteCalibHist();
+  if(IsPHQon()){
+    AliTRDdEdxUtils::DeleteCalibHist();
+  }
+
   if(fCalDetGain) delete fCalDetGain;
   
   if(fSelectedTrigger) {
@@ -342,8 +346,15 @@ void AliTRDCalibTask::UserCreateOutputObjects()
   fAbsoluteGain->Sumw2();
   fListHist->Add(fAbsoluteGain);
   
-  AliTRDdEdxUtils::PrintControl();
-  AliTRDdEdxUtils::IniCalibHist(fListHist, kTRUE);
+  if(IsPHQon()){
+    printf("\n        AliTRDCalibTask PHQ is on!!     \n\n");
+    AliTRDdEdxUtils::PrintControl();
+    AliTRDdEdxUtils::IniCalibHist(fListHist, kTRUE);
+  }
+  else{
+    printf("\n        AliTRDCalibTask PHQ is off!!     \n\n");
+  }
+
   /////////////////////////////////////////
   // First debug level
   ///////////////////////////////////////
@@ -789,11 +800,13 @@ void AliTRDCalibTask::UserExec(Option_t *)
       //printf("Fill fTRDCalibraFillHisto\n");
     }
 
-    const Double_t mag = AliTRDdEdxUtils::IsExBOn() ? fESD->GetMagneticField() : -1;
-    const Int_t charge = AliTRDdEdxUtils::IsExBOn() ? fkEsdTrack->Charge() : -1;
-    const Double_t toTPCscale = AliTRDdEdxUtils::GetCalibTPCscale(fkEsdTrack->GetTPCncls(), fkEsdTrack->GetTPCsignal());
-    if(toTPCscale>0){
-      AliTRDdEdxUtils::FillCalibHist(fTrdTrack, 0, mag, charge, toTPCscale);
+    if(IsPHQon()){
+      const Double_t mag = AliTRDdEdxUtils::IsExBOn() ? fESD->GetMagneticField() : -1;
+      const Int_t charge = AliTRDdEdxUtils::IsExBOn() ? fkEsdTrack->Charge() : -1;
+      const Double_t toTPCscale = AliTRDdEdxUtils::GetCalibTPCscale(fkEsdTrack->GetTPCncls(), fkEsdTrack->GetTPCsignal());
+      if(toTPCscale>0){
+        AliTRDdEdxUtils::FillCalibHist(fTrdTrack, 0, mag, charge, toTPCscale);
+      }
     }
 
     //////////////////////////////////
index c7f615e..8ca5ec9 100644 (file)
@@ -100,6 +100,9 @@ class AliTRDCalibTask : public AliAnalysisTaskSE {
   void SetMaxEvent(Int_t nbevents)                                     { fMaxEvent = nbevents; };
   void SetDebug(Int_t debug)                                           { fDebug = debug; };
 
+  Bool_t IsPHQon() const {return fPHQon;}
+  void SetPHQon(const Bool_t kphq){ fPHQon = kphq; }
+
  private:
   Bool_t SetVersionSubversion();
   Bool_t ParticleGood(int i) const;
@@ -201,6 +204,8 @@ class AliTRDCalibTask : public AliAnalysisTaskSE {
   Int_t       fMaxEvent;                         // max events
   Int_t       fCounter;                          // max events
 
+  Bool_t fPHQon;                                  //switch of phq
+
   AliTRDCalibTask(const AliTRDCalibTask&); 
   AliTRDCalibTask& operator=(const AliTRDCalibTask&); 
 
index 677154e..a6e82bc 100644 (file)
@@ -67,7 +67,6 @@
 #include "AliCDBEntry.h"
 #include "AliTRDdEdxUtils.h"
 
-
 ClassImp(AliTRDPreprocessorOffline)
 
   AliTRDPreprocessorOffline::AliTRDPreprocessorOffline():
@@ -125,7 +124,8 @@ ClassImp(AliTRDPreprocessorOffline)
   fMethodeGain(0),
   fOutliersFitChargeLow(0.03),
   fOutliersFitChargeHigh(0.7),
-  fBeginFitCharge(3.5)
+  fBeginFitCharge(3.5),
+  fPHQon(kTRUE)
 {
   //
   // default constructor
@@ -147,8 +147,12 @@ AliTRDPreprocessorOffline::~AliTRDPreprocessorOffline() {
   if(fPH2d) delete fPH2d;
   if(fPRF2d) delete fPRF2d;
   if(fSparse) delete fSparse;
-  AliTRDdEdxUtils::DeleteCalibHist();
-  AliTRDdEdxUtils::DeleteCalibObj();
+
+  if(IsPHQon()){
+    AliTRDdEdxUtils::DeleteCalibHist();
+    AliTRDdEdxUtils::DeleteCalibObj();
+  }
+
   if(fAliTRDCalibraVdriftLinearFit) delete fAliTRDCalibraVdriftLinearFit;
   if(fAliTRDCalibraExbAltFit) delete fAliTRDCalibraExbAltFit;
   if(fNEvents) delete fNEvents;
@@ -173,8 +177,15 @@ void AliTRDPreprocessorOffline::Process(const Char_t* file, Int_t startRunNumber
 
   }
 
-  CalibPHQ(file, startRunNumber, endRunNumber, ocdbStorage);
-  
+  if(IsPHQon()){
+    printf("\n                  AliTRDPreprocessorOffline PHQ on!!\n\n");
+    AliTRDdEdxUtils::PrintControl();
+    CalibPHQ(file, startRunNumber, endRunNumber, ocdbStorage);
+  }
+  else{
+    printf("\n                  AliTRDPreprocessorOffline PHQ off!!\n\n");
+  }
+
   PrintStatus();
   
 }
@@ -936,8 +947,6 @@ Bool_t AliTRDPreprocessorOffline::AnalyzePHQ(Int_t startRunNumber)
   //
   //Produce PHQ calibration results
   //
-  AliTRDdEdxUtils::PrintControl();
-
   for(Int_t iter=0; iter<8; iter++){
     THnSparseD *hi = (THnSparseD*) AliTRDdEdxUtils::GetHistPHQ()->At(iter);
     TObjArray *obji = AliTRDdEdxUtils::GetCalibObj(hi, startRunNumber);
index eab77e5..b66d27c 100644 (file)
@@ -23,7 +23,6 @@ class TH1I;
 class TH2F;
 class TString;
 
-
 class AliTRDPreprocessorOffline:public TNamed { 
 public:
   enum{ kGain = 0,
@@ -193,8 +192,9 @@ public:
   Int_t    GetStatusPos() const                                      { return fStatusPos;              }
   Int_t    GetStatusNeg() const                                      { return fStatusNeg;              }
  
+  Bool_t IsPHQon() const { return fPHQon ;};
+  void SetPHQon(const Bool_t kphq){ fPHQon = kphq; }
 
-  
  private:
   Bool_t fMethodSecond;                      // Second Method for drift velocity   
   TString fNameList;                         // Name of the list
@@ -262,6 +262,9 @@ public:
 private:
   AliTRDPreprocessorOffline& operator=(const AliTRDPreprocessorOffline&); // not implemented
   AliTRDPreprocessorOffline(const AliTRDPreprocessorOffline&); // not implemented
+
+  Bool_t fPHQon;                 //switch of PHQ
+
   ClassDef(AliTRDPreprocessorOffline,3)
 };
 
index 329261d..02f1ae6 100644 (file)
@@ -71,6 +71,12 @@ Double_t AliTRDdEdxUtils::fgChamberTmean[6];
 
 Double_t AliTRDdEdxUtils::fgTrackTmean = -999;
 
+Bool_t   AliTRDdEdxUtils::fgExBOn = kTRUE; 
+Double_t AliTRDdEdxUtils::fgQ0Frac = 0.3;
+Double_t AliTRDdEdxUtils::fgQ1Frac = 0.5;
+Double_t AliTRDdEdxUtils::fgTimeBinCountCut = 0.0; 
+Int_t    AliTRDdEdxUtils::fgCalibTPCnclsCut = 70;
+
 //===================================================================================
 //                                   Math and Histogram
 //===================================================================================
index 401ebef..0828af7 100644 (file)
@@ -158,7 +158,17 @@ class AliTRDdEdxUtils
 
   static TString GetRunType(const Int_t run);
 
-  static Bool_t IsExBOn(){return kTRUE;}
+  static void SetExBOn(const Bool_t kon){ fgExBOn = kon; }
+  static void SetQ0Frac(const Double_t q0){ fgQ0Frac = q0; }
+  static void SetQ1Frac(const Double_t q1){ fgQ1Frac = q1; }
+  static void SetTimeBinCountCut(const Double_t tbc){ fgTimeBinCountCut = tbc; }
+  static void SetCalibTPCnclsCut(const Int_t tpc){ fgCalibTPCnclsCut = tpc; }
+
+  static Bool_t IsExBOn(){return fgExBOn;}
+  static Double_t Q0Frac(){return fgQ0Frac;}
+  static Double_t Q1Frac(){return fgQ1Frac;}
+  static Double_t TimeBinCountCut(){return fgTimeBinCountCut;}
+  static Int_t CalibTPCnclsCut(){return fgCalibTPCnclsCut;}
 
   static void PrintControl();
   //===================================================================================
@@ -180,10 +190,6 @@ class AliTRDdEdxUtils
   static TString GetPHQName(const Bool_t kobj, const Int_t iter);
 
   //Detector, Data and Control Constant
-  static Double_t Q0Frac(){return 0.3;}
-  static Double_t Q1Frac(){return 0.5;}
-  static Double_t TimeBinCountCut(){return 0.0;}
-  static Int_t CalibTPCnclsCut(){return 70;}
 
   static THnSparseD *fgHistGain;//PH hist
   static THnSparseD *fgHistT0;//PH hist
@@ -202,6 +208,12 @@ class AliTRDdEdxUtils
   static Double_t fgChamberTmean[6]; //Q-weighted timebin \sum Q*T / \sum Q
 
   static Double_t fgTrackTmean; //mean timebin over track
+
+  static Bool_t   fgExBOn;    //exbon
+  static Double_t fgQ0Frac; //q0frac
+  static Double_t fgQ1Frac; //q1frac
+  static Double_t fgTimeBinCountCut; //tbcut
+  static Int_t    fgCalibTPCnclsCut; //tpccut
 };
 
 #endif
index 2c7981f..156ca26 100644 (file)
@@ -388,8 +388,13 @@ Bool_t AliTRDtrackV1::CookPID()
   }
   pidResponse->GetResponse(nslices, dEdx, trackletP, fPID);
 
+  static Int_t nprint = 0;
+  if(!nprint){
+    AliTRDdEdxUtils::PrintControl();
+    nprint++;
+  }
+
   //do truncated mean
-  //ncls needs to be included!! todo!!
   AliTRDdEdxUtils::SetObjPHQ(AliTRDcalibDB::Instance()->GetPHQ());
   const Double_t mag    = AliTRDdEdxUtils::IsExBOn() ? GetBz()  : -1;
   const Double_t charge = AliTRDdEdxUtils::IsExBOn() ? Charge() : -1;