ROOT logo
#include "AliPHOSTriggerParameters.h"

#include "TString.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TCanvas.h"

#include <iostream>
#include <fstream>
using namespace std;

void readTRUPedestals(AliPHOSTriggerParameters* parameters)
{
  for (Int_t mod = 2; mod < 5; ++mod) { // module
    for (Int_t tru = 0; tru < 4; tru++) { // tru row
      for (Int_t branch = 0; branch < 2; branch++) { // branch
	
	// Open the Appropriate pedestal file
	TString fileName("pedestal_m");
	fileName = fileName += mod;
	fileName+="_r";
	fileName+=tru;
	fileName+="_b";
	fileName+=branch;
	fileName+=".dat";
	std::ifstream instream;
	instream.open(fileName.Data());
	
	  
	// Read pedestals from file
	if( ! instream.is_open() )
	  Printf("E-TRUPedestals: could not open %s", fileName.Data());
	else
	  {
	    Int_t ped[112];
	      
	    char ch_s[35];
	    char *ch_s_p = ch_s;
	    //Int_t nlines = 0;
	      
	    Int_t t_ped_0 =0;
	    Int_t t_ped_1 =0;
	    Int_t t_ped_2 =0;
	      
	    for(Int_t n=0; n<112; n++)
	      {
		instream.getline(ch_s_p,36);
		if (ch_s_p[23]<='9' && ch_s_p[23]>='0')
		  {
		    t_ped_0 = ch_s_p[23]-'0';
		  }
		else if (ch_s_p[23]>='A' && ch_s_p[23]<='Z')
		  {
		    t_ped_0 = ch_s_p[23]-'A'+10;
		      
		  }
		  
		if (ch_s_p[22]<='9' && ch_s_p[22]>='0')
		  {
		    t_ped_1 = ch_s_p[22]-'0';
		  }
		else if (ch_s_p[22]<='Z' && ch_s_p[22]>='A')
		  {
		    t_ped_1 = ch_s_p[22]-'A'+10;
		  }
		  
		if (ch_s_p[21]<='9' && ch_s_p[21]>='0')
		  {
		    t_ped_2 = ch_s_p[21]-'0';
		  }
		else if (ch_s_p[21]<='Z' && ch_s_p[21]>='A')
		  {
		    t_ped_2 = ch_s_p[21]-'A'+10;
		  }
		  
		ped[n]=t_ped_2*256+t_ped_1*16+t_ped_0;
		  
		  
	      }
	    for (Int_t xrow = 0; xrow < 8; xrow++){
	      for (Int_t zcol = 0; zcol < 14; zcol++){
		Int_t pedestal = ped[zcol*8+xrow];

		if( pedestal < 612 && pedestal > 412 ) // resonable
		  parameters->SetTRUPedestal(pedestal, mod, tru, branch, xrow, zcol);
		else // unresonable
		  continue;
	      }
	    }
	  } // Ends read of pedestals from branch from file.
	instream.close();
      }// end branch
    }// end tru
      
  }// end for mod
}


