9 #include <EVENT/LCCollection.h>
10 #include <EVENT/MCParticle.h>
11 #include <EVENT/ReconstructedParticle.h>
12 #include <IMPL/ReconstructedParticleImpl.h>
16 #include "TLorentzVector.h"
18 using namespace lcio ;
23 Int_t
getMCSerial(MCParticle *mcPart, LCCollection *colMCP);
25 MCParticle *
getMCParticle(ReconstructedParticle *recPart, LCCollection *colMCTL);
26 MCParticle *
getMCParticle(ReconstructedParticle *recPart, LCCollection *colMCTL, Double_t &weight);
27 MCParticle *
getMCParticle(ReconstructedParticle *recPart, LCCollection *colMCTL, Double_t &weight, Int_t &nMCTL);
28 Int_t
getLinkedMCParticle(ReconstructedParticle *recPart, LCCollection *colMCTL, Double_t &weight, Int_t &nMCTL);
32 Int_t
getOriginalSerial(MCParticle *mcPart, LCCollection *colMCP, Bool_t iHiggs = 0);
33 Int_t
getOriginalSerial(ReconstructedParticle *recPart, LCCollection *colMCTL, LCCollection *colMCP, Bool_t iHiggs = 0);
35 Double_t
getConeEnergy(ReconstructedParticle *recPart, LCCollection *colPFO, Double_t cosCone);
36 Double_t
getConeEnergy(ReconstructedParticle *recPart, LCCollection *colPFO, Double_t cosCone, Int_t mode);
37 Double_t
getConeEnergy(ReconstructedParticle *recPart, LCCollection *colPFO, Double_t cosCone,
38 std::vector<lcio::ReconstructedParticle*> &conePFOs);
39 Double_t
getInvariantMass(ReconstructedParticle *recPart1, ReconstructedParticle *recPart2);
40 Double_t
getInvariantMass(ReconstructedParticle *recPart1, ReconstructedParticle *recPart2, ReconstructedParticle *recPart3);
43 Bool_t
getFSRTag(ReconstructedParticle *motherPart, ReconstructedParticle *recPart, Double_t fCosFSRCut = 0.999);
44 Bool_t
getSplitTag(ReconstructedParticle *motherPart, ReconstructedParticle *recPart);
47 void getConeEnergy(ReconstructedParticle *recPart, LCCollection *colPFO, Double_t cosCone, Bool_t woFSR, Double_t coneEnergy[3], Double_t pFSR[4]);
48 void getConeEnergy(ReconstructedParticle *recPart, LCCollection *colPFO, Double_t cosCone, Bool_t woFSR, Double_t coneEnergy[3], Double_t pFSR[4],
49 Double_t conCone2, Double_t pCone2[4], Int_t &nConePhoton);
50 void getConeEnergy(ReconstructedParticle *recPart, LCCollection *colPFO, Double_t cosCone,
51 Double_t coneEnergy[3], Double_t cosCone2, Double_t pCone2[4]);
52 TLorentzVector
getFSRMomentum(ReconstructedParticle *recPart, LCCollection *colPFO);
53 Int_t
isSelectedByFastJet( ReconstructedParticle *pfo, LCCollection *colFastJet, Double_t &ratioEPartEJet, Double_t &ratioPTMJet);
54 void doPhotonRecovery(ReconstructedParticle *
electron, LCCollection *colPFO, ReconstructedParticleImpl *recoElectron, Double_t fCosFSRCut = 0.999);
55 void doPhotonRecovery(ReconstructedParticle *electron, LCCollection *colPFO, ReconstructedParticleImpl *recoElectron, Double_t fCosFSRCut, Int_t lepType, std::vector<lcio::ReconstructedParticle*> &photons);
56 Bool_t
isFoundInVector(ReconstructedParticle *pfo, std::vector<lcio::ReconstructedParticle*> &pfos);
58 Double_t
jetFunction( TLorentzVector lortz,
float beta,
float power);
59 Double_t
jetFunction( TLorentzVector lortz,
float virtual_scale=20);
61 Int_t
calculateEnergyComponents(LCCollection *colMC, LCCollection *colMCTL, ReconstructedParticle *jet, Double_t energyComponents[4]);
62 Int_t
calculateEnergyComponents(LCCollection *colMC, LCCollection *colMCTL, ReconstructedParticle *jet, Double_t energyComponents[4],
63 Int_t iColor1, Int_t iColor2, Int_t iColor3);
65 Double_t
getLikelihood(TString fname, TString hist, Double_t mass);
69 Bool_t
isOverlay(ReconstructedParticle *pfo, LCCollection *colMCTL);
71 void dumpJetParticles(ReconstructedParticle *jet, LCCollection *colMC, LCCollection *colMCTL);
73 Int_t
getVertexComponents(LCCollection *colMC, LCCollection *colMCTL, ReconstructedParticle *vetex, Double_t energyComponents[2], Int_t nparticles[2]);
75 Int_t
isVertexFromOverlay( ReconstructedParticle *vertex, LCCollection *colMC, LCCollection *colMCTL);
77 Double_t
getJetDistance( ReconstructedParticle *i, ReconstructedParticle *j, TString algorithm, Double_t R);
79 Int_t
isFromVertex( ReconstructedParticle *recPart, LCCollection *colVertex);
84 void mcDebug(LCCollection *colMC);
86 TLorentzVector
getLorentzEcm(Double_t fEcm,Bool_t isCrossingAngle);
87 Double_t
getRecoilMass(TLorentzVector lortzEcm, TLorentzVector lortzZ);
90 Double_t
getCosTheta(ReconstructedParticle *part1, ReconstructedParticle *part2);
91 Double_t
getCosTheta(TLorentzVector part1, TLorentzVector part2);
Int_t getLeptonID(ReconstructedParticle *recPart)
Bool_t getSplitTag(ReconstructedParticle *motherPart, ReconstructedParticle *recPart)
Int_t getOriginalPDGForIsoLep(MCParticle *mcPart, LCCollection *colMC)
void mcDebug(LCCollection *colMC)
Double_t getLikelihood(TString fname, TString hist, Double_t mass)
Int_t getOriginalSerialForZHH(MCParticle *mcPart, LCCollection *colMCP)
Double_t getCosTheta(ReconstructedParticle *part1, ReconstructedParticle *part2)
Double_t getJetDistance(ReconstructedParticle *i, ReconstructedParticle *j, TString algorithm, Double_t R)
Int_t isVertexFromOverlay(ReconstructedParticle *vertex, LCCollection *colMC, LCCollection *colMCTL)
Int_t calculateEnergyComponents(LCCollection *colMC, LCCollection *colMCTL, ReconstructedParticle *jet, Double_t energyComponents[4])
void dumpJetParticles(ReconstructedParticle *jet, LCCollection *colMC, LCCollection *colMCTL)
Double_t getConeEnergy(ReconstructedParticle *recPart, LCCollection *colPFO, Double_t cosCone)
TLorentzVector getFSRMomentum(ReconstructedParticle *recPart, LCCollection *colPFO)
Int_t getLinkedMCParticle(ReconstructedParticle *recPart, LCCollection *colMCTL, Double_t &weight, Int_t &nMCTL)
std::vector< Int_t > getNumberOfOverlayEvents(Double_t fEcm, LCCollection *colMC)
Double_t getRecoilMass(TLorentzVector lortzEcm, TLorentzVector lortzZ)
Double_t getAcoPlanarity(TLorentzVector lortz1, TLorentzVector lortz2)
void doPhotonRecovery(ReconstructedParticle *electron, LCCollection *colPFO, ReconstructedParticleImpl *recoElectron, Double_t fCosFSRCut=0.999)
Int_t getOriginalPDG(MCParticle *mcPart, Bool_t iHiggs=0)
Int_t isFromVertex(ReconstructedParticle *recPart, LCCollection *colVertex)
TLorentzVector getLorentzEcm(Double_t fEcm)
Int_t getMCSerial(MCParticle *mcPart, LCCollection *colMCP)
Double_t getInvariantMass(ReconstructedParticle *recPart1, ReconstructedParticle *recPart2)
TLorentzVector getLorentzVector(ReconstructedParticle *pfo)
MCParticle * getMCParticle(ReconstructedParticle *recPart, LCCollection *colMCTL)
Bool_t isOverlay(ReconstructedParticle *pfo, LCCollection *colMCTL)
Int_t getVertexComponents(LCCollection *colMC, LCCollection *colMCTL, ReconstructedParticle *vetex, Double_t energyComponents[2], Int_t nparticles[2])
std::vector< Int_t > getHiggsDecayModes(LCCollection *colMC)
Int_t getOriginalSerial(MCParticle *mcPart, LCCollection *colMCP, Bool_t iHiggs=0)
Bool_t getFSRTag(ReconstructedParticle *motherPart, ReconstructedParticle *recPart, Double_t fCosFSRCut=0.999)
Bool_t isFoundInVector(ReconstructedParticle *pfo, std::vector< lcio::ReconstructedParticle * > &pfos)
Double_t jetFunction(TLorentzVector lortz, float beta, float power)
Int_t isSelectedByFastJet(ReconstructedParticle *pfo, LCCollection *colFastJet, Double_t &ratioEPartEJet, Double_t &ratioPTMJet)
void listMCParticles(LCCollection *colMC)