int main(int argc , char *argv[]){ std::string temp_str = std::to_string(atoi(argv[1])); temp_str += ".root"; Tracking::Tree::instance()->ReadTree(temp_str.c_str(), "BSC_DATA_TREE", 0); Detector *rpc1 = new GlassRpc(2,"MT-1",60,31); Detector *rpc2 = new GlassRpc(4,"MT-2",-60,31); SetupManager *setup = Tomography::SetupManager::instance(); setup->Register(rpc1); setup->Register(rpc2); std::cout<<"Size : "<< setup->GetDetectorVector("GLASS").size() << std::endl; std::vector<Detector*> detVect = setup->GetDetectorVector("GLASS"); #if 0 for(int k = 0 ; k < detVect.size() ; k++){ std::cout<< detVect[k]->GetName() << std::endl; std::cout<< detVect[k]->GetNumOfPlanes() << std::endl; std::cout<< detVect[k]->GetTotalNumOfChannels() << std::endl; std::vector<ScintillatorPlane*> planeVect = detVect[k]->GetScintillatorPlaneVector(); for(int i = 0 ; i < detVect[k]->GetNumOfPlanes() ; i++){ std::cout<<"Plane : " << i << " : " << planeVect[i]->GetNumOfScintillators() << std::endl; int numOfStrips = planeVect[i]->GetNumOfScintillators(); std::vector<Scintillator*> scintVector = planeVect[i]->GetScintVector(); for(int j = 0 ; j < numOfStrips ; j++){ std::cout<<"StripName : "<< scintVector[j]->GetName() << std::endl; } } } #endif Tomography::ScintillatorPlane::SetClusterSize(1); for(int evNo= 19 ;evNo <20; evNo++){ std::cout<<"--------------------Event No : " << evNo << " ---------------------------------"<<std::endl; setup->SetEventDetected("GLASS",evNo); std::cout<<"Event Detected : "<< setup->EventDetected() << std::endl; for(int j = 0 ; j < detVect.size() ; j++){ for(int i = 0 ; i < detVect[j]->GetNumOfPlanes() ; i++){ std::cout<< "Plane num : "<< i <<" : "<< detVect[j]->GetPlane(i)->GetFiredStripsVector().size() << std::endl; std::vector<Scintillator*> scintVector = detVect[j]->GetPlane(i)->GetScintVector(); std::vector<int> stripVect = detVect[j]->GetPlane(i)->GetFiredStripsVector(); int stripVectorSize = stripVect.size(); for(int k = 0 ; k < stripVectorSize ; k++){ std::cout<<"strip no : "<< stripVect[k] << " : Value : " << scintVector[stripVect[k]]->GetValue() << std::endl; } } } } return 0; }
int main(int argc, char *argv[]){ std::string temp_str = std::to_string(atoi(argv[1])); temp_str += ".root"; Tracking::Tree::instance()->ReadTree(temp_str.c_str(), "BSC_DATA_TREE", 0); SetupManager *setup = SetupManager::instance(); Detector *MT1=new GlassRpc(2,"MT1",-75,31); Detector *MT2=new GlassRpc(4,"MT2",45,31); Detector *TopScint=new TriggeringPlane(2,"TopScint",105,-1); Detector *BottomScint=new TriggeringPlane(2,"BottomScint",-105,7); int k; int topcount=0, bottomcount=0; int numerator=0, denominator=0; bool shower,rpcFired; int NumberOfStripsFired; setup->Register(MT1); setup->Register(MT2); setup->Register(TopScint); setup->Register(BottomScint); std::vector<Detector*> detVect=setup->GetDetectorVector("GLASS"); int showercount=0; int ClusterSize[4]; std::vector<Detector*> trgVect=setup->GetDetectorVector("TRG"); int numOfEvents = Tracking::Tree::instance()->GetNumOfEvents(); for(int evNo=0;evNo<numOfEvents;++evNo) { // std::cout<<"======================= Event no. : "<<evNo<<"===================="<<std::endl; setup->SetEventDetected("TRG",evNo); shower=false; //Printing events with Multihit for(int i=0;i<trgVect.size();++i) { for(int j=0;j<trgVect[i]->GetNumOfPlanes();++j) { for (int k = 0; k < trgVect[i]->GetPlane(j)->GetNumOfScintillators(); k++) { std::string bName = trgVect[i]->GetPlane(j)->GetScintVector()[k]->GetName(); Channel *ch = Tracking::Tree::instance()->GetEntry(bName, evNo); if(ch->size()>1){ std::cout <<"Event No : "<< evNo << " : Branch Name : " << bName << " : Multihit VectorSize : " << ch->size() << " Values : "; //<<std::endl; for (int l = 0; l < ch->size(); l++) { std::cout << ch->at(l) << ", "; } std::cout << std::endl; } } } } } std::cout<<"================================ Mulitihit Printing Done ==========================" << std::endl; int count = 0 ; for(int evNo=0;evNo<numOfEvents;++evNo) { setup->SetEventDetected("TRG",evNo); for(int i=0;i<trgVect.size();++i) { for(int j=0;j<trgVect[i]->GetNumOfPlanes();++j) { bool fired = false; //NumberOfStripsFired=trgVect[i]->GetPlane(j)->GetFiredStripsVector().size(); fired = trgVect[i]->GetPlane(j)->GetFiredStripsVector().size(); //Printing if some event are there for which either of Scintillators in ScintillatorPlane NOT fired if(!fired){ count++; std::cout<<"---- For Event : " << evNo << " : TrgPlane No : "<< i << " : NOT fired " << std::endl; for(int k = 0 ; k<trgVect[i]->GetPlane(j)->GetNumOfScintillators() ; k++){ std::string bName = trgVect[i]->GetPlane(j)->GetScintVector()[k]->GetName(); Channel *ch = Tracking::Tree::instance()->GetEntry(bName,evNo); std::cout<<"Branch Name : "<< bName <<" : Multihit VectorSize : "<<ch->size()<<" Values : ";//<<std::endl; for(int l = 0 ; l < ch->size() ; l++){ std::cout<<ch->at(l)<<", "; } std::cout<<std::endl; } } } } } if(count) std::cout<<std::endl<<"***************** Something Unexpected Happening ***********************" << std::endl<<std::endl; else std::cout<<std::endl<<"---------- GR8888 , Program running as Expected --------------" << std::endl << std::endl; }