#include <TH2F.h>
#include <TH1F.h>
#include <TMath.h>
+#include "Riostream.h"
//ANALYSIS includes
#include "AliAnalysisManager.h"
//________________________________________________________________________
AliAnalysisTaskMuonTrackingEff::AliAnalysisTaskMuonTrackingEff()
:
- fIsCosmicData(kFALSE),
AliAnalysisTask(),
fTransformer(0x0),
fESD(0x0),
fDetEltTTHistList(0x0),
fChamberEffHistList(0x0),
fChamberTDHistList(0x0),
- fChamberTTHistList(0x0)
+ fChamberTTHistList(0x0),
+ fChamberEff(0x0),
+ fIsCosmicData(kFALSE)
{
/// Default constructor
}
//________________________________________________________________________
AliAnalysisTaskMuonTrackingEff::AliAnalysisTaskMuonTrackingEff(const AliAnalysisTaskMuonTrackingEff& src)
:
- fIsCosmicData(kFALSE),
AliAnalysisTask(src),
fTransformer(0x0),
fESD(0x0),
fDetEltTTHistList(0x0),
fChamberEffHistList(0x0),
fChamberTDHistList(0x0),
- fChamberTTHistList(0x0)
+ fChamberTTHistList(0x0),
+ fChamberEff(0x0),
+ fIsCosmicData(kFALSE)
{
/// copy ctor
src.Copy(*this);
const AliMUONGeometryTransformer* transformer,
Bool_t isCosmic)
:
- fIsCosmicData(kFALSE),
AliAnalysisTask(name, "AnalysisTaskESD"),
- fTransformer(transformer),
+ fTransformer(0x0),
fESD(0x0),
fDetEltEffHistList(0x0),
fDetEltTDHistList(0x0),
fDetEltTTHistList(0x0),
fChamberEffHistList(0x0),
fChamberTDHistList(0x0),
- fChamberTTHistList(0x0)
+ fChamberTTHistList(0x0),
+ fChamberEff(0x0),
+ fIsCosmicData(kFALSE)
{
//Constructor
//-----------
fIsCosmicData = isCosmic;
+ fTransformer = transformer;
//Define detection element efficiency histograms
//----------------------------------------------
((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 2)) -> Sumw2();
((TH1F*) fChamberEffHistList->UncheckedAt(fTotNbrOfChamber + 2)) -> SetOption("");
+
+
+ //fChamberEff = new AliCheckMuonDetEltResponse(fTransformer, fESD, fDetEltTDHistList, fDetEltTTHistList, fChamberTDHistList, fChamberTTHistList);
+
+
+
//Define input & output
//---------------------
// -Input slot 0 works with a TChain:
DefineInput(0, TChain::Class());
-// -Output slot 0 writes into a TClonesArray:
+// -Output slots 0 to 5 writes into a TClonesArray:
DefineOutput(0, TClonesArray::Class());
DefineOutput(1, TClonesArray::Class());
DefineOutput(2, TClonesArray::Class());
DefineOutput(3, TClonesArray::Class());
+ DefineOutput(4, TClonesArray::Class());
+ DefineOutput(5, TClonesArray::Class());
}
delete fChamberEffHistList;
delete fChamberTDHistList;
delete fChamberTTHistList;
+ delete fChamberEff;
}
{
//Execute analysis for current event
-
- AliCheckMuonDetEltResponse* chamberEff;
- chamberEff = new AliCheckMuonDetEltResponse(fTransformer, fESD, fDetEltTDHistList, fDetEltTTHistList, fChamberTDHistList, fChamberTTHistList);
- chamberEff->CheckDetEltResponse();
+ if (fChamberEff == 0x0)
+ fChamberEff = new AliCheckMuonDetEltResponse(fTransformer, fESD, fDetEltTDHistList, fDetEltTTHistList, fChamberTDHistList, fChamberTTHistList);
+ fChamberEff->CheckDetEltResponse();
for( Int_t i = 0; i<156; ++i)
ComputeErrors();
-
//Post the output data:
PostData(0, fDetEltTDHistList);
PostData(1, fDetEltTTHistList);
for (Int_t ii = 0; ii < 10; ii++)
{
Int_t NumberOfBins = ((TH1F*) fChamberEffHistList->UncheckedAt(ii))->GetNbinsX();
- for (Int_t jj = 0; jj < NumberOfBins; jj++)
+ for (Int_t jj = 1; jj <= NumberOfBins; jj++)
{
Double_t Ntd = ((TH1F*) fChamberTDHistList->UncheckedAt(ii))->GetBinContent(jj);
Double_t Ntt = ((TH1F*) fChamberTTHistList->UncheckedAt(ii))->GetBinContent(jj);