void drawTRUPedestals(AliPHOSTriggerParameters* parameters)
{
  for (Int_t mod = 2; mod < 5; ++mod) { // module
    // Make some Histograms:
    TString name("TRU_pedestals_m");
    name += mod;
    TH1F* ped_hist = new TH1F(name, name, 1000, 0, 1000 );
    name += "_2d";
    TH2F* ped_hist_2d = new TH2F(name, name, 32, 0, 32, 28, 0, 28);
    
    for (Int_t tru = 0; tru < 4; tru++) { // tru row
       for (Int_t branch = 0; branch < 2; branch++) { // branch
	 for (Int_t xrow = 0; xrow < 8; xrow++){
	   for (Int_t zcol = 0; zcol < 14; zcol++){
	     const int gxrow = tru*8+xrow;
	     const int gzcol = branch*14+zcol;
	     Int_t pedestal = parameters->GetTRUPedestal(mod, tru, branch, xrow, zcol);
	
	     ped_hist->Fill(pedestal);
	     ped_hist_2d->Fill(gxrow, gzcol, pedestal);
	   }
	 }
       }
     }
    (new TCanvas)->SetLogy();
    ped_hist->GetZaxis()->SetRangeUser(500, 520);
    ped_hist->DrawCopy(); // Todo, move this write biz. to HistHandler
    new TCanvas;
    ped_hist_2d->DrawCopy("colz");
  }
}
 readTRUPedestals.C:1
 readTRUPedestals.C:2
 readTRUPedestals.C:3
 readTRUPedestals.C:4
 readTRUPedestals.C:5
 readTRUPedestals.C:6
 readTRUPedestals.C:7
 readTRUPedestals.C:8
 readTRUPedestals.C:9
 readTRUPedestals.C:10
 readTRUPedestals.C:11
 readTRUPedestals.C:12
 readTRUPedestals.C:13
 readTRUPedestals.C:14
 readTRUPedestals.C:15
 readTRUPedestals.C:16
 readTRUPedestals.C:17
 readTRUPedestals.C:18
 readTRUPedestals.C:19
 readTRUPedestals.C:20
 readTRUPedestals.C:21
 readTRUPedestals.C:22
 readTRUPedestals.C:23
 readTRUPedestals.C:24
 readTRUPedestals.C:25
 readTRUPedestals.C:26
 readTRUPedestals.C:27
 readTRUPedestals.C:28
 readTRUPedestals.C:29
 readTRUPedestals.C:30
 readTRUPedestals.C:31
 readTRUPedestals.C:32
 readTRUPedestals.C:33
 readTRUPedestals.C:34
 readTRUPedestals.C:35
 readTRUPedestals.C:36
 readTRUPedestals.C:37
 readTRUPedestals.C:38
 readTRUPedestals.C:39
 readTRUPedestals.C:40
 readTRUPedestals.C:41
 readTRUPedestals.C:42
 readTRUPedestals.C:43
 readTRUPedestals.C:44
 readTRUPedestals.C:45
 readTRUPedestals.C:46
 readTRUPedestals.C:47
 readTRUPedestals.C:48
 readTRUPedestals.C:49
 readTRUPedestals.C:50
 readTRUPedestals.C:51
 readTRUPedestals.C:52
 readTRUPedestals.C:53
 readTRUPedestals.C:54
 readTRUPedestals.C:55
 readTRUPedestals.C:56
 readTRUPedestals.C:57
 readTRUPedestals.C:58
 readTRUPedestals.C:59
 readTRUPedestals.C:60
 readTRUPedestals.C:61
 readTRUPedestals.C:62
 readTRUPedestals.C:63
 readTRUPedestals.C:64
 readTRUPedestals.C:65
 readTRUPedestals.C:66
 readTRUPedestals.C:67
 readTRUPedestals.C:68
 readTRUPedestals.C:69
 readTRUPedestals.C:70
 readTRUPedestals.C:71
 readTRUPedestals.C:72
 readTRUPedestals.C:73
 readTRUPedestals.C:74
 readTRUPedestals.C:75
 readTRUPedestals.C:76
 readTRUPedestals.C:77
 readTRUPedestals.C:78
 readTRUPedestals.C:79
 readTRUPedestals.C:80
 readTRUPedestals.C:81
 readTRUPedestals.C:82
 readTRUPedestals.C:83
 readTRUPedestals.C:84
 readTRUPedestals.C:85
 readTRUPedestals.C:86
 readTRUPedestals.C:87
 readTRUPedestals.C:88
 readTRUPedestals.C:89
 readTRUPedestals.C:90
 readTRUPedestals.C:91
 readTRUPedestals.C:92
 readTRUPedestals.C:93
 readTRUPedestals.C:94
 readTRUPedestals.C:95
 readTRUPedestals.C:96
 readTRUPedestals.C:97
 readTRUPedestals.C:98
 readTRUPedestals.C:99
 readTRUPedestals.C:100
 readTRUPedestals.C:101
 readTRUPedestals.C:102
 readTRUPedestals.C:103
 readTRUPedestals.C:104
 readTRUPedestals.C:105
 readTRUPedestals.C:106
 readTRUPedestals.C:107
 readTRUPedestals.C:108
 readTRUPedestals.C:109
 readTRUPedestals.C:110
 readTRUPedestals.C:111
 readTRUPedestals.C:112
 readTRUPedestals.C:113
 readTRUPedestals.C:114
 readTRUPedestals.C:115
 readTRUPedestals.C:116
 readTRUPedestals.C:117
 readTRUPedestals.C:118
 readTRUPedestals.C:119
 readTRUPedestals.C:120
 readTRUPedestals.C:121
 readTRUPedestals.C:122
 readTRUPedestals.C:123
 readTRUPedestals.C:124
 readTRUPedestals.C:125
 readTRUPedestals.C:126
 readTRUPedestals.C:127
 readTRUPedestals.C:128
 readTRUPedestals.C:129
 readTRUPedestals.C:130