Skip to content

Commit

Permalink
added histogram for checks
Browse files Browse the repository at this point in the history
  • Loading branch information
andilewhitehead authored and dberzano committed Nov 24, 2016
1 parent a9029f3 commit 5b4efaa
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 21 deletions.
84 changes: 68 additions & 16 deletions ANALYSIS/ESDfilter/AliAnalysisTaskESDfilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,9 @@ AliAnalysisTaskESDfilter::AliAnalysisTaskESDfilter():
fIsMuonCaloPass(kFALSE),
fAddPCMv0s(kFALSE),
fbitfieldPCMv0sA(NULL),
fbitfieldPCMv0sB(NULL)
fbitfieldPCMv0sB(NULL),
fv0Histos(NULL),
fHistov0List(NULL)
{
// Default constructor
fV0Cuts[0] = 33. ; // max allowed chi2
Expand Down Expand Up @@ -215,7 +217,9 @@ AliAnalysisTaskESDfilter::AliAnalysisTaskESDfilter(const char* name):
fIsMuonCaloPass(kFALSE),
fAddPCMv0s(kFALSE),
fbitfieldPCMv0sA(NULL),
fbitfieldPCMv0sB(NULL)
fbitfieldPCMv0sB(NULL),
fv0Histos(NULL),
fHistov0List(NULL)
{
// Constructor

Expand All @@ -237,6 +241,7 @@ AliAnalysisTaskESDfilter::AliAnalysisTaskESDfilter(const char* name):
fCascadeCuts[7] = 100. ; // max radius of the fiducial volume
DefineInput(1,TBits::Class()); //Bit field for pcm v0s OfflineV0Finder
DefineInput(2,TBits::Class()); //Bit field for pcm v0s On-FlyV0Finder
DefineOutput(1,TList::Class()); //TList containing PCM v0 histos for consistency checks
}

AliAnalysisTaskESDfilter::~AliAnalysisTaskESDfilter()
Expand All @@ -250,7 +255,23 @@ void AliAnalysisTaskESDfilter::UserCreateOutputObjects()
{
//
// Create Output Objects conenct filter to outputtree
//
//
if (fAddPCMv0s){
fHistov0List = new TList();
fHistov0List->SetName("PCMv0Checks");
fv0Histos = new TH1D("v0CheckHisto","",8,1,9);
fv0Histos->GetXaxis()->SetBinLabel(1,"All PCM On-Fly");
fv0Histos->GetXaxis()->SetBinLabel(2,"All PCM Offline");
fv0Histos->GetXaxis()->SetBinLabel(3,"PCM On-Fly & v0filter");
fv0Histos->GetXaxis()->SetBinLabel(4,"PCM Offline & v0filter");
fv0Histos->GetXaxis()->SetBinLabel(5,"PCM On-Fly & v0 cascades");
fv0Histos->GetXaxis()->SetBinLabel(6,"PCM Offline & v0 cascades");
fv0Histos->GetXaxis()->SetBinLabel(7,"PCM On-Fly not selected by filter");
fv0Histos->GetXaxis()->SetBinLabel(8,"PCM Offline not selected by filter");
fHistov0List->Add(fv0Histos);
fHistov0List->SetOwner(kTRUE);
}
PostData(1,fHistov0List);
if(OutputTree())
{
OutputTree()->GetUserInfo()->Add(fTrackFilter);
Expand Down Expand Up @@ -351,6 +372,7 @@ void AliAnalysisTaskESDfilter::UserExec(Option_t */*option*/)
AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()->SetFillExtension(kTRUE);
}
ConvertESDtoAOD();
PostData(1,fHistov0List);
}

//______________________________________________________________________________
Expand Down Expand Up @@ -903,11 +925,25 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
fbitfieldPCMv0sA = (TBits*) GetInputData(1);
fbitfieldPCMv0sB = (TBits*) GetInputData(2);
}
UInt_t convertInt;
UInt_t posInt;

