Update timestamps for new AMANDA simulation (17/02/2015)
[u/mrichter/AliRoot.git] / TPC / AliTPCDisplayDigits.C
index d0a5612..84ea831 100644 (file)
@@ -1,4 +1,20 @@
-Int_t AliTPCDisplayDigits(int sec, int row, int lab=-1,
+/// \file AliTPCDisplayDigits.C
+///
+/// \author I.Belikov, CERN, Jouri.Belikov@cern.ch
+
+#ifndef __CINT__
+#include <Riostream.h>
+#include <TFile.h>
+#include <TTree.h>
+#include <TCanvas.h>
+#include <TStyle.h>
+#include <TH2.h>
+
+#include "AliTPCParam.h"
+#include "AliSimDigits.h"
+#endif
+
+Int_t AliTPCDisplayDigits(Int_t eventn, int sec, int row, int lab=-1,
                  int max_t_chan=500, float min_t=0., float max_t=500.,
                  int max_p_chan=150, float min_p=0., float max_p=150.)
 {
@@ -8,33 +24,43 @@ Int_t AliTPCDisplayDigits(int sec, int row, int lab=-1,
    TFile *f = TFile::Open("rfio:galice.root");
    if (!f->IsOpen()) {cerr<<"Can't open galice.root !\n"; return 1;}
 
-   AliTPCParam *par=(AliTPCParam *)f->Get("75x40_100x60");
+   
+   
+   AliTPCParam *par=(AliTPCParam *)f->Get("75x40_100x60_150x60");
+   if (!par) { cerr<<"TPC parameters have not been found !\n"; return 2; }
 
-   char s[80];
+   Char_t s[80];
    sprintf(s,"Sector %d   Row %d\n",sec,row);
    TH2F *h = new TH2F("h",s,max_t_chan,min_t,max_t,max_p_chan,min_p,max_p);
+   
+   Char_t  name[100];
+   sprintf(name,"TreeD_75x40_100x60_150x60_%d",eventn);
 
-   TTree *t=(TTree*)f->Get("TreeD_75x40_100x60");
+   TTree *t=(TTree*)f->Get(name);
+   if (!t) { cerr<<"TPC digits have not been found !\n"; return 3; }
    AliSimDigits dummy, *digit=&dummy;
    t->GetBranch("Segment")->SetAddress(&digit);
-   for (int i=0; i<t->GetEntries(); i++) {
-       t->GetEvent(i);
-       int ss,rr;
-       par->AdjustSectorRow(digit->GetID(),ss,rr);
-       if (ss==sec && rr==row) goto ok;
+   Int_t sbr=(Int_t)t->GetEntries();
+   for (Int_t i=0; i<sbr; i++) {
+       if (!t->GetEvent(i)) continue;
+       Int_t s,r;
+       par->AdjustSectorRow(digit->GetID(),s,r);
+       if (s==sec && r==row) goto ok;
    }
-   return 2;
-
+   return 4;
+   
 ok:
-   int imax=0, jmax=0, qmax=0;
+
+   Int_t imax=0, jmax=0, qmax=0;
    digit->First();
    do {
-      Short_t dig=digit->CurrentDigit();
-      int i=digit->CurrentRow(), j=digit->CurrentColumn();
+     //Short_t dig=digit->CurrentDigit();
+      Int_t i=digit->CurrentRow(), j=digit->CurrentColumn();
+      Short_t dig=digit->GetDigit(i,j);
       if (lab >= 0) {
-         int lab0=digit->GetTrackID(i,j,0);
-         int lab1=digit->GetTrackID(i,j,1);
-         int lab2=digit->GetTrackID(i,j,2);
+         Int_t lab0=digit->GetTrackID(i,j,0);
+         Int_t lab1=digit->GetTrackID(i,j,1);
+         Int_t lab2=digit->GetTrackID(i,j,2);
          if (lab0!=lab) if (lab1!=lab) if (lab2!=lab) continue;
          if (dig>qmax) {imax=i; jmax=j; qmax=dig;}
          cerr<<lab0<<' '<<lab1<<' '<<lab2<<endl;