ROOT logo
/*************************************************************

	Macro used for reading the information
	recorded by ACORDE detector from ESD fles and test the
	correction of ACORDE ESDs
	
	Author: 
	
		Mario Rodriguez Cahuantzi <mrodrigu@mail.cern.ch>

	Created: Sep. 24th 2009 @ CERN


**************************************************************/

void readACORDEESD()
{

	// Time's counter
	
	TStopwatch timer;
	
	timer.Start();

	TH1D *h1 = new TH1D("h1","ACORDE - Single Muon Trigger Hits",60,-0.5,59.5);
  	TH1D *h2 = new TH1D("h2","ACORDE - Single Muon Trigger Hit Multiplicity",60,-1,60);
  	TH1D *h3 = new TH1D("h3","ACORDE - Multi Muon Trigger Hits",60,-0.5,59.5);
  	TH1D *h4 = new TH1D("h4","ACORDE - Multi Muon Trigger Hit Multiplicity",60,-1,60);

	// Pointer to the ESD file
	
	TFile *ef = TFile::Open("AliESDs.root");
    
	// Check if the ESD file is OK
		    
	if (!ef || !ef->IsOpen()) 
	{
		cerr<<"Can't read AliESDs.root !\n"; 
		return 1;
	}
	
	// Pointer to the ESD event
	
	AliESDEvent* fESD = new AliESDEvent();
	
	// Pointer to the esdTree 
	
	TTree* tree = (TTree*) ef->Get("esdTree");
	
	// Check if the  esdTree is Ok
	
	if (!tree) 
	{
		cerr<<"no ESD tree found\n"; 
		return 1;
	}
	
	fESD->ReadFromTree(tree);

	Int_t n=1;

	// Loop over all events
	
	while (tree->GetEvent(n))
	{

		Int_t nMuons = 0;
	
		cout<<endl<<"Processing event number : "<<n++<<endl;
		
		// We select only events triggered by ACORDE
	
		TString ActiveTriggerDetector = fESD->GetFiredTriggerClasses();
		printf("Event:%d, Trigger:%s\n",fESD->GetEventNumberInFile(),ActiveTriggerDetector.Data());

		// if ACORDE trigger is on
		// else if ACORDE is working as readout just comment the condition
		if (ActiveTriggerDetector.Contains("AMU") || ActiveTriggerDetector.Contains("SL0") ) 		
		{

			cout<<endl<<"Processing event number : "<<n++<<endl;
			printf("Trigger Mask:%s\n",ActiveTriggerDetector.Data());

			AliESDACORDE *acordeESD = fESD->GetACORDEData();
			Int_t contMulti = 0;
			for(Int_t i=0;i<60;i++)
			{
				if (acordeESD->GetHitChannel(i)==kTRUE) 
				//if (acordeESD->GetACORDEBitPattern(i))
				{
					h1->Fill(i);
					contMulti++;
				}
			}		
			h2->Fill(contMulti);
		} //Only acorde trigger
	} // Loop over all events from AliESDs.root		

	TCanvas *c1 = new TCanvas();
	c1->Divide(2,1);
	c1->cd(1);
	h1->Draw();
	c1->cd(2);
	h2->Draw();

	timer.Stop();
	timer.Print();	



} // Main Procedure 

 readACORDEESD.C:1
 readACORDEESD.C:2
 readACORDEESD.C:3
 readACORDEESD.C:4
 readACORDEESD.C:5
 readACORDEESD.C:6
 readACORDEESD.C:7
 readACORDEESD.C:8
 readACORDEESD.C:9
 readACORDEESD.C:10
 readACORDEESD.C:11
 readACORDEESD.C:12
 readACORDEESD.C:13
 readACORDEESD.C:14
 readACORDEESD.C:15
 readACORDEESD.C:16
 readACORDEESD.C:17
 readACORDEESD.C:18
 readACORDEESD.C:19
 readACORDEESD.C:20
 readACORDEESD.C:21
 readACORDEESD.C:22
 readACORDEESD.C:23
 readACORDEESD.C:24
 readACORDEESD.C:25
 readACORDEESD.C:26
 readACORDEESD.C:27
 readACORDEESD.C:28
 readACORDEESD.C:29
 readACORDEESD.C:30
 readACORDEESD.C:31
 readACORDEESD.C:32
 readACORDEESD.C:33
 readACORDEESD.C:34
 readACORDEESD.C:35
 readACORDEESD.C:36
 readACORDEESD.C:37
 readACORDEESD.C:38
 readACORDEESD.C:39
 readACORDEESD.C:40
 readACORDEESD.C:41
 readACORDEESD.C:42
 readACORDEESD.C:43
 readACORDEESD.C:44
 readACORDEESD.C:45
 readACORDEESD.C:46
 readACORDEESD.C:47
 readACORDEESD.C:48
 readACORDEESD.C:49
 readACORDEESD.C:50
 readACORDEESD.C:51
 readACORDEESD.C:52
 readACORDEESD.C:53
 readACORDEESD.C:54
 readACORDEESD.C:55
 readACORDEESD.C:56
 readACORDEESD.C:57
 readACORDEESD.C:58
 readACORDEESD.C:59
 readACORDEESD.C:60
 readACORDEESD.C:61
 readACORDEESD.C:62
 readACORDEESD.C:63
 readACORDEESD.C:64
 readACORDEESD.C:65
 readACORDEESD.C:66
 readACORDEESD.C:67
 readACORDEESD.C:68
 readACORDEESD.C:69
 readACORDEESD.C:70
 readACORDEESD.C:71
 readACORDEESD.C:72
 readACORDEESD.C:73
 readACORDEESD.C:74
 readACORDEESD.C:75
 readACORDEESD.C:76
 readACORDEESD.C:77
 readACORDEESD.C:78
 readACORDEESD.C:79
 readACORDEESD.C:80
 readACORDEESD.C:81
 readACORDEESD.C:82
 readACORDEESD.C:83
 readACORDEESD.C:84
 readACORDEESD.C:85
 readACORDEESD.C:86
 readACORDEESD.C:87
 readACORDEESD.C:88
 readACORDEESD.C:89
 readACORDEESD.C:90
 readACORDEESD.C:91
 readACORDEESD.C:92
 readACORDEESD.C:93
 readACORDEESD.C:94
 readACORDEESD.C:95
 readACORDEESD.C:96
 readACORDEESD.C:97
 readACORDEESD.C:98
 readACORDEESD.C:99
 readACORDEESD.C:100
 readACORDEESD.C:101
 readACORDEESD.C:102
 readACORDEESD.C:103
 readACORDEESD.C:104
 readACORDEESD.C:105
 readACORDEESD.C:106
 readACORDEESD.C:107
 readACORDEESD.C:108
 readACORDEESD.C:109
 readACORDEESD.C:110
 readACORDEESD.C:111
 readACORDEESD.C:112
 readACORDEESD.C:113