/// \cond CLASSIMP
ClassImp(AliMUONCheck)
/// \endcond
+AliMUONCheck::AliMUONCheck(const char* galiceFile, const char* esdFile,Int_t firstEvent, Int_t lastEvent,const char* outDir)
+: TObject(),
+ fFileName(galiceFile),
+ fFileNameSim(galiceFile),
+ fesdFileName(esdFile),
+ foutDir(outDir),
+ fFirstEvent(firstEvent),
+ fLastEvent(lastEvent),
+ fRunLoader(0x0),
+ fRunLoaderSim(0x0),
+ fData(0x0),
+ fDataSim(0x0),
+ fTree(0)
+{
+ /// ctor
+
+ fRunLoader = AliRunLoader::Open(fFileName.Data(),"MUONFolder","READ");
+ if (!fRunLoader)
+ {
+ AliError(Form("Error opening %s file \n",fFileName.Data()));
+ }
+ else
+ {
+ fLoader = fRunLoader->GetLoader("MUONLoader");
+ if ( fLoader )
+ {
+ fData = new AliMUONData(fLoader,"MUON","MUON");
+ }
+ else
+ {
+ AliError(Form("Could get MUONLoader"));
+ }
+ }
+
+ fRunLoaderSim = AliRunLoader::Open(fFileNameSim.Data(),"MUONFolderSim","READ");
+ if (!fRunLoaderSim)
+ {
+ AliError(Form("Error opening %s file \n",fFileNameSim.Data()));
+ }
+ else
+ {
+ fLoaderSim = fRunLoaderSim->GetLoader("MUONLoader");
+ if ( fLoaderSim )
+ {
+ fDataSim = new AliMUONData(fLoaderSim,"MUON","MUON");
+ }
+ else
+ {
+ AliError(Form("Could get MUONLoader"));
+ }
+ }
+
+ char command[120];
+ sprintf(command,"rm -rf %s", foutDir);
+ gSystem->Exec(command);
+ gSystem->mkdir(foutDir);
+}
//_____________________________________________________________________________
- AliMUONCheck::AliMUONCheck(const char* galiceFile,const char* esdFile,Int_t firstEvent, Int_t lastEvent,const char* outDir)
+AliMUONCheck::AliMUONCheck(const char* galiceFile, const char* galiceFileSim, const char* esdFile,Int_t firstEvent, Int_t lastEvent,const char* outDir)
: TObject(),
fFileName(galiceFile),
+ fFileNameSim(galiceFileSim),
fesdFileName(esdFile),
foutDir(outDir),
fFirstEvent(firstEvent),
fLastEvent(lastEvent),
fRunLoader(0x0),
+ fRunLoaderSim(0x0),
fData(0x0),
+ fDataSim(0x0),
fTree(0)
{
/// ctor
}
}
+ fRunLoaderSim = AliRunLoader::Open(fFileNameSim.Data(),"MUONFolderSim","READ");
+ if (!fRunLoaderSim)
+ {
+ AliError(Form("Error opening %s file \n",fFileNameSim.Data()));
+ }
+ else
+ {
+ fLoaderSim = fRunLoaderSim->GetLoader("MUONLoader");
+ if ( fLoaderSim )
+ {
+ fDataSim = new AliMUONData(fLoaderSim,"MUON","MUON");
+ }
+ else
+ {
+ AliError(Form("Could get MUONLoader"));
+ }
+ }
+
char command[120];
sprintf(command,"rm -rf %s", foutDir);
gSystem->Exec(command);
//_____________________________________________________________________________
AliMUONCheck::~AliMUONCheck()
{
-
/// Destructor
fRunLoader->UnloadAll();
+ fRunLoaderSim->UnloadAll();
delete fRunLoader;
delete fData;
+ delete fRunLoaderSim;
+ delete fDataSim;
}
//_____________________________________________________________________________
// Stack of particle for each event
AliStack* stack;
- Int_t fnevents = fRunLoader->GetNumberOfEvents();
- fRunLoader->LoadKinematics("READ");
+ Int_t fnevents = fRunLoaderSim->GetNumberOfEvents();
+ fRunLoaderSim->LoadKinematics("READ");
Int_t endOfLoop = fLastEvent+1;
Int_t nmu2=0;
nev++;
- fRunLoader->GetEvent(ievent);
- stack = fRunLoader->Stack();
+ fRunLoaderSim->GetEvent(ievent);
+ stack = fRunLoaderSim->Stack();
npa = stack->GetNprimary();
npb = stack->GetNtrack();
printf("Primary particles %i \n",npa);
printf(" \n") ;
}//ievent
- fRunLoader->UnloadKinematics();
+ fRunLoaderSim->UnloadKinematics();
printf("=================================================================\n") ;
printf(" Total number of processed events %d \n", nev) ;
fprintf(outtxt,"**************************************************************** \n");
fclose(outtxt);
- fRunLoader->UnloadKinematics();
+ fRunLoaderSim->UnloadKinematics();
}
//_____________________________________________________________________________
hitDensity[3]->SetXTitle("R (cm)");
Int_t fnevents = fRunLoader->GetNumberOfEvents();
- fRunLoader->LoadTrackRefs();
+ fRunLoaderSim->LoadTrackRefs();
Int_t endOfLoop = fLastEvent+1;
if ( fLastEvent == -1 ) endOfLoop = fnevents;
Int_t nev=0;
Int_t ntot=fLastEvent+1-fFirstEvent;
for (ievent = fFirstEvent; ievent < endOfLoop; ++ievent ) {
- fRunLoader->GetEvent(ievent);
+ fRunLoaderSim->GetEvent(ievent);
Int_t save=-99;
nev++;
- TTree *tTR = fRunLoader->TreeTR();
+ TTree *tTR = fRunLoaderSim->TreeTR();
Int_t nentries = (Int_t)tTR->GetEntries();
TClonesArray *fRefArray = new TClonesArray("AliTrackReference");
TBranch *branch = tTR->GetBranch("MUON");
delete fRefArray;
}//evt loop
- fRunLoader->UnloadTrackRefs();
+ fRunLoaderSim->UnloadTrackRefs();
gSystem->cd(foutDir);
TCanvas *c6 = new TCanvas("c6","TOF",400,10,600,700);
c6->Divide(1,2);
printf("*** Leaving TRef() *** \n");
printf("*************************************************** \n");
- fRunLoader->UnloadTrackRefs();
+ fRunLoaderSim->UnloadTrackRefs();
}
//_____________________________________________________________________________
/// Check occupancy for the first event selected
// Loading MUON subsystem
- fLoader->LoadDigits("READ");
- AliMUONData muondata(fLoader,"MUON","MUON");
+ fLoaderSim->LoadDigits("READ");
+ AliMUONData muondata(fLoaderSim,"MUON","MUON");
AliMUONDigit * mDigit =0x0;
const AliMpVSegmentation * segbend = 0x0;
// Get event
printf(">>> Event %d \n", fFirstEvent);
- fRunLoader->GetEvent(fFirstEvent);
+ fRunLoaderSim->GetEvent(fFirstEvent);
muondata.SetTreeAddress("D");
muondata.GetDigits();
100.*((Float_t) totaloccupancyNonBending)/((Float_t) totalchannelsNonBending) );
muondata.ResetDigits();
// } // end cathode loop
- fLoader->UnloadDigits();
+ fLoaderSim->UnloadDigits();
}
//_____________________________________________________________________________
public:
AliMUONCheck(const char* galiceFile, const char* esdFile,
Int_t firstEvent=0, Int_t lastEvent=-1, const char* outDir="");
+ AliMUONCheck(const char* galiceFile, const char* galiceFileSim, const char* esdFile,
+ Int_t firstEvent=0, Int_t lastEvent=-1, const char* outDir="");
virtual ~AliMUONCheck();
/// Return true if contains valid data
AliMUONCheck& operator=(const AliMUONCheck& rhs);
private:
- TString fFileName; //!< File (galice.root) to read from
+ TString fFileName; //!< File (galice.root) to read from fro reconstructed data
+ TString fFileNameSim; //!< File (galiceSim.root) for simulated data
TString fesdFileName; //!< File (AliESDs.root) to read from
const char* foutDir; //!< output data directory
Int_t fFirstEvent; //!< First event to consider
Int_t fLastEvent; //!< Last event to consider
- AliRunLoader* fRunLoader; //!< AliRunLoader pointer
- AliLoader* fLoader; //!< MUON loader pointer
+ AliRunLoader* fRunLoader; //!< AliRunLoader pointer for reconstruction
+ AliRunLoader* fRunLoaderSim; //!< AliRunLoader pointer for simulation
+
+ AliLoader* fLoader; //!< MUON loader pointer for reconstruction
+ AliLoader* fLoaderSim; //!< MUON loader pointer for simulation
- AliMUONData* fData; //!< AliMUONData pointer (to access containers)
+ AliMUONData* fData; //!< AliMUONData pointer (to access containers) for recontruction
+ AliMUONData* fDataSim; //!< AliMUONData pointer (to access containers) for simulation
TTree * fTree ; //!< pointer to the analyzed TTree or TChain
AliESD * fESD ; //!< Declaration of leave types