ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

/// \ingroup macros
/// \file ReadRecoCocktail.C
/// \brief Base macro to read the trees generated with DecodeRecoCocktail.C 
///
/// \author A. De Falco, H. Woehri, INFN Cagliari, July 2006 

#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TFile.h"
#include "TTree.h"
#include "TCanvas.h"
#include "TClonesArray.h"

#include "AliMUONTrackLight.h"
#include "AliMUONPairLight.h"
#endif

void ReadRecoCocktail(char* fname="./MuonLight.root"){ 
  TFile *file = new TFile(fname); 
  TClonesArray *muonArray   = new TClonesArray("AliMUONTrackLight",100); 
  TClonesArray *dimuonArray = new TClonesArray("AliMUONPairLight",100); 
  TTree *tree = (TTree*) file->Get("tree"); 
  tree->SetBranchAddress("muons",&muonArray); 
  tree->SetBranchAddress("dimuons",&dimuonArray); 
  Int_t nev = tree->GetEntriesFast(); 
  printf ("%d events in tree\n",nev); 
  Int_t ndimuUncorr=0; 
  for (Int_t iev=0; iev<nev; iev++) { 
    tree->GetEvent(iev); 
//     Int_t nmu = muonArray->GetEntries(); 
//     for (Int_t imu=0; imu<nmu; imu++) { 
//       AliMUONTrackLight *mu = (AliMUONTrackLight*) muonArray->At(imu); 
//       mu->Dump(); 
//     }
    Int_t ndimu = dimuonArray->GetEntriesFast(); 
    for (Int_t idimu=0; idimu<ndimu; idimu++) { 
      AliMUONPairLight *dimu = (AliMUONPairLight*) dimuonArray->At(idimu); 
      //      dimu->Dump(); 
      if (!dimu->IsCorrelated()) { 
	printf ("Event %d / %d; dimuon %d not correlated\n",iev,nev,idimu); 
	dimu->PrintInfo("H"); 
	ndimuUncorr++; 
      }
    }
  }
  printf ("%d uncorrelated dimuons in file\n",ndimuUncorr);  
  TCanvas *c1=new TCanvas(); 
  c1->Divide(2);
  printf ("plotting the mass and pt spectra of opposite sign dimuons\n");
  c1->cd(1);
  tree->Draw("dimuons.GetPRec().M()","dimuons.GetCharge()==0");
  c1->cd(2);
  tree->Draw("dimuons.GetPRec().Pt()","dimuons.GetCharge()==0");
}
 ReadRecoCocktail.C:1
 ReadRecoCocktail.C:2
 ReadRecoCocktail.C:3
 ReadRecoCocktail.C:4
 ReadRecoCocktail.C:5
 ReadRecoCocktail.C:6
 ReadRecoCocktail.C:7
 ReadRecoCocktail.C:8
 ReadRecoCocktail.C:9
 ReadRecoCocktail.C:10
 ReadRecoCocktail.C:11
 ReadRecoCocktail.C:12
 ReadRecoCocktail.C:13
 ReadRecoCocktail.C:14
 ReadRecoCocktail.C:15
 ReadRecoCocktail.C:16
 ReadRecoCocktail.C:17
 ReadRecoCocktail.C:18
 ReadRecoCocktail.C:19
 ReadRecoCocktail.C:20
 ReadRecoCocktail.C:21
 ReadRecoCocktail.C:22
 ReadRecoCocktail.C:23
 ReadRecoCocktail.C:24
 ReadRecoCocktail.C:25
 ReadRecoCocktail.C:26
 ReadRecoCocktail.C:27
 ReadRecoCocktail.C:28
 ReadRecoCocktail.C:29
 ReadRecoCocktail.C:30
 ReadRecoCocktail.C:31
 ReadRecoCocktail.C:32
 ReadRecoCocktail.C:33
 ReadRecoCocktail.C:34
 ReadRecoCocktail.C:35
 ReadRecoCocktail.C:36
 ReadRecoCocktail.C:37
 ReadRecoCocktail.C:38
 ReadRecoCocktail.C:39
 ReadRecoCocktail.C:40
 ReadRecoCocktail.C:41
 ReadRecoCocktail.C:42
 ReadRecoCocktail.C:43
 ReadRecoCocktail.C:44
 ReadRecoCocktail.C:45
 ReadRecoCocktail.C:46
 ReadRecoCocktail.C:47
 ReadRecoCocktail.C:48
 ReadRecoCocktail.C:49
 ReadRecoCocktail.C:50
 ReadRecoCocktail.C:51
 ReadRecoCocktail.C:52
 ReadRecoCocktail.C:53
 ReadRecoCocktail.C:54
 ReadRecoCocktail.C:55
 ReadRecoCocktail.C:56
 ReadRecoCocktail.C:57
 ReadRecoCocktail.C:58
 ReadRecoCocktail.C:59
 ReadRecoCocktail.C:60
 ReadRecoCocktail.C:61
 ReadRecoCocktail.C:62
 ReadRecoCocktail.C:63
 ReadRecoCocktail.C:64
 ReadRecoCocktail.C:65
 ReadRecoCocktail.C:66
 ReadRecoCocktail.C:67
 ReadRecoCocktail.C:68
 ReadRecoCocktail.C:69
 ReadRecoCocktail.C:70
 ReadRecoCocktail.C:71