task->AddDielectron(lowmass4);
printf("add: %s\n",lowmass4->GetName());
- AliDielectron *lowmass6=ConfigLMEEPbPb2011AOD(6,hasMC,bESDANA);
- task->AddDielectron(lowmass6);
- printf("add: %s\n",lowmass6->GetName());
+ AliDielectron *lowmass1=ConfigLMEEPbPb2011AOD(1,hasMC,bESDANA);
+ task->AddDielectron(lowmass1);
+ printf("add: %s\n",lowmass1->GetName());
if (PIDbaseline) {
AliDielectron *lowmass7=ConfigLMEEPbPb2011AOD(7,hasMC,bESDANA);
-AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011AODMB(Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE){
+AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011AODSemiCent(Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE){
+
+ Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
}
+ else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
+ ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
+ bESDANA=kTRUE;
+ }
+
//Do we have an MC handler?
Bool_t hasMC=setMC;
LMEECutLib* cutlib = new LMEECutLib();
AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
if (!hasMC) task->UsePhysicsSelection();
- task->SetTriggerMask(AliVEvent::kMB);
- //task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
-
-task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
+ task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
+// task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
+// task->SetRejectPileup();
+ task->SelectCollisionCandidates(AliVEvent::kAny);
+ task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
//load dielectron configuration file
//add dielectron analysis with different cuts to the task
- AliDielectron *lowmass4=ConfigLMEEPbPb2011AOD(4,hasMC);
- task->AddDielectron(lowmass4);
- printf("add: %s\n",lowmass4->GetName());
-/*
- AliDielectron *lowmass6=ConfigLMEEPbPb2011AOD(6,hasMC);
- task->AddDielectron(lowmass6);
- printf("add: %s\n",lowmass6->GetName());
-*/
+ AliDielectron *lowmass2=ConfigLMEEPbPb2011AOD(2,hasMC,bESDANA);
+ task->AddDielectron(lowmass2);
+ printf("add: %s\n",lowmass2->GetName());
+
+ AliDielectron *lowmass5=ConfigLMEEPbPb2011AOD(5,hasMC,bESDANA);
+ task->AddDielectron(lowmass5);
+ printf("add: %s\n",lowmass5->GetName());
+
+if (PIDbaseline) {
+ AliDielectron *lowmass7=ConfigLMEEPbPb2011AOD(7,hasMC,bESDANA);
+ task->AddDielectron(lowmass7);
+ printf("add: %s\n",lowmass7->GetName());
+}
+
mgr->AddTask(task);
//create output container
void InitCF(AliDielectron* die, Int_t cutDefinition);
void EnableMC();
-TString names=("noPairing;TPCTOFCentnoRej;TPCTOFSemiCentnoRej;TPCTOFPerinoRej;TPCTOFCent;TPCTOFSemiCent;TPCTOFCentnoTOF;NoPIDNoPairing");
+TString names=("noPairing;TPCTOFCentHPT;TPCTOFSemiCentHPT;TPCTOFPerinoRej;TPCTOFCent;TPCTOFSemiCent;TPCTOFCentnoTOF;NoPIDNoPairing");
TObjArray *arrNames=names.Tokenize(";");
const Int_t nDie=arrNames->GetEntries();
//not yet implemented
}
else if (cutDefinition==1) {
- selectedPID = LMEECutLib::kPbPb2011TPCandTOF;
+ selectedPID = LMEECutLib::kPbPb2011TPCandTOFHPT;
selectedCentrality = LMEECutLib::kPbPb2011Central;
rejectionStep = kFALSE;
}
else if (cutDefinition==2) {
- selectedPID = LMEECutLib::kPbPb2011TPCandTOF;
+ selectedPID = LMEECutLib::kPbPb2011TPCandTOFHPT;
selectedCentrality = LMEECutLib::kPbPb2011SemiCentral;
rejectionStep = kFALSE;
}
die->GetTrackFilter().AddCuts( LMCL->GetTrackCutsAna(selectedPID) );
die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) );
- /*
- if ((cutDefinition >=6) && (cutDefinition <=7)) {
- die->GetPairFilter().AddCuts(LMCL->GetPairCuts2(selectedPID,kFALSE));
- }
-*/
+
+ die->GetPairFilter().AddCuts(LMCL->GetPairCuts2(selectedPID,kFALSE));
+
}
//Introduce NULL-check for pp?
static enum LMMECutSet {
kPbPb2011NoPID,
kPbPb2011TPCandTOF,
+ kPbPb2011TPCandTOFHPT,
kPbPb2011TPC, //TOF required, more relaxed cut on TPC
kPbPb2011TPCandTOFwide, //TOF required, more relaxed cut on TPC
kPbPb2011TPCorTOF,
switch (cutSet) {
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
+ case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
case kPbPb2011TPCorTOF :
switch (cutSet) {
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
+ case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
case kPbPb2011TPCorTOF :
*/
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
+ case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
mixingHandler = new AliDielectronMixingHandler;
pidTPCsignalWide->AddCut(AliDielectronVarManager::kTPCsignal,75.,90.);
+ AliDielectronVarCuts *pTPCHPT = new AliDielectronVarCuts("P>.4hpt","P>.4hpt");
+ pTPCHPT->AddCut(AliDielectronVarManager::kPt,.4,3.0);
+
AliDielectronVarCuts *pTPC = new AliDielectronVarCuts("P>.4","P>.4");
- pTPC->AddCut(AliDielectronVarManager::kPt,.4,2.5);
+ pTPC->AddCut(AliDielectronVarManager::kPt,.4,2.0);
AliDielectronVarCuts *pMin = new AliDielectronVarCuts("P>.2","P>.2");
pMin->AddCut(AliDielectronVarManager::kPt,.2,2.5);
cgSecondTrackFilterNoPID->AddCut(pTPC);
anaCuts= cgSecondTrackFilterNoPID;
break;
+ case kPbPb2011TPCandTOFHPT:
+ AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
+ cgSecondTrackFilterPIDTPC1->AddCut(pTPCHPT);
+ cgSecondTrackFilterPIDTPC1->AddCut(pidTPCTOFeOnly);
+ cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignal);
+ anaCuts = cgSecondTrackFilterPIDTPC1;
case kPbPb2011TPCandTOF :
AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
switch (cutSet) {
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
+ case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
case kPbPb2011TPCorTOF :
switch (cutSet) {
case kPbPb2011TPCorTOF :
case kpp2010TPCandTOF :
+ case kPbPb2011TPCandTOFHPT:
AliDielectronVarCuts* pairCutsV= new AliDielectronVarCuts("InvMass","InvMass > 150 MeV");
pairCutsV->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE);
pairCuts = pairCutsV;
case kPbPb2011TPCandTOF :
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
+ case kPbPb2011TPCandTOFHPT:
case kpp2010TPCorTOF :
pairCuts =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
pairCuts->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035);
switch (cutSet) {
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
+ case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
case kPbPb2011TPCorTOF :
switch (cutSet) {
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
+ case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPC :
case kPbPb2011TPCandTOFwide :
case kPbPb2011TPCorTOF :
switch (cutSet) {
case kPbPb2011NoPID:
case kPbPb2011TPCandTOF :
+ case kPbPb2011TPCandTOFHPT:
case kPbPb2011TPCorTOF :
case kpp2010TPCandTOF :
case kpp2010TPCorTOF :