void KVReconstructedEvent::IdentifyEvent() { //All particles which have not been previously identified (IsIdentified=kFALSE), and which //may be identified independently of all other particles in their group according to the 1st //order coherency analysis (KVReconstructedNucleus::GetStatus=0), will be identified. //Particles stopping in first member of a telescope (KVReconstructedNucleus::GetStatus=3) will //have their Z estimated from the energy loss in the detector (if calibrated). KVReconstructedNucleus *d; while ((d = GetNextParticle())) { if (!d->IsIdentified()){ if(d->GetStatus() == KVReconstructedNucleus::kStatusOK){ // identifiable particles d->Identify(); } else if(d->GetStatus() == KVReconstructedNucleus::kStatusStopFirstStage) { // particles stopped in first member of a telescope // estimation of Z (minimum) from energy loss (if detector is calibrated) UInt_t zmin = d->GetStoppingDetector()->FindZmin(-1., d->GetMassFormula()); if( zmin ){ d->SetZ( zmin ); d->SetIsIdentified(); // "Identifying" telescope is taken from list of ID telescopes // to which stopping detector belongs d->SetIdentifyingTelescope( (KVIDTelescope*)d->GetStoppingDetector()->GetIDTelescopes()->At(0) ); } } } } }
void KVReconstructedEvent::Streamer(TBuffer & R__b) { //Stream an object of class KVReconstructedEvent. //We set the particles' angles depending on whether mean or random angles //are wanted (fMeanAngles = kTRUE or kFALSE) if (R__b.IsReading()) { R__b.ReadClassBuffer(KVReconstructedEvent::Class(), this); // if the multidetector object exists, update some informations // concerning the detectors etc. hit by this particle if ( gMultiDetArray ){ //set angles KVReconstructedNucleus *par; while ((par = GetNextParticle())) { if (HasMeanAngles()) par->GetAnglesFromStoppingDetector("mean"); else par->GetAnglesFromStoppingDetector("random"); //reconstruct fAnalStatus information for KVReconstructedNucleus if (par->GetStatus() == 99) //AnalStatus has not been set for particles in group if (par->GetGroup()) KVReconstructedNucleus::AnalyseParticlesInGroup( par->GetGroup() ); } } } else { R__b.WriteClassBuffer(KVReconstructedEvent::Class(), this); } }