62 std::vector<float> values2;
63 std::vector<float> values3;
66 double costheta = -10.0;
67 double sin2theta = -10.0;
68 double tanphi = -10.0;
72 TLorentzVector
mu (0., 0., 0., 0.);
73 TLorentzVector
mubar (0., 0., 0., 0.);
75 int charge1=0, charge2 =0;
76 double res[3] = { -10., -10., -10.};
80 for (boson = bosons->begin(); boson != endbosons; ++boson) {
82 daughter1 = boson->daughter(0);
83 daughter2 = boson->daughter(1);
85 if( !(0==daughter1 || 0==daughter2) ) {
87 charge1 = daughter1->charge();
88 charge2 = daughter2->charge();
89 isOS = charge1*charge2<0;
90 if(isOS && charge1<0) {
91 mu.SetPxPyPzE( daughter1->px(), daughter1->py(), daughter1->pz(), daughter1->energy() );
92 mubar.SetPxPyPzE( daughter2->px(), daughter2->py(), daughter2->pz(), daughter2->energy() );
94 if(isOS && charge1>0) {
95 mu.SetPxPyPzE( daughter2->px(), daughter2->py(), daughter2->pz(), daughter2->energy() );
96 mubar.SetPxPyPzE( daughter1->px(), daughter1->py(), daughter1->pz(), daughter1->energy() );
107 values.push_back(costheta);
108 values2.push_back(sin2theta);
109 values3.push_back(tanphi);
114 auto valMap = std::make_unique<ValueMap<float>>();
122 auto valMap2 = std::make_unique<ValueMap<float>>();
124 filler2.insert(bosons, values2.begin(), values2.end());
129 auto valMap3 = std::make_unique<ValueMap<float>>();
131 filler3.insert(bosons, values3.begin(), values3.end());
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< edm::View< reco::Candidate > > parentBosonToken_
void calCSVariables(TLorentzVector mu, TLorentzVector mubar, double *res, bool swap)
const_iterator end() const