]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCCalPad.cxx
Compatibility with the Root trunk
[u/mrichter/AliRoot.git] / TPC / AliTPCCalPad.cxx
index c330bacd5a4a70a9dd6913da5ed0764b105206e5..e91e4e8d36c192138e63fbaac2ec556f4aae0d27 100644 (file)
@@ -413,9 +413,8 @@ TH1F * AliTPCCalPad::MakeHisto1D(Float_t min, Float_t max,Int_t type, Int_t side
       max = mean+sigma;
     }
   }
-  char  name[1000];
-  sprintf(name,"%s Pad 1D",GetTitle());
-  TH1F * his = new TH1F(name,name,100, min,max);
+  TString name=Form("%s Pad 1D",GetTitle());
+  TH1F * his = new TH1F(name.Data(),name.Data(),100, min,max);
     for (Int_t isec = 0; isec < kNsec; isec++) {
       if (side==1 && isec%36>18) continue;
       if (side==-1 && isec%36<18) continue;
@@ -708,7 +707,7 @@ TCanvas * AliTPCCalPad::MakeReportPadSector(TTree *chain, const char* varName, c
   strDraw+=":lX";
   legend = new TLegend(0.5,0.50,0.9,0.9, Form("%s TPC A side", varTitle));
   for (Int_t isec=-1; isec<18; isec+=1){
-    TCut cutSec=Form("sector%36==%d",isec);
+    TCut cutSec=Form("sector%%36==%d",isec);
     cutSec+=cutUser;
     if (isec==-1) cutSec="sector%36<18";
     chain->SetMarkerColor(1+(isec+2)%5);
@@ -734,7 +733,7 @@ TCanvas * AliTPCCalPad::MakeReportPadSector(TTree *chain, const char* varName, c
   //
   legend = new TLegend(0.5,0.50,0.9,0.9, Form("%s TPC C side", varTitle));
   for (Int_t isec=-1; isec<18; isec+=1){
-    TCut cutSec=Form("(sector+18)%36==%d",isec);
+    TCut cutSec=Form("(sector+18)%%36==%d",isec);
     cutSec+=cutUser;
     if (isec==-1) cutSec="sector%36>18";
     chain->SetMarkerColor(1+(isec+2)%5);
@@ -858,3 +857,30 @@ void  AliTPCCalPad::Draw(Option_t* option){
 
 
 }
+
+
+AliTPCCalPad * AliTPCCalPad::MakeCalPadFromHistoRPHI(TH2 * hisA, TH2* hisC){
+  //
+  // Make cal pad from r-phi histograms
+  //
+  AliTPCROC *proc= AliTPCROC::Instance();
+  AliTPCCalPad *calPad = new AliTPCCalPad("his","his");
+  Float_t globalPos[3];
+  for (Int_t isec=0; isec<72; isec++){
+    AliTPCCalROC* calRoc  = calPad->GetCalROC(isec);
+    TH2 * his = ((isec%36<18) ? hisA:hisC);
+    for (UInt_t irow=0; irow<calRoc->GetNrows(); irow+=1){
+      Int_t jrow=irow;
+      if (isec>=36) jrow+=63;
+      for (UInt_t ipad=0;ipad<proc->GetNPads(isec,irow);ipad+=1){
+        proc->GetPositionGlobal(isec,irow,ipad, globalPos);
+        Double_t phi=TMath::ATan2(globalPos[1],globalPos[0]);
+        //if (phi<0) phi+=TMath::Pi()*2;
+        Int_t bin=his->FindBin(phi,jrow);
+        Float_t value= his->GetBinContent(bin);
+       calRoc->SetValue(irow,ipad,value);
+      }
+    }
+  }
+  return calPad;
+}