// $Id$
+//-----------------------------------------------------------------------------
/// \class AliMUONCheck
///
/// This class check the ESD tree, providing the matching with the trigger
/// DumpDigit() as a replacement of the function from MUONCheck.C macro.
///
/// \author Frederic Yermia, INFN Torino
+//-----------------------------------------------------------------------------
#include "AliMUONCheck.h"
#include "AliMUONConstants.h"
-#include "AliMUONTrack.h"
-#include "AliMUONTrackParam.h"
-#include "AliMUONTrackExtrap.h"
#include "AliMUONMCDataInterface.h"
#include "AliMUONDataInterface.h"
+#include "AliMpCDB.h"
#include "AliMpSegmentation.h"
#include "AliMpVSegmentation.h"
#include "AliMpDEManager.h"
#include "AliStack.h"
#include "AliTrackReference.h"
#include "AliTracker.h"
-#include "AliESD.h"
+#include "AliESDEvent.h"
#include "AliESDMuonTrack.h"
-#include "AliMagFMaps.h"
+#include "AliESDVertex.h"
+#include "AliMagF.h"
#include "AliLog.h"
#include <TSystem.h>
fFileName(galiceFile),
fFileNameSim(),
fesdFileName(esdFile),
-foutDir(outDir),
+fkOutDir(outDir),
fFirstEvent(firstEvent),
fLastEvent(lastEvent)
{
- /// ctor
+ /// ctor
}
//_____________________________________________________________________________
fFileName(galiceFile),
fFileNameSim(galiceFileSim),
fesdFileName(esdFile),
-foutDir(outDir),
+fkOutDir(outDir),
fFirstEvent(firstEvent),
fLastEvent(lastEvent)
{
Double_t fPxRec1, fPyRec1, fPzRec1, fE1;
Int_t fZ1;
- AliESD* fESD = new AliESD();
+ AliESDEvent* fESD = new AliESDEvent();
TTree* tree = (TTree*) esdFile->Get("esdTree");
if (!tree)
{
for (ievent = fFirstEvent; ievent < endOfLoop; ++ievent )
{
nev++;
- tree->GetEvent(ievent);
- if (!fESD)
+ if (tree->GetEvent(ievent) <= 0)
{
Error("CheckESD", "no ESD object found for event %d", ievent);
return ;
for ( Int_t iTrack1 = 0; iTrack1<nTracks; ++iTrack1 )
{ //1st loop
AliESDMuonTrack* muonTrack = fESD->GetMuonTrack(iTrack1);
+
+ // skip fake tracks (ghosts)
+ if (!muonTrack->ContainTrackerData()) continue;
+
ftracktot++;
thetaX = muonTrack->GetThetaX();
}//if(pdc06TriggerResponse)
- gSystem->cd(foutDir);
+ gSystem->cd(fkOutDir);
FILE *outtxt=fopen("output.txt","a");
freopen("output.txt","a",outtxt);
printf("*** Leaving MuonKine() *** \n");
printf("**************************************************************** \n");
- gSystem->cd(foutDir);
+ gSystem->cd(fkOutDir);
FILE *outtxt=fopen("output.txt","a");
freopen("output.txt","a",outtxt);
fprintf(outtxt," \n");
}//evt loop
- gSystem->cd(foutDir);
+ gSystem->cd(fkOutDir);
TCanvas *c6 = new TCanvas("c6","TOF",400,10,600,700);
c6->Divide(1,2);
c6->cd(1);
AliMUONVDigitStore* digitStore = di.DigitStore(fFirstEvent);
- if ( ! AliMpCDB::LoadMpSegmentation() )
- AliFatal("Could not access mapping from OCDB !");
-
// Compute values
for (Int_t ichamber=0; ichamber<nchambers; ++ichamber)
{
ndigits = digitStore->GetSize(detele,1-cathode);
dEchannelsNonBending[ichamber][idetele] = nchannels;
- dEoccupancyBending[ichamber][idetele] = ndigits;
+ dEoccupancyNonBending[ichamber][idetele] = ndigits;
cHchannelsNonBending[ichamber] += nchannels;
cHoccupancyNonBending[ichamber] += ndigits;
totalchannelsNonBending += nchannels;
}
-//_____________________________________________________________________________
-void
-AliMUONCheck::CheckRecTracks () const
-{
- /// Reads and dumps rec tracks objects
-
- AliWarning("Reimplement me ? or use AliMUONDumper simply ?");
-
- // // waiting for mag field in CDB
- // AliInfoStream() << "Loading field map...\n";
- // if (!AliTracker::GetFieldMap()) {
- // AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG);
- // AliTracker::SetFieldMap(field, kFALSE);
- // }
- //
- // // Loading data
- // fLoader->LoadTracks("READ");
- //
- // Int_t endOfLoop = fLastEvent+1;
- // if ( fLastEvent == -1 ) endOfLoop = fRunLoader->GetNumberOfEvents();
- //
- // for (Int_t ievent=fFirstEvent; ievent<endOfLoop; ievent++) {
- // fRunLoader->GetEvent(ievent);
- //
- // fRecData->SetTreeAddress("RT");
- // fRecData->GetRecTracks();
- // TClonesArray* recTracks = fRecData->RecTracks();
- //
- // Int_t nrectracks = (Int_t) recTracks->GetEntriesFast(); //
- // printf(">>> Event %d, Number of Recconstructed tracks %d \n",ievent, nrectracks);
- //
- // // Set the magnetic field for track extrapolations
- // AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap());
- //
- // // Loop over tracks
- // for (Int_t iRecTracks = 0; iRecTracks < nrectracks; iRecTracks++) {
- // AliMUONTrack* recTrack = (AliMUONTrack*) recTracks->At(iRecTracks);
- // AliMUONTrackParam* trackParam = (AliMUONTrackParam*) (recTrack->GetTrackParamAtHit())->First();
- // AliMUONTrackExtrap::ExtrapToZ(trackParam,0.);
- // recTrack->Print("full");
- // }
- // fRecData->ResetRecTracks();
- // }
- // fLoader->UnloadTracks();
-}
-
//_____________________________________________________________________________
void AliMUONCheck::SetEventsToCheck(Int_t firstEvent, Int_t lastEvent)
{