for (Int_t nV0 = 0; nV0 < esd.GetNumberOfV0s(); ++nV0) {
if (fAddPCMv0s) {convertInt = (UInt_t) nV0;}
if (fUsedV0[nV0]) continue; // skip if already added to the AOD
if (fAddPCMv0s) {posInt = (UInt_t) nV0;}
if (fUsedV0[nV0]){
if(fbitfieldPCMv0sA){
if(fbitfieldPCMv0sA->TestBitNumber(posInt) && posInt <= fbitfieldPCMv0sA->GetNbits()){
fv0Histos->Fill(5);
fv0Histos->Fill(1);
}
}
if(fbitfieldPCMv0sB){
if(fbitfieldPCMv0sB->TestBitNumber(posInt) && posInt <= fbitfieldPCMv0sB->GetNbits()){
fv0Histos->Fill(6);
fv0Histos->Fill(2);
}
}
continue; // skip if already added to the AOD
}

AliESDv0 *v0 = esd.GetV0(nV0);
Int_t posFromV0 = v0->GetPindex();
Expand All @@ -926,19 +962,18 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
UInt_t selectV0 = 0;

//Add PCM V0s
if (fAddPCMv0s){
if(fbitfieldPCMv0sA){
if(fbitfieldPCMv0sA->TestBitNumber(convertInt) && convertInt<= fbitfieldPCMv0sA->GetNbits()){
selectV0 = 2;
}
if(fbitfieldPCMv0sA){
if(fbitfieldPCMv0sA->TestBitNumber(posInt) && posInt <= fbitfieldPCMv0sA->GetNbits()){
selectV0 = 2;
fv0Histos->Fill(1);
}
if(fbitfieldPCMv0sB){
if(fbitfieldPCMv0sB->TestBitNumber(convertInt) && convertInt<= fbitfieldPCMv0sB->GetNbits()){
selectV0 = 2;
}
}
if(fbitfieldPCMv0sB){
if(fbitfieldPCMv0sB->TestBitNumber(posInt) && posInt <= fbitfieldPCMv0sB->GetNbits()){
selectV0 = 2;
fv0Histos->Fill(2);
}
}

if (fV0Filter) {
selectV0 |= fV0Filter->IsSelected(&v0objects);
// this is a little awkward but otherwise the
Expand All @@ -953,6 +988,23 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
esdVtx = 0;
}

if (fbitfieldPCMv0sA){
if (selectV0==3 && fbitfieldPCMv0sA->TestBitNumber(posInt)){
fv0Histos->Fill(3);
}
else if (selectV0==2 && fbitfieldPCMv0sA->TestBitNumber(posInt)){
fv0Histos->Fill(7);
}
}
if (fbitfieldPCMv0sB){
if (selectV0==3 && fbitfieldPCMv0sB->TestBitNumber(posInt)){
fv0Histos->Fill(4);
}
else if (selectV0==2 && fbitfieldPCMv0sB->TestBitNumber(posInt)){
fv0Histos->Fill(8);
}
}

v0->GetXYZ(pos[0], pos[1], pos[2]);

if (!fOldESDformat) {
Expand Down
8 changes: 5 additions & 3 deletions ANALYSIS/ESDfilter/AliAnalysisTaskESDfilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -175,9 +175,11 @@ class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
Int_t fRefitVertexTracksNCuts; // number of cut parameters
Double_t* fRefitVertexTracksCuts; //[fRefitVertexTracksNCuts] optional cuts for vertex refit
Bool_t fIsMuonCaloPass; /// whether or not this filtering is used on a muon_calo ESD
Bool_t fAddPCMv0s;
TBits* fbitfieldPCMv0sA;
TBits* fbitfieldPCMv0sB;
Bool_t fAddPCMv0s; // Add pcm v0s when v0filter is switched on
TBits* fbitfieldPCMv0sA; // Bitfield with PCM v0s from on-fly v0 finder
TBits* fbitfieldPCMv0sB; // Bitfield with PCM v0s from offline v0 finder
TH1D* fv0Histos; // v0 histos for PCM consistency checks
TList* fHistov0List; // TList containing PCM histos

ClassDef(AliAnalysisTaskESDfilter, 21); // Analysis task for standard ESD filtering
};
Expand Down
6 changes: 4 additions & 2 deletions ANALYSIS/ESDfilter/macros/AddTaskESDFilter.C
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,9 @@ AliAnalysisTaskESDfilter *AddTaskESDFilter(Bool_t useKineFilter=kTRUE,
v0Filter->AddCuts(esdV0Cuts);

esdfilter->SetV0Filter(v0Filter);
esdfilter->SetAddPCMv0s(addPCMv0s);
}

esdfilter->SetAddPCMv0s(addPCMv0s);
// Enable writing of Muon AODs
esdmuonfilter->SetWriteMuonAOD(writeMuonAOD);

Expand All @@ -135,7 +135,7 @@ AliAnalysisTaskESDfilter *AddTaskESDFilter(Bool_t useKineFilter=kTRUE,
mgr->ConnectOutput (esdfilter, 0, mgr->GetCommonOutputContainer());
mgr->ConnectInput (esdmuonfilter, 0, mgr->GetCommonInputContainer());

if (addPCMv0s){
TObjArray *allContainers = mgr->GetContainers();
Int_t containersSize = allContainers->GetSize();
TString containerName;
Expand All @@ -159,6 +159,8 @@ AliAnalysisTaskESDfilter *AddTaskESDFilter(Bool_t useKineFilter=kTRUE,
}
mgr->ConnectInput(esdfilter, 1, cinputPCMv0sA);
mgr->ConnectInput(esdfilter, 2, cinputPCMv0sB);
mgr->ConnectOutput(esdfilter ,1, mgr->CreateContainer("v0ConsistencyChecks", TList::Class(), AliAnalysisManager::kOutputContainer, "PCMv0Checks.root")) ;
}

if (useKineFilter) {
mgr->ConnectInput (kinefilter, 0, mgr->GetCommonInputContainer());
Expand Down

0 comments on commit 5b4efaa

Please sign in to comment.