ROOT logo
/***************************************************************************
              fbellini@cern.ch - last modified on 02/07/2014

 *** Configuration script for K*, anti-K* analysis of 2010 pp 7TeV datasets ***
This analysis task is used to extend the pT reach of the K* spectra published in Eur.
Phys. J. C72(2012)2183. 
****************************************************************************/
Bool_t ConfigKStarPP7TeV
(  
    AliRsnMiniAnalysisTask *task, 
    Bool_t                 isMC, 
    Bool_t                 isPP,
    const char             *suffix,
    AliRsnCutSet           *cutsPair,
    Int_t                  aodFilterBit = 5,
    Int_t                  customQualityCutsID = AliRsnCutSetDaughterParticle::kDisableCustom,
    AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutPiCandidate = AliRsnCutSetDaughterParticle::kQualityStd2010,
    AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutKaCandidate = AliRsnCutSetDaughterParticle::kQualityStd2010,
    Float_t                nsigmaPi = 2.0,
    Float_t                nsigmaKa = 2.0,
    Bool_t                 enableMonitor = kTRUE,
    Bool_t                 IsMcTrueOnly = kFALSE,
    TString                monitorOpt = "",
    Bool_t                 useMixLS = 0,
    Bool_t                 checkReflex = 0,
    AliRsnMiniValue::EType yaxisVar = AliRsnMiniValue::kPt
)
{
  // manage suffix
  if (strlen(suffix) > 0) suffix = Form("_%s", suffix);
  
  // set daughter cuts
  AliRsnCutSetDaughterParticle * cutSetQ;
  AliRsnCutSetDaughterParticle * cutSetPi;
  AliRsnCutSetDaughterParticle * cutSetK;
  
  AliRsnCutTrackQuality * trkQualityCut =  new AliRsnCutTrackQuality("myQualityCut");
  if (SetCustomQualityCut(trkQualityCut, customQualityCutsID, aodFilterBit)) {
    //Set custom quality cuts for systematic checks
    cutSetQ  = new AliRsnCutSetDaughterParticle(Form("cutQ_bit%i",aodFilterBit), trkQualityCut, AliRsnCutSetDaughterParticle::kQualityStd2010, AliPID::kPion, -1.0);
    cutSetPi = new AliRsnCutSetDaughterParticle(Form("cutPi%i_%2.1fsigma",cutPiCandidate, nsigmaPi), trkQualityCut, cutPiCandidate, AliPID::kPion, nsigmaPi);
    cutSetK  = new AliRsnCutSetDaughterParticle(Form("cutK%i_%2.1fsigma",cutPiCandidate, nsigmaKa), trkQualityCut, cutKaCandidate, AliPID::kKaon, nsigmaKa);
  } else {
    //use default quality cuts std 2010 with crossed rows TPC
    Bool_t useCrossedRows = 1;
    cutSetQ  = new AliRsnCutSetDaughterParticle(Form("cutQ_bit%i",aodFilterBit), AliRsnCutSetDaughterParticle::kQualityStd2010, AliPID::kPion, -1.0, aodFilterBit, useCrossedRows);
    cutSetPi = new AliRsnCutSetDaughterParticle(Form("cutPi%i_%2.1fsigma",cutPiCandidate, nsigmaPi), cutPiCandidate, AliPID::kPion, nsigmaPi, aodFilterBit, useCrossedRows);
    cutSetK  = new AliRsnCutSetDaughterParticle(Form("cutK%i_%2.1fsigma",cutPiCandidate, nsigmaKa), cutKaCandidate, AliPID::kKaon, nsigmaKa, aodFilterBit, useCrossedRows);
  }
  
  Int_t iCutQ = task->AddTrackCuts(cutSetQ);
  Int_t iCutPi = task->AddTrackCuts(cutSetPi);
  Int_t iCutK = task->AddTrackCuts(cutSetK);
  
  if (enableMonitor){
    Printf("======== Cut monitoring enabled");
    gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C");
    AddMonitorOutput(isMC, cutSetQ->GetMonitorOutput(), monitorOpt.Data());
    AddMonitorOutput(isMC, cutSetPi->GetMonitorOutput(), monitorOpt.Data());
    AddMonitorOutput(isMC, cutSetK->GetMonitorOutput()), monitorOpt.Data();
  }  
  
  // -- Values ------------------------------------------------------------------------------------
  /* invariant mass   */ Int_t imID   = task->CreateValue(AliRsnMiniValue::kInvMass, kFALSE);
  /* IM resolution    */ Int_t resID  = task->CreateValue(AliRsnMiniValue::kInvMassRes, kTRUE);
  /* transv. momentum */ Int_t ptID   = task->CreateValue(AliRsnMiniValue::kPt, kFALSE);
  /* centrality       */ Int_t centID = task->CreateValue(AliRsnMiniValue::kMult, kFALSE);
  /* pseudorapidity   */ Int_t etaID  = task->CreateValue(AliRsnMiniValue::kEta, kFALSE);
  /* rapidity         */ Int_t yID    = task->CreateValue(AliRsnMiniValue::kY, kFALSE);
  /* 1st daughter pt  */ Int_t fdpt   = task->CreateValue(AliRsnMiniValue::kFirstDaughterPt, kFALSE);
  /* 2nd daughter pt  */ Int_t sdpt   = task->CreateValue(AliRsnMiniValue::kSecondDaughterPt, kFALSE);
  /* 1st daughter p   */ Int_t fdp    = task->CreateValue(AliRsnMiniValue::kFirstDaughterP, kFALSE);
  /* 2nd daughter p   */ Int_t sdp    = task->CreateValue(AliRsnMiniValue::kSecondDaughterP, kFALSE);
  
  // -- Create all needed outputs -----------------------------------------------------------------
  // use an array for more compact writing, which are different on mixing and charges
  // [0] = unlike
  // [1] = mixing
  // [2] = like ++
  // [3] = like --

  Bool_t  use     [12] = {!IsMcTrueOnly,!IsMcTrueOnly,!IsMcTrueOnly,!IsMcTrueOnly,!IsMcTrueOnly,!IsMcTrueOnly ,isMC,isMC,isMC,isMC, useMixLS , useMixLS    };
  Bool_t  useIM   [12] = { 1        , 1         ,  1       ,  1       ,  1      ,  1      ,  1      ,  1      ,  0      , 0      , 1         , 1           };
  TString name    [12] = {"UnlikePM", "UnlikeMP","MixingPM","MixingMP", "LikePP", "LikeMM","TruesPM","TruesMP", "ResPM" ,"ResMP" , "MixingPP", "MixingMM"  };
  TString comp    [12] = {"PAIR"    , "PAIR"    , "MIX"    , "MIX"    , "PAIR"  , "PAIR"  , "TRUE"  , "TRUE"  , "TRUE"  ,"TRUE"  , "MIX"     , "MIX"       };
  TString output  [12] = {"SPARSE"  , "SPARSE"  , "SPARSE" , "SPARSE" , "SPARSE", "SPARSE", "SPARSE","SPARSE" , "SPARSE","SPARSE", "SPARSE"  , "SPARSE"    };
  Int_t   pdgCode [12] = {313       , 313       , 313      , 313      , 313     , 313     , 313     , -313    ,  313    , -313   ,  313      , 313         };
  Char_t  charge1 [12] = {'+'       , '-'       , '+'      , '-'      , '+'     , '-'     , '+'     ,  '-'    , '+'     , '-'    , '+'       , '-'         };
  Char_t  charge2 [12] = {'-'       , '+'       , '-'      , '+'      , '+'     , '-'     , '-'     ,  '+'    , '-'     , '+'    , '+'       , '-'         };
  Int_t   cutID1  [12] = { iCutK    ,  iCutK    ,  iCutK   ,  iCutK   ,  iCutK  ,  iCutK  ,  iCutK  ,   iCutK ,  iCutK  , iCutK  , iCutK     , iCutK       };
  Int_t   cutID2  [12] = { iCutPi   ,  iCutPi   ,  iCutPi  ,  iCutPi  ,  iCutPi ,  iCutPi ,  iCutPi ,   iCutPi,  iCutPi , iCutPi , iCutPi    , iCutPi      };
  
  for (Int_t i = 0; i < 12; i++) {
    if (!use[i]) continue;
    AliRsnMiniOutput *out = task->CreateOutput(Form("kstar_%s%s", name[i].Data(), suffix), output[i].Data(), comp[i].Data());
    out->SetCutID(0, cutID1[i]);
    out->SetCutID(1, cutID2[i]);
    out->SetDaughter(0, AliRsnDaughter::kKaon);
    out->SetDaughter(1, AliRsnDaughter::kPion);
    out->SetCharge(0, charge1[i]);
    out->SetCharge(1, charge2[i]);
    out->SetMotherPDG(pdgCode[i]);
    out->SetMotherMass(0.89594);
    out->SetPairCuts(cutsPair);

    // axis X: invmass (or resolution)
    if (useIM[i]) 
      out->AddAxis(imID, 90, 0.6, 1.5);
    else
      out->AddAxis(resID, 200, -0.02, 0.02);
    
    // axis Y: transverse momentum of pair as default - else chosen value
    if (yaxisVar==AliRsnMiniValue::kFirstDaughterPt)
      out->AddAxis(fdpt, 100, 0.0, 10.0);
    else
      if (yaxisVar==AliRsnMiniValue::kSecondDaughterPt)
	out->AddAxis(sdpt, 100, 0.0, 10.0);
      else
	if (yaxisVar==AliRsnMiniValue::kFirstDaughterP)
	  out->AddAxis(fdp, 100, 0.0, 10.0);
	else
	  if (yaxisVar==AliRsnMiniValue::kSecondDaughterP)
	    out->AddAxis(sdp, 100, 0.0, 10.0);
	  else 
	    out->AddAxis(ptID, 200, 0.0, 20.0); //default use mother pt
    
    // axis Z: centrality-multiplicity
    if (!isPP)
      out->AddAxis(centID, 100, 0.0, 100.0);
    else 
      out->AddAxis(centID, 400, 0.0, 400.0);
    // axis W: pseudorapidity
    // out->AddAxis(etaID, 20, -1.0, 1.0);
    // axis J: rapidity
    // out->AddAxis(yID, 10, -0.5, 0.5);
  }   
  
  if (isMC){   
    //get mothers for K* PDG = 313
    AliRsnMiniOutput *outm = task->CreateOutput(Form("Ks_Mother%s", suffix), "SPARSE", "MOTHER");
    outm->SetDaughter(0, AliRsnDaughter::kKaon);
    outm->SetDaughter(1, AliRsnDaughter::kPion);
    outm->SetMotherPDG(313);
    outm->SetMotherMass(0.89594);
    outm->SetPairCuts(cutsPair);
    outm->AddAxis(imID, 90, 0.6, 1.5);
    outm->AddAxis(ptID, 200, 0.0, 20.0);
    if (!isPP){
      outm->AddAxis(centID, 100, 0.0, 100.0);
    }   else    { 
      outm->AddAxis(centID, 400, 0.0, 400.0);
    }
    
    //get mothers for antiK* PDG = -313
    AliRsnMiniOutput *outam = task->CreateOutput(Form("antiKs_Mother%s", suffix), "SPARSE", "MOTHER");
    outam->SetDaughter(0, AliRsnDaughter::kKaon);
    outam->SetDaughter(1, AliRsnDaughter::kPion);
    outam->SetMotherPDG(-313);
    outam->SetMotherMass(0.89594);
    outam->SetPairCuts(cutsPair);
    outam->AddAxis(imID, 90, 0.6, 1.5);
    outam->AddAxis(ptID, 200, 0.0, 20.0);
    if (!isPP){
      outam->AddAxis(centID, 100, 0.0, 100.0);
    }   else    { 
      outam->AddAxis(centID, 400, 0.0, 400.0);
    }
    
    //get phase space of the decay from mothers
    AliRsnMiniOutput *outps = task->CreateOutput(Form("Ks_phaseSpace%s", suffix), "HIST", "TRUE");
    outps->SetDaughter(0, AliRsnDaughter::kKaon);
    outps->SetDaughter(1, AliRsnDaughter::kPion);
    outps->SetCutID(0, iCutK);
    outps->SetCutID(1, iCutPi);
    outps->SetMotherPDG(313);
    outps->SetMotherMass(0.89594);
    outps->SetPairCuts(cutsPair);
    outps->AddAxis(fdpt, 50, 0.0, 5.0);
    outps->AddAxis(sdpt, 50, 0.0, 5.0);
    outps->AddAxis(ptID, 200, 0.0, 20.0);
    
    AliRsnMiniOutput *outaps = task->CreateOutput(Form("antiKs_phaseSpace%s", suffix), "HIST", "TRUE");
    outaps->SetDaughter(0, AliRsnDaughter::kKaon);
    outaps->SetDaughter(1, AliRsnDaughter::kPion);
    outaps->SetCutID(0, iCutK);
    outaps->SetCutID(1, iCutPi);
    outaps->SetMotherPDG(-313);
    outaps->SetMotherMass(0.89594);
    outaps->SetPairCuts(cutsPair);
    outaps->AddAxis(fdpt, 50, 0.0, 5.0);
    outaps->AddAxis(sdpt, 50, 0.0, 5.0);
    outaps->AddAxis(ptID, 200, 0.0, 20.0);
   
    //get reflections
    if (checkReflex) { 

      AliRsnMiniOutput *outreflex = task->CreateOutput(Form("Ks_reflex%s", suffix), "SPARSE", "TRUE");
      outreflex->SetDaughter(0, AliRsnDaughter::kKaon);
      outreflex->SetDaughter(1, AliRsnDaughter::kPion);
      outreflex->SetCutID(0, iCutPi);
      outreflex->SetCutID(1, iCutK);
      outreflex->SetMotherPDG(313);
      outreflex->SetMotherMass(0.89594);
      outreflex->SetPairCuts(cutsPair);
      outreflex->AddAxis(imID, 90, 0.6, 1.5);
      outreflex->AddAxis(ptID, 200, 0.0, 20.0);
      if (!isPP){
	outreflex->AddAxis(centID, 100, 0.0, 100.0);
      }   else    { 
	outreflex->AddAxis(centID, 400, 0.0, 400.0);
      }
      
      AliRsnMiniOutput *outareflex = task->CreateOutput(Form("antiKs_reflex%s", suffix), "SPARSE", "TRUE");
      outareflex->SetDaughter(0, AliRsnDaughter::kKaon);
      outareflex->SetDaughter(1, AliRsnDaughter::kPion);
      outareflex->SetCutID(0, iCutPi);
      outareflex->SetCutID(1, iCutK);
      outareflex->SetMotherPDG(-313);
      outareflex->SetMotherMass(0.89594);
      outareflex->SetPairCuts(cutsPair);
      outareflex->AddAxis(imID, 90, 0.6, 1.5);
      outareflex->AddAxis(ptID, 200, 0.0, 20.0);
      if (!isPP){
	outareflex->AddAxis(centID, 100, 0.0, 100.0);
      }   else    { 
	outareflex->AddAxis(centID, 400, 0.0, 400.0);
      }

    }//end reflections
  }//end MC
  
   return kTRUE;
}

