// Macro for checking aliroot output and associated files contents
// Gines Martinez, Subatech June 2003
//
-
+#if !defined(__CINT__) || defined(__MAKECINT__)
// ROOT includes
#include "TBranch.h"
#include "TClonesArray.h"
#include "AliMUONGlobalTrigger.h"
#include "AliMUONLocalTrigger.h"
#include "AliMUONTrack.h"
-
+#endif
void MUONkine(char * filename="galice.root",Int_t event2Check=0)
{
- TClonesArray * ListOfParticles = new TClonesArray("TParticle",1000);
- TParticle * particle = new TParticle();
+ // Stack of particle for each event
+ AliStack* stack;
// Creating Run Loader and openning file containing Hits
AliRunLoader * RunLoader = AliRunLoader::Open(filename,"MUONFolder","READ");
if (RunLoader ==0x0) {
printf(">>> Error : Error Opening %s file \n",filename);
return;
}
+
RunLoader->LoadKinematics("READ");
Int_t ievent, nevents;
nevents = RunLoader->GetNumberOfEvents();
Int_t iparticle, nparticles;
// Getting event ievent
RunLoader->GetEvent(ievent);
- RunLoader->TreeK()->GetBranch("Particles")->SetAddress(&particle);
- nparticles = RunLoader->TreeK()->GetEntries();
+ stack = RunLoader->Stack();
+ nparticles = (Int_t) stack->GetNtrack();
printf(">>> Event %d, Number of particles is %d \n",ievent, nparticles);
for(iparticle=0; iparticle<nparticles; iparticle++) {
- RunLoader->TreeK()->GetEvent(iparticle);
- particle->Print("");
+ stack->Particle(iparticle)->Print("");
}
if (event2Check!=0) ievent=nevents;
}
for(ihit=0; ihit<nhits; ihit++) {
mHit = static_cast<AliMUONHit*>(muondata.Hits()->At(ihit));
Int_t Nch = mHit->Chamber(); // chamber number
+ Int_t detele = mHit-> DetElemId(); // Detection element if defined
Int_t hittrack = mHit->Track();
Float_t x = mHit->X();
Float_t y = mHit->Y();
Float_t theta = mHit->Theta();
Float_t phi = mHit->Phi();
Float_t momentum = mHit->Momentum();
- printf(">>> Hit %2d Chamber %2d Track %4d x %6.3f y %6.3f z %7.3f elos %g theta %6.3f phi %5.3f momentum %5.3f\n",
- ihit, Nch,hittrack,x,y,z,elos,theta,phi, momentum);
+ printf(">>> Hit %2d Chamber %2d DetEle %4d Track %4d x %6.3f y %6.3f z %7.3f elos %g momentum %5.3f\n",
+ ihit, Nch, detele, hittrack,x,y,z,elos,momentum);
}
muondata.ResetHits();
} // end track loop
Int_t ichamber, nchambers;
nchambers = AliMUONConstants::NCh(); ;
muondata.SetTreeAddress("D");
- char branchname[30];
+ // char branchname[30];
Int_t icathode, ncathodes;
ncathodes=2;
//Loop on cathodes
- for(icathode=0; icathode<ncathodes; icathode++) {
- printf(">>> Cathode %d\n",icathode);
- muondata.GetCathode(icathode);
+ // for(icathode=0; icathode<ncathodes; icathode++) {
+ muondata.GetDigits();
// Loop on chambers
for( ichamber=0; ichamber<nchambers; ichamber++) {
- printf(">>> Chamber %d\n",ichamber);
+ printf(">>> Chamber %d\n",ichamber+1);
Int_t idigit, ndigits;
ndigits = (Int_t) muondata.Digits(ichamber)->GetEntriesFast();
Int_t TCharges0 = mDigit->TrackCharge(0); //charge per track making this digit (up to 10)
Int_t TCharges1 = mDigit->TrackCharge(1);
Int_t TCharges2 = mDigit->TrackCharge(2);
+ Int_t idDE = mDigit->DetElemId();
+ // printf(">>> Cathode %d\n",Cathode);
- printf(">>> Digit %4d cathode %1d hit %4d PadX %3d PadY %3d Signal %4d Physics %4d Track0 %4d TrackCharge0 %4d Track1 %'d
- TrackCharge1 %4d Track2 %4d TrackCharge2 %4d \n",idigit, Cathode,Hit, PadX, PadY, Signal, Physics,
- Track0, TCharges0, Track1, TCharges1, Track2, TCharges2);
+ printf(">>>IdDE %d Digit %4d cathode %1d hit %4d PadX %3d PadY %3d Signal %4d Physics %4d Track0 %4d TrackCharge0 %4d Track1 %4d TrackCharge1 %4d Track2 %4d TrackCharge2 %4d \n",
+ idDE, idigit, Cathode,Hit, PadX, PadY, Signal, Physics, Track0,
+ TCharges0, Track1, TCharges1, Track2, TCharges2);
} // end digit loop
} // end chamber loop
muondata.ResetDigits();
- } // end cathode loop
+ // } // end cathode loop
if (event2Check!=0) ievent=nevents;
} // end event loop
MUONLoader->UnloadDigits();
Int_t ievent, nevents;
nevents = RunLoader->GetNumberOfEvents();
- AliMUONRawCluster * mRecPoint;
+ AliMUONRawCluster * mRecPoint = 0;
for(ievent=0; ievent<nevents; ievent++) {
if (event2Check!=0) ievent=event2Check;
printf(">>> Chamber %d\n",ichamber);
sprintf(branchname,"MUONRawClusters%d",ichamber+1);
//printf(">>> branchname %s\n",branchname);
-
Int_t irecpoint, nrecpoints;
nrecpoints = (Int_t) muondata.RawClusters(ichamber)->GetEntriesFast();
-
+ printf("number of recpoints = %6d \n",nrecpoints);
for(irecpoint=0; irecpoint<nrecpoints; irecpoint++) {
mRecPoint = static_cast<AliMUONRawCluster*>(muondata.RawClusters(ichamber)->At(irecpoint));
// Int_t fTracks[3]; //labels of overlapped tracks
// // charge chi2 compatibility
// // 2 none give satisfactory chi2
- Int_t Track0 = mRecPoint->fTracks[0];
- Int_t Track1 = mRecPoint->fTracks[1];
- Int_t Track2 = mRecPoint->fTracks[2];
- Int_t Q0 = mRecPoint->fQ[0];
- Int_t Q1 = mRecPoint->fQ[1];
- Float_t x0 = mRecPoint->fX[0];
- Float_t x1 = mRecPoint->fX[1];
- Float_t y0 = mRecPoint->fY[0];
- Float_t y1 = mRecPoint->fY[1];
- Float_t z0 = mRecPoint->fZ[0];
- Float_t z1 = mRecPoint->fZ[1];
- Float_t chi2_0 = mRecPoint->fChi2[0];
- Float_t chi2_1 = mRecPoint->fChi2[1];
-
- printf(">>> RecPoint %4d x %6.3f %6.3f y %6.3f %6.3f z %6.3f %6.3f Q0 %4d Q1 %4d Hit %4d Track1 %4d Track2 %4d Chi2 %6.3f %6.3f \n",
-irecpoint, x0, x1, y0, y1, z0, z1, Q0, Q1, Track0, Track1, Track2, chi2_0, chi2_1);
+ Int_t Track0 = mRecPoint->GetTrack(0);
+ Int_t Track1 = mRecPoint->GetTrack(1);
+ Int_t Track2 = mRecPoint->GetTrack(2);
+ Int_t Q0 = mRecPoint->GetCharge(0);
+ Int_t Q1 = mRecPoint->GetCharge(1);
+ Float_t x0 = mRecPoint->GetX(0);
+ Float_t x1 = mRecPoint->GetX(1);
+ Float_t y0 = mRecPoint->GetY(0);
+ Float_t y1 = mRecPoint->GetY(1);
+ Float_t z0 = mRecPoint->GetZ(0);
+ Float_t z1 = mRecPoint->GetZ(1);
+ Float_t chi2_0 = mRecPoint->GetChi2(0);
+ Float_t chi2_1 = mRecPoint->GetChi2(1);
+ Int_t de = mRecPoint->GetDetElemId();
+ printf(">>> RecPoint %4d DetElem %2d x %6.3f %6.3f y %6.3f %6.3f z %6.3f %6.3f Q0 %4d Q1 %4d Hit %4d Track1 %4d Track2 %4d Chi2 %6.3f %6.3f \n",
+ irecpoint,de,x0,x1,y0,y1,z0,z1,Q0,Q1,Track0, Track1, Track2, chi2_0, chi2_1);
} // end recpoint loop
} // end chamber loop
muondata.ResetRawClusters();
}
AliLoader * MUONLoader = RunLoader->GetLoader("MUONLoader");
- MUONLoader->LoadRecPoints("READ");
+ MUONLoader->LoadDigits("READ");
// Creating MUON data container
AliMUONData muondata(MUONLoader,"MUON","MUON");
RunLoader->GetEvent(ievent);
muondata.SetTreeAddress("GLT");
- muondata.GetTrigger();
+ muondata.GetTriggerD();
globalTrigger = muondata.GlobalTrigger();
localTrigger = muondata.LocalTrigger();
Int_t ievent, nevents;
nevents = RunLoader->GetNumberOfEvents();
- AliMUONTrack * rectrack;
+ // AliMUONTrack * rectrack;
for (ievent=0; ievent<nevents; ievent++) {
if (event2Check!=0) ievent=event2Check;