Rev 266 | Rev 271 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 266 | Rev 267 | ||
---|---|---|---|
Line 65... | Line 65... | ||
65 | } |
65 | } |
66 | } |
66 | } |
67 | return nprt; |
67 | return nprt; |
68 | } |
68 | } |
69 | 69 | ||
70 | int CombineParticles(TClonesArray *plist1 ,TClonesArray *plist2 , float masslow, float massup, SIMPLEPID pid, TClonesArray *pout){ |
70 | int CombineParticles(TClonesArray *plist1 ,TClonesArray *plist2 , int same, float masslow, float massup, SIMPLEPID pid, TClonesArray *pout){ |
71 | // Loop over all the particles in both lists. |
71 | // Loop over all the particles in both lists. |
72 | pout->Clear(); |
72 | pout->Clear(); |
73 | int nprt=0; |
73 | int nprt=0; |
74 | 74 | ||
75 | for(TIter next1(plist1);BParticle * p1 =(BParticle *) next1();) { |
75 | for(TIter next1(plist1);BParticle * p1 =(BParticle *) next1();) { |
76 | // the second loop |
76 | // the second loop |
77 | for( |
77 | for( TIter next2 = (plist1!=plist2 && same==0) ? TIter(plist2): TIter(next1) ; BParticle * p2 =(BParticle *) next2();) { |
78 | BParticle p = *p1 + *p2; // Combine two particles into a new particle |
78 | BParticle p = *p1 + *p2; // Combine two particles into a new particle |
79 | if (p.InMassRange(masslow, massup)){ |
79 | if (p.InMassRange(masslow, massup)){ |
80 | p.SetPid(pid); |
80 | p.SetPid(pid); |
81 | TClonesArray& list = *pout; |
81 | TClonesArray& list = *pout; |
82 | new (list[nprt++]) BParticle ( p ); // create a new entry in kslist list of particles |
82 | new (list[nprt++]) BParticle ( p ); // create a new entry in kslist list of particles |