//-------------------------------------------------------  
Bool_t SetCustomQualityCut(AliRsnCutTrackQuality * trkQualityCut, Int_t customQualityCutsID = 0, Int_t customFilterBit = 0)
{
  //Sets configuration for track quality object different from std quality cuts.
  //Returns kTRUE if track quality cut object is successfully defined,
  //returns kFALSE if an invalid set of cuts (customQualityCutsID) is chosen or if the
  //object to be configured does not exist.
  
  /* NOTES FROM PRODUCTION LHC13b pass3 - AOD filtered with v5-03-Rev-20
  //(http://svnweb.cern.ch/world/wsvn/AliRoot/tags/v5-03-Rev-20/ANALYSIS/macros/AddTaskESDFilter.C)

  //filter bit 0: Cuts on primary tracks
  // AliESDtrackCuts* esdTrackCutsL = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();

  //filter bit 4: std but looser dca cut
  // AliESDtrackCuts* esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);
  // esdTrackCutsH->SetMaxDCAToVertexXY(2.4);
  // esdTrackCutsH->SetMaxDCAToVertexZ(3.2);
  // esdTrackCutsH->SetDCAToVertex2D(kTRUE);

  //filter bit 5:  AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();

   //filter bit 10: standard cuts with tight DCA cut, using cluster cut instead of crossed rows (a la 2010 default)
   //AliESDtrackCuts* esdTrackCutsH2Cluster = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE, 0);
   */

  if ((!trkQualityCut) || (customQualityCutsID<=0) || (customQualityCutsID>=AliRsnCutSetDaughterParticle::kNcustomQualityCuts)){
    Printf("::::: SetCustomQualityCut:: use default quality cuts specified in task configuration.");
    return kFALSE;
  }
  //for pA 2013
  //trkQualityCut->SetDefaults2011();//with filter bit=10
  //reset filter bit to very loose cuts 
  trkQualityCut->SetAODTestFilterBit(customFilterBit); 
  //apply all other cuts "by hand"
  trkQualityCut->SetCheckOnlyFilterBit(kFALSE);
  trkQualityCut->SetMinNCrossedRowsTPC(70, kTRUE);
  trkQualityCut->SetMinNCrossedRowsOverFindableClsTPC(0.8, kTRUE);
  trkQualityCut->SetMaxChi2TPCConstrainedGlobal(36);//used for ESD only - for AOD does not correspond to any cut
  trkQualityCut->SetTPCmaxChi2(4.0); //already in filter bit 0
  trkQualityCut->SetRejectKinkDaughters(kTRUE); //already in filter bit 0
  trkQualityCut->SetSPDminNClusters(AliESDtrackCuts::kAny);
  trkQualityCut->SetITSmaxChi2(36);
  trkQualityCut->AddStatusFlag(AliESDtrack::kTPCin   , kTRUE);//already in defaults 2011
  trkQualityCut->AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);//already in defaults 2011
  trkQualityCut->AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);//already in defaults 2011

  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kFilterBitCustom) {
    trkQualityCut->SetCheckOnlyFilterBit(kTRUE);
  } 
  
  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kStdLooserDCAXY){
    trkQualityCut->SetDCARmax(2.4);
  } else {
    trkQualityCut->SetDCARPtFormula("0.0105+0.0350/pt^1.1");
  }
  
  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kStdLooserDCAZ){
    trkQualityCut->SetDCAZmax(3.2);
  } else {
    trkQualityCut->SetDCAZmax(2.0); 
  }
  
  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kStdCrossedRows60){
    trkQualityCut->SetMinNCrossedRowsTPC(60, kTRUE);
  }
  
  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kStdCrossedRows80){
    trkQualityCut->SetMinNCrossedRowsTPC(80, kTRUE);
  }
  
  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kStdRowsToCls075){
    trkQualityCut->SetMinNCrossedRowsOverFindableClsTPC(0.75, kTRUE);
  }
  
  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kStdRowsToCls085){
    trkQualityCut->SetMinNCrossedRowsOverFindableClsTPC(0.85, kTRUE);
  }
  
  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kStdCls70){
    trkQualityCut->SetAODTestFilterBit(10);
    trkQualityCut->SetTPCminNClusters(70);
  }
  
  if (customQualityCutsID==AliRsnCutSetDaughterParticle::kStdChi2TPCCls35){
    trkQualityCut->SetTPCmaxChi2(3.5);
  }
  
  trkQualityCut->SetPtRange(0.15, 20.0);
  trkQualityCut->SetEtaRange(-0.8, 0.8);
  
  Printf(Form("::::: SetCustomQualityCut:: using custom track quality cuts #%i",customQualityCutsID));
  trkQualityCut->Print();
  return kTRUE;
}
 ConfigKStarPP7TeV.C:1
 ConfigKStarPP7TeV.C:2
 ConfigKStarPP7TeV.C:3
 ConfigKStarPP7TeV.C:4
 ConfigKStarPP7TeV.C:5
 ConfigKStarPP7TeV.C:6
 ConfigKStarPP7TeV.C:7
 ConfigKStarPP7TeV.C:8
 ConfigKStarPP7TeV.C:9
 ConfigKStarPP7TeV.C:10
 ConfigKStarPP7TeV.C:11
 ConfigKStarPP7TeV.C:12
 ConfigKStarPP7TeV.C:13
 ConfigKStarPP7TeV.C:14
 ConfigKStarPP7TeV.C:15
 ConfigKStarPP7TeV.C:16
 ConfigKStarPP7TeV.C:17
 ConfigKStarPP7TeV.C:18
 ConfigKStarPP7TeV.C:19
 ConfigKStarPP7TeV.C:20
 ConfigKStarPP7TeV.C:21
 ConfigKStarPP7TeV.C:22
 ConfigKStarPP7TeV.C:23
 ConfigKStarPP7TeV.C:24
 ConfigKStarPP7TeV.C:25
 ConfigKStarPP7TeV.C:26
 ConfigKStarPP7TeV.C:27
 ConfigKStarPP7TeV.C:28
 ConfigKStarPP7TeV.C:29
 ConfigKStarPP7TeV.C:30
 ConfigKStarPP7TeV.C:31
 ConfigKStarPP7TeV.C:32
 ConfigKStarPP7TeV.C:33
 ConfigKStarPP7TeV.C:34
 ConfigKStarPP7TeV.C:35
 ConfigKStarPP7TeV.C:36
 ConfigKStarPP7TeV.C:37
 ConfigKStarPP7TeV.C:38
 ConfigKStarPP7TeV.C:39
 ConfigKStarPP7TeV.C:40
 ConfigKStarPP7TeV.C:41
 ConfigKStarPP7TeV.C:42
 ConfigKStarPP7TeV.C:43
 ConfigKStarPP7TeV.C:44
 ConfigKStarPP7TeV.C:45
 ConfigKStarPP7TeV.C:46
 ConfigKStarPP7TeV.C:47
 ConfigKStarPP7TeV.C:48
 ConfigKStarPP7TeV.C:49
 ConfigKStarPP7TeV.C:50
 ConfigKStarPP7TeV.C:51
 ConfigKStarPP7TeV.C:52
 ConfigKStarPP7TeV.C:53
 ConfigKStarPP7TeV.C:54
 ConfigKStarPP7TeV.C:55
 ConfigKStarPP7TeV.C:56
 ConfigKStarPP7TeV.C:57
 ConfigKStarPP7TeV.C:58
 ConfigKStarPP7TeV.C:59
 ConfigKStarPP7TeV.C:60
 ConfigKStarPP7TeV.C:61
 ConfigKStarPP7TeV.C:62
 ConfigKStarPP7TeV.C:63
 ConfigKStarPP7TeV.C:64
 ConfigKStarPP7TeV.C:65
 ConfigKStarPP7TeV.C:66
 ConfigKStarPP7TeV.C:67
 ConfigKStarPP7TeV.C:68
 ConfigKStarPP7TeV.C:69
 ConfigKStarPP7TeV.C:70
 ConfigKStarPP7TeV.C:71
 ConfigKStarPP7TeV.C:72
 ConfigKStarPP7TeV.C:73
 ConfigKStarPP7TeV.C:74
 ConfigKStarPP7TeV.C:75
 ConfigKStarPP7TeV.C:76
 ConfigKStarPP7TeV.C:77
 ConfigKStarPP7TeV.C:78
 ConfigKStarPP7TeV.C:79
 ConfigKStarPP7TeV.C:80
 ConfigKStarPP7TeV.C:81
 ConfigKStarPP7TeV.C:82
 ConfigKStarPP7TeV.C:83
 ConfigKStarPP7TeV.C:84
 ConfigKStarPP7TeV.C:85
 ConfigKStarPP7TeV.C:86
 ConfigKStarPP7TeV.C:87
 ConfigKStarPP7TeV.C:88
 ConfigKStarPP7TeV.C:89
 ConfigKStarPP7TeV.C:90
 ConfigKStarPP7TeV.C:91
 ConfigKStarPP7TeV.C:92
 ConfigKStarPP7TeV.C:93
 ConfigKStarPP7TeV.C:94
 ConfigKStarPP7TeV.C:95
 ConfigKStarPP7TeV.C:96
 ConfigKStarPP7TeV.C:97
 ConfigKStarPP7TeV.C:98
 ConfigKStarPP7TeV.C:99
 ConfigKStarPP7TeV.C:100
 ConfigKStarPP7TeV.C:101
 ConfigKStarPP7TeV.C:102
 ConfigKStarPP7TeV.C:103
 ConfigKStarPP7TeV.C:104
 ConfigKStarPP7TeV.C:105
 ConfigKStarPP7TeV.C:106
 ConfigKStarPP7TeV.C:107
 ConfigKStarPP7TeV.C:108
 ConfigKStarPP7TeV.C:109
 ConfigKStarPP7TeV.C:110
 ConfigKStarPP7TeV.C:111
 ConfigKStarPP7TeV.C:112
 ConfigKStarPP7TeV.C:113
 ConfigKStarPP7TeV.C:114
 ConfigKStarPP7TeV.C:115
 ConfigKStarPP7TeV.C:116
 ConfigKStarPP7TeV.C:117
 ConfigKStarPP7TeV.C:118
 ConfigKStarPP7TeV.C:119
 ConfigKStarPP7TeV.C:120
 ConfigKStarPP7TeV.C:121
 ConfigKStarPP7TeV.C:122
 ConfigKStarPP7TeV.C:123
 ConfigKStarPP7TeV.C:124
 ConfigKStarPP7TeV.C:125
 ConfigKStarPP7TeV.C:126
 ConfigKStarPP7TeV.C:127
 ConfigKStarPP7TeV.C:128
 ConfigKStarPP7TeV.C:129
 ConfigKStarPP7TeV.C:130
 ConfigKStarPP7TeV.C:131
 ConfigKStarPP7TeV.C:132
 ConfigKStarPP7TeV.C:133
 ConfigKStarPP7TeV.C:134
 ConfigKStarPP7TeV.C:135
 ConfigKStarPP7TeV.C:136
 ConfigKStarPP7TeV.C:137
 ConfigKStarPP7TeV.C:138
 ConfigKStarPP7TeV.C:139
 ConfigKStarPP7TeV.C:140
 ConfigKStarPP7TeV.C:141
 ConfigKStarPP7TeV.C:142
 ConfigKStarPP7TeV.C:143
 ConfigKStarPP7TeV.C:144
 ConfigKStarPP7TeV.C:145
 ConfigKStarPP7TeV.C:146
 ConfigKStarPP7TeV.C:147
 ConfigKStarPP7TeV.C:148
 ConfigKStarPP7TeV.C:149
 ConfigKStarPP7TeV.C:150
 ConfigKStarPP7TeV.C:151
 ConfigKStarPP7TeV.C:152
 ConfigKStarPP7TeV.C:153
 ConfigKStarPP7TeV.C:154
 ConfigKStarPP7TeV.C:155
 ConfigKStarPP7TeV.C:156
 ConfigKStarPP7TeV.C:157
 ConfigKStarPP7TeV.C:158
 ConfigKStarPP7TeV.C:159
 ConfigKStarPP7TeV.C:160
 ConfigKStarPP7TeV.C:161
 ConfigKStarPP7TeV.C:162
 ConfigKStarPP7TeV.C:163
 ConfigKStarPP7TeV.C:164
 ConfigKStarPP7TeV.C:165
 ConfigKStarPP7TeV.C:166
 ConfigKStarPP7TeV.C:167
 ConfigKStarPP7TeV.C:168
 ConfigKStarPP7TeV.C:169
 ConfigKStarPP7TeV.C:170
 ConfigKStarPP7TeV.C:171
 ConfigKStarPP7TeV.C:172
 ConfigKStarPP7TeV.C:173
 ConfigKStarPP7TeV.C:174
 ConfigKStarPP7TeV.C:175
 ConfigKStarPP7TeV.C:176
 ConfigKStarPP7TeV.C:177
 ConfigKStarPP7TeV.C:178
 ConfigKStarPP7TeV.C:179
 ConfigKStarPP7TeV.C:180
 ConfigKStarPP7TeV.C:181
 ConfigKStarPP7TeV.C:182
 ConfigKStarPP7TeV.C:183
 ConfigKStarPP7TeV.C:184
 ConfigKStarPP7TeV.C:185
 ConfigKStarPP7TeV.C:186
 ConfigKStarPP7TeV.C:187
 ConfigKStarPP7TeV.C:188
 ConfigKStarPP7TeV.C:189
 ConfigKStarPP7TeV.C:190
 ConfigKStarPP7TeV.C:191
 ConfigKStarPP7TeV.C:192
 ConfigKStarPP7TeV.C:193
 ConfigKStarPP7TeV.C:194
 ConfigKStarPP7TeV.C:195
 ConfigKStarPP7TeV.C:196
 ConfigKStarPP7TeV.C:197
 ConfigKStarPP7TeV.C:198
 ConfigKStarPP7TeV.C:199
 ConfigKStarPP7TeV.C:200
 ConfigKStarPP7TeV.C:201
 ConfigKStarPP7TeV.C:202
 ConfigKStarPP7TeV.C:203
 ConfigKStarPP7TeV.C:204
 ConfigKStarPP7TeV.C:205
 ConfigKStarPP7TeV.C:206
 ConfigKStarPP7TeV.C:207
 ConfigKStarPP7TeV.C:208
 ConfigKStarPP7TeV.C:209
 ConfigKStarPP7TeV.C:210
 ConfigKStarPP7TeV.C:211
 ConfigKStarPP7TeV.C:212
 ConfigKStarPP7TeV.C:213
 ConfigKStarPP7TeV.C:214
 ConfigKStarPP7TeV.C:215
 ConfigKStarPP7TeV.C:216
 ConfigKStarPP7TeV.C:217
 ConfigKStarPP7TeV.C:218
 ConfigKStarPP7TeV.C:219
 ConfigKStarPP7TeV.C:220
 ConfigKStarPP7TeV.C:221
 ConfigKStarPP7TeV.C:222
 ConfigKStarPP7TeV.C:223
 ConfigKStarPP7TeV.C:224
 ConfigKStarPP7TeV.C:225
 ConfigKStarPP7TeV.C:226
 ConfigKStarPP7TeV.C:227
 ConfigKStarPP7TeV.C:228
 ConfigKStarPP7TeV.C:229
 ConfigKStarPP7TeV.C:230
 ConfigKStarPP7TeV.C:231
 ConfigKStarPP7TeV.C:232
 ConfigKStarPP7TeV.C:233
 ConfigKStarPP7TeV.C:234
 ConfigKStarPP7TeV.C:235
 ConfigKStarPP7TeV.C:236
 ConfigKStarPP7TeV.C:237
 ConfigKStarPP7TeV.C:238
 ConfigKStarPP7TeV.C:239
 ConfigKStarPP7TeV.C:240
 ConfigKStarPP7TeV.C:241
 ConfigKStarPP7TeV.C:242
 ConfigKStarPP7TeV.C:243
 ConfigKStarPP7TeV.C:244
 ConfigKStarPP7TeV.C:245
 ConfigKStarPP7TeV.C:246
 ConfigKStarPP7TeV.C:247
 ConfigKStarPP7TeV.C:248
 ConfigKStarPP7TeV.C:249
 ConfigKStarPP7TeV.C:250
 ConfigKStarPP7TeV.C:251
 ConfigKStarPP7TeV.C:252
 ConfigKStarPP7TeV.C:253
 ConfigKStarPP7TeV.C:254
 ConfigKStarPP7TeV.C:255
 ConfigKStarPP7TeV.C:256
 ConfigKStarPP7TeV.C:257
 ConfigKStarPP7TeV.C:258
 ConfigKStarPP7TeV.C:259
 ConfigKStarPP7TeV.C:260
 ConfigKStarPP7TeV.C:261
 ConfigKStarPP7TeV.C:262
 ConfigKStarPP7TeV.C:263
 ConfigKStarPP7TeV.C:264
 ConfigKStarPP7TeV.C:265
 ConfigKStarPP7TeV.C:266
 ConfigKStarPP7TeV.C:267
 ConfigKStarPP7TeV.C:268
 ConfigKStarPP7TeV.C:269
 ConfigKStarPP7TeV.C:270
 ConfigKStarPP7TeV.C:271
 ConfigKStarPP7TeV.C:272
 ConfigKStarPP7TeV.C:273
 ConfigKStarPP7TeV.C:274
 ConfigKStarPP7TeV.C:275
 ConfigKStarPP7TeV.C:276
 ConfigKStarPP7TeV.C:277
 ConfigKStarPP7TeV.C:278
 ConfigKStarPP7TeV.C:279
 ConfigKStarPP7TeV.C:280
 ConfigKStarPP7TeV.C:281
 ConfigKStarPP7TeV.C:282
 ConfigKStarPP7TeV.C:283
 ConfigKStarPP7TeV.C:284
 ConfigKStarPP7TeV.C:285
 ConfigKStarPP7TeV.C:286
 ConfigKStarPP7TeV.C:287
 ConfigKStarPP7TeV.C:288
 ConfigKStarPP7TeV.C:289
 ConfigKStarPP7TeV.C:290
 ConfigKStarPP7TeV.C:291
 ConfigKStarPP7TeV.C:292
 ConfigKStarPP7TeV.C:293
 ConfigKStarPP7TeV.C:294
 ConfigKStarPP7TeV.C:295
 ConfigKStarPP7TeV.C:296
 ConfigKStarPP7TeV.C:297
 ConfigKStarPP7TeV.C:298
 ConfigKStarPP7TeV.C:299
 ConfigKStarPP7TeV.C:300
 ConfigKStarPP7TeV.C:301
 ConfigKStarPP7TeV.C:302
 ConfigKStarPP7TeV.C:303
 ConfigKStarPP7TeV.C:304
 ConfigKStarPP7TeV.C:305
 ConfigKStarPP7TeV.C:306
 ConfigKStarPP7TeV.C:307
 ConfigKStarPP7TeV.C:308
 ConfigKStarPP7TeV.C:309
 ConfigKStarPP7TeV.C:310
 ConfigKStarPP7TeV.C:311
 ConfigKStarPP7TeV.C:312
 ConfigKStarPP7TeV.C:313
 ConfigKStarPP7TeV.C:314
 ConfigKStarPP7TeV.C:315
 ConfigKStarPP7TeV.C:316
 ConfigKStarPP7TeV.C:317
 ConfigKStarPP7TeV.C:318
 ConfigKStarPP7TeV.C:319
 ConfigKStarPP7TeV.C:320
 ConfigKStarPP7TeV.C:321
 ConfigKStarPP7TeV.C:322
 ConfigKStarPP7TeV.C:323
 ConfigKStarPP7TeV.C:324
 ConfigKStarPP7TeV.C:325
 ConfigKStarPP7TeV.C:326
 ConfigKStarPP7TeV.C:327
 ConfigKStarPP7TeV.C:328
 ConfigKStarPP7TeV.C:329
 ConfigKStarPP7TeV.C:330