100 likes | 242 Views
Trigger LVL1/LVL2 Makers. Trigger (Level 2) Makers:. Starting from the original Moore design:. Access an ASCII file and iterate on RPC selected from LVL2 trigger in order to construct MooTrigClusters. MooTrigLVL2ClusterMaker. MooTrigClusters. MooTrigLVL2RoadMaker.
E N D
Trigger (Level 2) Makers: Starting from the original Moore design: Access an ASCII file and iterate on RPC selected from LVL2 trigger in order to construct MooTrigClusters MooTrigLVL2ClusterMaker MooTrigClusters MooTrigLVL2RoadMaker Starting from the same ASCII file information construct trigger roads from the LVL2 ROI) MooTrigRoads Itaration on MDT digits in order to form track segment along the roads MooiPatTrackSegmentMaker MooiPatTrackSegments The ASCII file contains also information about MDT (LVL2) MooiPatTrackMaker ATLAS Tracks Gabriella Cataldi-INFN Lecce
MooObject-TDS String name: TDS ObjectVector container: Stored in container MooTrigClusters MooTrigClusterContainer MooTrigCluster MooTrigRoads MooTrigRoadContainer MooTrigRoad MooTrackSegments MooTrackSegmentContainer MooTrackSegment MooTracks MooTrackContainer MooTrack MooiPatTracks MooiPatTrackContainer MooiPatTrack Gabriella Cataldi-INFN Lecce
ASCII file (Persint.out) A. Di Mattia (Roma I) has constructed a version of atrig (our geometry), producing an ASCII file as output: Event Numbering ===> SGVELO = -4.76520 (propagation velocity along the wire) …………….. ===> TDRMAX = 500.00000 (maximum drift time) C NEW EVT 1 C C RoI number 1 C TUB 2 1 1 1 1 12 409.0994 169.4545 35.5000 197.1687 1 6 …………….. C TRI 4 1 1 1 1 1 1 23 747.7504 234.7181 55.5000 0 TRI 4 1 1 1 1 1 2 15 749.5488 230.3763 60.2005 0 …………………………. C END EVT C Region of Interest MDT RPC Gabriella Cataldi-INFN Lecce
Starting from RPC Trigger Chambers TRI 4 1 1 1 1 1 1 23 747.7504 234.7181 55.5000 Jtype Trigger chamber e.g. BML, BMS .. Sector Number Ring Number Object Number (AMDB) x,y,z of the strip RoI number RPC Layer fired RPC view Strip Number Gabriella Cataldi-INFN Lecce
Trigger (Level 2) Makers: Starting from the original Moore design: Access an ASCII file and iterate on RPC selected from LVL2 trigger in order to construct MooTrigClusters MooTrigLVL2ClusterMaker MooTrigClusters MooTrigLVL2RoadMaker Starting from the same ASCII file information construct trigger roads from the LVL2 ROI) MooTrigRoads Itaration on MDT digits in order to form track segment along the roads MooiPatTrackSegmentMaker MooiPatTrackSegments The ASCII file contains also information about MDT (LVL2) MooiPatTrackMaker ATLAS Tracks Gabriella Cataldi-INFN Lecce
MooTrigClusterLVL2Maker Manage the opening and reading of ASCII file public: MooTrigClusterLVL2Maker(); ~MooTrigClusterLVL2Maker(); vector<MooTrigCluster*>* make(); static int debug(); void print(); private: MooTrigCluster* build_2d_clusters(vector<MooTrigCluster*>::const_iterator begin, vector<MooTrigCluster*>::const_iterator end); vector<MooTrigCluster*>* m_clusters2d;// the final set of 2D clusters static ifstream* inFile; static bool already_read; static int evtri; string get_station_name(int); int get_station_phi(int,char); ……………………….. int get_xreadout(int,std::string); int get_xdoublet(int,std::string); int get_zdoublet(int,std::string); bool get_gold_strip(double,double,double,double); public: MooTrigClusterLVL2Maker(); ~MooTrigClusterLVL2Maker(); vector<MooTrigCluster*>* make(); static int debug(); void print(); Convert the ASCII file information in RPC_Detector, RPC_Digit informations sincro. between ATHENA event and trigger event Associate the strip number RPC_Digit Problem ? WHY? Gabriella Cataldi-INFN Lecce
Comparing… Trig and Athena ----------------------------------------------------------- RPC side 2 layer 2 eta 0 phi 1 doublet set 0 RPC side 2 layer 2 eta 0 phi 1 doublet set 1 RPC side 2 layer 3 eta 0 phi 1 doublet set 0 ----------------------------------------------------------- NEW EVT 1 ============= TRI 4 1 1 1 1 1 1 23 747.7504 234.7181 55.5000 RPC Phi Eta Side Doublet Layer BMS 1 0 1 0 2 No Idea how to define the xreadout for single_gas! AMDB NOBJ!=1 No Idea how to define the zdoublet at all! RoI Number=1 RPC Gas Gap=0 Strip Projection=0 Strip Number=23 xdoub/xread/zdoub=0/0/1 xstrip/ystrip/zstrip=747.75/234.718/55.5 TRI 4 1 1 1 1 1 2 15 749.5488 230.3763 60.2005 RPC Phi Eta Side Doublet Layer BMS 1 0 1 0 2 No Idea how to define the zdoublet at all! AMDB NOBJ!=1 RoI Number=1 RPC Gas Gap=0 Strip Projection=1 Strip Number=15 xdoub/xread/zdoub=0/0/1 xstrip/ystrip/zstrip=749.549/230.376/60.2005 ================================================ RPC side 2 layer 2 eta 0 phi 1 doublet set 0 x/y/z/r/phi/d_set/zdoub/xdoub/xread/gasgap/layer/strip/kine 747.427 234.585 55.500 783.375 0.304 0 0 0 0 0 0 22 1 748.606 231.739 55.500 783.654 0.300 0 0 0 0 0 0 23 1 749.872 230.510 60.200 784.502 0.298 0 0 0 0 0 1 15 1 750.730 232.619 55.500 785.944 0.300 0 0 0 0 1 0 23 1 751.997 231.390 60.200 786.792 0.299 0 0 0 0 1 1 15 1 ===================================================== Gabriella Cataldi-INFN Lecce
MooTrigRoadLVL2Maker public: MooTrigRoadLVL2Maker(); ~MooTrigRoadLVL2Maker(); std::vector<MooTrigRoad*>* make(std::vector<MooTrigCluster*>*); int unused_roads() const; void clean_roads(); static int debug(); void print(); private: std::vector<MooTrigRoad*>* m_roads; Main PROBLEM !!!! Info are read all at the MooTrigClusterLVL2Maker Gabriella Cataldi-INFN Lecce
MooLVL2Service public: static MooLVL2Service * GetMooLVL2Service(); void Reset(); void Add(int,MooTrigCluster*); void print(); int get_nroi(); vector<MooTrigCluster*>* get_trigclus(int); typedef multimap<int, MooTrigCluster*>::const_iterator const_iterator; typedef pair<const_iterator,const_iterator> road; road road_range(int); ~MooLVL2Service(); private: MooLVL2Service(); static MooLVL2Service * myself; multimap<int,MooTrigCluster*>* LVL2TrigMap; }; Multimap Singleton Gabriella Cataldi-INFN Lecce