Skip to content

Commit

Permalink
added changes for checking between filter schemes
Browse files Browse the repository at this point in the history
  • Loading branch information
andilewhitehead committed Aug 18, 2016
1 parent a66b62a commit 63d530c
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 39 deletions.
36 changes: 23 additions & 13 deletions ANALYSIS/ESDfilter/AliAnalysisTaskESDfilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,10 @@ AliAnalysisTaskESDfilter::AliAnalysisTaskESDfilter():
fRefitVertexTracks(-1),
fRefitVertexTracksNCuts(0),
fRefitVertexTracksCuts(0),
fIsMuonCaloPass(kFALSE)
fIsMuonCaloPass(kFALSE),
fAddPCMv0s(kFALSE),
fbitfieldPCMv0sA(NULL),
fbitfieldPCMv0sB(NULL)
{
// Default constructor
fV0Cuts[0] = 33. ; // max allowed chi2
Expand Down Expand Up @@ -209,7 +212,10 @@ AliAnalysisTaskESDfilter::AliAnalysisTaskESDfilter(const char* name):
fRefitVertexTracks(-1),
fRefitVertexTracksNCuts(0),
fRefitVertexTracksCuts(0),
fIsMuonCaloPass(kFALSE)
fIsMuonCaloPass(kFALSE),
fAddPCMv0s(kFALSE),
fbitfieldPCMv0sA(NULL),
fbitfieldPCMv0sB(NULL)
{
// Constructor

Expand Down Expand Up @@ -891,13 +897,15 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
Double_t momPosAtV0vtx[3]={0.};
Double_t momNegAtV0vtx[3]={0.};
Int_t tofLabel[3] = {0};

TBits *bitfieldPCMv0sA = (TBits*) GetInputData(1);
TBits *bitfieldPCMv0sB = (TBits*) GetInputData(2);

if (fAddPCMv0s){
fbitfieldPCMv0sA = (TBits*) GetInputData(1);
fbitfieldPCMv0sB = (TBits*) GetInputData(2);
}
UInt_t convertInt;

for (Int_t nV0 = 0; nV0 < esd.GetNumberOfV0s(); ++nV0) {
convertInt = (UInt_t) nV0;
if (fAddPCMv0s) {convertInt = (UInt_t) nV0;}
if (fUsedV0[nV0]) continue; // skip if already added to the AOD

AliESDv0 *v0 = esd.GetV0(nV0);
Expand All @@ -917,14 +925,16 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
UInt_t selectV0 = 0;

//Add PCM V0s
if(bitfieldPCMv0sA){
if(bitfieldPCMv0sA->TestBitNumber(convertInt) && convertInt<= bitfieldPCMv0sA->GetNbits()){
selectV0 = 2;
if (fAddPCMv0s){
if(fbitfieldPCMv0sA){
if(fbitfieldPCMv0sA->TestBitNumber(convertInt) && convertInt<= fbitfieldPCMv0sA->GetNbits()){
selectV0 = 2;
}
}
}
if(bitfieldPCMv0sB){
if(bitfieldPCMv0sB->TestBitNumber(convertInt) && convertInt<= bitfieldPCMv0sB->GetNbits()){
selectV0 = 2;
if(fbitfieldPCMv0sB){
if(fbitfieldPCMv0sB->TestBitNumber(convertInt) && convertInt<= fbitfieldPCMv0sB->GetNbits()){
selectV0 = 2;
}
}
}

Expand Down
4 changes: 4 additions & 0 deletions ANALYSIS/ESDfilter/AliAnalysisTaskESDfilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
void SetRefitVertexTracks(Int_t algo=6, Double_t* cuts=0);

void SetMuonCaloPass();
void SetAddPCMv0s(Bool_t addPCMv0s) {fAddPCMv0s=addPCMv0s;}

private:
AliAnalysisTaskESDfilter(const AliAnalysisTaskESDfilter&);
Expand Down Expand Up @@ -174,6 +175,9 @@ 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;

ClassDef(AliAnalysisTaskESDfilter, 21); // Analysis task for standard ESD filtering
};
Expand Down
51 changes: 25 additions & 26 deletions ANALYSIS/ESDfilter/macros/AddTaskESDFilter.C
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ AliAnalysisTaskESDfilter *AddTaskESDFilter(Bool_t useKineFilter=kTRUE,
esdfilter->SetV0Filter(v0Filter);
}

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

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


if (useV0Filter && !isMuonCaloPass && addPCMv0s){
TObjArray *allContainers = mgr->GetContainers();
Int_t containersSize = allContainers->GetSize();
TString containerName;
AliAnalysisDataContainer* cinputPCMv0sA;
AliAnalysisDataContainer* cinputPCMv0sB;
for (Int_t i=0;i<containersSize;i++){
if (allContainers->At(i)){
containerName = allContainers->At(i)->GetName();
if (containerName.CompareTo("PCM offlineV0Finder container")==0){
cinputPCMv0sA = allContainers->At(i);
}
else{
cout << "No container for offline v0s found check that addv0sInESDFilter bool in AddTask_ConversionProduction.C is set to true" << endl;}
if (containerName.CompareTo("PCM onflyV0Finder container")==0){
cinputPCMv0sB = allContainers->At(i);
}
else{
cout << "No container for onfly v0s found check that addv0sInESDFilter bool in AddTask_ConversionProduction.C is set to true" << endl;
}
}
}
mgr->ConnectInput(esdfilter, 1, cinputPCMv0sA);
mgr->ConnectInput(esdfilter, 2, cinputPCMv0sB);
}

TObjArray *allContainers = mgr->GetContainers();
Int_t containersSize = allContainers->GetSize();
TString containerName;
AliAnalysisDataContainer* cinputPCMv0sA;
AliAnalysisDataContainer* cinputPCMv0sB;
for (Int_t i=0;i<containersSize;i++){
if (allContainers->At(i)){
containerName = allContainers->At(i)->GetName();
if (containerName.CompareTo("PCM offlineV0Finder container")==0){
cinputPCMv0sA = allContainers->At(i);
}
else{
cout << "No container for offline v0s" << endl;}
if (containerName.CompareTo("PCM onflyV0Finder container")==0){
cinputPCMv0sB = allContainers->At(i);
}
else{
cout << "No container for onfly v0s found" << endl;
}
}
}
mgr->ConnectInput(esdfilter, 1, cinputPCMv0sA);
mgr->ConnectInput(esdfilter, 2, cinputPCMv0sB);

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

0 comments on commit 63d530c

Please sign in to comment.