]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliESDMuonTest.C
Separate labels for TPC, ITS, and TRD tracks (M.Ivanov)
[u/mrichter/AliRoot.git] / STEER / AliESDMuonTest.C
CommitLineData
5ec1b3bc 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18//
19// Macro for checking aliroot output and associated files contents
20// Gines Martinez, Subatech June 2003
21//
22
23// ROOT includes
24#include "TBranch.h"
25#include "TClonesArray.h"
26#include "TFile.h"
27#include "TH1.h"
28#include "TParticle.h"
29#include "TTree.h"
30
31// STEER includes
32#include "AliRun.h"
33#include "AliRunLoader.h"
34#include "AliHeader.h"
35#include "AliLoader.h"
36#include "AliStack.h"
37#include "AliESD.h"
38
39// MUON includes
40#include "AliMUON.h"
41#include "AliMUONData.h"
42#include "AliMUONConstants.h"
43#include "AliMUONRawCluster.h"
44#include "AliMUONTrack.h"
45#include "AliMUONTriggerTrack.h"
46#include "AliESDMuonTrack.h"
47
48
49void AliESDMuonTest(char * filename="galice.root", Int_t run=0){
50
51 TClonesArray * recTracksArray;
52
53 // Creating Run Loader and openning file containing Hits
54 AliRunLoader * RunLoader = AliRunLoader::Open(filename,"MUONFolder","READ");
55 if (RunLoader ==0x0) {
56 printf(">>> Error : Error Opening %s file \n",filename);
57 return;
58 }
59
60 // creating ESD file
61 TFile *ef=TFile::Open("AliESD.Muon.root","RECREATE");
62 if (!ef->IsOpen()) cerr<<"Can't open AliESD.root file!\n";
63
64 AliLoader * MUONLoader = RunLoader->GetLoader("MUONLoader");
65 MUONLoader->LoadTracks("READ");
66
67 // Creating MUON data container
68 AliMUONData muondata(MUONLoader,"MUON","MUON");
69
70 // declaration
71 Int_t ievent, nevents;
72 Int_t ntrackhits;
73 Double_t fitfmin;
74 Int_t nrectracks;
75
76 Double_t bendingSlope, nonBendingSlope, fInverseBendingMomentum;
77 Double_t fXRec, fYRec, fZRec;
78
79 Float_t x11, y11, thetaX,thetaY ;
80
81 nevents = RunLoader->GetNumberOfEvents();
82
83 // setting pointer for tracks, triggertracks& trackparam at vertex
84 AliMUONTrack * rectrack;
85 AliMUONTriggerTrack * rectriggertrack;
86 AliMUONTrackParam *trackParam;
87
88 for (ievent = 0; ievent < nevents; ievent++) {
89 RunLoader->GetEvent(ievent);
90
91 // cerr<<"\n\nProcessing event number : "<<ievent<<endl;
92
93 // setting ESD class pointer
94 AliESD *event = new AliESD();
95 event->SetRunNumber(run);
96 event->SetEventNumber(ievent);
97
98 // -------------------- tracks-------------
99
100 // setting ESD MUON class
101 AliESDMuonTrack* ESDTrack = new AliESDMuonTrack() ;
102 muondata.SetTreeAddress("RT");
103 muondata.GetRecTracks();
104 recTracksArray = muondata.RecTracks();
105
106 nrectracks = (Int_t) recTracksArray->GetEntriesFast(); //
107
108 printf(">>> Event %d Number of Recconstructed tracks %d \n",ievent, nrectracks);
109
110 // read track infos
111 for (Int_t irectracks = 0; irectracks < nrectracks; irectracks++) {
112
113 rectrack = (AliMUONTrack*) recTracksArray->At(irectracks);
114
115 trackParam = rectrack->GetTrackParamAtVertex();
116
117 bendingSlope = trackParam->GetBendingSlope();
118 nonBendingSlope = trackParam->GetNonBendingSlope();
119 fInverseBendingMomentum = trackParam->GetInverseBendingMomentum();
120 fXRec = trackParam->GetNonBendingCoor();
121 fYRec = trackParam->GetBendingCoor();
122 fZRec = trackParam->GetZ();
123
124 ntrackhits = rectrack->GetNTrackHits();
125 fitfmin = rectrack->GetFitFMin();
126
127 // setting data member of ESD MUON
128 ESDTrack->SetInverseBendingMomentum(fInverseBendingMomentum);
129 ESDTrack->SetThetaX(TMath::ATan(nonBendingSlope));
130 ESDTrack->SetThetaY(TMath::ATan(bendingSlope));
131 ESDTrack->SetZ(fZRec);
132 ESDTrack->SetBendingCoor(fYRec);
133 ESDTrack->SetNonBendingCoor(fXRec);
134 ESDTrack->SetChi2(fitfmin);
135 ESDTrack->SetNHit(ntrackhits);
136 }
137
138 // -------------------- trigger tracks-------------
139 muondata.SetTreeAddress("RL");
140 muondata.GetRecTriggerTracks();
141 recTracksArray = muondata.RecTriggerTracks();
142
143 nrectracks = (Int_t) recTracksArray->GetEntriesFast(); //
144
145 printf(">>> Event %d Number of Recconstructed tracks %d \n",ievent, nrectracks);
146
147 // read trigger track infos
148 for (Int_t irectracks = 0; irectracks < nrectracks; irectracks++) {
149
150 rectriggertrack = (AliMUONTriggerTrack*) recTracksArray->At(irectracks);
151
152 x11 = rectriggertrack->GetY11();
153 y11 = rectriggertrack->GetY11();
154 thetaX = rectriggertrack->GetThetax();
155 thetaY = rectriggertrack->GetThetay();
156
157 // setting data member of ESD MUON trigger
158 ESDTrack->SetThetaX11(thetaX);
159 ESDTrack->SetThetaY11(thetaY);
160 ESDTrack->SetX11(x11);
161 ESDTrack->SetY11(y11);
162 }
163
164 // storing ESD MUON Track into ESD Event & reset muondata
165 event->AddMuonTrack(ESDTrack);
166 muondata.ResetRecTracks();
167 muondata.ResetRecTriggerTracks();
168
169 // writting ESD event
170 Char_t ename[100];
171 sprintf(ename,"%d",ievent);
172 ef->cd();
173 if (!event->Write(ename)) cerr<<"Something bad happened...\n";
174 delete event;
175
176 } // end loop on event
177 ef->Close();
178 MUONLoader->UnloadTracks();
179 MUONLoader->UnloadTriggerTracks();
180
181}
182
183
184
185
186
187
188
189
190
191