//ROOT includes
-#include <TROOT.h>
-#include <TSystem.h>
#include <TChain.h>
#include <TFile.h>
-#include <TList.h>
#include <TClonesArray.h>
#include <TH2F.h>
-#include <TH1F.h>
-#include <TMath.h>
-#include <Riostream.h>
//ANALYSIS includes
#include "AliAnalysisManager.h"
-#include "AliAnalysisTask.h"
//STEER includes
#include "AliESDEvent.h"
#include "AliGeomManager.h"
-//PWG3/muon includes
+//PWG3/muondep includes
#include "AliAnalysisTaskMuonTrackingEff.h"
#include "AliCheckMuonDetEltResponse.h"
//MUON includes
#include "AliMUONTrackExtrap.h"
+#include "AliMUONGeometryTransformer.h"
ClassImp(AliAnalysisTaskMuonTrackingEff)
-const Int_t AliAnalysisTaskMuonTrackingEff::fTotNbrOfDetectionElt = 156;
-const Int_t AliAnalysisTaskMuonTrackingEff::fTotNbrOfChamber = 10;
+const Int_t AliAnalysisTaskMuonTrackingEff::fgkTotNbrOfDetectionElt = 156;
+const Int_t AliAnalysisTaskMuonTrackingEff::fgkTotNbrOfChamber = 10;
//________________________________________________________________________
AliAnalysisTaskMuonTrackingEff::AliAnalysisTaskMuonTrackingEff()
//Define detection element efficiency histograms
//----------------------------------------------
- fDetEltEffHistList = new TClonesArray("TH2F",fTotNbrOfDetectionElt + 3); //!<+3 for: 1.the total efficiency chamber by chamber histogram.
+ fDetEltEffHistList = new TClonesArray("TH2F",fgkTotNbrOfDetectionElt + 3); //!<+3 for: 1.the total efficiency chamber by chamber histogram.
//!< 2.the total number of tracks detected by the tracking system.
//!< 3.the number of track used for the efficiency calculation chamber by chamber
- fDetEltTDHistList = new TClonesArray("TH2F",fTotNbrOfDetectionElt + 1);
- fDetEltTTHistList = new TClonesArray("TH2F",fTotNbrOfDetectionElt + 1);
+ fDetEltTDHistList = new TClonesArray("TH2F",fgkTotNbrOfDetectionElt + 1);
+ fDetEltTTHistList = new TClonesArray("TH2F",fgkTotNbrOfDetectionElt + 1);
- fChamberEffHistList = new TClonesArray("TH1F", fTotNbrOfChamber + 3);
- fChamberTDHistList = new TClonesArray("TH1F", fTotNbrOfChamber + 1);
- fChamberTTHistList = new TClonesArray("TH1F", fTotNbrOfChamber + 1);
+ fChamberEffHistList = new TClonesArray("TH1F", fgkTotNbrOfChamber + 3);
+ fChamberTDHistList = new TClonesArray("TH1F", fgkTotNbrOfChamber + 1);
+ fChamberTTHistList = new TClonesArray("TH1F", fgkTotNbrOfChamber + 1);
- for (Int_t i = 0; i<fTotNbrOfDetectionElt; ++i)
+ for (Int_t i = 0; i<fgkTotNbrOfDetectionElt; ++i)
{
Int_t iDetElt = 0;
if (i<16) iDetElt = 100*(i/4+1) + i - int(i/4)*4;
((TH2F*) fDetEltEffHistList->UncheckedAt(i)) -> SetOption("LEGO");
}
- for (Int_t j = 0; j < fTotNbrOfChamber; j++)
+ for (Int_t j = 0; j < fgkTotNbrOfChamber; j++)
{
Char_t histName[255];
Char_t histTitle[255];
((TH1F*) fChamberEffHistList->UncheckedAt(j)) -> Sumw2();
}
- new((*fDetEltTDHistList )[fTotNbrOfDetectionElt]) TH2F("TD_Chamber" ,"TD_Chamber" ,10,0,10,1,0,1); //!<Detected tracks.
- new((*fDetEltTTHistList )[fTotNbrOfDetectionElt]) TH2F("TT_Chamber" ,"TT_Chamber" ,10,0,10,1,0,1); //!<Tracks total number.
- new((*fDetEltEffHistList)[fTotNbrOfDetectionElt]) TH2F("fChamberEff","fChamberEff",10,0,10,1,0,1); //!<Chamber efficiency.
-
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt)) -> GetXaxis() -> SetTitle("Chamber number");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt)) -> GetYaxis() -> SetTitle("");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt)) -> GetZaxis() -> SetTitle("Efficiency (%)");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt)) -> GetXaxis() -> SetTitleOffset(1.8);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt)) -> GetYaxis() -> SetTitleOffset(1.8);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt)) -> GetZaxis() -> SetTitleOffset(1.2);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt)) -> SetOption("LEGO");
+ new((*fDetEltTDHistList )[fgkTotNbrOfDetectionElt]) TH2F("TD_Chamber" ,"TD_Chamber" ,10,0,10,1,0,1); //!<Detected tracks.
+ new((*fDetEltTTHistList )[fgkTotNbrOfDetectionElt]) TH2F("TT_Chamber" ,"TT_Chamber" ,10,0,10,1,0,1); //!<Tracks total number.
+ new((*fDetEltEffHistList)[fgkTotNbrOfDetectionElt]) TH2F("fChamberEff","fChamberEff",10,0,10,1,0,1); //!<Chamber efficiency.
+
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt)) -> GetXaxis() -> SetTitle("Chamber number");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt)) -> GetYaxis() -> SetTitle("");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt)) -> GetZaxis() -> SetTitle("Efficiency (%)");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt)) -> GetXaxis() -> SetTitleOffset(1.8);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt)) -> GetYaxis() -> SetTitleOffset(1.8);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt)) -> GetZaxis() -> SetTitleOffset(1.2);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt)) -> SetOption("LEGO");
new((*fDetEltEffHistList)[157]) TH2F("TT_Chamber" ,"TT_Chamber" ,10,0,10,1,0,1); //!<Tracks total number by chamber.
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 1)) -> GetXaxis() -> SetTitle("Chamber number");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 1)) -> GetYaxis() -> SetTitle("");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 1)) -> GetZaxis() -> SetTitle("Number of tracks");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 1)) -> GetXaxis() -> SetTitleOffset(1.8);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 1)) -> GetYaxis() -> SetTitleOffset(1.8);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 1)) -> GetZaxis() -> SetTitleOffset(1.2);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 1)) -> SetOption("LEGO");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 1)) -> GetXaxis() -> SetTitle("Chamber number");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 1)) -> GetYaxis() -> SetTitle("");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 1)) -> GetZaxis() -> SetTitle("Number of tracks");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 1)) -> GetXaxis() -> SetTitleOffset(1.8);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 1)) -> GetYaxis() -> SetTitleOffset(1.8);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 1)) -> GetZaxis() -> SetTitleOffset(1.2);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 1)) -> SetOption("LEGO");
new((*fDetEltEffHistList)[158]) TH2F("Total_Number_of_Tracks" ,"Total_Number_of_Tracks" ,1,0,1,1,0,1); //!<Tracks total number.
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 2)) -> GetXaxis() -> SetTitle("");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 2)) -> GetYaxis() -> SetTitle("");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 2)) -> GetZaxis() -> SetTitle("Number of tracks");
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 2)) -> GetXaxis() -> SetTitleOffset(1.8);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 2)) -> GetYaxis() -> SetTitleOffset(1.8);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 2)) -> GetZaxis() -> SetTitleOffset(1.2);
- ((TH2F*) fDetEltEffHistList->UncheckedAt(fTotNbrOfDetectionElt + 2)) -> SetOption("LEGO");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 2)) -> GetXaxis() -> SetTitle("");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 2)) -> GetYaxis() -> SetTitle("");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 2)) -> GetZaxis() -> SetTitle("Number of tracks");
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 2)) -> GetXaxis() -> SetTitleOffset(1.8);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 2)) -> GetYaxis() -> SetTitleOffset(1.8);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 2)) -> GetZaxis() -> SetTitleOffset(1.2);
+ ((TH2F*) fDetEltEffHistList->UncheckedAt(fgkTotNbrOfDetectionElt + 2)) -> SetOption("LEGO");
- new((*fChamberTDHistList )[fTotNbrOfChamber]) TH1F("TD_Chamber_2" ,"TD_Chamber_2" ,10,0,10); //!<Detected tracks.
- new((*fChamberTTHistList )[fTotNbrOfChamber]) TH1F("TT_Chamber_2" ,"TT_Chamber_2" ,10,0,10); //!<Tracks total number.
- new((*fChamberEffHistList)[fTotNbrOfChamber]) TH1F("fChamberEff_2","fChamberEff_2",10,0,10); //!<Chamber efficiency.
+ new((*fChamberTDHistList )[fgkTotNbrOfChamber]) TH1F("TD_Chamber_2" ,"TD_Chamber_2" ,10,0,10); //!<Detected tracks.
+ new((*fChamberTTHistList )[fgkTotNbrOfChamber]) TH1F("TT_Chamber_2" ,"TT_Chamber_2" ,10,0,10); //!<Tracks total number.
+ new((*fChamberEffHistList)[fgkTotNbrOfChamber]) TH1F("fChamberEff_2","fChamberEff_2",10,0,10); //!<Chamber efficiency.
- ((TH1F*) fChamberTDHistList->UncheckedAt(fTotNbrOfChamber)) -> Sumw2();
- ((TH1F*) fChamberTTHistList->UncheckedAt(fTotNbrOfChamber)) -> Sumw2();
+ ((TH1F*) fChamberTDHistList->UncheckedAt(fgkTotNbrOfChamber)) -> Sumw2();
+ ((TH1F*) fChamberTTHistList->UncheckedAt(fgkTotNbrOfChamber)) -> Sumw2();
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber)) -> GetXaxis() -> SetTitle("Chamber number");
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber)) -> GetYaxis() -> SetTitle("");
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber)) -> GetXaxis() -> SetTitleOffset(1.8);
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber)) -> GetYaxis() -> SetTitleOffset(1.8);
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber)) -> Sumw2();
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber)) -> SetOption("");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber)) -> GetXaxis() -> SetTitle("Chamber number");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber)) -> GetYaxis() -> SetTitle("");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber)) -> GetXaxis() -> SetTitleOffset(1.8);
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber)) -> GetYaxis() -> SetTitleOffset(1.8);
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber)) -> Sumw2();
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber)) -> SetOption("");
new((*fChamberEffHistList)[11]) TH1F("TT_Chamber_2" ,"TT_Chamber_2" ,10,0,10); //!<Tracks total number by chamber.
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 1)) -> GetXaxis() -> SetTitle("Chamber number");
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 1)) -> GetYaxis() -> SetTitle("");
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 1)) -> GetXaxis() -> SetTitleOffset(1.8);
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 1)) -> GetYaxis() -> SetTitleOffset(1.8);
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 1)) -> Sumw2();
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 1)) -> SetOption("");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 1)) -> GetXaxis() -> SetTitle("Chamber number");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 1)) -> GetYaxis() -> SetTitle("");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 1)) -> GetXaxis() -> SetTitleOffset(1.8);
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 1)) -> GetYaxis() -> SetTitleOffset(1.8);
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 1)) -> Sumw2();
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 1)) -> SetOption("");
new((*fChamberEffHistList)[12]) TH1F("Total_Number_of_Tracks_2" ,"Total_Number_of_Tracks_2" ,1,0,1); //!<Tracks total number.
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 2)) -> GetXaxis() -> SetTitle("");
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 2)) -> GetYaxis() -> SetTitle("");
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 2)) -> GetXaxis() -> SetTitleOffset(1.8);
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 2)) -> GetYaxis() -> SetTitleOffset(1.8);
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 2)) -> Sumw2();
- ((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 2)) -> SetOption("");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 2)) -> GetXaxis() -> SetTitle("");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 2)) -> GetYaxis() -> SetTitle("");
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 2)) -> GetXaxis() -> SetTitleOffset(1.8);
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 2)) -> GetYaxis() -> SetTitleOffset(1.8);
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 2)) -> Sumw2();
+ ((TH1F*) fChamberEffHistList->UncheckedAt(fgkTotNbrOfChamber + 2)) -> SetOption("");
#include "AliAnalysisTask.h"
-#include "AliCheckMuonDetEltResponse.h"
-#include "AliMUONGeometryTransformer.h"
+class AliCheckMuonDetEltResponse;
+class AliMUONGeometryTransformer;
class AliESDEvent;
class TClonesArray;
class TH2F;
virtual void Exec(Option_t *option);
virtual void Terminate(Option_t *option);
- static const Int_t fTotNbrOfDetectionElt; ///< The total number of detection element in the tracking system.
- static const Int_t fTotNbrOfChamber;
+ static const Int_t fgkTotNbrOfDetectionElt; ///< The total number of detection element in the tracking system.
+ static const Int_t fgkTotNbrOfChamber;
void ComputeErrors(); ///< Compute the error on the efficiency (see .cxx for the formula)
void SetCosmic(Bool_t isCosmic) {fIsCosmicData = isCosmic;};
- Bool_t IsCosmic() {return fIsCosmicData;};
+ Bool_t IsCosmic() const {return fIsCosmicData;};
private:
AliESDEvent * fESD; //!<ESD object
Bool_t fIsCosmicData;
- ClassDef(AliAnalysisTaskMuonTrackingEff, 1)
+ ClassDef(AliAnalysisTaskMuonTrackingEff, 0)
};
#endif
//Author: Nicolas LE BRIS - SUBATECH Nantes
//Modified by Matthieu LENHARDT - SUBATECH Nantes
-//PWG3/muon:
-#include "AliAnalysisTaskMuonTrackingEff.h"
+//PWG3/muondep:
#include "AliCheckMuonDetEltResponse.h"
//include STEER:
-#include "AliLog.h"
#include "AliESDEvent.h"
-#include "AliTracker.h"
#include "AliESDMuonTrack.h"
//include MUON:
#include "AliMUONTrackExtrap.h"
#include "AliMUONVCluster.h"
#include "AliMUONConstants.h"
-#include "AliMUONGeometryTransformer.h"
#include "AliMUONESDInterface.h"
+#include "AliMUONGeometryTransformer.h"
//include MUON/mapping:
#include "mapping/AliMpDEManager.h"
#include "mapping/AliMpSegmentation.h"
-#include "mapping/AliMpSlat.h"
#include "mapping/AliMpSlatSegmentation.h"
-#include "mapping/AliMpSector.h"
#include "mapping/AliMpSectorSegmentation.h"
#include "mapping/AliMpPad.h"
//include ROOT:
-#include <Riostream.h>
-#include <TMath.h>
-#include <TROOT.h>
-#include <TSystem.h>
#include <TH2F.h>
-#include <TH1F.h>
#include <TClonesArray.h>
-#include <TPaveLabel.h>
-#include <TList.h>
/// \cond CLASSIMP
ClassImp(AliCheckMuonDetEltResponse)
/// \endcond
-const Int_t AliCheckMuonDetEltResponse::fgkNbrOfChamber = 10;
-const Int_t AliCheckMuonDetEltResponse::fgkNbrOfStation = 5;
+const Int_t AliCheckMuonDetEltResponse::fgkNCh = AliMUONConstants::NTrackingCh();
+const Int_t AliCheckMuonDetEltResponse::fgkNSt = AliMUONConstants::NTrackingSt();
+const Int_t AliCheckMuonDetEltResponse::fgkNDE = 156;
const Int_t AliCheckMuonDetEltResponse::fgkNbrOfDetectionElt[10] = {4, 4, 4, 4, 18, 18, 26, 26, 26, 26};
const Int_t AliCheckMuonDetEltResponse::fgkFirstDetectionElt[10] = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
const Int_t AliCheckMuonDetEltResponse::fgkOffset = 100;
-const Int_t AliCheckMuonDetEltResponse::fgkOverlapSize = 15;
-const Int_t AliCheckMuonDetEltResponse::fgkYSlatSize = 20;
//_____________________________________________________________________________
AliCheckMuonDetEltResponse::AliCheckMuonDetEltResponse()
: TObject(),
- fNCh(0),
- fNSt(0),
- fNDE(0),
fkTransformer(0x0),
fESD(0x0),
fTracksTotalNbr(0x0),
{
/// Default constructor
- fNCh = AliCheckMuonDetEltResponse::fgkNbrOfChamber;
- fNSt = AliCheckMuonDetEltResponse::fgkNbrOfStation;
- fNDE = AliAnalysisTaskMuonTrackingEff::fTotNbrOfDetectionElt;
fIsCosmicData = kFALSE;
fNbrUsableTracks = 0;
- for (Int_t iCluster = 0; iCluster<fNCh; ++iCluster)
+ for (Int_t iCluster = 0; iCluster<fgkNCh; ++iCluster)
fNbrClustersCh[iCluster] = 0;
- for (Int_t i=0; i<fNCh; ++i)
+ for (Int_t i=0; i<fgkNCh; ++i)
fTrackFilter[i] = 0;
}
//_____________________________________________________________________________
AliCheckMuonDetEltResponse::AliCheckMuonDetEltResponse(const AliCheckMuonDetEltResponse& src)
: TObject(src),
- fNCh(0),
- fNSt(0),
- fNDE(0),
fkTransformer(0x0),
fESD(0x0),
fTracksTotalNbr(0x0),
TClonesArray* chamberTTHistList,
Bool_t isCosmic)
: TObject(),
- fNCh(0),
- fNSt(0),
- fNDE(0),
fkTransformer(transformer),
fESD(esd),
fTracksTotalNbr(0),
{
/// Constructor
- fNCh = AliCheckMuonDetEltResponse::fgkNbrOfChamber;
- fNSt = AliCheckMuonDetEltResponse::fgkNbrOfStation;
- fNDE = AliAnalysisTaskMuonTrackingEff::fTotNbrOfDetectionElt;
fIsCosmicData = isCosmic;
fNbrUsableTracks = 0;
- for (Int_t iCluster = 0; iCluster<fNCh; ++iCluster)
+ for (Int_t iCluster = 0; iCluster<fgkNCh; ++iCluster)
fNbrClustersCh[iCluster] = 0;
- for (Int_t i=0; i<fNCh; ++i)
+ for (Int_t i=0; i<fgkNCh; ++i)
fTrackFilter[i] = 0;
}
//_____________________________________________________________________________
void AliCheckMuonDetEltResponse::TrackLoop()
{
- //
- // Track Loop
- //
+// Check if the track is kept
AliESDMuonTrack* esdTrack;
AliMUONTrack track;
Int_t nTracks, iTrack;
// End of long stuff
- // Important part
+ // Important part
if (nTriggerHit < 10)
{
AliMUONESDInterface::ESDToMUON(*esdTrack, track);
//_____________________________________________________________________________
void AliCheckMuonDetEltResponse::TrackParamLoop()
{
- //
- // TrackParam Loop
- //
-
+// Loop on all the track params and fill the histos
Int_t nTrackParams = (Int_t) fTrackParams->GetEntriesFast(); //!<Number of trackParams in the track.
Int_t iTrackParam = 0; //!<Number of the trackParam of the track.
Int_t oldChamber = -1, newChamber = 0; //!<To check if there is 0, 1 or 2 (overlap cases) clusters in the same chamber for a track.
Int_t detElt; //!<Detection element Id.
- for (Int_t ch = 0; ch < fNCh; ++ch)
+ for (Int_t ch = 0; ch < fgkNCh; ++ch)
fTrackFilter[ch] = 0;
chamberResponse[fCluster->GetChamberId()] = 1;
}
- for (Int_t station = 0; station < fNSt-1; ++station)
+ for (Int_t station = 0; station < fgkNSt-1; ++station)
{
Int_t filter; //<!
Int_t ch1, ch2, ch3, ch4; //<!
FindAndFillMissedDetElt(fTrackParam, oldChamber+1, nbrMissChamber); //!<Calculation of the parameters of the missing cluster(s).
}
- if ( iTrackParam == nTrackParams - 1 && newChamber != fNCh-1) //!<Check if the last chamber, chamber 9 (from 0 to 9) has responded.
- FindAndFillMissedDetElt(fTrackParam, fNCh-1, 1); //!<Calculation of the parameters of the missing cluster(s) in the last chamber.
+ if ( iTrackParam == nTrackParams - 1 && newChamber != fgkNCh-1) //!<Check if the last chamber, chamber 9 (from 0 to 9) has responded.
+ FindAndFillMissedDetElt(fTrackParam, fgkNCh-1, 1); //!<Calculation of the parameters of the missing cluster(s) in the last chamber.
}
oldChamber = newChamber;
Double_t posXL,
Double_t posYL)
{
+// Fill the histo for tracks detected
if(fTrackFilter[chamber]== 1)
{
Int_t iDet = 0; //!<Position of the detection element in the histograms' list.
iDet = FromDetElt2iDet(chamber, detElt);
((TH2F*) fDetEltTDHistList->UncheckedAt(iDet))->Fill(posXL, posYL);
- ((TH2F*) fDetEltTDHistList->UncheckedAt(fNDE))->Fill(chamber, 0);
+ ((TH2F*) fDetEltTDHistList->UncheckedAt(fgkNDE))->Fill(chamber, 0);
Int_t detEltLocalId = 0; //!<Id of the detection element in the station
detEltLocalId = FromDetElt2LocalId(chamber, detElt);
Double_t posXL,
Double_t posYL)
{
+// Fill the histo for total number of tracks
if(fTrackFilter[chamber] == 1)
{
Int_t iDet = 0; //!<Position of the detection element in the histograms' list.
iDet = FromDetElt2iDet(chamber, detElt);
((TH2F*) fDetEltTTHistList->UncheckedAt(iDet)) -> Fill(posXL, posYL);
- ((TH2F*) fDetEltTTHistList->UncheckedAt(fNDE))->Fill(chamber, 0);
+ ((TH2F*) fDetEltTTHistList->UncheckedAt(fgkNDE))->Fill(chamber, 0);
Int_t detEltLocalId = 0; //!<Id of the detection element in the station
detEltLocalId = FromDetElt2LocalId(chamber, detElt);
//_____________________________________________________________________________
-const Int_t AliCheckMuonDetEltResponse::FromDetElt2iDet(Int_t chamber,
- Int_t detElt)
+Int_t AliCheckMuonDetEltResponse::FromDetElt2iDet(Int_t chamber,
+ Int_t detElt) const
{
///
///Connexion between the detection element X and its position in the list of histograms iX.
//_____________________________________________________________________________
-const Int_t AliCheckMuonDetEltResponse::FromDetElt2LocalId(Int_t chamber,
- Int_t detElt)
+Int_t AliCheckMuonDetEltResponse::FromDetElt2LocalId(Int_t chamber,
+ Int_t detElt) const
{
///
///Connexion between the detection element X and its number in the station.
//_____________________________________________________________________________
void AliCheckMuonDetEltResponse::CoordinatesOfMissingCluster(Double_t x1, Double_t y1, Double_t z1,
Double_t x2, Double_t y2, Double_t z2,
- Double_t& x, Double_t& y)
+ Double_t& x, Double_t& y) const
{
//
//Compute the coordinates of the missing cluster.
/// \brief tracking chamber efficiency from data
//Author: Nicolas LE BRIS - SUBATECH Nantes
-#include <TH2F.h>
-//#include <TObject.h>
-//#include <TClonesArray.h>
+#include <TObject.h>
-class TObject;
-class TClonesArray;
+class AliESDEvent;
class AliMUONTrackParam;
class AliMUONTrack;
class AliMUONVCluster;
class AliMUONGeometryTransformer;
-class AliESDEvent;
+class TClonesArray;
class AliCheckMuonDetEltResponse : public TObject
{
void TrackLoop ();
void TrackParamLoop ();
- const Int_t GetNbrUsableTracks(){return fNbrUsableTracks;};
+ Int_t GetNbrUsableTracks() const {return fNbrUsableTracks;};
void SetNbrUsableTracks(Int_t nUsable){fNbrUsableTracks = nUsable;};
+ Bool_t IsCosmic() const {return fIsCosmicData;};
void SetCosmic(Bool_t isCosmic) {fIsCosmicData = isCosmic;};
- const Bool_t IsCosmic() {return fIsCosmicData;};
private:
void CoordinatesOfMissingCluster(Double_t x1, Double_t y1, Double_t z1,
Double_t x2, Double_t y2, Double_t z2,
- Double_t& x, Double_t& y);
+ Double_t& x, Double_t& y) const;
Bool_t CoordinatesInDetEltSt12(Int_t DeId, Double_t x, Double_t y);
Bool_t CoordinatesInDetEltSt345(Int_t DeId, Double_t x, Double_t y);
+ Int_t FromDetElt2iDet (Int_t chamber, Int_t detElt) const;
+ Int_t FromDetElt2LocalId (Int_t chamber, Int_t detElt) const;
- Int_t fNCh; //!<Number of tracking chamber.
- Int_t fNSt; //!<Number of tracking station.
- Int_t fNDE; //!<Number of detection element in the tracking system.
-
- const Int_t FromDetElt2iDet (Int_t chamber, Int_t detElt);
- const Int_t FromDetElt2LocalId (Int_t chamber, Int_t detElt);
const AliMUONGeometryTransformer* fkTransformer; //!<Geometry transformer
- AliESDEvent* fESD; //!<ESD event object
+ AliESDEvent* fESD; //<!Current event
Int_t fNbrClustersCh[10]; //!<Number of clusters in the chamber [fChamberNbr].
Int_t fTracksTotalNbr; //!<Total number of tracks in the event.
Bool_t fIsCosmicData; //!<Check if the data are cosmic rays (used only to cut cosmic shower at the trigger level if true)
Int_t fNbrUsableTracks; //!<Number of usable tracks (matches trigger and contains traker data, plus a trigger condition for cosmic)
- TClonesArray * fTrackParams; //!<Clone Array of TrackParams
- AliMUONTrackParam* fTrackParam; //!<TrackParam data member
- AliMUONVCluster * fCluster; //!<Cluster data member
+ TClonesArray * fTrackParams; //!<Array of track param
+ AliMUONTrackParam* fTrackParam; //!<Current track param
+ AliMUONVCluster * fCluster; //!<Current cluster
TClonesArray* fDetEltTDHistList; //!<List of histograms of the tracks detected in the detection elements
TClonesArray* fDetEltTTHistList; //!<List of histograms of the tracks which have passed through the detection elements
TClonesArray* fChamberTDHistList; //!<List of histograms of the tracks detected in the chambers
TClonesArray* fChamberTTHistList; //!<List of histograms of the tracks which have passed through the chambers
- static const Int_t fgkNbrOfChamber; ///< The total number of chamber in the tracking system.
- static const Int_t fgkNbrOfStation; ///< The total number of station in the tracking system.
+ static const Int_t fgkNCh; ///< The total number of chamber in the tracking system.
+ static const Int_t fgkNSt; ///< The total number of station in the tracking system.
+ static const Int_t fgkNDE; ///< Number of detection element in the tracking system.
static const Int_t fgkNbrOfDetectionElt[10]; ///< The total number of detection element in each chamber.
static const Int_t fgkFirstDetectionElt[10]; ///< The Id of the first detection element of each chamber.
- static const Int_t fgkOffset; ///< fgkFirstDetectionElt[iChamber] = fOffset * (iChamber+1).
- static const Int_t fgkOverlapSize; ///< Average size (in cm) of the overlap area between two detection eltement.
- static const Int_t fgkYSlatSize; ///< Average size (in cm) of the overlap area between two detection eltement.
+ static const Int_t fgkOffset; ///< fFirstDetectionElt[iChamber] = fOffset * (iChamber+1).
ClassDef(AliCheckMuonDetEltResponse, 0)
};